SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Downloaden Sie, um offline zu lesen
Hacking the OWI/Maplin
Robotic Arm
By Liz Quilty
Confession
I don’t really know python.
My way is possibly not the best
I just like making things, and having fun :)
Items Required
1 OWI/Maplin Robotic Arm kit
Items Required
1 USB kit for the arm
Items Required
1 Raspberry Pi + power/network etc
Items Required
A sick/bored child to assemble robotic arm
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
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
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
Command Line
Quick and easy
https://github.com/lizquilty/roboticarm/
Better for more complex stuff
https://github.com/peterlavelle/maplinarm
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)
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
Demo Hello World + Waving
PIR sensor connected to + - and pin GPIO pin
18
Sensor detects movement, greets and waves,
then waits
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
Web Based
Install apache & configure with CGI
https://github.com/lizquilty/roboticarm/
Simple UI
Demo
● Connect to the Wireless Access point RoboticArm
● Browse to http://10.0.0.2
Try not to overload it :)
Speech
Python http://cmusphinx.sourceforge.net/
Google
http://blog.oscarliang.net/raspberry-pi-voice-
recognition-works-like-siri/
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

Weitere ähnliche Inhalte

Andere mochten auch

raspberry pi and robots
raspberry pi and robotsraspberry pi and robots
raspberry pi and robotschikkujacob
 
Plc based Robotic Arm and Automated Different Size Bottle Filling System
Plc based Robotic Arm and Automated Different Size Bottle Filling SystemPlc based Robotic Arm and Automated Different Size Bottle Filling System
Plc based Robotic Arm and Automated Different Size Bottle Filling SystemRehan Fazal
 
Hydraulic arm (slmcop)5th sem... gulahmed
Hydraulic arm (slmcop)5th sem... gulahmed Hydraulic arm (slmcop)5th sem... gulahmed
Hydraulic arm (slmcop)5th sem... gulahmed ÂHméd Mêmøñ
 
Microcontroller Based Robotic Arm Control
Microcontroller Based Robotic Arm ControlMicrocontroller Based Robotic Arm Control
Microcontroller Based Robotic Arm ControlNazmul Hossain Rakib
 
Robotic Arm Presentation
Robotic Arm PresentationRobotic Arm Presentation
Robotic Arm PresentationMason Hargrave
 
Hand Gesture controlled Robotic Arm | Android | Arduino
Hand Gesture controlled Robotic Arm  | Android | ArduinoHand Gesture controlled Robotic Arm  | Android | Arduino
Hand Gesture controlled Robotic Arm | Android | ArduinoParvez Hafeez
 
Robotic Arm using flex sensor and servo motor
Robotic Arm using flex sensor and servo motorRobotic Arm using flex sensor and servo motor
Robotic Arm using flex sensor and servo motorjovin Richard
 
Robot Arm
Robot ArmRobot Arm
Robot Armmzis
 

Andere mochten auch (10)

raspberry pi and robots
raspberry pi and robotsraspberry pi and robots
raspberry pi and robots
 
Plc based Robotic Arm and Automated Different Size Bottle Filling System
Plc based Robotic Arm and Automated Different Size Bottle Filling SystemPlc based Robotic Arm and Automated Different Size Bottle Filling System
Plc based Robotic Arm and Automated Different Size Bottle Filling System
 
Hydraulic arm (slmcop)5th sem... gulahmed
Hydraulic arm (slmcop)5th sem... gulahmed Hydraulic arm (slmcop)5th sem... gulahmed
Hydraulic arm (slmcop)5th sem... gulahmed
 
ROBOTIC ARM
ROBOTIC ARMROBOTIC ARM
ROBOTIC ARM
 
Robo arm final 2 (2)
Robo arm final  2 (2)Robo arm final  2 (2)
Robo arm final 2 (2)
 
Microcontroller Based Robotic Arm Control
Microcontroller Based Robotic Arm ControlMicrocontroller Based Robotic Arm Control
Microcontroller Based Robotic Arm Control
 
Robotic Arm Presentation
Robotic Arm PresentationRobotic Arm Presentation
Robotic Arm Presentation
 
Hand Gesture controlled Robotic Arm | Android | Arduino
Hand Gesture controlled Robotic Arm  | Android | ArduinoHand Gesture controlled Robotic Arm  | Android | Arduino
Hand Gesture controlled Robotic Arm | Android | Arduino
 
Robotic Arm using flex sensor and servo motor
Robotic Arm using flex sensor and servo motorRobotic Arm using flex sensor and servo motor
Robotic Arm using flex sensor and servo motor
 
Robot Arm
Robot ArmRobot Arm
Robot Arm
 

Ähnlich wie Hacking the owi robotic arm presentation liz quilty

IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ -  Automated Malware AnalysisIstSec'14 - İbrahim BALİÇ -  Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ - Automated Malware AnalysisBGA Cyber Security
 
Locks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael BarkerLocks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael BarkerJAX London
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Michael Barker
 
Automated malware analysis
Automated malware analysisAutomated malware analysis
Automated malware analysisIbrahim Baliç
 
Raising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code QualityRaising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code QualityThomas Moulard
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineRicardo Silva
 
The Death of a Mouse
The Death of a MouseThe Death of a Mouse
The Death of a MouseGeert Bevin
 
DEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchDEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchFelipe Prado
 
Javascript Everywhere
Javascript EverywhereJavascript Everywhere
Javascript EverywherePascal Rettig
 
Initiation concrète-à-la-virtualisation-devoxx-fr-2021
Initiation concrète-à-la-virtualisation-devoxx-fr-2021Initiation concrète-à-la-virtualisation-devoxx-fr-2021
Initiation concrète-à-la-virtualisation-devoxx-fr-2021Pierre-Antoine Grégoire
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesHiroshi SHIBATA
 
Run OSGi on your robot and teach it new tricks - T Verbelen
Run OSGi on your robot and teach it new tricks - T VerbelenRun OSGi on your robot and teach it new tricks - T Verbelen
Run OSGi on your robot and teach it new tricks - T Verbelenmfrancis
 
Oculus Rift DK2 + Leap Motion Tutorial
Oculus Rift DK2 + Leap Motion TutorialOculus Rift DK2 + Leap Motion Tutorial
Oculus Rift DK2 + Leap Motion TutorialChris Zaharia
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js frameworkBen Lin
 
Using Android Things to Detect & Exterminate Reptilians
Using Android Things to Detect & Exterminate ReptiliansUsing Android Things to Detect & Exterminate Reptilians
Using Android Things to Detect & Exterminate ReptiliansNilhcem
 
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHackito Ergo Sum
 
Beginner's Guide to the nmap Scripting Engine - Redspin Engineer, David Shaw
Beginner's Guide to the nmap Scripting Engine - Redspin Engineer, David ShawBeginner's Guide to the nmap Scripting Engine - Redspin Engineer, David Shaw
Beginner's Guide to the nmap Scripting Engine - Redspin Engineer, David ShawRedspin, Inc.
 
OWASP PHPIDS talk slides
OWASP PHPIDS talk slidesOWASP PHPIDS talk slides
OWASP PHPIDS talk slidesguestd34230
 
Writing Redis in Python with asyncio
Writing Redis in Python with asyncioWriting Redis in Python with asyncio
Writing Redis in Python with asyncioJames Saryerwinnie
 

Ähnlich wie Hacking the owi robotic arm presentation liz quilty (20)

IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ -  Automated Malware AnalysisIstSec'14 - İbrahim BALİÇ -  Automated Malware Analysis
IstSec'14 - İbrahim BALİÇ - Automated Malware Analysis
 
Locks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael BarkerLocks? We Don't Need No Stinkin' Locks - Michael Barker
Locks? We Don't Need No Stinkin' Locks - Michael Barker
 
Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!Lock? We don't need no stinkin' locks!
Lock? We don't need no stinkin' locks!
 
Automated malware analysis
Automated malware analysisAutomated malware analysis
Automated malware analysis
 
Raising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code QualityRaising the Bar on Robotics Code Quality
Raising the Bar on Robotics Code Quality
 
Event-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 EngineEvent-driven IO server-side JavaScript environment based on V8 Engine
Event-driven IO server-side JavaScript environment based on V8 Engine
 
The Death of a Mouse
The Death of a MouseThe Death of a Mouse
The Death of a Mouse
 
DEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitchDEF CON 24 - Patrick Wardle - 99 problems little snitch
DEF CON 24 - Patrick Wardle - 99 problems little snitch
 
Javascript Everywhere
Javascript EverywhereJavascript Everywhere
Javascript Everywhere
 
Pg py-and-squid-pypgday
Pg py-and-squid-pypgdayPg py-and-squid-pypgday
Pg py-and-squid-pypgday
 
Initiation concrète-à-la-virtualisation-devoxx-fr-2021
Initiation concrète-à-la-virtualisation-devoxx-fr-2021Initiation concrète-à-la-virtualisation-devoxx-fr-2021
Initiation concrète-à-la-virtualisation-devoxx-fr-2021
 
Large-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 MinutesLarge-scaled Deploy Over 100 Servers in 3 Minutes
Large-scaled Deploy Over 100 Servers in 3 Minutes
 
Run OSGi on your robot and teach it new tricks - T Verbelen
Run OSGi on your robot and teach it new tricks - T VerbelenRun OSGi on your robot and teach it new tricks - T Verbelen
Run OSGi on your robot and teach it new tricks - T Verbelen
 
Oculus Rift DK2 + Leap Motion Tutorial
Oculus Rift DK2 + Leap Motion TutorialOculus Rift DK2 + Leap Motion Tutorial
Oculus Rift DK2 + Leap Motion Tutorial
 
How and why i roll my own node.js framework
How and why i roll my own node.js frameworkHow and why i roll my own node.js framework
How and why i roll my own node.js framework
 
Using Android Things to Detect & Exterminate Reptilians
Using Android Things to Detect & Exterminate ReptiliansUsing Android Things to Detect & Exterminate Reptilians
Using Android Things to Detect & Exterminate Reptilians
 
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe ShockwaveHES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
HES2011 - Aaron Portnoy and Logan Brown - Black Box Auditing Adobe Shockwave
 
Beginner's Guide to the nmap Scripting Engine - Redspin Engineer, David Shaw
Beginner's Guide to the nmap Scripting Engine - Redspin Engineer, David ShawBeginner's Guide to the nmap Scripting Engine - Redspin Engineer, David Shaw
Beginner's Guide to the nmap Scripting Engine - Redspin Engineer, David Shaw
 
OWASP PHPIDS talk slides
OWASP PHPIDS talk slidesOWASP PHPIDS talk slides
OWASP PHPIDS talk slides
 
Writing Redis in Python with asyncio
Writing Redis in Python with asyncioWriting Redis in Python with asyncio
Writing Redis in Python with asyncio
 

Kürzlich hochgeladen

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 

Kürzlich hochgeladen (20)

A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 

Hacking the owi robotic arm presentation liz quilty

  • 1. Hacking the OWI/Maplin Robotic Arm By Liz Quilty
  • 2. Confession I don’t really know python. My way is possibly not the best I just like making things, and having fun :)
  • 3. Items Required 1 OWI/Maplin Robotic Arm kit
  • 4. Items Required 1 USB kit for the arm
  • 5. Items Required 1 Raspberry Pi + power/network etc
  • 6. Items Required A sick/bored child to assemble robotic arm
  • 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. 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. 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. Command Line Quick and easy https://github.com/lizquilty/roboticarm/ Better for more complex stuff https://github.com/peterlavelle/maplinarm
  • 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. 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. Demo Hello World + Waving PIR sensor connected to + - and pin GPIO pin 18 Sensor detects movement, greets and waves, then waits
  • 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. Web Based Install apache & configure with CGI https://github.com/lizquilty/roboticarm/
  • 17. Demo ● Connect to the Wireless Access point RoboticArm ● Browse to http://10.0.0.2 Try not to overload it :)
  • 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