Embedded System Design Getting Started

Ähnliche Dokumente
Embedded Hardware Getting Started

Was so passieren wird:

Einführung in Mikrokontroller Benutzung mit dem Arduino Board. Ramon Hofer ICVR

Arduino für FunkAmateure

Erste Gehversuche mit ARDUINO (DL6OAA)

Einführung in die Arduino-Programmierung II

Bisher hatten immer nur als Ausgänge geschaltet und hierfür folgende Befehle benutzt:

Einführung Arduino - Aufbau

GPS to Nixie Uhren Konverter. Dokumentation

Arduino Digispark. Ausgabe Copyright by Joy-IT 1

Fachprojekt for Embedded System: Design and Implement Your Own Embedded Systems (2) LS 12, TU Dortmund

TCS3200 Farbsensor. Schritt 1 Anschließen des Sensors. Bild 1: TCS3200 Farbsensor

System-Programmierung 10: Weitere Arten von I/O. CC BY-SA, Thomas Amberg, FHNW (soweit nicht anders vermerkt)

Arbeitsblatt Nr.19: RFID Kit

analoge Ein- und Ausgänge

Simulink: Softwareentwurf für eingebettete Systeme ROS-Arduino-Interface. von Christian Schildwächter

Einführung in die Arduino Programmierung am Beispiel eines Roboters.

Warum dieses Projekt

Erste Schritte. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Arduino µcontroller. Virtuelle COMSchnittstelle

Zusatzplatine ZIB2-PDx-N für Plug & Drive Motoren PDx-N

Automation-Letter Nr Prof. Dr. S. Zacher TUTORIAL. In Tutorial sind die Ergebnisse der Seminararbeit von

Jan Monsch. Donnerstag, 2. Mai 13

Warum dieses Projekt

Girls Day 2018 Programmiereinführung

Arduino Kurs Das LC-Display. Stephan Laage-Witt FES Lörrach

Praktikum Analog- und Digitaltechnik. Versuch D3 Bluetooth-steuerung mit Arduino

Installation der Entwicklungsumgebung

Wir hätten nie gedacht das drei Computer und Elektronik-Fans soweit kommen!! Mit diesem Video sagen wir vielen Dank!

Einführung in das Programmieren in der Sekundarstufe 1. mit einem Arduino und der Physical-Computing-Plattform

LinkerKit LK-Temp2 Raspberry Pi und Arduino

ERWEITERUNGSSHIELD MIT ANALOGEN EINGÄNGEN

Mark VHS Augsburg Einführung in die Mikrocontroller-Programmierung.

Interaktionstoolkit How To

Grundlagen der Anwendung und Programmierung des ESP8266. Dennis Hoffmann Mittwoch, :30 Uhr Schulungsraum SW23/147

Die Sonne spielt Musik

Projektworkshop Digitales Haustier. Digitales Haustier. Bau dir ein Digitales Haustier, das schnurrt, wenn du es streichelst. 1/8

Erste Schritte. Das Arduino-Board. Ihr Fundino-Board. Programmieren für Ingenieure Sommer Andreas Zeller, Universität des Saarlandes

Programmieren des ESP8266 mit OLED

ARDUINO Übung. Inhalt:

Joy-IT Ultraschall Abstandssensor

Programmieren in C / C++ Internet der Dinge Mikrocontroller ESP8266

Arduino, IR Fernbedienung dekodieren

LED Skalenbeleuchtung mit einem Arduino

Thermostat/Temperaturwächter

Wunderst du dich auch manchmal, wo die ganzen Kekse hin sind? Mit diesem Projekt kommst du dem Dieb schnell auf die Schliche.

Ampelsteuerung Merkblatt 2 Wie wird der Arduino programmiert?

Umbau eines Saug- und Wisch Roboters auf ARDUINO Steuerung

BAUANLEITUNG ROBO-REGENTRUDE

KY-001 Temperatur Sensor Modul

Mini- Mikroprozessor-Experimentier-System. Version 1.0b vom :21. mit einem 8051-Mikrocontroller

C++ mit dem Arduino (Uno und Mega2560)

foexlab-materialien Arduino-Schaltungen First Steps Gottfried Wilhelm Leibniz Universität Hannover

Arduino für FunkAmateure

Ansteuerung eines LCD-Screens

Bei jedem Arduino-Projekt muss man ein Grundgerüst "bauen". Das sieht dann so aus:

Struktur eines Sketches

Multi-Thermometer PL0045 mit optionaler PC/Smartphone/Tablet-Anbindung. mit optionaler PC/Smartphone/Tablet-Anbindung oder

Linear Magnetic Hall Sensor KY-024

Arduino und Amateurfunk (1)

RFID RC522. Ausgabe Copyright by Joy-IT 1

Es kann Stand-Alone oder als Erweiterung einer µc Schaltung verwendet werden.

ARDUINO KENNENLERNEN WAS IST EIN ARDUINO?

4.2 Die Arduino-Hardware

Gamecontroller Der Bewegungssensor - Links-Rechts-Steuerung

8 Kommunikation. Mehr Informationen zum Titel! 8.1 Serielle Schnittstelle

I8O8-USB. Serial Input and Output Board with. 8 Inputs 8 Outputs 8 ADC-Inputs USB (FTDI) Rev rtec.rohrhofer.org

Was ist Arduino? Historie Der Kern Entwicklungsumgebung Hardware Software Und wozu das Ganze? Workshop Mikrorechner 2012 A.

Eine tastergesteuerte LED

Arduino Workshop Dokumentation 2 3

Rasen-Roboter Elektronik Hardware mech. Aufbau Leiterplatten und Fertig-Module. Elektronik-Board. Mega 2560 LSP SDA-SCL

Die Verdrahtung ist relativ einfach, wir stecken das Modul auf einen der Kompatiblen Arduinos. Kompatibel sind:

Arduino - Einfacher Teiler

HelvePic32 Breadboard. Internet Data Logger

Arduino für FunkAmateure

Projektlabor. LCD Ansteuerung

Starten Sie die Arduino IDE und geben Sie den folgenden Programmcode ein:

TaT-Maker Steuerung. Selbstbauanleitung. von. Kurt Sepke

DALI Gateway Handbuch

Digitalelektronik 1 Digitale Ausgabe. Stefan Rothe

DC 5V Stepper Motor 28BYJ-48. Verwendung mit einem Arduino

Moto1. 28BYJ-48 Stepper Motor. Ausgabe Copyright by Joy-IT 1

Moto1. 28BYJ-48 Stepper Motor. Ausgabe Copyright by Joy-IT 1

BLUE line. Bedienungsanleitung zum M-Unit Experimentierboard. Innovative Technik. Tobias Regenhardt Grüner Weg Seulingen

Bedienungsanleitung FMI-250 Zusatz. ATP Messtechnik GmbH

Jaspreet Singh Dulai Seminar S1 2015/2016. Bluetoothshield

Arduino Kurs Timer und Interrupts. Stephan Laage-Witt FES Lörrach

Internet of Things - Projektvortrag

Labor Automatisierungstechnik

Dokumentation. für metratec TUC Evaluation Board. Stand: Februar Version: 1.1. Dokumentation TUC Eval-Board Seite 1 von 10

Willkommen! Vorbereiten der Software:

NodeMCU ESP32 Betriebsanleitung

Wichtig zu erwähnen ist, dass es sich hier um ein SMD Bauteil handelt und für Lötanfänger nicht geeignet ist!

RFID RC522. Ausgabe Copyright by Joy-IT 1

Selbstbau-USB-Programmiergerät für AVR

Arbeiten mit dem Arduino Education Shield

Transkript:

Embedded System Design Getting Started HW - Ressourcen 3 Arduino Installation-Guide 6 Arduino IDE/Download 6 Arduino Treiber Installation 7 Arduino IDE starten 9 Arduino IDE - Getting Started (Code-Basiert) 10 Vorbereitung 10 Übertragung von Programm-Code bzw. Flash-Vorgang 11 Aufbau von externe Versorgungsquelle 12 Blink LED 13 Lauflicht/Ampel 13 Auslesen von Sensoren (ADC) und serielle Übertragung über USB Com-Port 14 Serial-LCD 17 Wetterstation 17 Thermostat 18 Drehzahlgeber 18 Bluetooth 19 Embedded System Design Android-App 20 MATLAB/Simulink Installation-Guide 52 Hinzufügen/Download von Arduino Library (Arduino support packages) 52 Arduino Library starten 62 1

MATLAB/Simulink - Getting Started (Modellbasiert) 53 Blink LED 53 ADC auslesen 62 External-Mode (Online Calibration) 64 2

HW - Ressourcen - Arduino Mega 2560 - USB Kabel - Steckbrett - Potentiometer Vcc (+5V) Analog voltage out Ground (-) - LED Ground (-) VCC (+5V) 3

- Temperatur-Sensor LM35 - Feuchtigkeit-Sensor Honeywell HIH-4020-16x2 LCD gelb auf blau (serielle Ansteuerung 5V) 4

- Bluetooth-Modul RN-42 (Optional) o Prinzipielle Verbindungen von serielle Schnittstellen TX (Transmit/Sender) und RX (Receive/Empfänger) Ganz wichtig, TX und RX werden überkreuzt angeschlossen und die Masse GND muss überall gleich angelegt sein. - DC-Adapter Terminalblock - Motortreiber/H-Brücke L289N +12V GND +5V Input Output - PC-Lüfter (FAN) DC 12V 5

Arduino Installation-Guide Arduino IDE/Download http://arduino.cc/en/main/software 6

Arduino Treiber Installation 7

8

Arduino IDE starten Wie üblich werden die Codes des Programms von oben nach unten abgearbeitet. Der setup Bereich dient zur Initialisierung und wird nur einmalig am Anfang des Programms ausgeführt. Der loop Bereich wird nach dem setup Bereich aufgerufen und wiederholt sich so lange bis ein Reset durchgeführt wird oder die Versorgung abgeschaltet wird. 9

Arduino IDE - Getting Started (Code-Basiert) Vorbereitung 10

Übertragung von Programm-Code bzw. Flash-Vorgang 11

Aufbau von externe Versorgungsquelle Zwar besitzt das Arduino an Board 3.3 und 5 Volt Ausgangsspannung aber sie besitzen einen sehr geringen Stromausgang. Da die Komponenten, wie z.b. LCD, viel Strom verbrauchen ist es sehr wichtig, dass sie extern versorgt werden und die Masse überall gleich angelegt wird. Bei uns im Labor verwendeten Motortreiber L298N bietet neben seiner Hauptfunktion zusätzlich eine +5V DC- Ausgangsspanung die durch den verbauten Spannungsregler an Board realisiert wird. Das nutzen wir für die Versorgung unsere Komponenten wie z.b. das LCD. Das Arduino-Board dient lediglich nur für die Steuerung. Hier der Aufbau im Labor: +12V +12V GND +5V Output 12

Blink LED Referenz: http://www.arduino.cc/en/tutorial/blink Ground (-) VCC (+5V) 220 ohm bis 1K ohm +12V GND +5V Output Lauflicht/Ampel Referenz: https://arduinomylifeup.com/arduino-traffic-light-project/ +12V GND +5V Output 220 ohm bis 1K ohm 13

Auslesen von Sensoren (ADC) und serielle Übertragung über USB Com-Port Referenz: http://www.arduino.cc/en/tutorial/analogreadserial +12V GND +5V Output Vcc (+5V) Analog voltage out Ground (-) 14

Nach erfolgreichem Flash-Vorgang, Serieller Monitor Starten und es werden die Roh-Werte von ANALOG-IN-A0 angezeigt: Wichtig bei der Serielle Übertragung ist die Auswahl der entsprechende Baudrate : Als externes serielles Kommunikationsprogramm kann auch HTerm verwendet werden Download: http://www.der-hammer.info/terminal/ 15

Wie in oberes Beispiel können auch der Temperatursensor LM35 und der Feuchtigkeitssensor HIH-4020 genauso bloß mit der richtige Verdrahtung (Vcc, Output, GND), siehe unten oder unter der Kapitel HW Ressourcen, verwendet werden. Da die Sensoren nicht viel Strom verbrauchen und um den Massenversatz zu vermeiden, sollten sie direkt von Arduino-Board versorget werden. +12V GND +5V Output - Temperatur-Sensor LM35 - Feuchtigkeit-Sensor Honeywell HIH-4020 16

Serial-LCD Referenz: https://www.sparkfun.com/tutorials/246 Auf der Homepage ist zu beachten, dass keine #include <SoftwareSerial.h> und SoftwareSerial myserial(3,2); nötig ind da das Arduino Mega extra (Hardware-seitig) serielle Schnittstelle TX und RX besitzt. In dem gesamten Beispiel-Code ist myserial mit Serial1 zu ersetzen, siehe unten im Code. +12V GND +5V Output Code-Beispiel: // SparkFun Serial LCD example 1 // Clear the display and say "Hello World!" void setup() { Serial1.begin(9600); // set up serial port for 9600 baud delay(500); // wait for display to boot up } void loop() { Serial1.write(254); // move cursor to beginning of first line Serial1.write(128); Serial1.write(" "); // clear display Serial1.write(" "); Serial1.write(254); // move cursor to beginning of first line Serial1.write(128); Serial1.write("Hello, world!"); while(1); // wait forever } Wetterstation Versuchen Sie jetzt Ihre eigene Wetterstation aufzubauen in dem Sie die Sensorwerte von den Temperatur- und Feuchtigkeitssensor an dem LCD-Display ausgeben. 17

Thermostat Mit den vorhandenen PC-Lüfter und der Motortreiber LN298N sind Sie in der Lage Ihre eigene Thermostat aufzubauen. Hier in Schaltung wird der PC-Lüfter als ein DC-Elektromotor abgebildet. Aufgrund der Beispielcodes sollten VCC(+) und GND(-) wie im Bild an den PC-Lüfter angeschlossen werden: +12V GND +5V Output Drehzahlgeber In den folgenden Code wird ein Drehzahlgeber dargestellt. Mit Hilfe der Werte von dem Potentiometer an den ADC-Eingang des Arduino-Boardes kann der Soll-Drehzahl der PC-Lüfter ermittelt und mittels PWM-Ausgang an Port 5 an den Motortreiber eingestellt werden. Die ermittelte Drehzahl wird an dem USB Serial-Com-Port ausgegeben. int enablemotor = 5; int in3 = 7; int in4 = 6; int Potentiometer = 0; int motorstep = 0; int motorspeed = 0; int ADCMax = 1023; int MotorspeedMax = 255; void setup() { Serial.begin(9600); // set all the motor control pins to outputs pinmode(enablemotor, OUTPUT); pinmode(in3, OUTPUT); pinmode(in4, OUTPUT); digitalwrite(in3, LOW); digitalwrite(in4, HIGH); void loop() { Potentiometer = analogread(0); motorspeed = Potentiometer/motorStep; if (motorspeed > MotorspeedMax) { motorspeed = MotorspeedMax; } if (motorspeed < 0) { motorspeed = 0; } analogwrite(enablemotor, motorspeed); Serial.print(" motorspeed: "); Serial.println(motorSpeed); } motorstep = ADCMax/MotorspeedMax; } Referenz: https://tronixlabs.com.au/news/tutorial-l298n-dual-motor-controller-module-2a-andarduino/ Versuchen Sie jetzt anhand des oberen Beispiels und den vorhandenen Temperatursensor Ihren eigenen Thermostat aufzubauen. 18

Bluetooth Bluetooth-Modul RN-42 +12V GND +5V Output ACHTUNG: Da hier unterschiedliche Versionen von Bluetooth-Modulen gibt, auf die Pinbelegung (Gnd -, VCC +, TX, RX) achten! Hier ist dieselbe Prinzip der seriellen Übertragung wie über USB-COM-Port oder Serial-LCD. Es ist zu beachten, dass das Bluetooth-Modul mit eine Baudrate von 115200 Baudrate arbeitet. Um die Sensordaten zusätzlich über den Bluetooth-Modul zu versenden muss das Modul wie oben angezeigt angeschlossen werden. Im Programmcode muss noch in setup Bereich die Serial2 initialisiert werden danach kann im loop Bereich die entsprechende Daten mit der Funktion Serial2.write(); übertragen werden. Um mit ein externes Gerät die Verbindung mit dem Bluetooth-Modul herzustellen muss man bei der Ankoppelung den Sicherheitscode 1234 eingeben. - Verbindung über Laptop: o Als serielle Kommunikationsprogramm kann HTerm verwendet werden Download: http://www.der-hammer.info/terminal/ - Verbindung über Android-Mobile: o Als serielle Kommunikationsapp kann Embedded System Design App verwendet werden Download: Unter https://www.hs-esslingen.de/de/mitarbeiter/mohammad-anuschefar.html Embedded_System_Design Lessons necessary Embedded System Design App Download 19

Embedded System Design Android-App App-Download unter https://www.hs-esslingen.de/de/mitarbeiter/mohammad-anuschefar.html Embedded_System_Design Lessons necessary Embedded System Design App Download Arduino-Code unter https://www.hs-esslingen.de/de/mitarbeiter/mohammad-anuschefar.html Embedded_System_Design Lessons necessary Arduino Download Arduino-Code SerialInOut_USB_Bluetooth.zip Android-Mobile: 20

21

22

23

24

25

Embedded System Design App starten: 26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

MATLAB/Simulink Installation-Guide Hinzufügen/Download von Arduino Library (Arduino support packages) - Im Labor: o http://www2.hsesslingen.de/~manusch/embedded_system_design/embedded_system_design_lab or/matlab/matlab_note_&_files.zip o Folgen Sie die Anweisungen in der Datei MATLAB_Note.txt - Auf privatrechnern: 52

MATLAB/Simulink - Getting Started (Modellbasiert) Blink LED Starten von Arduino Beispiele: 53

54

Unter Tutorials findet man eine Reihe von Beispielen die durch gearbeitet werden können und wir fangen gleich mit Getting Started with Arduino Hardware an (Blink LED) 55

Um den Beispiel durchzuführen muss man lediglich den unteren Anweisungen unter Task 3 - Create a Model for Arduino Hardware folgen 56

Man kann auch das Beispielprojekt direkt aufrufen 57

Für Änderungen an Parametern oder Einstellungen, mit Doppelklick auf den jeweiligen Block Um ein Projekt zu verifizieren kann man es simulieren Simulation starten Simulationszeit Simulation stoppen Durchgeführte Simulationszeit 58

Einen Blick auf die Model Configuration Parameters Erforderliche Konfigurationen sind unter Code Generation System target file: realtime.tlc und unter Run on Target Hardware Target hardware: das entsprechende Ziel-Hardware. In den Beispielen sind sie automatisch richtig eingestellt. 59

Das Projekt auf Arduino-Hardware zu flashen Deploy to Hardware 60

Bei erfolgreichen Flash-Vorgang: Versuchen Sie anhand des oberen Beispiels den Lauflicht/Ampelschaltung zu realisieren. 61

Arduino Library starten 62

ADC auslesen Da der ADC-Eingang ein uint16 Typ ist und die Serielle Ausgang uint8 braucht man hier gewisse Konvertierung. Als Lösungsvorschlag ADC_Serial.slx : http://www2.hs-esslingen.de/~manusch/matlab.html In Modell gibt es den Block calc uint16 to uint8 der genau zu diesem Zweck dient. 63

External-Mode (Online Calibration) In Simulink gibt es zusätzlich die Funktion External-Mode die dazu dient um Online-Calibration durchzuführen. D.h. es wird ein spezieller Code-Version mit bestimmte Schnittstellen generiert womit man während der Laufzeit Überwachen und Parametern ändern kann. Da diese Funktion auf die USB-Schnittstelle zugreift, darf die serielle Schnittstelle an USB nicht in Modell verwendet werden. Als Ansatz ADC_OnlineCalib.slx : http://www2.hs-esslingen.de/~manusch/matlab.html 64

65

66

67

68

69

Versuchen Sie jetzt anhand der Beispiele die Übungen Wetterstation und Thermostat modellbasiert in Simulink zu realisieren. 70