SlideShare ist ein Scribd-Unternehmen logo
Insert Speaker Name9/29/15
Arduino Zero Pro und Bluetooth LE -
Neues für Elektroniker
Tam HANNA w/ Annette Heidi BOSBACH
New Technologies
About /me
●
Tam HANNA
– CEO, Tamoggemon
Holding k.s.
NICHT abschreiben!
● Folien warten unter
– http://www.tamoggemon.com/cota.pdf
● Fotos auf Twitter, etc – JA BITTE
● @tamhanna
Was gibt's heute?
● Arduino Zero / Zero Pro
● Bluetooth LE
● iBeacons
● Ein kleines Helferlein
Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015
Ausgangssituation
● AVR-Architektur an Wachstumsgrenze
– Ist nur ein 8-bitter
– “Maturing market”
● Problem: neue Hardware ist inkompatibel
– Kombinatorischer Prozessrechner
– Beschränkung auf Wirsing-API
Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015
Kleine Gegenüberstellung
UnoUno ZeroZero
2KB RAM 32KB RAM
Dediziertes Flash Emuliertes Flash
PWM DAC
5V Signalspannung NUR 3V3
XX MhZ AVR-CPU 48 MhZ ARM-CPU
Echte Spannungsausgabe
void setup() {
analogWriteResolution(10);
}
void loop() {
analogWrite(A0,0);
analogWrite(A0,1024/2);
analogWrite(A0,1024;
analogWrite(A0,1024/2);
analogWrite(A0,0);
}
Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015
Echtzeituhr zu Diensten
● Läuft im Sleep-Mode weiter
– Lässt sich zum Aufwecken der MCU einspannen
● KEINE Pufferbatterie
– Zeit geht verloren, wenn keine Energie vorhanden
● Fertige Bibliothek
– https://www.arduino.cc/en/Reference/RTC
– Beispiel via Arturo Guadalupi
#include <RTCZero.h>
/* Create an rtc object */
RTCZero rtc;
void setup()
{
Serial.begin(9600);
rtc.begin(H24); // initialize RTC 24H format. The dual option is H12
rtc.setTime(hours, minutes, seconds);
rtc.setDate(day, month, year);
}
void loop()
{
Serial.print(rtc.getDay());
Serial.print(rtc.getMonth());
Serial.print(rtc.getYear());
Serial.print(rtc.getHours());
Serial.print(rtc.getMinutes());
Serial.print(rtc.getSeconds());
}
Debuggen ist haarig
● Arduino-IDE kann es (noch) nicht
– Wird es mE nach auch nie können
● Kombination aus zwei Windows-Programmen
– Embedded Visual Studio 2010
● Installation SEHR komplex
– http://www.heise.de/developer/artikel/Review-Ein-
Blick-auf-den-Arduino-Zero-2749795.html
Vielfalt ist schön!
● Arduino.org
– M0 OHNE EDBG, OHNE USB2
● Leider noch nicht erhältlich ;)
– M0 Pro mit EDBG
● Arduino.cc
– Nur mit EDBG
Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015
TAMHAN ist B.Ö.S.E (c)
● Lösung: Annette Systems ErsBöserTam
● Spielt Snup Tok – Ana Si Sayed
● Sprachformat: XML
Antrag bei Bluetooth SIG
● Ich möchte Profil “Bestrafungsgerät”
● Antrag wird geprüft...
Antrag bei Bluetooth SIG
● Ich möchte Profil “Bestrafungsgerät”
● Antrag wird geprüft...leider nein...
Antrag bei Bluetooth SIG
● Ich möchte Profil “Bestrafungsgerät”
● Antrag wird geprüft...leider nein...
– FAUCHUSbösesKITTEN
– Spielt DJ Shadow – Organ Donor
– Sprachformat CSV
Bluetooth LE / Bluetooth Smart
● Physikalisch mit Bluetooth verwandt
– Frequenzhopping, Profile etc
● Technisch anders
– Für IoT vorgesehen
– Geringer Stromverbrauch
– Sehr geringe Latenz, “bursty transmissions”
– Geringe Komplexität (wo möglich)
Normatives
● Von der Bluetooth SIG betreuter Standard
● Offizielle Spezifikationen kostenlos
● https://www.bluetooth.org/en-
us/specification/adopted-specifications
Mind the GAP!
● Generic Access Profile
● Legt Geräterollen fest
– PERIPHERAL: IoT-”Gadget”, passiv
– CENTRAL: Smartphone, etc
Ich lebe!
● Peripheriegerät sendet regelmäßig Pakete aus
– Advertising Interval
● Kann bis zu 31 Bytes an “Nutzdaten” tragen
● Optional: Scan Response Request
– Von Central an Peripheral
– Peripheral kann auch hier antworten
Eine Frage der Frequenz
● Senden von Daten braucht Strom
● Permanentes Senden: leerer Akku
● Seltenes Senden führt zu Latenz
I got a GATT!
● Generic ATTribute profile
– Folgt auf Verbindungsaufbau
– Exklusiv: pro Peripheral immer nur ein Center
● “KV-Speicher” des Bluetooth LE
– GATT Server: Peripheral, hält Daten
– GATT Client: Sendet Anfragen nach Daten
Profile
● Profil: Sammlung von KV-Speicherschemata
● Willst du X bauen, so tue Y
– Batteriestatus
– Blutdruckmesser
– Uhrzeit
– Etc
● https://developer.bluetooth.org/TechnologyOver
view/Pages/Profiles.aspx#GATT
Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015
Services
● KV-Speicherschema
● Wie speichere ich meine Daten?
● https://developer.bluetooth.org/gatt/services/Pa
ges/ServicesHome.aspx
Characteristics
● Eine Art KV-Speicher
● Schreiben und Lesen möglich
● https://developer.bluetooth.org/gatt/characteristi
cs/Pages/CharacteristicsHome.aspx
“Serial Characteristics”
● In China populäre “Einfach-Implementierung”
● Characteristic 1: Eingang
– Daten seriell raus
● Characteristic 2: Ausgang
– Daten seriell rein
● Geschriebene bzw eingelesene Daten
– Achtung: maximale Paketlänge!
Futter für Prozessrechner
● Transistor, Diode und Antenne bleiben daheim
– Bekannte wollte BT 1.0 implementieren
– Arbeitet immer noch daran
● Fertige Module im Angebot
– Fragen Sie ihren Distributor
HM-Serie
● Chinesischer Hersteller mit TI-IS
● Preiswert
● Agieren als Master und Slave
● ABER
– Firmware oft fehlerhaft
– Support extrem arrogant
– Dokumentation mangelhaft
Nordic Semicon (nRF)
● Bekannter Hersteller mit gutem Support
● ABER
– Module teuer
– Teilweise auf “Client”-Rolle beschränkt
– Lies kein P2P
– nRF8001 ist veraltet
Wie kommuniziere ich damit?
● Elektronische Verbindung
– UART (klassisch seriell)
– SPI
● Befehle kommen in Form von AT-Commands
– Von Modems bekannter Standard
Wie kommuniziere ich damit? - II
● Kommandos beginnen mit AT; enden mit Return
● Verkettung mit ;
– AT+CMGL;AT+CGMI<CR> ist FALSCH
● ? bedeutet: Anfrage
– AT+BAUD?
● Genaue Syntax => Datenblatt
Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015
Navigiere indoors
● GLONASS / GPS: geht schlecht
● Inertialnavigation: aufwändig
● Lösung: “Dreieckspeilung” ala Apple
– Nah
– Mittel
– Weit
Erweitere Bekanntes
● Bluetooth LE und GATT liefern “alles”
● Beacon: sendet Advertisements
Via http://www.warski.org/blog/2014/01/how-ibeacons-work/
Module können es selbst
● Manuelles Programmieren oft unnötig
● Beispiel JNHuaMao HM10/HM11
– Firmwareupgrade erforderlich
– Funktioniert “teilweise”
Androider Beacon
● Android 4.2, 4.3
– BT-Stack stürzt wegen “Overload” ab
● Android ab incl. 4.4
– Empfängt Signale
● Android ab 5.0
– Vollwertiges Beacon
Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015
Oszillographen sind zweitrangig
● Oszi: “abbildendes Gerät”
– Stellt Wellenform genauestmöglich dar
– WIE wird geredet (Kisuaheli? Alttalmudisch?)
● Logikanalysator: “analysierendes Gerät”
– Zeigt Kommunikation auf Paketebene
– WAS sogt a, da' Rasta?
Para yok!
● AliExpress
● Ab rund 25 Euro
● Rentiert sich
WIRKLICH
Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015
Thanks !
?!? - !?!
tamhan@tamoggemon.com
@tamhanna
Pictures from : Drew Jacksich,Martin
Lewison, Derek Grossman;
via Wikimedia Commons

Weitere ähnliche Inhalte

Ähnlich wie Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015

Drahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittDrahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen Schritt
Falk Hartmann
 
Arduino programmierhandbuch
Arduino programmierhandbuchArduino programmierhandbuch
Arduino programmierhandbuch
BustedDice
 
Produkt-Flyer YADE - Board
Produkt-Flyer  YADE - BoardProdukt-Flyer  YADE - Board
Produkt-Flyer YADE - Board
Daniela Palombo
 
Tk roadschow-ipmi-pdeneu
Tk roadschow-ipmi-pdeneuTk roadschow-ipmi-pdeneu
Tk roadschow-ipmi-pdeneu
Werner Fischer
 
Industry 4.0 in a box
Industry 4.0 in a boxIndustry 4.0 in a box
Industry 4.0 in a box
Tillmann Eitelberg
 
Smart Home - 10 Jahre danach
Smart Home - 10 Jahre danachSmart Home - 10 Jahre danach
Smart Home - 10 Jahre danach
Martin Gutenbrunner
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk Backbones
Maximilian Wilhelm
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk Backbones
Maximilan Wilhelm
 
Out-of-Band-Management für APU-Boards
Out-of-Band-Management für APU-BoardsOut-of-Band-Management für APU-Boards
Out-of-Band-Management für APU-Boards
Maximilan Wilhelm
 
CW Contest with N1MM by DK8EY R09 Neanderthal
CW Contest with N1MM by DK8EY R09 NeanderthalCW Contest with N1MM by DK8EY R09 Neanderthal
CW Contest with N1MM by DK8EY R09 Neanderthal
Christoph Huetten
 
Atmel AVR RISC μC unter GNU/Linux programmieren
Atmel AVR RISC μC unter GNU/Linux programmierenAtmel AVR RISC μC unter GNU/Linux programmieren
Atmel AVR RISC μC unter GNU/Linux programmieren
rzbrk
 
Raspberry Pi im Embedded Testing - „tool“ oder „toy“?
Raspberry Pi im Embedded Testing - „tool“ oder „toy“?Raspberry Pi im Embedded Testing - „tool“ oder „toy“?
Raspberry Pi im Embedded Testing - „tool“ oder „toy“?
Michel Lawaty
 
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Maximilan Wilhelm
 
Raspberry Pi - Einführung und Beispielprojekte
Raspberry Pi - Einführung und BeispielprojekteRaspberry Pi - Einführung und Beispielprojekte
Raspberry Pi - Einführung und Beispielprojekte
Peter Eulberg
 
IT meets BBQ 2014: MobyDick meets snom
IT meets BBQ 2014: MobyDick meets snomIT meets BBQ 2014: MobyDick meets snom
IT meets BBQ 2014: MobyDick meets snom
pascom
 
Neuigkeiten von Westermos Betriebssystem WeOS 4.28
Neuigkeiten von Westermos Betriebssystem WeOS 4.28Neuigkeiten von Westermos Betriebssystem WeOS 4.28
Neuigkeiten von Westermos Betriebssystem WeOS 4.28
Westermo Network Technologies
 
Firewall.pdf
Firewall.pdfFirewall.pdf

Ähnlich wie Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015 (20)

Drahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen SchrittDrahtwanderung: Wir machen den NeXTen Schritt
Drahtwanderung: Wir machen den NeXTen Schritt
 
Feature satip4
Feature satip4Feature satip4
Feature satip4
 
Arduino programmierhandbuch
Arduino programmierhandbuchArduino programmierhandbuch
Arduino programmierhandbuch
 
Produkt-Flyer YADE - Board
Produkt-Flyer  YADE - BoardProdukt-Flyer  YADE - Board
Produkt-Flyer YADE - Board
 
Tk roadschow-ipmi-pdeneu
Tk roadschow-ipmi-pdeneuTk roadschow-ipmi-pdeneu
Tk roadschow-ipmi-pdeneu
 
Industry 4.0 in a box
Industry 4.0 in a boxIndustry 4.0 in a box
Industry 4.0 in a box
 
Smart Home - 10 Jahre danach
Smart Home - 10 Jahre danachSmart Home - 10 Jahre danach
Smart Home - 10 Jahre danach
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk Backbones
 
Software Defined Freifunk Backbones
Software Defined Freifunk BackbonesSoftware Defined Freifunk Backbones
Software Defined Freifunk Backbones
 
Out-of-Band-Management für APU-Boards
Out-of-Band-Management für APU-BoardsOut-of-Band-Management für APU-Boards
Out-of-Band-Management für APU-Boards
 
CW Contest with N1MM by DK8EY R09 Neanderthal
CW Contest with N1MM by DK8EY R09 NeanderthalCW Contest with N1MM by DK8EY R09 Neanderthal
CW Contest with N1MM by DK8EY R09 Neanderthal
 
Atmel AVR RISC μC unter GNU/Linux programmieren
Atmel AVR RISC μC unter GNU/Linux programmierenAtmel AVR RISC μC unter GNU/Linux programmieren
Atmel AVR RISC μC unter GNU/Linux programmieren
 
Raspberry Pi im Embedded Testing - „tool“ oder „toy“?
Raspberry Pi im Embedded Testing - „tool“ oder „toy“?Raspberry Pi im Embedded Testing - „tool“ oder „toy“?
Raspberry Pi im Embedded Testing - „tool“ oder „toy“?
 
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
Wie baue ich ein Freifunkbackbone - Was wir in den letzten 5 Jahren gelernt h...
 
Raspberry Pi - Einführung und Beispielprojekte
Raspberry Pi - Einführung und BeispielprojekteRaspberry Pi - Einführung und Beispielprojekte
Raspberry Pi - Einführung und Beispielprojekte
 
Open source hardware
Open source hardwareOpen source hardware
Open source hardware
 
Jtag
JtagJtag
Jtag
 
IT meets BBQ 2014: MobyDick meets snom
IT meets BBQ 2014: MobyDick meets snomIT meets BBQ 2014: MobyDick meets snom
IT meets BBQ 2014: MobyDick meets snom
 
Neuigkeiten von Westermos Betriebssystem WeOS 4.28
Neuigkeiten von Westermos Betriebssystem WeOS 4.28Neuigkeiten von Westermos Betriebssystem WeOS 4.28
Neuigkeiten von Westermos Betriebssystem WeOS 4.28
 
Firewall.pdf
Firewall.pdfFirewall.pdf
Firewall.pdf
 

Mehr von AboutYouGmbH

Tech talk 01.06.2017
Tech talk 01.06.2017Tech talk 01.06.2017
Tech talk 01.06.2017
AboutYouGmbH
 
Retention Strategies in Mobile E-Commerce
Retention Strategies in Mobile E-CommerceRetention Strategies in Mobile E-Commerce
Retention Strategies in Mobile E-Commerce
AboutYouGmbH
 
Rethinking Fashion E-Commerce
Rethinking Fashion E-CommerceRethinking Fashion E-Commerce
Rethinking Fashion E-Commerce
AboutYouGmbH
 
ABOUT YOU get on board
ABOUT YOU get on boardABOUT YOU get on board
ABOUT YOU get on board
AboutYouGmbH
 
Niels Leenheer - Weird browsers - code.talks 2015
Niels Leenheer - Weird browsers - code.talks 2015Niels Leenheer - Weird browsers - code.talks 2015
Niels Leenheer - Weird browsers - code.talks 2015
AboutYouGmbH
 
Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....
Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....
Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....
AboutYouGmbH
 
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
AboutYouGmbH
 
Lars Jankowfsky - Learn or Die - code.talks 2015
Lars Jankowfsky - Learn or Die - code.talks 2015Lars Jankowfsky - Learn or Die - code.talks 2015
Lars Jankowfsky - Learn or Die - code.talks 2015
AboutYouGmbH
 
Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...
Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...
Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...
AboutYouGmbH
 
Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...
Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...
Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...
AboutYouGmbH
 
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
AboutYouGmbH
 
Kai Voigt - Big Data zum Anfassen - code.talks 2015
Kai Voigt - Big Data zum Anfassen - code.talks 2015Kai Voigt - Big Data zum Anfassen - code.talks 2015
Kai Voigt - Big Data zum Anfassen - code.talks 2015
AboutYouGmbH
 
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
AboutYouGmbH
 
Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller...
Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller...Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller...
Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller...
AboutYouGmbH
 
Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Wolfram Kriesing - EcmaScript6 for real - code.talks 2015Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
AboutYouGmbH
 
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
 Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c... Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
AboutYouGmbH
 
Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015
 Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015 Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015
Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015
AboutYouGmbH
 
Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ...
 Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ... Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ...
Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ...
AboutYouGmbH
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
AboutYouGmbH
 
Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal...
 Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal... Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal...
Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal...
AboutYouGmbH
 

Mehr von AboutYouGmbH (20)

Tech talk 01.06.2017
Tech talk 01.06.2017Tech talk 01.06.2017
Tech talk 01.06.2017
 
Retention Strategies in Mobile E-Commerce
Retention Strategies in Mobile E-CommerceRetention Strategies in Mobile E-Commerce
Retention Strategies in Mobile E-Commerce
 
Rethinking Fashion E-Commerce
Rethinking Fashion E-CommerceRethinking Fashion E-Commerce
Rethinking Fashion E-Commerce
 
ABOUT YOU get on board
ABOUT YOU get on boardABOUT YOU get on board
ABOUT YOU get on board
 
Niels Leenheer - Weird browsers - code.talks 2015
Niels Leenheer - Weird browsers - code.talks 2015Niels Leenheer - Weird browsers - code.talks 2015
Niels Leenheer - Weird browsers - code.talks 2015
 
Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....
Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....
Dennis Benkert & Matthias Lübken - Patterns in a containerized world? - code....
 
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
Stefan Richter - Writing simple, readable and robust code: Examples in Java, ...
 
Lars Jankowfsky - Learn or Die - code.talks 2015
Lars Jankowfsky - Learn or Die - code.talks 2015Lars Jankowfsky - Learn or Die - code.talks 2015
Lars Jankowfsky - Learn or Die - code.talks 2015
 
Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...
Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...
Dr. Jeremias Rößler - Wenn Affen Testen - Das Ende der Bananensoftware - code...
 
Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...
Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...
Zeljko Kvesic - Scrum in verteilten Teams / Agil über die Landesgrenzen - cod...
 
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
Uwe Friedrichsen - CRDT und mehr - über extreme Verfügbarkeit und selbstheile...
 
Kai Voigt - Big Data zum Anfassen - code.talks 2015
Kai Voigt - Big Data zum Anfassen - code.talks 2015Kai Voigt - Big Data zum Anfassen - code.talks 2015
Kai Voigt - Big Data zum Anfassen - code.talks 2015
 
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
Dr. Andreas Lattner - Aufsetzen skalierbarer Prognose- und Analysedienste mit...
 
Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller...
Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller...Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller...
Marcel Hild - Spryker (e)commerce framework als Alternative zu traditioneller...
 
Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Wolfram Kriesing - EcmaScript6 for real - code.talks 2015Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
Wolfram Kriesing - EcmaScript6 for real - code.talks 2015
 
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
 Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c... Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
Stefanie Grewenig & Johannes Thönes - Internet ausdrucken mit JavaScript - c...
 
Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015
 Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015 Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015
Alex Korotkikh - From 0 to N: Lessons Learned - code.talks 2015
 
Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ...
 Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ... Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ...
Christian Haider & Helge Nowak - Mehr Demokratie durch Haushaltstransparenz ...
 
Bernhard Wick - appserver.io - code.talks 2015
 Bernhard Wick - appserver.io - code.talks 2015 Bernhard Wick - appserver.io - code.talks 2015
Bernhard Wick - appserver.io - code.talks 2015
 
Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal...
 Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal... Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal...
Moritz Siuts & Robert von Massow - Data Pipeline mit Apache Kafka - code.tal...
 

Tam Hanna & Annette Heidi Bosbach - Arduino Zero Pro und Bluetooth LE - code.talks 2015

  • 1. Insert Speaker Name9/29/15 Arduino Zero Pro und Bluetooth LE - Neues für Elektroniker Tam HANNA w/ Annette Heidi BOSBACH New Technologies
  • 2. About /me ● Tam HANNA – CEO, Tamoggemon Holding k.s.
  • 3. NICHT abschreiben! ● Folien warten unter – http://www.tamoggemon.com/cota.pdf ● Fotos auf Twitter, etc – JA BITTE ● @tamhanna
  • 4. Was gibt's heute? ● Arduino Zero / Zero Pro ● Bluetooth LE ● iBeacons ● Ein kleines Helferlein
  • 6. Ausgangssituation ● AVR-Architektur an Wachstumsgrenze – Ist nur ein 8-bitter – “Maturing market” ● Problem: neue Hardware ist inkompatibel – Kombinatorischer Prozessrechner – Beschränkung auf Wirsing-API
  • 8. Kleine Gegenüberstellung UnoUno ZeroZero 2KB RAM 32KB RAM Dediziertes Flash Emuliertes Flash PWM DAC 5V Signalspannung NUR 3V3 XX MhZ AVR-CPU 48 MhZ ARM-CPU
  • 9. Echte Spannungsausgabe void setup() { analogWriteResolution(10); } void loop() { analogWrite(A0,0); analogWrite(A0,1024/2); analogWrite(A0,1024; analogWrite(A0,1024/2); analogWrite(A0,0); }
  • 11. Echtzeituhr zu Diensten ● Läuft im Sleep-Mode weiter – Lässt sich zum Aufwecken der MCU einspannen ● KEINE Pufferbatterie – Zeit geht verloren, wenn keine Energie vorhanden ● Fertige Bibliothek – https://www.arduino.cc/en/Reference/RTC – Beispiel via Arturo Guadalupi
  • 12. #include <RTCZero.h> /* Create an rtc object */ RTCZero rtc; void setup() { Serial.begin(9600); rtc.begin(H24); // initialize RTC 24H format. The dual option is H12 rtc.setTime(hours, minutes, seconds); rtc.setDate(day, month, year); }
  • 14. Debuggen ist haarig ● Arduino-IDE kann es (noch) nicht – Wird es mE nach auch nie können ● Kombination aus zwei Windows-Programmen – Embedded Visual Studio 2010 ● Installation SEHR komplex – http://www.heise.de/developer/artikel/Review-Ein- Blick-auf-den-Arduino-Zero-2749795.html
  • 15. Vielfalt ist schön! ● Arduino.org – M0 OHNE EDBG, OHNE USB2 ● Leider noch nicht erhältlich ;) – M0 Pro mit EDBG ● Arduino.cc – Nur mit EDBG
  • 17. TAMHAN ist B.Ö.S.E (c) ● Lösung: Annette Systems ErsBöserTam ● Spielt Snup Tok – Ana Si Sayed ● Sprachformat: XML
  • 18. Antrag bei Bluetooth SIG ● Ich möchte Profil “Bestrafungsgerät” ● Antrag wird geprüft...
  • 19. Antrag bei Bluetooth SIG ● Ich möchte Profil “Bestrafungsgerät” ● Antrag wird geprüft...leider nein...
  • 20. Antrag bei Bluetooth SIG ● Ich möchte Profil “Bestrafungsgerät” ● Antrag wird geprüft...leider nein... – FAUCHUSbösesKITTEN – Spielt DJ Shadow – Organ Donor – Sprachformat CSV
  • 21. Bluetooth LE / Bluetooth Smart ● Physikalisch mit Bluetooth verwandt – Frequenzhopping, Profile etc ● Technisch anders – Für IoT vorgesehen – Geringer Stromverbrauch – Sehr geringe Latenz, “bursty transmissions” – Geringe Komplexität (wo möglich)
  • 22. Normatives ● Von der Bluetooth SIG betreuter Standard ● Offizielle Spezifikationen kostenlos ● https://www.bluetooth.org/en- us/specification/adopted-specifications
  • 23. Mind the GAP! ● Generic Access Profile ● Legt Geräterollen fest – PERIPHERAL: IoT-”Gadget”, passiv – CENTRAL: Smartphone, etc
  • 24. Ich lebe! ● Peripheriegerät sendet regelmäßig Pakete aus – Advertising Interval ● Kann bis zu 31 Bytes an “Nutzdaten” tragen ● Optional: Scan Response Request – Von Central an Peripheral – Peripheral kann auch hier antworten
  • 25. Eine Frage der Frequenz ● Senden von Daten braucht Strom ● Permanentes Senden: leerer Akku ● Seltenes Senden führt zu Latenz
  • 26. I got a GATT! ● Generic ATTribute profile – Folgt auf Verbindungsaufbau – Exklusiv: pro Peripheral immer nur ein Center ● “KV-Speicher” des Bluetooth LE – GATT Server: Peripheral, hält Daten – GATT Client: Sendet Anfragen nach Daten
  • 27. Profile ● Profil: Sammlung von KV-Speicherschemata ● Willst du X bauen, so tue Y – Batteriestatus – Blutdruckmesser – Uhrzeit – Etc ● https://developer.bluetooth.org/TechnologyOver view/Pages/Profiles.aspx#GATT
  • 29. Services ● KV-Speicherschema ● Wie speichere ich meine Daten? ● https://developer.bluetooth.org/gatt/services/Pa ges/ServicesHome.aspx
  • 30. Characteristics ● Eine Art KV-Speicher ● Schreiben und Lesen möglich ● https://developer.bluetooth.org/gatt/characteristi cs/Pages/CharacteristicsHome.aspx
  • 31. “Serial Characteristics” ● In China populäre “Einfach-Implementierung” ● Characteristic 1: Eingang – Daten seriell raus ● Characteristic 2: Ausgang – Daten seriell rein ● Geschriebene bzw eingelesene Daten – Achtung: maximale Paketlänge!
  • 32. Futter für Prozessrechner ● Transistor, Diode und Antenne bleiben daheim – Bekannte wollte BT 1.0 implementieren – Arbeitet immer noch daran ● Fertige Module im Angebot – Fragen Sie ihren Distributor
  • 33. HM-Serie ● Chinesischer Hersteller mit TI-IS ● Preiswert ● Agieren als Master und Slave ● ABER – Firmware oft fehlerhaft – Support extrem arrogant – Dokumentation mangelhaft
  • 34. Nordic Semicon (nRF) ● Bekannter Hersteller mit gutem Support ● ABER – Module teuer – Teilweise auf “Client”-Rolle beschränkt – Lies kein P2P – nRF8001 ist veraltet
  • 35. Wie kommuniziere ich damit? ● Elektronische Verbindung – UART (klassisch seriell) – SPI ● Befehle kommen in Form von AT-Commands – Von Modems bekannter Standard
  • 36. Wie kommuniziere ich damit? - II ● Kommandos beginnen mit AT; enden mit Return ● Verkettung mit ; – AT+CMGL;AT+CGMI<CR> ist FALSCH ● ? bedeutet: Anfrage – AT+BAUD? ● Genaue Syntax => Datenblatt
  • 38. Navigiere indoors ● GLONASS / GPS: geht schlecht ● Inertialnavigation: aufwändig ● Lösung: “Dreieckspeilung” ala Apple – Nah – Mittel – Weit
  • 39. Erweitere Bekanntes ● Bluetooth LE und GATT liefern “alles” ● Beacon: sendet Advertisements Via http://www.warski.org/blog/2014/01/how-ibeacons-work/
  • 40. Module können es selbst ● Manuelles Programmieren oft unnötig ● Beispiel JNHuaMao HM10/HM11 – Firmwareupgrade erforderlich – Funktioniert “teilweise”
  • 41. Androider Beacon ● Android 4.2, 4.3 – BT-Stack stürzt wegen “Overload” ab ● Android ab incl. 4.4 – Empfängt Signale ● Android ab 5.0 – Vollwertiges Beacon
  • 43. Oszillographen sind zweitrangig ● Oszi: “abbildendes Gerät” – Stellt Wellenform genauestmöglich dar – WIE wird geredet (Kisuaheli? Alttalmudisch?) ● Logikanalysator: “analysierendes Gerät” – Zeigt Kommunikation auf Paketebene – WAS sogt a, da' Rasta?
  • 44. Para yok! ● AliExpress ● Ab rund 25 Euro ● Rentiert sich WIRKLICH
  • 46. Thanks ! ?!? - !?! tamhan@tamoggemon.com @tamhanna Pictures from : Drew Jacksich,Martin Lewison, Derek Grossman; via Wikimedia Commons