Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Programmieren in C / C++ Software Serial, Bluetooth

Ähnliche Präsentationen


Präsentation zum Thema: "Programmieren in C / C++ Software Serial, Bluetooth"—  Präsentation transkript:

1 Programmieren in C / C++ Software Serial, Bluetooth
Hochschule Fulda – FB AI Sommersemester 2017 Peter Klingebiel, HS Fulda, FB AI

2 Software Serial 1 viele an Microcontroller angeschlossene Geräte kommunizieren mittels serieller Schnittstelle z.B. GPS, WiFi, Bluetooth, … Beispiel: Arduino UNO und Adafruit GPS Modul Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

3 Software Serial 2 Problem: viele Microcontroller bieten nur eine serielle Schnittstelle an, z.B UNO, Nano usw. diese wird meist über die USB-Schnittstelle angesteuert und zum Flashen der Programme sowie zur Kommunikation über den seriellen Monitor verwendet. Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

4 Software Serial 3 Lösung: serielle Schnittstelle mittels Software realisieren  Software Serial die Arduino-Klasse SoftwareSerial implementiert eine funktionale serielle Schnittstelle mit einigen wenigen Einschränkungen (siehe Doku) benötigt werden zwei digitale Pins: ein Receiver-Pin (RX) und ein Transmitter-Pin (TX) #include <SoftwareSerial.h> #define RXPin 2 // Receiver Pin #define TXPin 3 // Transmitter Pin // Instantiierung eines Objekts SoftwareSerial mySerial = SoftwareSerial(RXPin, TXPin); Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

5 Software Serial 4 weitere Kommunikation: // in setup()  initialisieren mySerial.begin(9600); // in loop()  kommunizieren char c; // solange Daten anliegen while(mySerial.available()) { // ein Zeichen lesen c = mySerial.read(); // und verarbeiten handle(c); } Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

6 Bluetooth Bluetooth  Industriestandard für Datenübertragung zwischen Geräten über kurze Distanzen per Funk nutzt das 2.4 GHz-Band (wie WiFi) standardisiert gemäß IEEE durch die Bluetooth Special Interest Group (SIG) enstanden in den 1990er Jahren um kabelbasierte durch kabellose Verbindungen zu ersetzen 1999 Bluetooth 1.0 – erste standardisierte Version Empfang bis kBit/s, Senden bis 57.6 kBit/s 2004 Bluetooth 2.0-EDR – bis zu 2.1 Mbit/s ab 2009 Bluetooth 4.0 – BLE (Low Energy) ab 2014 Bluetooth 4.2 (Sicherheit , Bandbreite ) Ab 2016: Bluetooth 5.0 (Reichweite , Bandbreite ) Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

7 Bluetooth 2 48 Bit MAC-Adresse, Form: xx:xx.xx:xx:xx
Reichweiten und Leistungen Master-Slave Konzept Master: inquiry message, danach page message Slave: sendet Adresse und Namen, dann pairing BLE lässt auch verbindungslosen Betrieb zu BT: bis zu 7 Verbindungen gleichzeitig BT-Netze - Piconet Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

8 Bluetooth 3 Bluetooth für Arduino über BT-Module
z.B. von adafruit, Sparkfun u.v.a.m. preisgünstige Module z.B. HC-05, HC-06, HM-10 BLE HC-05: BT classic, serielle Verbindung, Master und Slave HC-06: BT classic, serielle Verbindung, nur Slave Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

9 Bluetooth 4 Verbindung Nano mit HC-06
Module: 3.3 Volt-Level (Spannungsteiler bei Receive RX!) Nano-TX-Pin  BT-RX und Nano RX-Pin  BT-TX Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

10 Bluetooth Programmierung mittels Software Serial #include <SoftwareSerial.h> #define RXPin // pin d2 -> txd #define TXPin // pin d3 -> rxd SoftwareSerial btSerial(RXPin, TXPin); void setup() { Serial.begin(9600); btSerial.begin(9600); } void loop() { while(Serial.available() > 0) btSerial.write(Serial.read()); while(btSerial.available() > 0) Serial.write(btSerial.read()); } Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

11 Bluetooth 6 1. Schritt: Koppeln mit Windows (z.B. Windows 8.1)
PC-Einstellungen  PC und Geräte  Bluetooth BT-Device auswählen und Koppeln (pairing) HC: Standard Kode 1234 HC: Standard Baudrate 9600 rote und blaue LEDs am Modul blinken HC ist nach Koppeln noch nicht verbunden! 2. Schritt: Verbindung mit HC-Modul COM-Port des HC-Moduls ermitteln (aus BT-Eigenschaften ermitteln oder mit Arduino Monitor / putty o.ä. ausprobieren) Aufbau einer (seriellen) Verbindung zum HC-Modul z.B. mit putty: Serial, Baudrate (Speed) auf 9600 und COM-Port (Serial Line) auswählen und verbinden rote und blaue LEDs leuchten dauerhaft Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

12 Bluetooth 7 HC-Module werden mit AT-Kommandos konfiguriert
Format: AT bzw. AT+KOMMANDO einige wichtige AT-Kommandos AT // Testkommando  OK AT+VERSION // -> Version der Firmware AT+NAMEname // Name name setzen  OKsetname AT+PINpin // PIN pin setzen  OKsetPIN AT+BAUDbaud // Baudrate default 4=9600 Konfigurieren: HC-Modul nicht verbinden, direkt über den Arduino Monitor mit Modul kommunizieren, auf Baudrate und Linedisziplin achten, evtl. ausprobieren. HC-Module: viele verschiedene Hersteller mit oft unterschiedlicher Firmware und AT-Kommandos Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

13 Bluetooth einfaches Beispiel: Schalten einer LED #define LEDPin 6 // LED an Pin 6 int led = LOW; // Zustand der LED void setup() { pinMode(LEDPin, OUTPUT); } void loop() { while(btSerial.available() > 0) { char c = btSerial.read(); if(c == ’#’) digitalWrite(LEDPin, led = !led); } } Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

14 Bluetooth Weiteres einfaches Beispiel: Schalten einer LED mittels Android-App App-Entwicklung mit MITs APP-Inventor  ai2.appinventor.mit.edu vor Nutzung ist Anmeldung erforderlich Aufbau der App Label: Titel Button: BT Select Button: LED On/Off Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

15 Bluetooth 10 Ansicht App-Inventor Designer
Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

16 Bluetooth 11 Ansicht App-Inventor Blocks
Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

17 Bluetooth 12 Erweiterung: Schrittzähler schaltet LED
Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI

18 Bluetooth 11 … in der Ansicht App-Inventor Blocks
Programmieren in C / C++ - Peter Klingebiel - HS Fulda - FB AI


Herunterladen ppt "Programmieren in C / C++ Software Serial, Bluetooth"

Ähnliche Präsentationen


Google-Anzeigen