A robot may not injure a human being or, through inaction, allow a human being to come to harm. A robot must obey orders given it by human beings except where such orders would conflict with the First Law. A robot must protect its own existence as long as such protection does not conflict with the First or Second Law.
“ADDY:RaspberryPi Robot” Ver.1, its raspberrypi based robot with lot of wide features and modules associated with it few of them are: Wifi, Arm & Gripper, Speakers, 5mp PiCamera 1080p, USB microphone, L293D motor driver, Lights. Integrating all these modules I am trying to develop autonomous robot with features like track faces, objects, voice control, lift light weight things. Also, I have developed software to manually control the robot using pyqt4 package in Python. Last, semester I went to Techfest 2015 at IIT-Mumbai for BLOCK WARRIOR competition and here’s a demo video link: https://www.youtube.com/watch?v=YKxT_tZRZ6g
- Control ADDY using any language: C/C++, JAVA, Python.
- Track and locate places using its camera which can be rotated 180 degrees.
- Connect to any device with internet connectivity for remote control.
- Webserver & Website on localhost/live to control ADDY( www.vslcreations.in).
- GUI & key controls for GPIO and its parts.
In, this tutorial I have written short steps to build a robot with all references and tutorial links because of time shortage. Also, I have excluded steps for setting up servo control of camera rotation. You can comment for any queries would love to answer you.
Step 1: Hardware Parts Required
1. RaspberryPi B+ : To control ADDY and provide signals to GPIO for its I/P & O/P.
Processor-Broadcom BCM2835 ARMv6, Chipset-HD multimedia app processor, 512MB SDRAM @400MHz, Storage-MicroSD, 4xUSB Ports, 1.8A@5V, 40GPIO Pins.
2. Gripper Module: For lifting blocks.
3. Power Bank: Intex PB-4K 4000mAH to power RaspberryPi 5V supply.
4. L293D IC: To control 2 single shaft motors @ 300rpm.
5. Speakers: To make ADDY interactive.
6. USB Wifi Adapter: For wireless control & internet connectivity.
8. 2 x 4 Base Wheel Drive(included 2 Single Centered Shaft Motors).
9. Pi Camera.
10. Pi Case.
Step 2: Assembling ADDY Robot
1.You can assemble in any way but make sure that it holds all parts tight use tapes or glue-gun.
2. Make sure Pi camera get 180 degree flexibility to capture.
3. You must be able to attach/de-attach LAN and USB devices.
4. No part should touch wheels.
5. you can attach both batteries below the base plate using threads/wires to hold it tight.
Step 3: Wiring ADDY Robot
GPIO wiring on breadboard.
Please check the GPIO-PIN numbers to connect.
PIN Numbers of GPIO to connect motors of wheel, gripper module and LED.
Motor1A = 15 Motor1B = 13 Motor1E = 11
Motor2A = 36 Motor2B = 38 Motor2E = 40
ARM1A = 19 ARM1B = 21 ARM1E = 23
ARM2A = 16 ARM2B = 18 ARM2E = 22
LED = 37
Please Check this tutorial to make connections on breadboard using L293D IC: TutsPlus
Step 4: Configuring and Starting ADDY Robot RPI
To boot/set-up rpi for first time for ADDY Robot check all:-
1. Install Rasbian/Noobs: Tutorial
2. Install XRDP to connect rpi with your laptop: Tutorial
install: sudo adpt-get install xrdp
status: /etc/init.d/xrdp status
3. Install wpagui to connect to your wifi: Tutorial
Double click desktop icon to start wpagui
4. Update and Upgrade your RPI.
5. Enable Camera & SSH Module of your RPI. Tutorial
capture image raspistill -o cam.jpg
capture video: raspivid -o video.h264 raspivid -o video.h264 -t 30000
Step 5: ADDY Camera Setup
I am controlling camera using rpi web interface which has features:-
1. Capture images/videos.
2. Download images/videos.
3. Change preview, image, video size and quality.
Check this tutorial to configure rpi camera: Elinux
After setting-up visit your PC/laptop browser which is connected to ADDY(rpi) using LAN.
http://RPI IP ADDRESS/rpiwebinterface
Step 6: Wifi Control
To control using internet/wifi:-
Check this tutorial: Instructable
1. Open your developer weaved dashboard: https://developer.weaved.com/portal/
2. Click on SSH option.
3. Open "putty" fill ip and port number. PuttyDownload
4. Login to your rpi.
5. Now, you can give commands from anywhere in the world to your robot.
*Weaved is limited for 30 mins. only you can use "port forwarding" method to create your own rpi server.
Step 7: Coding and Testing ADDY Robot
I have some demo codes and keyboard control using Pygame in python
1. Install pygame for python in rpi: Tutorial
2. Download ADDY Controller Software:-
Pygame for keyboard control: https://github.com/vsl-tech/AddyControllerPygame
Tkinter for touch interfaces: https://github.com/vsl-tech/AddyControllerTkinter
*Make sure you download all files and install required packages.
I am working on ADDY Controller ver.2 which will be cross-platform and more advance event-handling methods using pyqt4 with .exe files also. You can check regular updates here: http://www.vslcreations.com/