After upgrading from the four foot tree I have had for a few years I decided it was time to get some type of tree topper. I wanted something rustic to match the theme of my tree but couldn't find anything that met my requirements. I solved this problem by making my own.
M@'s Projects
Thursday, December 6, 2012
Tuesday, February 22, 2011
Software Serial on Arduino for Debugging and Displaying Serial Data in a Terminal Window
In order to debug the code for my remote car starter project I wanted to be able to output information via serial to display on my computer. Unfortunately the Arduino Uno has only one hardware serial port which was already in use to communicate with the Motorola c168i. To solve this problem I used a TTL serial to USB cable connected to a standard I/O pin on the Arduino. I then used the software serial library to output the data.
The Arduino IDK has a serial monitor tool built in but I would have had to change the selected serial port back and forth from one port to another to program or view the debugging data. To get around this I just used terminal to display the data.
Below is the Arduino sketch used in the example.
The Arduino IDK has a serial monitor tool built in but I would have had to change the selected serial port back and forth from one port to another to program or view the debugging data. To get around this I just used terminal to display the data.
Below is the Arduino sketch used in the example.
#include <softwareserial.h>
#define rxPin 2
#define txPin 3
int count = 1;
SoftwareSerial PCserial = SoftwareSerial(rxPin, txPin);
void setup() {
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
PCserial.begin(9600);
}
void loop() {
PCserial.println("This is output via software serial.");
PCserial.print("Count: ");
PCserial.println(count);
count++;
delay(1000);
}
Labels:
arduino,
Mac,
OS X,
remote start,
serial,
software serial,
terminal
Monday, February 21, 2011
Remote Car Starter - Controlling the Motorola c168i with Arduino
I have began making progress on my remote car starter project. The basic concept is to build a home brew version of the Viper SmartStart system. My version will utilize text messages to relay the commands from my cell phone to the car via the Motorola c168i pay-as-you-go phone.
The first steps to getting this project started are learning the ropes of communicating with the c168i via the TTL serial port in the 3/32" headset jack on the top of the phone. The phone uses what are called "AT commands." Many phones can be controlled using these commands but each phone will not necessarily work with every command. There are also other quirks to account for such at the excessive power management of the c168i that requires sending something over the serial connection to wake the phone up before sending an actual command.
To connect your Arduino to the c168i you will need a 3/32" headset plug. I used part 274-0298 from Radio Shack. The connection uses three wires: ground, TX (transmit) and RX (receive). The tip on the 3/32" headset plug is the TX signal and connects to pin 1 on the Arduino, the ring is connected to the RX signal or pin 0 and the shield is connected to ground.
Below you will find the basic test sketch I used. Every line except for the repeated delay commands is commented to explain what it does. Eventually the delays will be removed and I will program the Arduino to listen for an ok response or error from the phone before proceeding to the next command.
void setup() {
pinMode(13, OUTPUT); // Initialize pin 13 as digital out (LED)Serial.begin(4800); // Open serial connection at baud rate of 4800delay(500); // Wait half a secondSerial.println("AT"); // Sends AT command to wake up cell phonedelay(500);Serial.println("AT+CMGF=1"); // Puts phone into SMS modedelay(1000); // Wait a secondSerial.println("AT+CMGW=\"+15555555555\""); // Creates new message to numberdelay(1000);Serial.print("This message was generated by Arduino!"); // Message contentsdelay(1000);Serial.println(26, BYTE); //equivalent (signals end of message) delay(1000);Serial.println("AT+CMSS=1"); // Sends message at index of 1delay(10000);Serial.println("AT+CMGD=1"); // Deletes message at index of 1
}
void loop(){
digitalWrite(13, HIGH); // set the LED ondelay(250); // wait for 1/4 a seconddigitalWrite(13, LOW); // set the LED offdelay(250); // wait for 1/4 a second
}
Useful Resources
Labels:
arduino,
car,
motorola c168i,
remote start,
SMS,
text message
Sunday, January 23, 2011
Water Garden Update and Ideas for New Projects
It has been quite some time since my last post on my projects blog. I still have full intentions of completing the water garden project but my lack of a permanent residence is hindering this and I'm not sure what the future is going to look like at the moment. I will be going back to school in the fall which means I will probably not have a good location to build a water garden for a while.
One project I am considering building is a homemade remote car starter that would allow me to start my car with my iPhone. This would be much like the Viper Smart Start system. The main reason I would like to build this is to allow my car to heat up on cold winter mornings and cool down on hot summer days before I get into it.
My other project idea, which has been on my radar for quite some time, is replacing the stock radio in my Honda Fit with a custom touchscreen computer. I do love the way the stock radio in my car looks though so I am also considering gutting it and using the interface to control a computer without having a touchscreen interface.
Labels:
car,
car computer,
remote start,
water garden
Sunday, September 5, 2010
Water Garden Take Two
After the vandalism I was able to get the water garden going again fairly easily. I did run into problems, however, not related to the vandalism. The barrels did a good job of holding water for a while but I started having continuous trouble with the top portion drying out causing the planks of wood to separate and begin leaking. I have decided that any future water gardens will most definitely use a liner.
I'm not sure how yet but I'm am confident I can figure out a way to prevent the liner from affecting the appearance of the barrels. It won't be necessary for now, however, as I have decided to try a different approach for my next "patio pond" since I am now living in California.
The picture below is a rough drawing of my plans for the new back porch. I will probably only be building the fountain and not the arbor.
Thursday, June 10, 2010
Water Garden: Plants and Vandalism
The next step in the process of creating any water garden is putting in plants. I originally wanted to put Iris, Water Lettuce, and Water Hyacinth in the water garden but had a hard time finding the last two. I already had the Iris, however, so I went ahead and planted them in the garden. I plan on purchasing the other types when I can find a local supplier. They are both floating plants and help oxygenate the water and also act as a natural filter.
I purchased two planting baskets as well as some topsoil and aquarium rocks. It is important to use a good topsoil rather than potting soil. This is because potting soil is too light and will float more easily and make a bigger mess. The aquarium rocks go on top of the dirt and prevent it from going everywhere and clouding up the water. The planting process is pretty simple.
- Fill the planting baskets partway with soil
- Put plant in basket
- Fill with more soil
- Cover with aquarium rocks
After putting the aquarium rocks over the soil I watered the plants thoroughly to saturate the soil and let the small bits drain out of the bottom to reduce clouding of the water. The only thing left to do after this is to place them in the water garden. I used a few bricks to adjust the height to the appropriate level. I placed these so that they had between 1 1/2" - 2" of water above the tops of the baskets.
Starting to look like a water garden...
Unfortunately some punk decided to be a complete jerk and vandalized the water garden a few days later (along with the outside A/C unit). Below are some pictures of the damage. Fortunately all I had to do was replant the Iris and clean the dirt and rocks out of the water but it was still a pain and very aggravating.
Friday, May 21, 2010
Water Garden: Progress Update
The water garden project is moving along nicely. I have purchased the barrels, pump, tubing, and the bricks to elevate the upper barrel.
The most difficult aspect of the project thus far has been getting the wooden barrels to hold water. The barrels were very dry when I purchased them. So dry in fact that they were nearly falling apart. In order to get them to hold water again I had to get the wood to absorb water so that it would expand and seal up. I accelerated this process by hanging wet towels over the sides of the barrels and pouring water over them several times a day for over a week.
The process is slow but it negates the need for a liner and, in my opinion, makes the water garden look better. It is also necessary for this project because I plan on putting three holes in the upper barrel to spill into the lower barrel which would be much more difficult (if not impossible) to achieve with a liner in place.
Soaking and filling the barrels as well as watering plants on my patio is interesting in itself as I have no faucet outside and must fill empty milk jugs with water and haul them through the apartment. (Please excuse the mess in the sink.)
I have had the most trouble sealing the top three to four inches of the barrels agains leaks so I choose to seal the cracks with silicone caulk. The silicone should maintain a seal and allow for the spaces to expand and contract with varying moisture levels and different temperatures.
After allowing the silicone to thoroughly dry I moved the barrels back outside and drilled the holes, filled them with water, and installed the pump. I inserted plastic tubing in to the holes to help project the water farther away from the side of the barrel.
Up next: Putting plants in the water garden...
Subscribe to:
Posts (Atom)