Plan to do some thing new but not so Costly. I like Robotics very much. But due to requirement of servos and other parts i don't like to make it. Now i have 4 servo motors cost only 13$. Already i have Link it one board and Arduino board.
So plan to do a robot head which move like our head in all axis but in cheap. Study for different sensors and methods, but finally find a way with all items in my hand. Lot of things i study during this project. Come on I explain what i study. I mention what i learn in bold letters.
Use Smart Mobile Tilt sensor to control the headStep 1: Materials Required
Materials I used
1) Arduino uno.
2) Linkit one Board.
3) 3 Servo motors.
4) SensoDuino free android app Download from here.
5) Regulated Power supply board (12V,5V,3.3V).
6) Plain PCB.
7) PCB Male connectors
8) Waste Aluminum feeding cut piece.
9) Hot Glue gun.
10) 12V and 5V adapter.
11) Some more items to decorate.
Why Linkit one board and Arduino uno
If U have Linkit one board and 3V servo motor then no need for Arduino UNO because my 5V servo not work fine in Linkit one board.
If U have Arduino uno and Blue tooth module then no need for Linkit one board.
I have no blue tooth shield so i go with Linkit one board and Arduino uno.Step 2: Own Servo Shield
1) Make a servo motor shield for Arduino.(Be carefull if u even use 3v servos Linkit one have only 2 PWM pins)
2) I make a shield like PCB for Servo motor.
3) Using this board we able to control 6 Servo motors from arduino pind (3,5,6,9,10,11).
4) 3 Wire servos are used here. where power supply is given from external 5 V regulator power supply board.
5) While control servo use adaptor supply for Arduino board. Because PC USB power supply cause vibration. This cause over heat in Servo motor and damage the Servo motor. (one of my servo damage)Step 3: Make Linkit one connection
1) Linkit one want to talk with arduino to control the servos.
2) For that connect the Tx of the Linkit one board to the Rx of the Arduino board ad both Gnd.
3) when ever the data received it is send to the Arduino.
If u have Arduino bluetooth shield then u control the whole setup using one board.Step 4: Servo Position
1) Set all the servo motors to 90 degree. For that upload the above program to arduino..
2) Connect the Servo power and arduino power to the regulator power supply board at 5V and 12V pins.
3) Connect the servo female connector to the male connector if the PCB we make in Arduino digital pins 3,5,6.
3) Connect the 12V adapter to the regulator power supply board.
4) Switch on the Adaptor.
5) Now all the motors turn 90 degree as per program.
Now disconnect the motors for join together with out disturb the rotor.
Position Arduino IDE Code is given as Servoposition.ino
Step 5: Plan
1) Head rotate in 3 axis x,y,z.
2) The rotations are
a) Yaw - See left and right.
b) Pitch -See up and down
c) Roll-Shake side wise.
3) First use a Double side tape to plan the Servos.
4) Cut the Aluminum partition piece to L shape to fix the top servo to the second one.
5) Connect the the servo motor horn as per ur plan or as shown in the picture
6) All the servos center must be straight when in 90 degree.
7) stick all the servos and aluminum L piece using Double side tape and check the movement cant disturb other servos.Step 6: Construction
1) Now its time to fix it permanently.
2) Remove the Double side Sticker one by one and fix it permanently using Hot glue gun.
3) Be careful dont damage the servos.
4) Again connect the servo connector to the arduino board and switch on the supply
5) conform all stand straight like last image.Step 7: Android App Details
1) Open SensoDuino in your android phone. Its has options to view all the mobile sensor reading and able to send it through blue tooth.
2) All the latest sensors are listed and we only able to select which sensors available in our phone.
3) Go to menu and select connect Bluetooth.
4) The list show the available blue tooth devices.
5) Select the Linkit one bluetooth.
6) For our project we use Orientation sensor. Check the first box to on and the second box to send data via blue tooth.
7) We also set the performance of each sensor by select the performance option in the menu. Change the time interval for each reading.Step 8: Coding
1) Two codings are here one for Linkit one.
Using blue tooth it get data from the mobile and send it to the Arduino using the serial port
2) Arduino pogram
When data received in the serial port it concatenate the chars as string. And using indexof and substring divide one full set result. In that set again use the indexof and substring to get each position. From that using the map in arduino to control the servo from 0 to 180 degree. If u use Bluetooth shield then change the program according to the requiremnet.
How the Program Works
1) Using Orientation sensor the robot turn head as like us.
a) Yaw is the rotation its is from 0 to 360 degree as per magnetic position. For that we use 90 to 270 degree where 180 is the 90 degree for servo. So we want to face 180 degree as string when wear the cap.
b) Pitch is front side up and down. Its sensor reading is -180 to + 180. We use -90 to +90.
c) Roll is shake side wise it is 0 to 90 to 0 to -90 to 0. we use -90 to 90.
Linkit one code is given in Linkitonehead.ino
Arduino code is given in Arduinohead.ino
Step 9: Order the boards
1) connect Both shield boards to the top of both microcontrollers.
2) Paste it all with Double side sticker one over another.
3) Be carefull don't shot any terminal.Step 10: Trail with hand
Now switch on all the supply and use the mobile in hand. Sit facing 180 degree in the yaw and use the mobile to control all the three servo motors.Step 11: Fix a face
1) Its x-mas time so found lot of santa claus dolls in shop.
2) Buy one doll and fix the head using double side tap to the top servo arm.Step 12: Prepare a control hat
1) Take a normal hat.
2) Paste double side sticker on the front of the cap as show in the figure.
3) Paste your mobile phone over the double side tape.Step 13: Testing video
Testing low Performance means sensor refresh rate at every 250 millisecond.Step 14: Final Video
See the action at sensor reading rate of one reading per 100millisecond