SlideShare a Scribd company logo
1 of 36
Download to read offline
Hacking Cool things
          With
     Microcontrollers!
Mitch Altman
   
Chief Scientist, Cornfield Electronics, San Francisco, CA   USA
   
Author of The Brain Machine in MAKE Magazine #10
   
Inventor of TV-B-Gone universal remote control
   
email:   mitch@CornfieldElectronics.com
   site:     www.CornfieldElectronics.com

                                                    Codebits
                                                November 14, 2008
I Love My Job!
Why make cool things with
   Microcontrollers?
Why make cool things with
           Microcontrollers?
Microcontrollers are fun to play with




And anyone can learn…
Examples of Cool Microcontroller Projects
               (in my opinion)




                                   TV-B-Gone Kit




TV-B-Gone                        TV-B-Gone Pro
Examples of Cool Microcontroller Projects
                     (in my opinion)




   MiniPOV3 kit                              Solar BugBot




                     The Brain Machine

                                  LED Cube
  Trippy RGB Light
Examples of Cool Microcontroller Projects
                (in my opinion)




              Mignonnette Game kit
Examples of Cool Microcontroller Projects
                (in my opinion)




              Trippy RGB Waves kit
What is a Microcontroller?
What is a Microcontroller?

A complete computer on a chip (with a little extra stuff)


                                         RAM

 Program
                    Processor
 Memory
                                                     Inputs


                                      Input/Output
                                                     Outputs

                     Timers
What Does a Microcontroller Do?

         Like all computers:


           Fetch Instruction


          Execute Instruction


            Repeat forever (till power goes off)
How to Make Cool Things with
      Microcontrollers

       •  Idea

       •  Hardware

       •  Firmware

       •  Coolness!
Hello World

              Make an LED blink
Hello World – Hardware
          Battery +




                          Resistor   LED
        Microcontroller                    Battery -




          Battery -
Hello World – Digression:
         (Very) Basic Electronics Lesson
Electronics: electrons flowing through wires and parts
              (sorta like water flowing through pipes)

       Current -- speed of electrons flowing

       Battery -- like a pump pushing electrons

       Resistor -- like a kink in a pipe, slows down electrons

       Diode -- one-way valve for current

       LED -- special diode: emit photons when current flows

       Transistor -- remotely controlled switch

       Microcontroller -- zillions of transistors!
Hello World – Firmware

   Assign a value to a variable:

        Software:      X = 00000001

        Firmware:      X = 00000001
Hello World – Firmware

   Changing an output pin:



                  PortA = 00000001

                  PortA = 00000000
Hello World – Firmware

   Changing an output pin (using manual delay):



                  PortA = 00000001

                  Call Delay

                  PortA = 00000000

                 -----------
                   Delay:
                               Count = 0
                   Wait:
                               Count = Count + 1
                               If Count < 10,000 goto wait
                               Return
Hello World – Firmware

   Changing an output pin (using hardware timer):


               Main:
                  Call Init
                  PortA = 00000001
                  Call Delay
                  PortA = 00000000
                  Sleep

                 -----------
                   Delay:
                               Timer0 = 60,000
                   Wait:
                               If Timer0flag = 0 goto wait
                               Return
Hello World – Firmware
           Advanced topic:

           Changing an output pin (using interrupts):


                       Main:
                          Call Init
                          PortA = 00000001
                          Call Delay
                          PortA = 00000000
                          Sleep

                         -----------

ISR:                         Delay:
        TimeFlag=1                     Timer0 = 60,000
                             Wait:
        Return                         If TimeFlag = 0 goto wait
                                       Return
Hello World – programming your chip

   Use software on your computer
         Text Editor
         Compiler
         Programmer

   Specific software Depends on your microcontroller
                    PIC, AVR, etc.

   Need hardware programmer (often very cheap)
Real Project: Ladyada’s MiniPOV3
Just like “Hello World”,
       but 8 LEDs and different timing




                            Etc…
Hacking! :
               The easy way
to make your cool microcontroller projects
Hacking!
   TV-B-Gone from MiniPOV3 kit
Hacking!
 TV-B-Gone Kit from MiniPOV3 hack
Hacking!
 TV-B-Gone Pro from TV-B-Gone Kit
Hacking!
     Trippy RGB Light from MiniPOV3 kit




             ...             ...   1/2 brightness
  Pulse
  Width      ...             ...   1/4 brightness
Modulation
 (PWM)
             ...             ...   min brightness
Hacking!
Trippy RGB Waves kit from Trippy RGB Light




                         IR detector causes
                         interrupt when it sees IR
                         reflecting from your hand
Hacking!
  Solar BugBot from MiniPOV3 kit
Hacking!
    LED Cube from MiniPOV3 kit




                 (First NYC Resistor Project)
Hacking!
           Brain Machine from MiniPOV3 kit




            Synchronizes your brain to a desired brainwave sequence
                        (and hallucinate along the way!)
WARNING: Blinking lights are not good for people with epilepsy
Brain Machine
Video by Bre Pettis
What’s It Like?
Come by the Workshop
      Hardware Hacking Area
Microcontrollers are fun to play with




And anyone can learn!
Q&A
Hacking Cool things
          With
     Microcontrollers!
Mitch Altman
   
Chief Scientist, Cornfield Electronics, San Francisco, CA   USA
   
Author of The Brain Machine in MAKE Magazine #10
   
Inventor of TV-B-Gone universal remote control
   
email:   mitch@CornfieldElectronics.com
   site:     www.CornfieldElectronics.com

                                                    Codebits
                                                November 14, 2008

More Related Content

What's hot

Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)Ahmed El-Arabawy
 
Intro To Programming Concepts
Intro To Programming ConceptsIntro To Programming Concepts
Intro To Programming ConceptsJussi Pohjolainen
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedureDhaval Kaneria
 
Getting Started with XCTest and XCUITest for iOS App Testing
Getting Started with XCTest and XCUITest for iOS App TestingGetting Started with XCTest and XCUITest for iOS App Testing
Getting Started with XCTest and XCUITest for iOS App TestingBitbar
 
01 iec t1_s1_plt_session_01
01 iec t1_s1_plt_session_0101 iec t1_s1_plt_session_01
01 iec t1_s1_plt_session_01Niit Care
 
Writing and using Hamcrest Matchers
Writing and using Hamcrest MatchersWriting and using Hamcrest Matchers
Writing and using Hamcrest MatchersShai Yallin
 
Introduction to jest
Introduction to jestIntroduction to jest
Introduction to jestpksjce
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsQUONTRASOLUTIONS
 
How to select the right automated testing tool
How to select the right automated testing toolHow to select the right automated testing tool
How to select the right automated testing toolKatalon Studio
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesChris Simmonds
 
The lazy programmer's guide to writing thousands of tests
The lazy programmer's guide to writing thousands of testsThe lazy programmer's guide to writing thousands of tests
The lazy programmer's guide to writing thousands of testsScott Wlaschin
 
The Power of Composition (NDC Oslo 2020)
The Power of Composition (NDC Oslo 2020)The Power of Composition (NDC Oslo 2020)
The Power of Composition (NDC Oslo 2020)Scott Wlaschin
 
Linux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBLinux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBshimosawa
 

What's hot (20)

Build Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVMBuild Programming Language Runtime with LLVM
Build Programming Language Runtime with LLVM
 
The Internals of "Hello World" Program
The Internals of "Hello World" ProgramThe Internals of "Hello World" Program
The Internals of "Hello World" Program
 
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)
Embedded Systems: Lecture 13: Introduction to GNU Toolchain (Build Tools)
 
Linux-Internals-and-Networking
Linux-Internals-and-NetworkingLinux-Internals-and-Networking
Linux-Internals-and-Networking
 
Intro To Programming Concepts
Intro To Programming ConceptsIntro To Programming Concepts
Intro To Programming Concepts
 
Linux booting procedure
Linux booting procedureLinux booting procedure
Linux booting procedure
 
Getting Started with XCTest and XCUITest for iOS App Testing
Getting Started with XCTest and XCUITest for iOS App TestingGetting Started with XCTest and XCUITest for iOS App Testing
Getting Started with XCTest and XCUITest for iOS App Testing
 
Learn C Programming Language by Using GDB
Learn C Programming Language by Using GDBLearn C Programming Language by Using GDB
Learn C Programming Language by Using GDB
 
01 iec t1_s1_plt_session_01
01 iec t1_s1_plt_session_0101 iec t1_s1_plt_session_01
01 iec t1_s1_plt_session_01
 
Tdd and bdd
Tdd and bddTdd and bdd
Tdd and bdd
 
Test Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and CucumberTest Automation Framework with BDD and Cucumber
Test Automation Framework with BDD and Cucumber
 
Writing and using Hamcrest Matchers
Writing and using Hamcrest MatchersWriting and using Hamcrest Matchers
Writing and using Hamcrest Matchers
 
Introduction to jest
Introduction to jestIntroduction to jest
Introduction to jest
 
Android framework design and development
Android framework design and developmentAndroid framework design and development
Android framework design and development
 
Introduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra SolutionsIntroduction to Linux Kernel by Quontra Solutions
Introduction to Linux Kernel by Quontra Solutions
 
How to select the right automated testing tool
How to select the right automated testing toolHow to select the right automated testing tool
How to select the right automated testing tool
 
Booting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot imagesBooting Android: bootloaders, fastboot and boot images
Booting Android: bootloaders, fastboot and boot images
 
The lazy programmer's guide to writing thousands of tests
The lazy programmer's guide to writing thousands of testsThe lazy programmer's guide to writing thousands of tests
The lazy programmer's guide to writing thousands of tests
 
The Power of Composition (NDC Oslo 2020)
The Power of Composition (NDC Oslo 2020)The Power of Composition (NDC Oslo 2020)
The Power of Composition (NDC Oslo 2020)
 
Linux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKBLinux Kernel Booting Process (2) - For NLKB
Linux Kernel Booting Process (2) - For NLKB
 

Viewers also liked

2010 Digital Trends, Ideas and Technologies (Part 1)
2010 Digital Trends, Ideas and Technologies (Part 1)2010 Digital Trends, Ideas and Technologies (Part 1)
2010 Digital Trends, Ideas and Technologies (Part 1)David Carr
 
Intro to the Arduino Entrepreneurial System
Intro to the Arduino Entrepreneurial SystemIntro to the Arduino Entrepreneurial System
Intro to the Arduino Entrepreneurial Systemtodbotdotcom
 
Continuous heart rate and body temperature monitoring system using arduino un...
Continuous heart rate and body temperature monitoring system using arduino un...Continuous heart rate and body temperature monitoring system using arduino un...
Continuous heart rate and body temperature monitoring system using arduino un...Engr. Md. Siddiqur Rahman Tanveer
 
Heart beat detector using arduino
Heart beat detector using arduinoHeart beat detector using arduino
Heart beat detector using arduinoVarshaa Khandagale
 
MindMapping
MindMapping MindMapping
MindMapping 0508713
 
Heart beat monitor system PPT
Heart beat monitor system PPT Heart beat monitor system PPT
Heart beat monitor system PPT Anand Dwivedi
 
What is Mind Mapping? (English Version)
What is Mind Mapping? (English Version)What is Mind Mapping? (English Version)
What is Mind Mapping? (English Version)MindProject
 
I build the future - Agile 2014
I build the future - Agile 2014I build the future - Agile 2014
I build the future - Agile 2014Andrew Shafer
 

Viewers also liked (14)

UXLX2012 User Research Hacks
UXLX2012 User Research HacksUXLX2012 User Research Hacks
UXLX2012 User Research Hacks
 
Eye Movement
Eye Movement Eye Movement
Eye Movement
 
2010 Digital Trends, Ideas and Technologies (Part 1)
2010 Digital Trends, Ideas and Technologies (Part 1)2010 Digital Trends, Ideas and Technologies (Part 1)
2010 Digital Trends, Ideas and Technologies (Part 1)
 
Intro to the Arduino Entrepreneurial System
Intro to the Arduino Entrepreneurial SystemIntro to the Arduino Entrepreneurial System
Intro to the Arduino Entrepreneurial System
 
Continuous heart rate and body temperature monitoring system using arduino un...
Continuous heart rate and body temperature monitoring system using arduino un...Continuous heart rate and body temperature monitoring system using arduino un...
Continuous heart rate and body temperature monitoring system using arduino un...
 
Mind mapping
Mind mapping Mind mapping
Mind mapping
 
Heart beat detector using arduino
Heart beat detector using arduinoHeart beat detector using arduino
Heart beat detector using arduino
 
MindMapping
MindMapping MindMapping
MindMapping
 
Heart beat monitor system PPT
Heart beat monitor system PPT Heart beat monitor system PPT
Heart beat monitor system PPT
 
Mind mapping.ppt final
Mind mapping.ppt finalMind mapping.ppt final
Mind mapping.ppt final
 
What is Mind Mapping? (English Version)
What is Mind Mapping? (English Version)What is Mind Mapping? (English Version)
What is Mind Mapping? (English Version)
 
MindMaps
MindMapsMindMaps
MindMaps
 
I build the future - Agile 2014
I build the future - Agile 2014I build the future - Agile 2014
I build the future - Agile 2014
 
Scott Lind - The Secret Life of EHRs
Scott Lind - The Secret Life of EHRsScott Lind - The Secret Life of EHRs
Scott Lind - The Secret Life of EHRs
 

Similar to Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to solder)

Advanced view of atmega microcontroller projects list at mega32 avr
Advanced view of atmega microcontroller projects list   at mega32 avrAdvanced view of atmega microcontroller projects list   at mega32 avr
Advanced view of atmega microcontroller projects list at mega32 avrWiseNaeem
 
Arduino workshop
Arduino workshopArduino workshop
Arduino workshopmayur1432
 
ATTiny85 ATTiny45 and ATTiny13 based projects list - ATMega32 AVR.pdf
ATTiny85 ATTiny45 and ATTiny13 based projects list - ATMega32 AVR.pdfATTiny85 ATTiny45 and ATTiny13 based projects list - ATMega32 AVR.pdf
ATTiny85 ATTiny45 and ATTiny13 based projects list - ATMega32 AVR.pdfIsmailkhan77481
 
Build cool stuff with arduino for sci camp 16 dec13
Build cool stuff with arduino for sci camp 16 dec13Build cool stuff with arduino for sci camp 16 dec13
Build cool stuff with arduino for sci camp 16 dec13Singapore Makers Association
 
ATTiny Light Sculpture Project - Part I (Setup)
ATTiny Light Sculpture Project - Part I (Setup)ATTiny Light Sculpture Project - Part I (Setup)
ATTiny Light Sculpture Project - Part I (Setup)Brian Huang
 
44CON 2014 - Simple Hardware Sidechannel Attacks for 10 GBP or Less, Joe Fitz...
44CON 2014 - Simple Hardware Sidechannel Attacks for 10 GBP or Less, Joe Fitz...44CON 2014 - Simple Hardware Sidechannel Attacks for 10 GBP or Less, Joe Fitz...
44CON 2014 - Simple Hardware Sidechannel Attacks for 10 GBP or Less, Joe Fitz...44CON
 
Advanced view pic microcontroller projects list pic microcontroller
Advanced view pic microcontroller projects list   pic microcontrollerAdvanced view pic microcontroller projects list   pic microcontroller
Advanced view pic microcontroller projects list pic microcontrollerWiseNaeem
 
Seminar 3 presentation
Seminar 3 presentationSeminar 3 presentation
Seminar 3 presentationchandnivenkat
 
Microcontrollers (Rex St. John)
Microcontrollers (Rex St. John)Microcontrollers (Rex St. John)
Microcontrollers (Rex St. John)Future Insights
 
An_Introduction_to_Microcontrollers.pptx
An_Introduction_to_Microcontrollers.pptxAn_Introduction_to_Microcontrollers.pptx
An_Introduction_to_Microcontrollers.pptxStefan Oprea
 
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
 
Arduino Introduction by coopermaa
Arduino Introduction by coopermaaArduino Introduction by coopermaa
Arduino Introduction by coopermaa馬 萬圳
 
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...WiseNaeem
 
IoT Programming with IchigoJam
IoT Programming with IchigoJamIoT Programming with IchigoJam
IoT Programming with IchigoJamTaisuke Fukuno
 
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...WiseNaeem
 
Powerful Electronics with Arduino
Powerful Electronics with ArduinoPowerful Electronics with Arduino
Powerful Electronics with ArduinoAbdallah Hodieb
 

Similar to Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to solder) (20)

Advanced view of atmega microcontroller projects list at mega32 avr
Advanced view of atmega microcontroller projects list   at mega32 avrAdvanced view of atmega microcontroller projects list   at mega32 avr
Advanced view of atmega microcontroller projects list at mega32 avr
 
Arduino workshop
Arduino workshopArduino workshop
Arduino workshop
 
Lecture1
Lecture1Lecture1
Lecture1
 
ATTiny85 ATTiny45 and ATTiny13 based projects list - ATMega32 AVR.pdf
ATTiny85 ATTiny45 and ATTiny13 based projects list - ATMega32 AVR.pdfATTiny85 ATTiny45 and ATTiny13 based projects list - ATMega32 AVR.pdf
ATTiny85 ATTiny45 and ATTiny13 based projects list - ATMega32 AVR.pdf
 
Build cool stuff with arduino for sci camp 16 dec13
Build cool stuff with arduino for sci camp 16 dec13Build cool stuff with arduino for sci camp 16 dec13
Build cool stuff with arduino for sci camp 16 dec13
 
Lab2ppt
Lab2pptLab2ppt
Lab2ppt
 
Avr microcontroller
Avr microcontrollerAvr microcontroller
Avr microcontroller
 
ATTiny Light Sculpture Project - Part I (Setup)
ATTiny Light Sculpture Project - Part I (Setup)ATTiny Light Sculpture Project - Part I (Setup)
ATTiny Light Sculpture Project - Part I (Setup)
 
44CON 2014 - Simple Hardware Sidechannel Attacks for 10 GBP or Less, Joe Fitz...
44CON 2014 - Simple Hardware Sidechannel Attacks for 10 GBP or Less, Joe Fitz...44CON 2014 - Simple Hardware Sidechannel Attacks for 10 GBP or Less, Joe Fitz...
44CON 2014 - Simple Hardware Sidechannel Attacks for 10 GBP or Less, Joe Fitz...
 
Advanced view pic microcontroller projects list pic microcontroller
Advanced view pic microcontroller projects list   pic microcontrollerAdvanced view pic microcontroller projects list   pic microcontroller
Advanced view pic microcontroller projects list pic microcontroller
 
Seminar 3 presentation
Seminar 3 presentationSeminar 3 presentation
Seminar 3 presentation
 
Microcontrollers (Rex St. John)
Microcontrollers (Rex St. John)Microcontrollers (Rex St. John)
Microcontrollers (Rex St. John)
 
An_Introduction_to_Microcontrollers.pptx
An_Introduction_to_Microcontrollers.pptxAn_Introduction_to_Microcontrollers.pptx
An_Introduction_to_Microcontrollers.pptx
 
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
 
Arduino Introduction by coopermaa
Arduino Introduction by coopermaaArduino Introduction by coopermaa
Arduino Introduction by coopermaa
 
Arduino
Arduino Arduino
Arduino
 
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
 
IoT Programming with IchigoJam
IoT Programming with IchigoJamIoT Programming with IchigoJam
IoT Programming with IchigoJam
 
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
Advanced View of Atmega Microcontroller Projects List - Projects Tutorials Co...
 
Powerful Electronics with Arduino
Powerful Electronics with ArduinoPowerful Electronics with Arduino
Powerful Electronics with Arduino
 

More from codebits

Gis SAPO Hands On
Gis SAPO Hands OnGis SAPO Hands On
Gis SAPO Hands Oncodebits
 
Aplicações Web TV no Meo
Aplicações Web TV no MeoAplicações Web TV no Meo
Aplicações Web TV no Meocodebits
 
Forms Usability 101
Forms Usability 101Forms Usability 101
Forms Usability 101codebits
 
Speak up: como criar Speech-based apps
Speak up: como criar Speech-based appsSpeak up: como criar Speech-based apps
Speak up: como criar Speech-based appscodebits
 
XMPP Hands-On
XMPP Hands-OnXMPP Hands-On
XMPP Hands-Oncodebits
 
Mitos da Acessibilidade Web
Mitos da Acessibilidade WebMitos da Acessibilidade Web
Mitos da Acessibilidade Webcodebits
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunnercodebits
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunnercodebits
 
Exploring XMPP
Exploring XMPPExploring XMPP
Exploring XMPPcodebits
 
Sapo BUS Hands-On
Sapo BUS Hands-OnSapo BUS Hands-On
Sapo BUS Hands-Oncodebits
 
Qtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencerQtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencercodebits
 
Making the Chumby
Making the ChumbyMaking the Chumby
Making the Chumbycodebits
 
Globs - Gestão de Glossários
Globs - Gestão de GlossáriosGlobs - Gestão de Glossários
Globs - Gestão de Glossárioscodebits
 
ATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de TraduçõesATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de Traduçõescodebits
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Javacodebits
 
Sapo GIS Hands-On
Sapo GIS Hands-OnSapo GIS Hands-On
Sapo GIS Hands-Oncodebits
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008codebits
 
Optimização de pesquisas Web utilizando Colónias de Formigas
Optimização de pesquisas Web utilizando Colónias de FormigasOptimização de pesquisas Web utilizando Colónias de Formigas
Optimização de pesquisas Web utilizando Colónias de Formigascodebits
 

More from codebits (20)

Gis SAPO Hands On
Gis SAPO Hands OnGis SAPO Hands On
Gis SAPO Hands On
 
Aplicações Web TV no Meo
Aplicações Web TV no MeoAplicações Web TV no Meo
Aplicações Web TV no Meo
 
Forms Usability 101
Forms Usability 101Forms Usability 101
Forms Usability 101
 
Speak up: como criar Speech-based apps
Speak up: como criar Speech-based appsSpeak up: como criar Speech-based apps
Speak up: como criar Speech-based apps
 
XMPP Hands-On
XMPP Hands-OnXMPP Hands-On
XMPP Hands-On
 
Mitos da Acessibilidade Web
Mitos da Acessibilidade WebMitos da Acessibilidade Web
Mitos da Acessibilidade Web
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
 
CouchDB
CouchDBCouchDB
CouchDB
 
Getting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko FreerunnerGetting started with mobile devices development - Openmoko Freerunner
Getting started with mobile devices development - Openmoko Freerunner
 
Exploring XMPP
Exploring XMPPExploring XMPP
Exploring XMPP
 
Sapo BUS Hands-On
Sapo BUS Hands-OnSapo BUS Hands-On
Sapo BUS Hands-On
 
Qtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencerQtractor - An Audio/MIDI multi-track sequencer
Qtractor - An Audio/MIDI multi-track sequencer
 
Making the Chumby
Making the ChumbyMaking the Chumby
Making the Chumby
 
Globs - Gestão de Glossários
Globs - Gestão de GlossáriosGlobs - Gestão de Glossários
Globs - Gestão de Glossários
 
ATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de TraduçõesATrad - Sistema de Garantia de Qualidade de Traduções
ATrad - Sistema de Garantia de Qualidade de Traduções
 
Alto Desempenho com Java
Alto Desempenho com JavaAlto Desempenho com Java
Alto Desempenho com Java
 
Sapo GIS Hands-On
Sapo GIS Hands-OnSapo GIS Hands-On
Sapo GIS Hands-On
 
Gis@sapo
Gis@sapoGis@sapo
Gis@sapo
 
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008Practical Thin Server Architecture With Dojo Sapo Codebits 2008
Practical Thin Server Architecture With Dojo Sapo Codebits 2008
 
Optimização de pesquisas Web utilizando Colónias de Formigas
Optimização de pesquisas Web utilizando Colónias de FormigasOptimização de pesquisas Web utilizando Colónias de Formigas
Optimização de pesquisas Web utilizando Colónias de Formigas
 

Recently uploaded

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesrafiqahmad00786416
 
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
 
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
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MIND CTI
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Zilliz
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamUiPathCommunity
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontologyjohnbeverley2021
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfOrbitshub
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxRustici Software
 

Recently uploaded (20)

Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
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
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
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
 
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
 
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
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
+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...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 

Hardware Hacking area: Make Cool Things with Microcontrollers (and learn to solder)

  • 1. Hacking Cool things With Microcontrollers! Mitch Altman Chief Scientist, Cornfield Electronics, San Francisco, CA USA Author of The Brain Machine in MAKE Magazine #10 Inventor of TV-B-Gone universal remote control email: mitch@CornfieldElectronics.com site: www.CornfieldElectronics.com Codebits November 14, 2008
  • 2. I Love My Job!
  • 3. Why make cool things with Microcontrollers?
  • 4. Why make cool things with Microcontrollers? Microcontrollers are fun to play with And anyone can learn…
  • 5. Examples of Cool Microcontroller Projects (in my opinion) TV-B-Gone Kit TV-B-Gone TV-B-Gone Pro
  • 6. Examples of Cool Microcontroller Projects (in my opinion) MiniPOV3 kit Solar BugBot The Brain Machine LED Cube Trippy RGB Light
  • 7. Examples of Cool Microcontroller Projects (in my opinion) Mignonnette Game kit
  • 8. Examples of Cool Microcontroller Projects (in my opinion) Trippy RGB Waves kit
  • 9. What is a Microcontroller?
  • 10. What is a Microcontroller? A complete computer on a chip (with a little extra stuff) RAM Program Processor Memory Inputs Input/Output Outputs Timers
  • 11. What Does a Microcontroller Do? Like all computers: Fetch Instruction Execute Instruction Repeat forever (till power goes off)
  • 12. How to Make Cool Things with Microcontrollers •  Idea •  Hardware •  Firmware •  Coolness!
  • 13. Hello World Make an LED blink
  • 14. Hello World – Hardware Battery + Resistor LED Microcontroller Battery - Battery -
  • 15. Hello World – Digression: (Very) Basic Electronics Lesson Electronics: electrons flowing through wires and parts (sorta like water flowing through pipes) Current -- speed of electrons flowing Battery -- like a pump pushing electrons Resistor -- like a kink in a pipe, slows down electrons Diode -- one-way valve for current LED -- special diode: emit photons when current flows Transistor -- remotely controlled switch Microcontroller -- zillions of transistors!
  • 16. Hello World – Firmware Assign a value to a variable: Software: X = 00000001 Firmware: X = 00000001
  • 17. Hello World – Firmware Changing an output pin: PortA = 00000001 PortA = 00000000
  • 18. Hello World – Firmware Changing an output pin (using manual delay): PortA = 00000001 Call Delay PortA = 00000000 ----------- Delay: Count = 0 Wait: Count = Count + 1 If Count < 10,000 goto wait Return
  • 19. Hello World – Firmware Changing an output pin (using hardware timer): Main: Call Init PortA = 00000001 Call Delay PortA = 00000000 Sleep ----------- Delay: Timer0 = 60,000 Wait: If Timer0flag = 0 goto wait Return
  • 20. Hello World – Firmware Advanced topic: Changing an output pin (using interrupts): Main: Call Init PortA = 00000001 Call Delay PortA = 00000000 Sleep ----------- ISR: Delay: TimeFlag=1 Timer0 = 60,000 Wait: Return If TimeFlag = 0 goto wait Return
  • 21. Hello World – programming your chip Use software on your computer Text Editor Compiler Programmer Specific software Depends on your microcontroller PIC, AVR, etc. Need hardware programmer (often very cheap)
  • 22. Real Project: Ladyada’s MiniPOV3 Just like “Hello World”, but 8 LEDs and different timing Etc…
  • 23. Hacking! : The easy way to make your cool microcontroller projects
  • 24. Hacking! TV-B-Gone from MiniPOV3 kit
  • 25. Hacking! TV-B-Gone Kit from MiniPOV3 hack
  • 26. Hacking! TV-B-Gone Pro from TV-B-Gone Kit
  • 27. Hacking! Trippy RGB Light from MiniPOV3 kit ... ... 1/2 brightness Pulse Width ... ... 1/4 brightness Modulation (PWM) ... ... min brightness
  • 28. Hacking! Trippy RGB Waves kit from Trippy RGB Light IR detector causes interrupt when it sees IR reflecting from your hand
  • 29. Hacking! Solar BugBot from MiniPOV3 kit
  • 30. Hacking! LED Cube from MiniPOV3 kit (First NYC Resistor Project)
  • 31. Hacking! Brain Machine from MiniPOV3 kit Synchronizes your brain to a desired brainwave sequence (and hallucinate along the way!) WARNING: Blinking lights are not good for people with epilepsy
  • 33. Video by Bre Pettis What’s It Like?
  • 34. Come by the Workshop Hardware Hacking Area Microcontrollers are fun to play with And anyone can learn!
  • 35. Q&A
  • 36. Hacking Cool things With Microcontrollers! Mitch Altman Chief Scientist, Cornfield Electronics, San Francisco, CA USA Author of The Brain Machine in MAKE Magazine #10 Inventor of TV-B-Gone universal remote control email: mitch@CornfieldElectronics.com site: www.CornfieldElectronics.com Codebits November 14, 2008