Top Banner
Einführung in die Arduino Programmierung am Beispiel eines Roboters [email protected]
19

Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

Mar 06, 2018

Download

Documents

dinhxuyen
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

Einführungin die

Arduino Programmierungam Beispiel eines

[email protected]

Page 2: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller
Page 3: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

1. Was ist Arduino- Definition einer Hardware- und Software Plattform- Open Source- Hardware:

- Mikrocontroller ( zB Atmel AVR aus mega Serie)- analoge- und digitale Ein- und Ausgänge- serielle Schnittstelle zum Programmieren- Spannungsquelle USB (5V) oder extern 7-12V- Bootloader vorhanden- Programmierung direkt ohne externen Programmierer (USB)- Beispielboards: UNO, DUE, Leonardo, Nano, Mega 2560 R3

- Software- eigene integrierte IDE in Java- Code Editor- gcc Compiler - C / C++

- https://de.wikipedia.org/wiki/Arduino_(Plattform)

Page 4: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

2. Arduino UNO R3- CPU: Atmega328P- 5V- 8bit- 16MHz- USB- 14 Digital I/O ( 6 PWM)- 6 Analoge Input Pins- 20mA DC I/O- 50mA DC für 3.3V Pin- 32KB Flash (0,5 Bootloader)- 2KB SRAM- 1KB EEPROM- 68.8mm x 53.4mm L/B

https://www.arduino.cc/en/Main/arduinoBoardUnoATmega328P

14x Digital I/O (6x PWM)

6x analoge Input / digital I/O

USB to Serial Converter

Page 5: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

3. IDE- www.arduino.cc/en/Main/Software- Download Packet für Linux, MAC

Windows- IDE entpacken- starten- Arduino über USB anschliessen- Unter Tools->Board Arduino UNO

auswählen- Unter Tools->Port Anschluß auswählen- Unter Sketch->Include Library können

Bibliotheken hinzugefügt / nachinstalliert werden

Compilieren hochladen öffnen speichern

Page 6: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

4. Programmstruktur

void setup(){// einmalig beim Start ausgeführter Code

} void loop(){

// ständig ausgeführter Code nach Setup()}

// Code nur zur Veranschaulichung// void main() {// setup();// while (1) loop();//}

Page 7: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

void setup() { // initialize digital pin 13 as // an output. pinMode(13, OUTPUT);}

// the loop function runs over and over again forevervoid loop() { digitalWrite(13, HIGH); // turn the LED on (HIGH is the // voltage level) delay(1000); // wait for a second digitalWrite(13, LOW); // turn the LED off by making // the voltage LOW delay(1000); // wait for a second}

- File->Examples->Basic->Blink

- lässt LED auf Arduino UNO R3 Board blinken

5. Beispielprogramm

Page 8: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

6. Debuggen- IDE: Tools-Serial Monitor- Ausgabe mit Serial.print(...)

Int counter = 0;

void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600);}

void loop() { // print out to serial monitor Serial.print(“Counter: “); Serial.println(counter); counter++; delay(1000); }

Page 9: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

7.1 Motorshield - Hardware

- Ansteuerung von Motoren mit H-Brücke wegen Strombedarf- Adafruit Motorshield L293D: https://learn.adafruit.com/adafruit-motor-shield/library-install

- 4 H-Brücken mit je 0,6A (Spitze 1,2A)- 4 bidirktionale DC Motoren- 2 Schrittmotoren- 2 Servos

- Bibliothek AFMotor https://github.com/adafruit/Adafruit-Motor-Shield-library/zipball/master- 2x Getriebemotoren mit passendem 67mm Rad zB GM9 (Watterott.com)

Page 10: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

7.2 Motorshield - Software#include <AFMotor.h>

class MyMotor {public: MyMotor(int number) : motor(number), currentSpeed(0) { } void setSpeed(int speed) { currentSpeed = speed; if (speed >= 0){ motor.setSpeed(speed); motor.run(FORWARD); } else { motor.setSpeed(-speed); motor.run(BACKWARD); } } void stop() { setSpeed(0); } void forward() { setSpeed(255); } void backward(){ setSpeed(-255);}private: AF_DCMotor motor; int currentSpeed;};MyMotor leftMotor(1), rightMotor(3);

Page 11: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

8.1 Ultraschallsensor - Hardware

GNDEchoTrigVCC

- Aukru 4-Pin HC-SR04 Ultraschallsensor

- A0 : trig- A1: Echo- VCC: +5V

- Bibliothek: https://code.google.com/p/arduino-new-ping/downloads/detail?name=NewPing_v1.5.zip&can=2&q

Page 12: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

8.2 Ultraschallsensor - Software#include <NewPing.h>class DistanceSensor{public: DistanceSensor(int triggerPin,int echoPin,int maxDistance) : maxDistance(maxDistance),sensor(triggerPin,echoPin,maxDistance) { } unsigned int getDistance() { int distance = sensor.ping_cm(); if ( distance <= 0 ) return maxDistance; return distance; }private: unsigned int maxDistance; NewPing sensor;};

// analoge Pins A0-A5 können auch digital verwendet werden// heissen dann 14-19DistanceSensor distanceSensor(14,15,200);

Page 13: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

9.1 Servomotor - Hardware

- Servomotor SG90 Tower Pro - Anschluss direkt an Motor Shield Servo 1

- gelb → minus- rot → Plus- braun → Signal

- Bibliothek Servo.h in Arduino IDE enthalten

Page 14: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

9.2 Servomotor - Software#include <Servo.h>class MyServo{public: MyServo() {} void init(){

// Pin 9 ist Servo 1 auf dem Shield servoMotor.attach(9); } void lookForward() { servoMotor.write(90); } void lookLeft() { servoMotor.write(60); } void lookRight() { servoMotor.write(120); }private: Servo servoMotor;};MyServo servoMotor;

Page 15: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

10.1 Zusammenbau - Sensor

1. Servomotorhalterung mit doppelseitigem Klebeband befestigt

2. Sensor auf Servo befestigen

3. Servo mit doppelseitigem Klebeband an 4xAA batteriehalterung befestigen

Page 16: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

10.2 Zusammenbau - Motoren

1. doppelseitiges Klebeband an die Motoren

2. Motoren auf die 4xAA Batteriehalterung kleben. Motoren sollten parallel sein und eine durchgehend gerade Achse haben

3. Arduino mit Motorshield auf die Motoren mit doppelseitigem Klebeband befestigen

Page 17: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

11.1 Robotersteuerung - Zustände

Moving

Turn

Stop

ObstacleNo Obstacle

Page 18: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

11.2 Robotersteuerung - SW void loop() { if ( stopped() )

return; unsigned long currentTime = millis(); int distance = distanceSensor.getDistance() ; if ( doneRunning( currentTime ) )

stop(); else if ( moving() ) { if ( obstacleAhead( distance ) ) turn( currentTime ); } else if ( turning() ) { if ( doneTurning( currentTime, distance ) ) move(); } }

Page 19: Einführung in die Arduino Programmierung am Beispiel · PDF file1. Was ist Arduino - Definition einer Hardware- und Software Plattform - Open Source - Hardware: - Mikrocontroller

12. Links

- www.arduino.cc

- www.arduino.cc/en/Main/arduinoBoardUno

- de.wikipedia.org/wiki/Arduino_(Plattform)

- github.com/adafruit/Adafruit-Motor-Shield-library/zipball/master

- code.google.com/p/arduino-new-ping/downloads/detail?name=NewPing_v1.5.zip&can=2&q

- itzwieseltal.wordpress.com

- itzwieseltal.wordpress.com/2015/08/13/simpler-arduino-roboter/

- www.youtube.com/watch?v=I5vKAYMB4Xo