GPN17:Badge: Unterschied zwischen den Versionen

aus dem Wiki des Entropia e.V., CCC Karlsruhe
K (→‎Software: Rechtschreibfehler)
 
(43 dazwischenliegende Versionen von 8 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=GPN: GulaschPushNotifier=
=GPN: GulaschPushNotifier=


Offizielle Seite des GPN Badges. Hier findest du im Vorfeld, aber auch wärend der GPN alle nötigen Informationen die du für dein Badge brauchst.
Offizielle Seite des GPN Badges. Hier findest du im Vorfeld, aber auch wärend der GPN alle nötigen Informationen die du für dein Badge brauchst.


==Idee==
{|
|{{Highlight|TEXT=[https://github.com/entropia/gpn17-badge GitHub-Repo]}}
|
{{Highlight|TEXT=[https://twitter.com/GPN17Badge Twitter]}}
|
{{Highlight|TEXT=[https://entropia.de/index.php?title=GPN17:Hack_the_Badge Wettbewerb: Hack the Badge]}}
|
{{Highlight|TEXT=[https://entropia.de/GPN17:Badge_Trade Trade your Badge]}}
|
|}


Im Januar dieses jahres hatten wir eines Abends den Einfall, das eine Badge für die GPN17 doch eine ganz gut Idee ist. Schon war das GPN-Badge geboren!
== Store ==


Nur was macht man als Badge? Die Frage haben wir uns auch gestellt und sind zu der Erkenntnis gekommen, dass ein Badge doch eigentlich "nur" ein Abzeichen/Ausweis/Namensschild ist und das GPN-Badge auch als dieses Funktionieren soll. Es soll dem Motto entsprechen, ein ansprechendes Design haben und dem gegenüber zum ausdruck bringen "Hallo mein Name ist und ich bin/war auf der GPN17!". Unter Berücksichtigung dieser Aspekte ist schon sehr bald eine Designidee entstanden.
Rom finden und veröffentlichen: https://badge.entropia.de/
 
Es soll eine Drone abbilden, eine Drone ähnlich wie die auf dem Plakat. Kurz darauf sind wir uns auch mit der Hardware einig geworden, es soll ein ESP8266 mit einem Display, Joystick und ein Paar weiteren Features werden.
 
In diesem Wikiartikel soll das Badge, so wie seine Funktionen beschrieben werden. Dazu wird es auch einen Technischen Wikiartikel geben, welcher mehr Informationen zum zum Badge enthällt.


==Features==
==Features==


[[Datei:31914472893_3146244dcd_o.jpg|300px|right]]  
[[Datei:31914472893_3146244dcd_o.jpg|300px|right]]  
Zeile 23: Zeile 27:


* Display
* Display
128x128 Pixel
**128x128 Pixel
LCD
**LCD
RGB565 (5 Bit Rot, 6 Bit Grün, 5 Bit Blau)
**RGB565 (5 Bit Rot, 6 Bit Grün, 5 Bit Blau)
* WLAN
* WLAN
802.11 b/g/n/e/i 2.4 GHz
**802.11 b/g/n/e/i 2.4 GHz
* Joystick
* Joystick
* 18659 LiIon Zelle
* 18650 Li-Ion Zelle
Mit Laderegler, Tiefen- und Überladeschutz
**Mit Laderegler, Tiefen- und Überladeschutz
* LED's (WS2813)
* LED's (WS2813)
**RGB, PWM-Frequenz ca. 19.7 kHz
* Vibrationsmotor
* Vibrationsmotor
Wir haben uns gegen einen Piepser und für einen Vibrationsmotor aus nerventechnischen Gründen entschieden ;)
* Onboard Programmer
** CP2102 UART Bridge


Außerdem verfügt es über zahlreiche Sensoren  
'''Sensoren'''


*Lichtsensor
*Lichtsensor
Analog LDR
**Analog LDR
*Temperatursensor
*9-Achs IMU
Analog NTC
**BNO055
*IMU
**3-Achs Gyro, Accelerometer und Kompass
MPU-6500
**Temperatursensor
SPI
Gyro und Accelerometer
*Alkoholsensor
*Alkoholsensor
MQ-3 oder MQ-303
**MQ-3
Messbereich 0~4.9‰
**Messbereich 0~4.9‰
**Misst Ethanol und ähnliche brennbare Flüssigkeiten in der Umgebungsluft
 
==Software==
 
Der ESP8266 verfügt über einen externen 8MB Flash. Von diesem kann der ESP (leider) zur Laufzeit nur 1MB adressieren, daher werden mehrere ROMs (13 ROMs a 512kB + ein Standard-ROM + Dateisystem) aufgespielt, welche durch den Bootloader ausgewählt werden können.
 
Die Grundfirmware ermöglicht es einen Username mit Animationen auf dem Display anzeigen zu lassen, dazu können die LEDs benutzt werden und Sensoren das ganze ein bisschen dynamischer machen. Ebenso besteht die Möglichkeit die so gennaten "GulaschPushNotifications" einzustellen. Durch diese wird das Badge vibrieren wenn bestimmt Ereignisse eintreffen, wie z.B. Es gibt Gulasch, Tschunk, Einen Talk, ... .
 
Im Weiteren wird es ROMs geben, welche über einen ROM-Store[1] direkt auf dem Badge Installiert werden können. Zu diesen gehören z.B. ein Pixelflutserver, ein Alkoholmess-ROM, ... .
 
Damit jeder weitere ROMs für das Badge schreiben kann stellen wir eine C-Datei zur verfügung, welche alle Funktionen als Beispiele enthällt. Über diese und dem gcc-xtensa oder der Arduino IDE mit ESP-Core lassen sich sehr einfach und schnell neue ROMs schreiben, kompilieren und hochladen. Fertige ROMs könnt Ihr uns auch gerne schicken, wir werden diese in den ROM-Store stellen.
 
 
[1] Den ROM-Store wird es natürlich nur auf der GPN17 (und eventuell auf Folgeevents) geben, jedoch lassen sie dich ROMs auch ohne diesen aufspielen, wir werden dafür entsprechende Infos/Tools ins Git packen.
 
=Hacking=
 
Unser Badge bietet bereits im "Auslieferungszustand" zahlreiche Möglichkeiten, mit neuer Software weitere Funktionen zu implementieren. Wem das nicht ausreicht oder genauere Doku braucht, findet sie hier.
 
==3D-Druck Addons==
Hier eine lose Sammlung von 3D-druckbaren Addons.
 
* [https://github.com/MaxRink/gpn-badge Steuerkreuz]
* [https://github.com/crackwitz/gpn17-badge-dpad DPAD]
* [https://www.thingiverse.com/thing:2360394 Case]
* [https://github.com/entropia/gpn17-badge/tree/master/hardware/3D/CAD/Alkoholsensor Alkoholsensorschnubbel]
 
==Elektronik Design==
 
 


==Fotos==
[[Datei:Screenshot_from_2017-04-19_02-52-47.png|600px|right]]


<gallery>
Hier erhälst du (hoffentlich) alle Infos die du brauchst um zu verstehen weshalb dein Badge macht, was es macht.
Datei:IMG_20170201_010254.jpg
{|
Datei:IMG_tiwr24.jpg
|{{Highlight|TEXT=[https://github.com/entropia/gpn17-badge/blob/master/hardware/gpn-badge-final.pdf Schaltplan]}}
Datei:31914472893 3146244dcd o.jpg
|
</gallery>
{{Highlight|TEXT=[https://github.com/entropia/gpn17-badge/blob/master/hardware/gpn-badge-draftman.pdf BOM]}}
|
|}


===Flash===
Der Flash ist via Dual SPI (DIO) am ESP angebunden. Dadurch ist er etwas langsamer, dafür stehen mehr GPIOs zur Verfügung.


==Software==
===ESP8266===


Der ESP8266 verfügt über einen externen 8MB Flash. Von diesem kann der ESP (leider) zur Laufzeit nur 1MB adressieren, daher werden mehrere ROM's (7 ROM's a 1MB + ein Standard-ROM) aufgespielt, welche durch den Bootloader ausgewählt werden können.
Der ESP ist so ziemlich in Grundbeschaltung. Die Quarzfrequenz beträgt 26MHz. Dinge, die man beim ESP in unserer Config beachten muss:
* GPIO


Die Grundfirmware ermöglicht es einen Username mit Animationen auf dem Display anzeigen zu lassen, dazu können die LED's benutzt werden und Sensoren das ganze ein bisschen dynamischer machen. Ebenso besteht die Möglichkeit die so gennaten "GulaschPushNotifications" einzustellen. Durch diese wird das Badge vibrieren wenn bestimmt Ereignisse eintreffen, wie z.B. Es gibt Gulasch, Tschunk, Einen Talk, ... .
===PCA9571 GPIO extender===
http://www.nxp.com/documents/data_sheet/PCA9571.pdf


Da der ESP8266 für unsere Anwendung viel zu wenige GPIO's hat, haben wir ihm via I2C um einen Portextender ergänzt.
Dieser fügt 8 weitere Digitalausgänge hinzu. Da diese Ausgänge sehr langsam sind, werden sie lediglich für Zeitunkritische Dinge verwendet,
z.B. Einschalten von Infrarot, Vibrationsmotor, Einschalten des MQ3 + 5V StepUp, Konfigurieren des Analog MUX.


Im Weiteren wird es ROM's geben, welche über einen ROM-Store[1] direkt auf dem Badge Installiert werden können. Zu diesen gehören z.B. ein Pixelflutserver, ein Alkoholmess-ROM, ... .
Einer der Ausgänge ist auf dem Expansion Header Verfügbar. Er sollte mit höchstens 4mA belastet werden.


Nach einem Poweron-Reset sind alle Ausgänge des PCA9571 auf High. Deshalb Vibriert z.B. das Badge beim Einschalten einen kurzen Moment, bis der ESP den Motor aktiv ausschaltet.


===CD4051 Analog MUX===
http://www.ti.com/lit/ds/symlink/cd4051b.pdf


Damit jeder weitere ROM's für das Badge schreiben kann stellen wir eine C-Datei zur verfügung, welche alle Funktionen als Beispiele enthällt. Über diese und dem gcc-xtensa oder der Arduino IDE mit ESP-Core lassen sich sehr einfach und schnell neue ROM's schreiben, kompilieren und hochladen. Fertige ROM's könnt Ihr uns auch gerne schicken, wir werden diese in den ROM-Store stellen.
Der ESP verfügt über lediglich einen 10bit ADC Eingang. Um dennoch mehrere analoge Eingäne verwenden zu können, ist ein externer MUX notwendig.  
Der MUX wird mit 3 Signalen binär konfiguriert. Diese 3 Signale stammen aus den 3 LSB des I2C expanders.


Der MUX braucht nach dem Umschalten min 5ms ehe der Ausgang stabil ist. Kürzeres warten führt zu falschen Messergebnissen.


[1] Den ROM-Store wird es natürlich nur auf der GPN17 (und eventuell auf Folgeevents) geben, jedoch lassen sie dich ROM's auch ohne diesen aufspielen, wir werden dafür entsprechende Infos/Tools ins Git packen.
===Bosch BNO055 IMU===
https://www.bosch-sensortec.com/bst/products/all_products/bno055
9-Achs IMU von Bosch, der über I2C am ESP angebunden ist. Liefert Orientierungsdaten in Quaternionen, Eulerwinkeln oder Vektoren.


==CAD==
===MQ3 Alkohol Sensor===
Das Badge verfügt über einen Alkohol Sensor. Da dieser 5V benötigt, verfügt das Badge außerdem über einen 5V StepUp.
Dieser muss zunächst mittels des Portexpanders eingeschalten werden. Die 5V sowie der Analogeingang für den MQ3 können natürlich auch für etwas anderes verwendet werden, z.B. zum Handy laden.
Max 500mA!


Im Git befinden sich STL und OpenSCAD Dateien für verschiedene Anwendungen am Badge.
===IR Sender und Emfpänger===
Das Badge verfügt über einen IR Sender und 38kHz Empfänger. Damit ist es zu den allermeisten IR-Fernbedienungen kompatibel.
Zu beachten ist, dass soch IR RX und TX die GPIOs des ESP mit USB Bitbang D+ und D- teilen. '''Zur Benutzung von USB sollte also unbedingt IR ausgeschalten sein!'''
Gesteuert wird dies über einen Pin des I2C expanders.


https://github.com/entropia/gpn17-badge/tree/master/CAD
===TP4056 Lade-IC===
Wenn ihr das Bdage über USb einsteckt - egal ob im Programmiermodus oder Bitbang - lädt der integrierte Lade-IC den 18650 Akku mit 500mA. Dies ist USB-Standardkonform und sollte jedes noch so gammilige USB Netzteil und Laptop schaffen. Wenn euch die 4h Ladezeit zu lange sind, könnt ihr (auf eigene Gefahr) den Lötjumper "1A" schließen. dadurch lädt das Badge doppelt so schnell mit 1A.


==Mitmachen==
==CAD==


Mitmachen ist ganz einfach, schaut im Git vorbei, dort sind Softwarebeispiele vorhanden, anhand dieser könnt Ihr eigene Software schreiben.
Im Git befinden sich STL und OpenSCAD Dateien für verschiedene Anwendungen am Badge, zum Beispiel ein Mundstück für den Alkoholsensor.


https://github.com/entropia/gpn17-badge  
https://github.com/entropia/gpn17-badge/tree/master/CAD


==FAQ==
==FAQ==
Bei weiteren Fragen, wende dich bitte an: https://twitter.com/GPN17Badge
Bei weiteren Fragen, wende dich bitte an: https://twitter.com/GPN17Badge
oder #gpn-badge auf hackint.
{{Navigationsleiste GPN17}}

Aktuelle Version vom 10. Juni 2017, 23:12 Uhr

GPN: GulaschPushNotifier

Offizielle Seite des GPN Badges. Hier findest du im Vorfeld, aber auch wärend der GPN alle nötigen Informationen die du für dein Badge brauchst.

GitHub-Repo

Twitter

Wettbewerb: Hack the Badge

Trade your Badge

Store

Rom finden und veröffentlichen: https://badge.entropia.de/

Features

31914472893 3146244dcd o.jpg

Das Badge bietet einige Features, wie

  • ESP8266 von Espressif

Siehe hier: https://www.espressif.com/en/products/hardware/esp8266ex/overview

  • Display
    • 128x128 Pixel
    • LCD
    • RGB565 (5 Bit Rot, 6 Bit Grün, 5 Bit Blau)
  • WLAN
    • 802.11 b/g/n/e/i 2.4 GHz
  • Joystick
  • 18650 Li-Ion Zelle
    • Mit Laderegler, Tiefen- und Überladeschutz
  • LED's (WS2813)
    • RGB, PWM-Frequenz ca. 19.7 kHz
  • Vibrationsmotor
  • Onboard Programmer
    • CP2102 UART Bridge

Sensoren

  • Lichtsensor
    • Analog LDR
  • 9-Achs IMU
    • BNO055
    • 3-Achs Gyro, Accelerometer und Kompass
    • Temperatursensor
  • Alkoholsensor
    • MQ-3
    • Messbereich 0~4.9‰
    • Misst Ethanol und ähnliche brennbare Flüssigkeiten in der Umgebungsluft

Software

Der ESP8266 verfügt über einen externen 8MB Flash. Von diesem kann der ESP (leider) zur Laufzeit nur 1MB adressieren, daher werden mehrere ROMs (13 ROMs a 512kB + ein Standard-ROM + Dateisystem) aufgespielt, welche durch den Bootloader ausgewählt werden können.

Die Grundfirmware ermöglicht es einen Username mit Animationen auf dem Display anzeigen zu lassen, dazu können die LEDs benutzt werden und Sensoren das ganze ein bisschen dynamischer machen. Ebenso besteht die Möglichkeit die so gennaten "GulaschPushNotifications" einzustellen. Durch diese wird das Badge vibrieren wenn bestimmt Ereignisse eintreffen, wie z.B. Es gibt Gulasch, Tschunk, Einen Talk, ... .

Im Weiteren wird es ROMs geben, welche über einen ROM-Store[1] direkt auf dem Badge Installiert werden können. Zu diesen gehören z.B. ein Pixelflutserver, ein Alkoholmess-ROM, ... .

Damit jeder weitere ROMs für das Badge schreiben kann stellen wir eine C-Datei zur verfügung, welche alle Funktionen als Beispiele enthällt. Über diese und dem gcc-xtensa oder der Arduino IDE mit ESP-Core lassen sich sehr einfach und schnell neue ROMs schreiben, kompilieren und hochladen. Fertige ROMs könnt Ihr uns auch gerne schicken, wir werden diese in den ROM-Store stellen.


[1] Den ROM-Store wird es natürlich nur auf der GPN17 (und eventuell auf Folgeevents) geben, jedoch lassen sie dich ROMs auch ohne diesen aufspielen, wir werden dafür entsprechende Infos/Tools ins Git packen.

Hacking

Unser Badge bietet bereits im "Auslieferungszustand" zahlreiche Möglichkeiten, mit neuer Software weitere Funktionen zu implementieren. Wem das nicht ausreicht oder genauere Doku braucht, findet sie hier.

3D-Druck Addons

Hier eine lose Sammlung von 3D-druckbaren Addons.

Elektronik Design

Screenshot from 2017-04-19 02-52-47.png

Hier erhälst du (hoffentlich) alle Infos die du brauchst um zu verstehen weshalb dein Badge macht, was es macht.

Schaltplan

BOM

Flash

Der Flash ist via Dual SPI (DIO) am ESP angebunden. Dadurch ist er etwas langsamer, dafür stehen mehr GPIOs zur Verfügung.

ESP8266

Der ESP ist so ziemlich in Grundbeschaltung. Die Quarzfrequenz beträgt 26MHz. Dinge, die man beim ESP in unserer Config beachten muss:

  • GPIO

PCA9571 GPIO extender

http://www.nxp.com/documents/data_sheet/PCA9571.pdf

Da der ESP8266 für unsere Anwendung viel zu wenige GPIO's hat, haben wir ihm via I2C um einen Portextender ergänzt. Dieser fügt 8 weitere Digitalausgänge hinzu. Da diese Ausgänge sehr langsam sind, werden sie lediglich für Zeitunkritische Dinge verwendet, z.B. Einschalten von Infrarot, Vibrationsmotor, Einschalten des MQ3 + 5V StepUp, Konfigurieren des Analog MUX.

Einer der Ausgänge ist auf dem Expansion Header Verfügbar. Er sollte mit höchstens 4mA belastet werden.

Nach einem Poweron-Reset sind alle Ausgänge des PCA9571 auf High. Deshalb Vibriert z.B. das Badge beim Einschalten einen kurzen Moment, bis der ESP den Motor aktiv ausschaltet.

CD4051 Analog MUX

http://www.ti.com/lit/ds/symlink/cd4051b.pdf

Der ESP verfügt über lediglich einen 10bit ADC Eingang. Um dennoch mehrere analoge Eingäne verwenden zu können, ist ein externer MUX notwendig. Der MUX wird mit 3 Signalen binär konfiguriert. Diese 3 Signale stammen aus den 3 LSB des I2C expanders.

Der MUX braucht nach dem Umschalten min 5ms ehe der Ausgang stabil ist. Kürzeres warten führt zu falschen Messergebnissen.

Bosch BNO055 IMU

https://www.bosch-sensortec.com/bst/products/all_products/bno055 9-Achs IMU von Bosch, der über I2C am ESP angebunden ist. Liefert Orientierungsdaten in Quaternionen, Eulerwinkeln oder Vektoren.

MQ3 Alkohol Sensor

Das Badge verfügt über einen Alkohol Sensor. Da dieser 5V benötigt, verfügt das Badge außerdem über einen 5V StepUp. Dieser muss zunächst mittels des Portexpanders eingeschalten werden. Die 5V sowie der Analogeingang für den MQ3 können natürlich auch für etwas anderes verwendet werden, z.B. zum Handy laden. Max 500mA!

IR Sender und Emfpänger

Das Badge verfügt über einen IR Sender und 38kHz Empfänger. Damit ist es zu den allermeisten IR-Fernbedienungen kompatibel. Zu beachten ist, dass soch IR RX und TX die GPIOs des ESP mit USB Bitbang D+ und D- teilen. Zur Benutzung von USB sollte also unbedingt IR ausgeschalten sein! Gesteuert wird dies über einen Pin des I2C expanders.

TP4056 Lade-IC

Wenn ihr das Bdage über USb einsteckt - egal ob im Programmiermodus oder Bitbang - lädt der integrierte Lade-IC den 18650 Akku mit 500mA. Dies ist USB-Standardkonform und sollte jedes noch so gammilige USB Netzteil und Laptop schaffen. Wenn euch die 4h Ladezeit zu lange sind, könnt ihr (auf eigene Gefahr) den Lötjumper "1A" schließen. dadurch lädt das Badge doppelt so schnell mit 1A.

CAD

Im Git befinden sich STL und OpenSCAD Dateien für verschiedene Anwendungen am Badge, zum Beispiel ein Mundstück für den Alkoholsensor.

https://github.com/entropia/gpn17-badge/tree/master/CAD

FAQ

Bei weiteren Fragen, wende dich bitte an: https://twitter.com/GPN17Badge oder #gpn-badge auf hackint.