Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting Started with Arduino Programming

Getting Started with Arduino Programming

Ahmed Sobhy

July 11, 2016
Tweet

More Decks by Ahmed Sobhy

Other Decks in Programming

Transcript

  1. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 1/22 1 © IEEE RAS – Egypt Chapter (Institute of Electrical and Electronics Engineers (IEEE Robotics & Automation Society Egypt Chapter IEEE Robotics & Automation Society Egypt Chapter http://www.ras-egypt.org/
  2. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 2/22 2 © IEEE RAS – Egypt Chapter Ahmed Sobhy Vice chair IEEE RAS Egypt Chapter Co-founder & PR Qafeer Makerspace CEO GDG 6 October & Robosapien Robotics www.Sobhy.me
  3. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 3/22 3 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Introduction : Arduino Lecture 2 How to build a real robot, University logo goes here
  4. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 4/22 4 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter OUTLINE ❑ Microcontroller and arduino ❑ Arduino uno ❑ Installation ❑ Summary of Arduino C functions ❑ Program Structure ❑ Experiment_1 & Program_1 ❑ Experiment_2 & Program_2 ❑ Experiment_3 & Program_3 ❑ Experiment_4 & Program_4
  5. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 5/22 5 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter MICROCONTROLLER A small computer system on a single IC First used in 1975(Intel 8048)
  6. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 6/22 6 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Programming environment is all Free Software The bootloader is Free Software The PCB board is under a Creative Commons License
  7. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 7/22 7 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter What is Arduino used for? Input Sensors Digital Input (Serial, SPI, I2C) Output LEDs Displays Speakers Control and Communication Drive other machinery Directly or using a communuication protocol
  8. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 8/22 8 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Arduino Types
  9. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 9/22 9 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Arduino Shields Lots of Arduino Add-Ons have been made that fit the standard Arduino form Ethernet Battery GPS WaveSheild (lots of audio functions) XBee Motor Control Phidget Sensor Lots more!
  10. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 10/22 10 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter
  11. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 11/22 11 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Arduino Uno
  12. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 12/22 12 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Installation ⚫ Get an Arduino board and USB cable ⚫ Download the Arduino environment ⚫ Connect the board ⚫ Install the drivers ⚫ Launch the Arduino application ⚫ Open the blink example ⚫ Select your board ⚫ Select your serial port ⚫ Upload the program
  13. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 13/22 13 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Get an Arduino board and USB cable
  14. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 14/22 14 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Download the Arduino environment ⚫ http://arduino.cc/en/Main/Software
  15. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 15/22 15 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Install the drivers ⚫ Installing drivers for the Arduino Uno with Windows Arduino IDE ⚫ IDE = Integrated Development Environment
  16. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 16/22 16 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter • find the file that you downloaded on your computer • copy this file to the hard drive location where you want to install the Arduino software • double click on Compressed file to view Arduino-related files
  17. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 17/22 17 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter • navigate to this folder • double click on the arduino application
  18. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 18/22 18 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter click on “Device Manager”
  19. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 19/22 19 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter • computer is not recognizing your Arduino • double click on the “Unknown device”
  20. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 20/22 20 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter click on “Update Driver”
  21. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 21/22 21 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter click on “Browse my computer for driver sof
  22. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 22/22 22 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter browse for the folder where you extracted the Arduino softw
  23. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 23/22 23 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter select folder where Arduino software was extracted . . . Windows will automatically search subdirectories
  24. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 24/22 24 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter you will need to “Install this driver software anyw if you want to install Arduino
  25. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 25/22 25 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter you should get a message like this one if everything goes OK
  26. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 26/22 26 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter notice that your Arduino is now recognized
  27. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 27/22 27 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter 2 7 • double click this icon to run the Arduino software • right click and pin to your taskbar for a convenient shortcut
  28. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 28/22 28 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter • click Tools > Board (Arduino Uno should be highlighted)
  29. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 29/22 29 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter • click Tools > Serial Port • click in the box beside the COM port if a checkmark is not present (this will make a checkmark appear if one was not there already) • the checkmark means that your computer sees your Arduino • if no checkmark appears, go back to Device Manager to see what’s up
  30. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 30/22 30 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter • click File > Examples > Basics > Blink • this will bring up a simple program on your computer screen
  31. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 31/22 31 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter • clicking “upload” icon sends program to your Arduino
  32. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 32/22 32 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter • the “TX” and “RX” LEDs will flash as the program is downloaded to the Arduino • you will see the LED labeled “L” start blinking • this means that it works!!! • also watch your computer screen to see the status • if there’s a problem, it will show up here
  33. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 33/22 33 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter SUMMARY OF ARDUINO C FUNCTIONS pinMode() Configures the specified pin to behave either as an input or an output. Syntax pinMode(pin, mode) Parameters pin: the number of the pin whose mode you wish to set mode: INPUTmode: INPUT, OUTPUTmode: INPUT, OUTPUT, or INPUT_PULLUP. digitalWrite() Description Write a HIGHWrite a HIGH or a LOW value to a digital pin. Syntax digitalWrite(pin, value) Parameters pin: the pin number value: HIGHvalue: HIGH or LOW
  34. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 34/22 34 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter FUNCTION digitalRead() Description Reads the value from a specified digital pin, either HIGHReads the value from a specified digital pin, either HIGH or LOW. Syntax digitalRead(pin) Parameters pin: the number of the digital pin you want to read (int) Syntax analogRead(pin) Parameters pin: the number of the analog input pin to read from (0 to 5 on most boards, 0 to 7 on the Mini and Nano, 0 to 15 on the Mega) Returns int (0 to 1023)
  35. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 35/22 35 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter FUNCTION delay() Description Pauses the program for the amount of time (in miliseconds) specified as parameter. (There are 1000 milliseconds in a second.) Syntax delay(ms) Parameters ms: the number of milliseconds to pause (unsigned long) analogWrite() Hint: You do not need to call pinMode() to set the pin as an output before calling analogWrite(). Syntax analogWrite(pin, value) Parameters pin: the pin to write to. value: the duty cycle: between 0 (always off) and 255 (always on).
  36. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 36/22 36 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter PROGRAM STRUCTURE Constant Pins, and variable declaration Constant pin (option) // setup initializes serial and the button pin Declare input and output port Void setup() //Use it to initialize variables, pin modes, start using libraries,etc. { pinMode(Pin.ON.OrName Status) } void loop() { Program Instruction } Input or output
  37. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 37/22 37 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter The breadboard
  38. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 38/22 38 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Resistors color code
  39. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 39/22 39 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Experiment_1 (digitalWrite)
  40. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 40/22 40 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter PROGRAM_1: (DIGITALWRITE) int ledPin = 9; // LED connected to digital pin 9 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { digitalWrite(ledPin, HIGH); delay(1000); digitalWrite(ledPin, Low); delay(1000); }
  41. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 41/22 41 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Experiment_2:
  42. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 42/22 42 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter PROGRAM_2: (DIGITAL READ) int ledPin = 13; // LED connected to digital pin 13 int swtPin = 2; // switch connected to digital pin 2 char x = 0; void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output pinMode(swtPin, INPUT); //sets the digital pin as input } void loop() { x = digitalRead(swtPin); digitalWrite(ledPin, x); }
  43. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 43/22 43 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Experiment_3 (analogRead)
  44. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 44/22 44 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter PROGRAM_3: (ANALOGREAD) int potPin = 0; // input pin for the potentiometer int ledPin = 9; // output pin for the LED void setup() { pinMode(ledPin, OUTPUT); // declare ledPin as OUTPUT } void loop() { digitalWrite(ledPin, HIGH); // turns ledPin on delay(analogRead(potPin)); // pause program digitalWrite(ledPin, LOW); // turns ledPin off delay(analogRead(potPin)); // pause program }
  45. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 45/22 45 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter Experiment_4 (analogWrite) • Pulse width Modulation (PWM) is a way to fake an analog output by pulsing the output. This could be used to dim and brighten an LED or later to control a servo motor. The following example slowly brightens and dims an LED using for loops.
  46. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 46/22 46 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter PROGRAM_4: (ANALOGWRITE) int ledPin = 9; // PWM pin for the LED void setup(){} // no setup needed void loop() { for (int i=0; i<=255; i++) // ascending value for i { analogWrite(ledPin, i); // sets brightess level to i delay(10); // pauses for 100ms } for (int i=255; i>=0; i--) // descending value for i { analogWrite(ledPin, i); // sets brightess level to i delay(10); // pauses for 100ms } }
  47. MUSES_SECRET: ORF-RE Project - © PAMI Research Group – University

    of Waterloo 47/22 47 L1, How to build a real robot: 2011-2012 © IEEE RAS – Egypt Chapter THANKS