Hacking the owi robotic arm presentation liz quilty


Published on

My kiwi PyCon slides for the robotic arm demonstration.
Github is at https://github.com/lizquilty/roboticarm/ should you need the code

Published in: Technology
  • Be the first to comment

  • Be the first to like this

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Hacking the owi robotic arm presentation liz quilty

  1. 1. Hacking the OWI/Maplin Robotic Arm By Liz Quilty
  2. 2. Confession I don’t really know python. My way is possibly not the best I just like making things, and having fun :)
  3. 3. Items Required 1 OWI/Maplin Robotic Arm kit
  4. 4. Items Required 1 USB kit for the arm
  5. 5. Items Required 1 Raspberry Pi + power/network etc
  6. 6. Items Required A sick/bored child to assemble robotic arm
  7. 7. Setup Your Raspberry Pi Partition and install raspbian http://elinux.org/RPi_Easy_SD_Card_Setup Unpack this to the SD card as instructed Set up networking and connect via SSH
  8. 8. Adding Dev rules Create the file /etc/udev/rules.d/85-robotarm.rules with the contents SUBSYSTEM=="usb", ATTRS{idVendor}=="1267", ATTRS{idProduct}=="0000", ACTION=="add", GROUP="plugdev", MODE="0666" This allows non root users to access it. For CGI add apache user to plugdev group usermod -aG plugdev www-data usermod -aG audio www-data
  9. 9. pyUSB Install the custom pyUSB pyusb http://sourceforge.net/projects/pyusb # wget "http://downloads.sourceforge.net/project/pyusb/PyUSB%201.0/1.0.0- alpha-3/pyusb-1.0.0a3.zip?r=http%3A%2F%2Fsourceforge.net%2Fprojects% 2Fpyusb%2F&ts=1377736820&use_mirror=hivelocity" # unzip pyusb-1.0.0a3.zip # cd pyusb # python setup.py build # python setup.py install
  10. 10. Command Line Quick and easy https://github.com/lizquilty/roboticarm/ Better for more complex stuff https://github.com/peterlavelle/maplinarm
  11. 11. Setting up the functions #ROBOT ARM CONTROL PROGRAM #import the USB and Time librarys into Python import usb.core, usb.util, time #Allocate the name 'RoboArm' to the USB device RoboArm = usb.core.find(idVendor=0x1267, idProduct=0x000) #Check if the arm is detected and warn if not if RoboArm is None: raise ValueError("Arm not found") #Create a variable for duration Duration=1 #Define a procedure to execute each movement def MoveArm(Duration, ArmCmd): #Start the movement RoboArm.ctrl_transfer(0x40,6,0x100,0,ArmCmd,1000) #Stop the movement after waiting a specified duration time.sleep(Duration) ArmCmd=[0,0,0] RoboArm.ctrl_transfer(0x40,6,0x100,0,ArmCmd,1000)
  12. 12. Moving MoveArm(1,[0,1,0]) #Rotate base anti-clockwise MoveArm(1,[0,2,0]) #Rotate base clockwise MoveArm(1,[64,0,0]) #Shoulder up MoveArm(1,[128,0,0]) #Shoulder down MoveArm(1,[16,0,0]) #Elbow up MoveArm(1,[32,0,0]) #Elbow down MoveArm(1,[4,0,0]) #Wrist up MoveArm(1,[8,0,0]) # Wrist down MoveArm(1,[2,0,0]) #Grip open MoveArm(1,[1,0,0]) #Grip close MoveArm(1,[0,0,1]) #Light on MoveArm(1,[0,0,0]) #Light off
  13. 13. Demo Hello World + Waving PIR sensor connected to + - and pin GPIO pin 18 Sensor detects movement, greets and waves, then waits
  14. 14. Test and use Test the arm as root Pick up things, write some code, automate ! Use cron for time based sensors (motion) http://learn.adafruit.com/adafruits-raspberry-pi-lesson-12- sensing-movement/hardware http://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-gpio Speech - festival Voice control
  15. 15. Web Based Install apache & configure with CGI https://github.com/lizquilty/roboticarm/
  16. 16. Simple UI
  17. 17. Demo ● Connect to the Wireless Access point RoboticArm ● Browse to Try not to overload it :)
  18. 18. Speech Python http://cmusphinx.sourceforge.net/ Google http://blog.oscarliang.net/raspberry-pi-voice- recognition-works-like-siri/
  19. 19. References My GitHub https://github.com/lizquilty/roboticarm/ CLI scripts https://github.com/peterlavelle/maplinarm PyUSB http://sourceforge.net/projects/pyusb 99 little bugs in the code 99 little bugs in the code Take one down, patch it around 117 little bugs in the code