DIY - GESTURE controlled Arduino based Rover ( Wireless + Line Following )
What is it capable of ?
1. It can be controlled using gestures.
2. It can Send temperature , object distance , battery level , etc. values to the glove ( LCD ).
3. Can run on 45+ degree angle.
4. Tx Rx pair on both rover and Glove ( for bi-directional data transfer ).
Why to use joysticks to control you robot when you can control it by the gestures of your hand ! This robotic Rover works on 433MHz Band RF Modules (ASK).
The remote is modified into a GLOVE which is equipped with
an accelerometer (ADXL335)
16x2 LCD display
8 button keypad
and a transceiver
The rover and glove is based on ATmega328 P which is used in Arduino Uno as well ,
**********PARTS*********
ROVER UNIT ( I've named it TITAN :D )
1. ATmega
2. Custom made arduino compatible robotic controller
3. DIY FTDI cable ( USB to SERIAL )
4. HC-SR04 Ultrasonic Rangefinder
5. 2 x Optical sensors ( to convert it into a line follower)
6. 2 x custom 30 Amp Motor drivers : MAKE YOUR OWN MOTOR DRIVER
7. 2 x 150 RPM & 5 kgf-cm torque DC motors
8. 12V SLA ( Sealed Lead Acid ) Battery 1.2 Ah capacity
9. 4 x Track wheels and Track belt
10. Acrylic sheet chasis ( i used 4mm thick sheet )
Gesture GLOVE :
1. A Glove
2. ATmega 328P based board
3. ADXL335 accelerometer
4. 16x2 LCD Display
5. A 8-button Keypad
6. 433Mhz Transceiver
7. Some headers and ribbon cables
1. It can be controlled using gestures.
2. It can Send temperature , object distance , battery level , etc. values to the glove ( LCD ).
3. Can run on 45+ degree angle.
4. Tx Rx pair on both rover and Glove ( for bi-directional data transfer ).
Why to use joysticks to control you robot when you can control it by the gestures of your hand ! This robotic Rover works on 433MHz Band RF Modules (ASK).
The remote is modified into a GLOVE which is equipped with
an accelerometer (ADXL335)
16x2 LCD display
8 button keypad
and a transceiver
The rover and glove is based on ATmega328 P which is used in Arduino Uno as well ,
**********PARTS*********
ROVER UNIT ( I've named it TITAN :D )
1. ATmega
2. Custom made arduino compatible robotic controller
3. DIY FTDI cable ( USB to SERIAL )
4. HC-SR04 Ultrasonic Rangefinder
5. 2 x Optical sensors ( to convert it into a line follower)
6. 2 x custom 30 Amp Motor drivers : MAKE YOUR OWN MOTOR DRIVER
7. 2 x 150 RPM & 5 kgf-cm torque DC motors
8. 12V SLA ( Sealed Lead Acid ) Battery 1.2 Ah capacity
9. 4 x Track wheels and Track belt
10. Acrylic sheet chasis ( i used 4mm thick sheet )
Gesture GLOVE :
1. A Glove
2. ATmega 328P based board
3. ADXL335 accelerometer
4. 16x2 LCD Display
5. A 8-button Keypad
6. 433Mhz Transceiver
7. Some headers and ribbon cables
Step 1: Features and Future possibilities
SKIP THIS STEP FOR BUILDING GUIDE >>>
Features :
1. Minimal I/O pins configuration.
2. Quite light weight , portable, sturdy and transparent chasis.
3. Easy to control it using Gestures and interactive LCD screen.
4. Battery level monitoring , Distance measurement , temperature monitoring , etc.
5. Isolation of motors from MCU board , reduces noises and voltage spikes from the motor.
6. Programmable through FTDI cable and accepts Arduino sketches.
7. Compatible with Arduino shields.
8. FPV ( first person view camera )
9. Can act as a line following robot.
10. Tested on 45+ degree slopes.
11. Can be used for remote surveillance.
Future Scope of improvement :
I'm planning to :
1. Add a gripper arm on the rover unit .
2. Add a 6v solar panel to charge the batteries which power the MCU
3. Add an EDF ( ducted fan ) and transform it into a hovercraft.
4. Replace the original 150 RPM motors with mabuchi rs380 (18000 RPM ) motor
So What Will You Mod It Into ? =D
Features :
1. Minimal I/O pins configuration.
2. Quite light weight , portable, sturdy and transparent chasis.
3. Easy to control it using Gestures and interactive LCD screen.
4. Battery level monitoring , Distance measurement , temperature monitoring , etc.
5. Isolation of motors from MCU board , reduces noises and voltage spikes from the motor.
6. Programmable through FTDI cable and accepts Arduino sketches.
7. Compatible with Arduino shields.
8. FPV ( first person view camera )
9. Can act as a line following robot.
10. Tested on 45+ degree slopes.
11. Can be used for remote surveillance.
Future Scope of improvement :
I'm planning to :
1. Add a gripper arm on the rover unit .
2. Add a 6v solar panel to charge the batteries which power the MCU
3. Add an EDF ( ducted fan ) and transform it into a hovercraft.
4. Replace the original 150 RPM motors with mabuchi rs380 (18000 RPM ) motor
So What Will You Mod It Into ? =D
Step 2: CONTROL BOARDS :
If you're using two separate Arduino boards then you can skip this step
NOTE ! : I've made these boards using toner transfer and FeCl3 etching method ( without solder mask ) , they're easy to make but they look kinda shabby :P
I've used minimal components and some extra headers for I/O pins. If you want the board files ( .brd) then just comment below and i'll surely post it ( with / without the logo ) .I can provide you with the single sided version if you don't want the double sided layout.
Some tips on toner transfer method :
1. Use a clean and nicely rinsed copper clad ( ***** if you want faster etching then you may reduce the copper thickness by sanding it a bit **** ).
2. set the printer on high contrast and print the design on a magazine paper
3. after placing the paper on the copper surface , heat it for 5-6 minutes or maybe less .
Try not to over-heat it as toner is a polymer and on over-heating it could ruin your design ( if the tracks are too close )
4. After 5-6 mins quickly place it in cold water and soak it for another 5 minutes . When it is done , the paper will peel off easily , scrub any excess paper left on it and let it dry.
5. Check all the tracks, pads and vias properly before etching. You can correct errors using a fine tip permanent marker. Your board is ready to be etched.
6. Get a PLASTIC tray and add 3-4 tablespoons of FeCl3 powder ( depens on the size of your board ) You'll need plenty of it. Now place your board ( copper side up ) in the tray , near the heap of FeCl3 powder.
CAUTION : You'll need some latex gloves and safety goggles as when FeCl3 is added to boiling water , the solution releases heat and nasty fumes. Do not carry out etching in a closed room, find a well ventilated area for doing this step.
7. Get boiling water and slowly add it to the tray ( use minimum qty of water ) and stir it constantly ( important).
8. If you have used previously sanded copper clad then it will take hardly 5-6 mins for complete etching but in other cases it could even take 20 - 30 minutes.
9. Once the copper is etched , you have to scrub off the toner with a steelwool scrub, use acetone / alcohol to clean the permanent marker ink.
Part list :
1. ATmega328P x 2 (for rover and glove)
2. 16MHz crystal x 2
3. 4 x 22pf capacitors some 10 uf and 100nf capacitors
4. a bunch of 10k resistors ( they serve as pull-up or pull-down resistors )
5. some 220r - 330r or 1k resistors ( as per your LEDs )
6. A Copper clad ( double sided or single sided )
7. Some male and female header strips
8. tactile switches
9. 7805 5v regulators
10. some diodes and terminal blocks
11. RF modules x 2 (433MHz)
12. A programmer or FTDI cable - Want to build you own FTDI cable using toner transfer method?
**********************************************************************************************
The board on the rover has mainly
2 motor control PWM enabled jacks (11-3 and 5-6) ,
Arduino shield compatible headers
some 3 pin headers ( vcc - gnd - analog pin) for analog sensors.
i've directly soldered the RF module Rx and Tx on the board
***********************************************************************************************
Bootloading your new ATmega328
1. Upload the ARDUINO ISP sketch on arduino
2. connect
ARDUINO - ATMEGA328P
pin 13 - SCK pin (PB 5)
pin 12 - MISO pin (PB 4)
pin 11 - MOSI pin (PB 3)
pin 10 - Reset pin ( 1 )
for schematics : http://arduino.cc/en/Tutorial/ArduinoToBreadboard
Select "Arduino UNO" from Tools > Boards > Arduino Uno
Select "Arduino as ISP" from Tools > Programmer > Arduino as ISP
after ensuring all the connections click on "Burn bootloader"
wait for few seconds and your Atmega328P is now ready to accept Arduino Sketches !
NOTE ! : I've made these boards using toner transfer and FeCl3 etching method ( without solder mask ) , they're easy to make but they look kinda shabby :P
I've used minimal components and some extra headers for I/O pins. If you want the board files ( .brd) then just comment below and i'll surely post it ( with / without the logo ) .I can provide you with the single sided version if you don't want the double sided layout.
Some tips on toner transfer method :
1. Use a clean and nicely rinsed copper clad ( ***** if you want faster etching then you may reduce the copper thickness by sanding it a bit **** ).
2. set the printer on high contrast and print the design on a magazine paper
3. after placing the paper on the copper surface , heat it for 5-6 minutes or maybe less .
Try not to over-heat it as toner is a polymer and on over-heating it could ruin your design ( if the tracks are too close )
4. After 5-6 mins quickly place it in cold water and soak it for another 5 minutes . When it is done , the paper will peel off easily , scrub any excess paper left on it and let it dry.
5. Check all the tracks, pads and vias properly before etching. You can correct errors using a fine tip permanent marker. Your board is ready to be etched.
6. Get a PLASTIC tray and add 3-4 tablespoons of FeCl3 powder ( depens on the size of your board ) You'll need plenty of it. Now place your board ( copper side up ) in the tray , near the heap of FeCl3 powder.
CAUTION : You'll need some latex gloves and safety goggles as when FeCl3 is added to boiling water , the solution releases heat and nasty fumes. Do not carry out etching in a closed room, find a well ventilated area for doing this step.
7. Get boiling water and slowly add it to the tray ( use minimum qty of water ) and stir it constantly ( important).
8. If you have used previously sanded copper clad then it will take hardly 5-6 mins for complete etching but in other cases it could even take 20 - 30 minutes.
9. Once the copper is etched , you have to scrub off the toner with a steelwool scrub, use acetone / alcohol to clean the permanent marker ink.
Part list :
1. ATmega328P x 2 (for rover and glove)
2. 16MHz crystal x 2
3. 4 x 22pf capacitors some 10 uf and 100nf capacitors
4. a bunch of 10k resistors ( they serve as pull-up or pull-down resistors )
5. some 220r - 330r or 1k resistors ( as per your LEDs )
6. A Copper clad ( double sided or single sided )
7. Some male and female header strips
8. tactile switches
9. 7805 5v regulators
10. some diodes and terminal blocks
11. RF modules x 2 (433MHz)
12. A programmer or FTDI cable - Want to build you own FTDI cable using toner transfer method?
**********************************************************************************************
The board on the rover has mainly
2 motor control PWM enabled jacks (11-3 and 5-6) ,
Arduino shield compatible headers
some 3 pin headers ( vcc - gnd - analog pin) for analog sensors.
i've directly soldered the RF module Rx and Tx on the board
***********************************************************************************************
Bootloading your new ATmega328
1. Upload the ARDUINO ISP sketch on arduino
2. connect
ARDUINO - ATMEGA328P
pin 13 - SCK pin (PB 5)
pin 12 - MISO pin (PB 4)
pin 11 - MOSI pin (PB 3)
pin 10 - Reset pin ( 1 )
for schematics : http://arduino.cc/en/Tutorial/ArduinoToBreadboard
Select "Arduino UNO" from Tools > Boards > Arduino Uno
Select "Arduino as ISP" from Tools > Programmer > Arduino as ISP
after ensuring all the connections click on "Burn bootloader"
wait for few seconds and your Atmega328P is now ready to accept Arduino Sketches !
Step 3: Build The Rover Platform
The
main chasis is made using a 30 x 40 cm piece of clear 4mm Acrylic sheet
. Additional acrylic strips are fixed on the edges to strengthen the
body.
Two motors are clamped at the back and two dead shafts (dummy shafts) are clamped in the front.
The motor drivers are firmly fixed near the motors and a LM35 temperature sensor is fixed in it to monitor the temperature.
Two motors are clamped at the back and two dead shafts (dummy shafts) are clamped in the front.
The motor drivers are firmly fixed near the motors and a LM35 temperature sensor is fixed in it to monitor the temperature.
Step 4: ATTACHING SENSORS AND FINAL BODY
WIRELESS CAMERA ( for first person view FPV )
I've mounted an android phone which serves as an IP Camera ( get this app : IP Webcam )
The android creates a wifi-hotspot , to connect my laptop directly to the phone ( without any external router ) ! Now you can stream live FPV from your ROVER !
OPTICAL SENSORS :
I've attached two optical sensors which use a super-bright red LED as Tx and a photodiode as Rx , the photodiode is covered with a open tube made from 6mm heat shrink tube. This is done to avoid false reading , the sensors are fixed facing downwards to convert it into a line following robot.
ULTRASONIC SENSORS :
The HC-SR04 is mounted using a small piece of acrylic and some superglue. The mount has a 4 pin female header where the HC-SR04 is fixed.
TEMPERATURE SENSOR :
Two LM35 analog Temperature sensors are firmly inserted into the heatsinks of the motor drivers. If you're using Low turn motors ( eg The 380 motor (Mabuchi RS-380SH) ) or any other hobby offroad motors then it is highly recommended to enable the cooling fans. They get really hot , hot enough to destroy the MOSFETs.
Further Scope :
There are variety of sensors that you could implement , like some LDRs , SHARP sensors , etc)
I've mounted an android phone which serves as an IP Camera ( get this app : IP Webcam )
The android creates a wifi-hotspot , to connect my laptop directly to the phone ( without any external router ) ! Now you can stream live FPV from your ROVER !
OPTICAL SENSORS :
I've attached two optical sensors which use a super-bright red LED as Tx and a photodiode as Rx , the photodiode is covered with a open tube made from 6mm heat shrink tube. This is done to avoid false reading , the sensors are fixed facing downwards to convert it into a line following robot.
ULTRASONIC SENSORS :
The HC-SR04 is mounted using a small piece of acrylic and some superglue. The mount has a 4 pin female header where the HC-SR04 is fixed.
TEMPERATURE SENSOR :
Two LM35 analog Temperature sensors are firmly inserted into the heatsinks of the motor drivers. If you're using Low turn motors ( eg The 380 motor (Mabuchi RS-380SH) ) or any other hobby offroad motors then it is highly recommended to enable the cooling fans. They get really hot , hot enough to destroy the MOSFETs.
Further Scope :
There are variety of sensors that you could implement , like some LDRs , SHARP sensors , etc)
Step 5: AXIS GLOVE - accelerometer strap
The glove consists of two parts :
1. The accelerometer strap
it has the accelerometer , TX and RX 433MHz , the power connector and the MCU Board.
2. The Display strap
it has the 16x2 LCD and the 8 button keypad
ACCELEROMETER STRAP :
The accelerometer strap is basically a piece of velco which has the ADXL335 , RF Tx Rx pair and a power socket mounted on it.
1. cut a strip of soft (loop) velco ( any length ). Cut a smaller piece of rough (hook) velcroand paste it at the end of the soft velcro strip on the plain side and paint it as you like. Then mount the ADXL335 using a piece of double tape or some screws after the paint dries.
2. attach the Tx and Rx as shown in the picture after soldering power and data connectors.
3. Cut two 6 pin female headers and superglue them in stacked position. Solder the Gnd and +5v bus as shown.
4. Cut a piece of soft velcro and glue it to the bottom of the Mini MCU board so that it will stick firmly to the rough end of the strap.
Next step : LCD display strap >>>
1. The accelerometer strap
it has the accelerometer , TX and RX 433MHz , the power connector and the MCU Board.
2. The Display strap
it has the 16x2 LCD and the 8 button keypad
ACCELEROMETER STRAP :
The accelerometer strap is basically a piece of velco which has the ADXL335 , RF Tx Rx pair and a power socket mounted on it.
1. cut a strip of soft (loop) velco ( any length ). Cut a smaller piece of rough (hook) velcroand paste it at the end of the soft velcro strip on the plain side and paint it as you like. Then mount the ADXL335 using a piece of double tape or some screws after the paint dries.
2. attach the Tx and Rx as shown in the picture after soldering power and data connectors.
3. Cut two 6 pin female headers and superglue them in stacked position. Solder the Gnd and +5v bus as shown.
4. Cut a piece of soft velcro and glue it to the bottom of the Mini MCU board so that it will stick firmly to the rough end of the strap.
Next step : LCD display strap >>>
Step 6: AXIS GLOVE -- DISPLAY UNIT
The display unit has a 16x2 LCD display mounted on a piece of acrylic which is then attached to the straps.
Parts :
1. 16x2 LCD
2. 74HC595
3. A 16 pin Female header
4. CD4051 and 8 tactile switches
5. Some headers
STEPS :
1. Start by cutting a rectangular piece of acrylic sheet (matching the size of your LCD) and drill holes in it to mount the LCD. Fix the LCD firmly.
2. Follow the schematic and connect the LCD as shown and download the ShiftLCD library from here - ShiftLCD
3. Attach two straps to the acrylic base and your LCD unit is ready !
KEYPAD --->
1. Follow the schematic (provided in the images) or you can ask me for the Board (.brd) files !
2. Download the Mux library ( made by me ).
3. Attach bits of velcro to the bottom layer of the keypad so that it can be attached under the glove.
4. Solder Power wires , input and select pin wires.
Finally your control glove is ready !
Parts :
1. 16x2 LCD
2. 74HC595
3. A 16 pin Female header
4. CD4051 and 8 tactile switches
5. Some headers
STEPS :
1. Start by cutting a rectangular piece of acrylic sheet (matching the size of your LCD) and drill holes in it to mount the LCD. Fix the LCD firmly.
2. Follow the schematic and connect the LCD as shown and download the ShiftLCD library from here - ShiftLCD
3. Attach two straps to the acrylic base and your LCD unit is ready !
KEYPAD --->
1. Follow the schematic (provided in the images) or you can ask me for the Board (.brd) files !
2. Download the Mux library ( made by me ).
3. Attach bits of velcro to the bottom layer of the keypad so that it can be attached under the glove.
4. Solder Power wires , input and select pin wires.
Finally your control glove is ready !
Step 7: FINAL TOUCH
Now that we've finished making our Rover and Glove , its time for programming.
Libraries that you'll need :
VirtualWire.h
Mux.h
ShiftLCD.h
The programs are quite long so there could be some bugs in it. If you encounter some bugs or If you have some problem with the libraries then be sure to ask me. The programs are archived in the .rar file attached below.
THERE ARE TWO PROGRAMS IN THE RAR , ONE FOR ROVER AND ONE FOR GLOVE
Any queries ? Suggestions ? Requests ? Problems ? Feel free to comment below i'll try to reply ASAP.
#gesture
#arduino
#rover
#wireless
Libraries that you'll need :
VirtualWire.h
Mux.h
ShiftLCD.h
The programs are quite long so there could be some bugs in it. If you encounter some bugs or If you have some problem with the libraries then be sure to ask me. The programs are archived in the .rar file attached below.
THERE ARE TWO PROGRAMS IN THE RAR , ONE FOR ROVER AND ONE FOR GLOVE
Any queries ? Suggestions ? Requests ? Problems ? Feel free to comment below i'll try to reply ASAP.
#gesture
#arduino
#rover
#wireless
I have learned a few new ideas through this Blog. Im very happy and thankyou very much for sharing this.
ReplyDeleteStruts Training in Chennai
Struts Training Chennai
Wordpress Training in Chennai
wordpress course fees
Best Wordpress Training in Chennai
WordPress course
Spring Training in Chennai
Hibernate Training in Chennai
I totally agree with this article and I just want to say that this article is a very nice and very informative article.I will make sure to be reading your blog more. Opt to buy microsonic ultrasonic sensors at excelautomationinc.com
ReplyDelete