SlideShare una empresa de Scribd logo
1 de 38
Descargar para leer sin conexión
Hardware Hacking


  by Andy “Bob The Builder” Brockhurst
  For the Yahoo! Developers Network
  and SkillsMatter
   Picture “Hardware Hacking”




                                 by nicholasjon- flickr
Talk topics (in no particular order)
   Introduction
       What is hardware hacking
       How to get started
   Microprocessors
   Sensors & Switches (Hardware I/O)
       The world is your mollusc
   Basic Circuit Theory
       How to get those sensors to work
If anything should go wrong


   Blame this next guy
   Photo “Hacking”
What is hardware hacking
   Hacking
       An elegant solution to a difficult problem
       Using a technology for something it was
        not originally intended.
Types of hardware hacking
   Just hacking hardware
   Circuit Bending
   Reverse Engineering
   Toy Hacking
   SteamPunk
   Craft Hacking/“Making”
   Photo: “WRT54G & NSLU2”




                              by lime*monkey- flickr
   Picture “Circuit Bending”




                                by jamie_hladky- flickr
Circuit Bending
   Pete Edwards
   Musician/Hacker
   http://casperelectronics.com
   Picture “Reverse Engineering”




                         by Micah Dowty- flickr
    Picture “Toy Hacking”




by Vanderlin - flickr
   Picture “Making”
   Photo: “Steampunk”




                         by Balakov- flickr
   Picture “Reverse Engineering”




                                    by Neal Connor- flickr
Getting Started
   Arduino
       Entry level microprocessor
       OpenSource Hardware & Software
       14 digital Inputs/Outputs (6 PWM Out*)
       6 analogue Inputs
       IDE with loads of example code
       Aimed at artists/hobbyists with limited
        programming experience

    *We’ll come to this shortly
Arduino (Atmega 328)
   16bit Microprocessor, Embedded C
   32k Flash, 2k SRAM, 1k EEPROM
   16Mhz
Arduinos are not the only fruit
   Atmel Tiny (ATtiny)
   PIC AVR (PICAXE)
   Range of ARM processors
   FPGA
Arduino
   OpenSource Hardware
       Schematics freely available
       Lots of “Flavours”; Diecimila, Duemilanove,
        Mega, Mini, Nano, Lilypad
       Lots of boards for specific tasks;
        Motor/servos, Autonomous Vehicles,
        Robotics, Autopilots, CNC (*32 makers)
       Sheilds to extend functionality; Bluetooth,
        wifi, radio, ethernet, GPS, relays, LCD,
        touchscreen…
Arduino Initiatives
   Software
       Processing
           IDE is based on Processing and Wiring
       Fritzing
           Prototyping and circuit layout
   EduWear
       Introducing programming and electronics
        to children
Hardware Hacking


  Let’s build some stuff!
by Bekathwia - flickr
Arduino (very) Basic I/O - Parts
   Setup a circuit
       Arduino
       Breadboard
       LED
       Resistor
       Switch
       Wire
Arduino (very) Basic I/O - Layout
Arduino (very) Basic I/O - Code
   Define an input and an output
   Read the input and set the output
void setup() {
  pinMode(2, INPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  int switchValue = digitalRead(2);
  digitalWrite(13, switchValue);
}
Take it a bit further
   Substitute the LED for a physical
    interaction device
       Servo
       Bit more wire
Adding a servo
Update the code
#include <Servo.h>

Servo myServo;
int steps[] = {0,60,120,180};
int currentPos = 0;

void setup() {
  pinMode(2, INPUT);
  myServo.attach(13);
  myServo.write(steps[0]);
}

void loop() {
  if (HIGH == digitalRead(2)) {
    currentPos = (3 == currentPos) ? 0 : currentPos + 1;
    myServo.write(steps[currentPos]);
    delay(500);
  }
}
Taking it further
   Substitute the switch for a physical
    interaction device
       Piezo Electric transducer
       Can be used to sense “Knocks”
Wire in the piezo
More code updates
#include <Servo.h>

Servo myServo;
int steps[] = {0,60,120,180};
int currentPos = 0;
const int KNOCKTHRESHOLD = 100;

void setup() {
  myServo.attach(13);
  myServo.write(steps[0]);
}

void loop() {
  if (KNOCKTHRESHOLD <= analogRead(0)) {
    currentPos = (3 == currentPos) ? 0 : currentPos + 1;
    myServo.write(steps[currentPos]);
    delay(500);
  }
}
Tour of the software
   Arduino IDE
   Fritzing
by pieter [iamdoom / bwrah bwrah]- flickr




   Photo “Inspiration”
Getting Inspiration
   MakeZine
       http://blog.makezine.com/
   Instructables
       http://www.instructables.com/
   Circuit-Projects
       http://www.circuit-projects.com/
   Tinker.it
       http://www.tinker.it/
Where to get stuff
   Specialist Arduino Retailers (UK)
       http://www.earthshinedesign.co.uk/
       http://www.oomlout.co.uk/
   Other Hardware suppliers (UK)
       http://www.active-robots.co.uk/
       http://www.techbotics.co.uk/
       http://www.technobots.co.uk/
       http://www.ebay.co.uk/
Finding fellow hackers
   London Hacker Space
       http://london.hackspace.org.uk/
       irc://irc.freenode.net/london-hack-space
   London DorkBot
       http://dorkbotlondon.org/
Thank you for listening


   Where I can be found:
      http://kingkludge.net/
      http://twitter.com/b3cft

   (or in the pub)

Más contenido relacionado

La actualidad más candente

Open hack 2011-hardware-hacks
Open hack 2011-hardware-hacksOpen hack 2011-hardware-hacks
Open hack 2011-hardware-hacksSudar Muthu
 
BSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode EnabledBSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode Enabledpricemcdonald
 
Arduino technical session 1
Arduino technical session 1Arduino technical session 1
Arduino technical session 1Audiomas Soni
 
Introduction to Arduino Programming
Introduction to Arduino ProgrammingIntroduction to Arduino Programming
Introduction to Arduino ProgrammingJames Lewis
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightAndy Gelme
 
Rdl esp32 development board trainer kit
Rdl esp32 development board trainer kitRdl esp32 development board trainer kit
Rdl esp32 development board trainer kitResearch Design Lab
 
Cheap, good, hackable tools from China: AVR component tester
Cheap, good, hackable tools from China: AVR component testerCheap, good, hackable tools from China: AVR component tester
Cheap, good, hackable tools from China: AVR component testerDobrica Pavlinušić
 
Using arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of thingsUsing arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of thingsSudar Muthu
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to ArduinoYong Heui Cho
 
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent SandboxHITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent SandboxSeunghun han
 
Hardware hacking for software people
Hardware hacking for software peopleHardware hacking for software people
Hardware hacking for software peopleDobrica Pavlinušić
 
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel ProtectorBlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel ProtectorSeunghun han
 
FSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAGFSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAGDobrica Pavlinušić
 
Raspberry Pi - best friend for all your GPIO needs
Raspberry Pi - best friend for all your GPIO needsRaspberry Pi - best friend for all your GPIO needs
Raspberry Pi - best friend for all your GPIO needsDobrica Pavlinušić
 
HITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbHITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbSeunghun han
 
Arduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the ArduinoArduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the ArduinoEoin Brazil
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduinovishal kumar
 
Arduino Introduction Presentation
Arduino Introduction PresentationArduino Introduction Presentation
Arduino Introduction Presentationericholm
 

La actualidad más candente (20)

Open hack 2011-hardware-hacks
Open hack 2011-hardware-hacksOpen hack 2011-hardware-hacks
Open hack 2011-hardware-hacks
 
BSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode EnabledBSides DFW2016-Hack Mode Enabled
BSides DFW2016-Hack Mode Enabled
 
Arduino technical session 1
Arduino technical session 1Arduino technical session 1
Arduino technical session 1
 
Introduction to Arduino Programming
Introduction to Arduino ProgrammingIntroduction to Arduino Programming
Introduction to Arduino Programming
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
 
Rdl esp32 development board trainer kit
Rdl esp32 development board trainer kitRdl esp32 development board trainer kit
Rdl esp32 development board trainer kit
 
Ardunio
ArdunioArdunio
Ardunio
 
Cheap, good, hackable tools from China: AVR component tester
Cheap, good, hackable tools from China: AVR component testerCheap, good, hackable tools from China: AVR component tester
Cheap, good, hackable tools from China: AVR component tester
 
Using arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of thingsUsing arduino and raspberry pi for internet of things
Using arduino and raspberry pi for internet of things
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent SandboxHITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
HITBSecConf 2017-Shadow-Box-the Practical and Omnipotent Sandbox
 
Hardware hacking for software people
Hardware hacking for software peopleHardware hacking for software people
Hardware hacking for software people
 
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel ProtectorBlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
BlackHat Asia 2017-Myth and Truth about Hypervisor-Based Kernel Protector
 
amrapali builders@@sub way hacking.pdf
amrapali builders@@sub way hacking.pdfamrapali builders@@sub way hacking.pdf
amrapali builders@@sub way hacking.pdf
 
FSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAGFSEC 2014 - I can haz your board with JTAG
FSEC 2014 - I can haz your board with JTAG
 
Raspberry Pi - best friend for all your GPIO needs
Raspberry Pi - best friend for all your GPIO needsRaspberry Pi - best friend for all your GPIO needs
Raspberry Pi - best friend for all your GPIO needs
 
HITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad UsbHITBSecConf 2016-Create Your Own Bad Usb
HITBSecConf 2016-Create Your Own Bad Usb
 
Arduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the ArduinoArduino Lecture 1 - Introducing the Arduino
Arduino Lecture 1 - Introducing the Arduino
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Arduino Introduction Presentation
Arduino Introduction PresentationArduino Introduction Presentation
Arduino Introduction Presentation
 

Destacado

Menús diarios final para el blog
Menús diarios final para el blogMenús diarios final para el blog
Menús diarios final para el blogamaliabellod
 
Chris France, Alta Devices
Chris France, Alta DevicesChris France, Alta Devices
Chris France, Alta DevicesPatrick Egan
 
#26 SUSB Expo 2014 Alta Devices
#26 SUSB Expo 2014 Alta Devices#26 SUSB Expo 2014 Alta Devices
#26 SUSB Expo 2014 Alta DevicessUAS News
 
Project Eagle 鷹巡機 - 資深農友的自動趕鳥無人機
Project Eagle   鷹巡機 - 資深農友的自動趕鳥無人機Project Eagle   鷹巡機 - 資深農友的自動趕鳥無人機
Project Eagle 鷹巡機 - 資深農友的自動趕鳥無人機Maxwell Peng
 
Global_Cleantech_Innov_Index_2014
Global_Cleantech_Innov_Index_2014Global_Cleantech_Innov_Index_2014
Global_Cleantech_Innov_Index_2014Aloïs Kirner
 
Powering the Internet of Things with Apache Hadoop
Powering the Internet of Things with Apache HadoopPowering the Internet of Things with Apache Hadoop
Powering the Internet of Things with Apache HadoopCloudera, Inc.
 
Internet of Things (IoT) - We Are at the Tip of An Iceberg
Internet of Things (IoT) - We Are at the Tip of An IcebergInternet of Things (IoT) - We Are at the Tip of An Iceberg
Internet of Things (IoT) - We Are at the Tip of An IcebergDr. Mazlan Abbas
 
Internet of Things & Hardware Industry Report 2016
Internet of Things & Hardware Industry Report 2016Internet of Things & Hardware Industry Report 2016
Internet of Things & Hardware Industry Report 2016Bernard Moon
 

Destacado (11)

Menús diarios final para el blog
Menús diarios final para el blogMenús diarios final para el blog
Menús diarios final para el blog
 
Chris France, Alta Devices
Chris France, Alta DevicesChris France, Alta Devices
Chris France, Alta Devices
 
#26 SUSB Expo 2014 Alta Devices
#26 SUSB Expo 2014 Alta Devices#26 SUSB Expo 2014 Alta Devices
#26 SUSB Expo 2014 Alta Devices
 
ZQK JV
ZQK JVZQK JV
ZQK JV
 
Powering the internet of things by MK
Powering the internet of things by MKPowering the internet of things by MK
Powering the internet of things by MK
 
Project Eagle 鷹巡機 - 資深農友的自動趕鳥無人機
Project Eagle   鷹巡機 - 資深農友的自動趕鳥無人機Project Eagle   鷹巡機 - 資深農友的自動趕鳥無人機
Project Eagle 鷹巡機 - 資深農友的自動趕鳥無人機
 
Hanergy Thin Film Panels_201505
Hanergy Thin Film Panels_201505Hanergy Thin Film Panels_201505
Hanergy Thin Film Panels_201505
 
Global_Cleantech_Innov_Index_2014
Global_Cleantech_Innov_Index_2014Global_Cleantech_Innov_Index_2014
Global_Cleantech_Innov_Index_2014
 
Powering the Internet of Things with Apache Hadoop
Powering the Internet of Things with Apache HadoopPowering the Internet of Things with Apache Hadoop
Powering the Internet of Things with Apache Hadoop
 
Internet of Things (IoT) - We Are at the Tip of An Iceberg
Internet of Things (IoT) - We Are at the Tip of An IcebergInternet of Things (IoT) - We Are at the Tip of An Iceberg
Internet of Things (IoT) - We Are at the Tip of An Iceberg
 
Internet of Things & Hardware Industry Report 2016
Internet of Things & Hardware Industry Report 2016Internet of Things & Hardware Industry Report 2016
Internet of Things & Hardware Industry Report 2016
 

Similar a Hardware Hacking

Advanced View Arduino Projects List - Use Arduino for Projects-4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-4.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-4.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdfWiseNaeem
 
Controlling robots using javascript
Controlling robots using javascriptControlling robots using javascript
Controlling robots using javascriptSudar Muthu
 
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfAdvanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdfWiseNaeem
 
Arduino UNO based Projects List -Use Arduino for Projects.pdf
Arduino UNO based Projects List -Use Arduino for Projects.pdfArduino UNO based Projects List -Use Arduino for Projects.pdf
Arduino UNO based Projects List -Use Arduino for Projects.pdfIsmailkhan77481
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfWiseNaeem
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfWiseNaeem
 
Advanced view arduino projects list use arduino for projects (2)
Advanced view arduino projects list   use arduino for projects (2)Advanced view arduino projects list   use arduino for projects (2)
Advanced view arduino projects list use arduino for projects (2)WiseNaeem
 
Scottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RADScottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RADlostcaggy
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdfAdvanced View Arduino Projects List - Use Arduino for Projects (5).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdfIsmailkhan77481
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfWiseNaeem
 
Taking the hard out of hardware
Taking the hard out of hardwareTaking the hard out of hardware
Taking the hard out of hardwareRonald McCollam
 
Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Sudar Muthu
 
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdfAdvanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdfWiseNaeem
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfWiseNaeem
 

Similar a Hardware Hacking (20)

Advanced View Arduino Projects List - Use Arduino for Projects-4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-4.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-4.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-4.pdf
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
 
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 3.pdf
 
Controlling robots using javascript
Controlling robots using javascriptControlling robots using javascript
Controlling robots using javascript
 
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdfAdvanced View Arduino Projects List - Use Arduino for Projects.pdf
Advanced View Arduino Projects List - Use Arduino for Projects.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects 5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects 5.pdf
 
Arduino UNO based Projects List -Use Arduino for Projects.pdf
Arduino UNO based Projects List -Use Arduino for Projects.pdfArduino UNO based Projects List -Use Arduino for Projects.pdf
Arduino UNO based Projects List -Use Arduino for Projects.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-3.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-3.pdf
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
 
Advanced view arduino projects list use arduino for projects (2)
Advanced view arduino projects list   use arduino for projects (2)Advanced view arduino projects list   use arduino for projects (2)
Advanced view arduino projects list use arduino for projects (2)
 
Scottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RADScottish Ruby Conference 2010 Arduino, Ruby RAD
Scottish Ruby Conference 2010 Arduino, Ruby RAD
 
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdfAdvanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
Advanced View of Atmega Microcontroller Projects List - ATMega32 AVR.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdfAdvanced View Arduino Projects List - Use Arduino for Projects (5).pdf
Advanced View Arduino Projects List - Use Arduino for Projects (5).pdf
 
What is Arduino ?
What is Arduino ?What is Arduino ?
What is Arduino ?
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
 
Taking the hard out of hardware
Taking the hard out of hardwareTaking the hard out of hardware
Taking the hard out of hardware
 
Arduino Robotics workshop Day1
Arduino Robotics workshop Day1Arduino Robotics workshop Day1
Arduino Robotics workshop Day1
 
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdfAdvanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
Advanced View Arduino Projects List _ Use Arduino for Projects {4}.pdf
 
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdfAdvanced View Arduino Projects List - Use Arduino for Projects-5.pdf
Advanced View Arduino Projects List - Use Arduino for Projects-5.pdf
 

Último

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native ApplicationsWSO2
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdfSandro Moreira
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityWSO2
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxRemote DBA Services
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Victor Rentea
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FMESafe Software
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Victor Rentea
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsNanddeep Nachan
 

Último (20)

presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
WSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering DevelopersWSO2's API Vision: Unifying Control, Empowering Developers
WSO2's API Vision: Unifying Control, Empowering Developers
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 

Hardware Hacking

  • 1. Hardware Hacking by Andy “Bob The Builder” Brockhurst For the Yahoo! Developers Network and SkillsMatter
  • 2. Picture “Hardware Hacking” by nicholasjon- flickr
  • 3. Talk topics (in no particular order)  Introduction  What is hardware hacking  How to get started  Microprocessors  Sensors & Switches (Hardware I/O)  The world is your mollusc  Basic Circuit Theory  How to get those sensors to work
  • 4. If anything should go wrong Blame this next guy
  • 5.
  • 6. Photo “Hacking”
  • 7. What is hardware hacking  Hacking  An elegant solution to a difficult problem  Using a technology for something it was not originally intended.
  • 8. Types of hardware hacking  Just hacking hardware  Circuit Bending  Reverse Engineering  Toy Hacking  SteamPunk  Craft Hacking/“Making”
  • 9. Photo: “WRT54G & NSLU2” by lime*monkey- flickr
  • 10. Picture “Circuit Bending” by jamie_hladky- flickr
  • 11. Circuit Bending  Pete Edwards  Musician/Hacker  http://casperelectronics.com
  • 12. Picture “Reverse Engineering” by Micah Dowty- flickr
  • 13. Picture “Toy Hacking” by Vanderlin - flickr
  • 14. Picture “Making”
  • 15. Photo: “Steampunk” by Balakov- flickr
  • 16. Picture “Reverse Engineering” by Neal Connor- flickr
  • 17. Getting Started  Arduino  Entry level microprocessor  OpenSource Hardware & Software  14 digital Inputs/Outputs (6 PWM Out*)  6 analogue Inputs  IDE with loads of example code  Aimed at artists/hobbyists with limited programming experience *We’ll come to this shortly
  • 18. Arduino (Atmega 328)  16bit Microprocessor, Embedded C  32k Flash, 2k SRAM, 1k EEPROM  16Mhz
  • 19. Arduinos are not the only fruit  Atmel Tiny (ATtiny)  PIC AVR (PICAXE)  Range of ARM processors  FPGA
  • 20. Arduino  OpenSource Hardware  Schematics freely available  Lots of “Flavours”; Diecimila, Duemilanove, Mega, Mini, Nano, Lilypad  Lots of boards for specific tasks; Motor/servos, Autonomous Vehicles, Robotics, Autopilots, CNC (*32 makers)  Sheilds to extend functionality; Bluetooth, wifi, radio, ethernet, GPS, relays, LCD, touchscreen…
  • 21. Arduino Initiatives  Software  Processing  IDE is based on Processing and Wiring  Fritzing  Prototyping and circuit layout  EduWear  Introducing programming and electronics to children
  • 22. Hardware Hacking Let’s build some stuff!
  • 23. by Bekathwia - flickr
  • 24. Arduino (very) Basic I/O - Parts  Setup a circuit  Arduino  Breadboard  LED  Resistor  Switch  Wire
  • 25. Arduino (very) Basic I/O - Layout
  • 26. Arduino (very) Basic I/O - Code  Define an input and an output  Read the input and set the output void setup() { pinMode(2, INPUT); pinMode(13, OUTPUT); } void loop() { int switchValue = digitalRead(2); digitalWrite(13, switchValue); }
  • 27. Take it a bit further  Substitute the LED for a physical interaction device  Servo  Bit more wire
  • 29. Update the code #include <Servo.h> Servo myServo; int steps[] = {0,60,120,180}; int currentPos = 0; void setup() { pinMode(2, INPUT); myServo.attach(13); myServo.write(steps[0]); } void loop() { if (HIGH == digitalRead(2)) { currentPos = (3 == currentPos) ? 0 : currentPos + 1; myServo.write(steps[currentPos]); delay(500); } }
  • 30. Taking it further  Substitute the switch for a physical interaction device  Piezo Electric transducer  Can be used to sense “Knocks”
  • 31. Wire in the piezo
  • 32. More code updates #include <Servo.h> Servo myServo; int steps[] = {0,60,120,180}; int currentPos = 0; const int KNOCKTHRESHOLD = 100; void setup() { myServo.attach(13); myServo.write(steps[0]); } void loop() { if (KNOCKTHRESHOLD <= analogRead(0)) { currentPos = (3 == currentPos) ? 0 : currentPos + 1; myServo.write(steps[currentPos]); delay(500); } }
  • 33. Tour of the software  Arduino IDE  Fritzing
  • 34. by pieter [iamdoom / bwrah bwrah]- flickr  Photo “Inspiration”
  • 35. Getting Inspiration  MakeZine  http://blog.makezine.com/  Instructables  http://www.instructables.com/  Circuit-Projects  http://www.circuit-projects.com/  Tinker.it  http://www.tinker.it/
  • 36. Where to get stuff  Specialist Arduino Retailers (UK)  http://www.earthshinedesign.co.uk/  http://www.oomlout.co.uk/  Other Hardware suppliers (UK)  http://www.active-robots.co.uk/  http://www.techbotics.co.uk/  http://www.technobots.co.uk/  http://www.ebay.co.uk/
  • 37. Finding fellow hackers  London Hacker Space  http://london.hackspace.org.uk/  irc://irc.freenode.net/london-hack-space  London DorkBot  http://dorkbotlondon.org/
  • 38. Thank you for listening Where I can be found: http://kingkludge.net/ http://twitter.com/b3cft (or in the pub)