Teil 2: Module und AppStore. ESPboy - ein Gadget für Retro-Spiele und Experimente mit IoT

Seit der Veröffentlichung des ersten Artikels über das ESPboy- Gerät, das ich für den ESP8266-Mikrocontroller entwickelt habe, ist ziemlich viel Zeit vergangen.





In dieser Zeit wurde jedoch etwas unternommen:


  1. Bringen Sie das Gerät selbst in die Produktion
  2. Erstellen Sie Erweiterungsmodule, schreiben Sie Software für sie und debuggen Sie
  3. WiFi Apple iStore Google play market
  4. Arduboy Arduboy ESPboy
  5. Little Game Engine


Vergleich von ESPboy mit M5Stack, MeowBit & Dingoo A-320



Das Lot selbst hatte bereits die Nase voll und konnte mit den hervorragenden Chinesen von www.makerfabs.com verhandeln , die ein paar Dutzend halbmontierte Kit-Kits für die unabhängige Endmontage zusammenbrachten. Die Qualität hat sich als großartig erwiesen, wofür wir uns sehr bedanken. Es ist notwendig, nur 4 Teile zu löten, damit es funktioniert.



Er verteilte schnell eine Testcharge für Tests für diejenigen, die an der Entwicklung des Projekts teilnehmen möchten, und es wäre notwendig, mehr zu bestellen, aber Sie müssen herausfinden, wie Sie mit der Zollkontrolle umgehen sollen. Wenn Sie mehrere Geräte desselben Typs in einem Paket finden, besteht die Gefahr einer Verzögerung und einer längeren Demontage.



Erweiterungsmodule und Software für sie


Als nächstes gelang es uns, Prototypmodule zu sammeln und für jede Software zu schreiben, wodurch ESPboy wie beabsichtigt zu einem vollwertigen Gerät wird. Stecken Sie dazu einfach das gewünschte Modul in den Erweiterungssteckplatz und aktualisieren Sie die Firmware. Quellen zu Github .



Es gibt mehrere weitere Iterationen, um alle Module in die Produktionsphase zu bringen.

Es ist notwendig, Leiterplatten zu zeichnen, überprüfte Listen verfügbarer und kostengünstiger Komponenten zu erstellen, detaillierte Anweisungen zu schreiben, alles in Form von Walen, montagefertig und in Form bereits montierter Produkte anzuordnen.

Ich hoffe, noch vor Ende dieses Jahres Zeit dafür zu haben.

Für heute sind die folgenden Erweiterungen vollständig vorbereitet und debuggt:

  1. Volle Mini-Tastatur
  2. Meteo Station
  3. MP3-Player
  4. FM-Radio
  5. GPS-Navigator
  6. DAC-Modul zum Abspielen von Musik
  7. LORA Bote
  8. GSM-Telefon

Auch in der Arbeit sind einige weitere interessante Ideen, die ich Ihnen hoffentlich bald mitteilen werde.

Ein paar Worte zu jedem Modul


1. Eine vollwertige

Minitastatur Basierend auf der Tastatur des Blackberry Q10-Smartphones, die über den MCP23017-Port-Expander gesteuert wird.



Es gibt eine Menge Informationen über die Signale auf der Tastaturschleife, und die Aufgabe besteht darin, den Stecker + Adapter für das Kabel zu bestellen und diesen Stecker mit dem Adapter zu verlöten. Angesichts der Größe des Steckverbinders von mehreren Millimetern und der Größe der Kontakte selbst, die buchstäblich aus dem Haar stammen, ist die Aufgabe nicht einfach.

MCP23017 funktioniert auf i2c und es gab keine Probleme im Softwareplan. Es ist notwendig, die Tastaturmatrix für die Suche nach geschlossenen Kontakten abzufragen und die Signale im Tastaturlayout korrekt zu interpretieren. Details sind im Quellcode sichtbar .



2. Meteo-Station

Welcher Arduino-Arbeiter hat die Wetterstation nicht abgeholt? Sie werden so etwas in der Natur nicht finden.
Meine Version verwendet einen i2c Druck- / Feuchtigkeits- / Temperatursensor BME280 sowie einen CO2- Sensor - SGP30 .

Als Bonus - DC3231 Echtzeituhr , mit der Sie auch die richtige Zeit anzeigen können.

Es wurde immer noch gedacht, einen Blitz / Blitzsensor AS3935 hinzuzufügen , aber ein wenig teuer. Vielleicht später.



Das Modul selbst stellte sich als klein heraus, der Code ist hier .

Als erweiterte Version habe ich ein größeres Stück auf dem Test gemacht. Es hat mir nicht gefallen, aber das Video des Experiments wurde beibehalten.



3. MP3-Player

Verwendet DFplayer Mini-MP3 , wie in Artikeln zu diesem Modul beschrieben .

Das einzige Problem dabei ist, dass fehlerhafte Menschen häufig auf etwas stoßen und nicht stabil oder überhaupt nicht arbeiten. Quellcode .

4. UKW-Radio

Als Basis wurden das FM- Tuner-Modul SI4703 und eine leicht dotierte Bibliothek von Mathertel verwendet .



Das Radio spielt in Kopfhörern ziemlich erträglich, die Suche nach Sendern und sogar RDS funktioniert. Der Code ist hier.



5. GPS Navigator

Nirgendwo ohne Navigation. Deshalb habe ich mich natürlich entschlossen, ein zusätzliches Modul für diese Aufgabe zusammenzustellen.
Ich habe den WAVGAT GY-NEO6MV2 Chip verwendet, mit dem es absolut keine Probleme gab. Implementierte zwei Ekarana. Einer ist der freie Navigationsmodus, der zweite ist der Modus, dem Punkt aus dem Speicher zu folgen. Theoretisch kann man dort eine Karte platzieren, aber das ist eine lange Aufgabe. Der Quellcode ist noch da .



5. DAC-Modul zum Abspielen von Musik

Bei der Entwicklung des ZX Spectrum- Emulators entstand die Idee, seinen musikalischen Coprozessor AY-3-8910 zu emulieren. Die Software-Emulation der eingebauten Dynamik stellte sich heraus, aber die Prozessorkosten für die Klangsynthese und -qualität ließen zu wünschen übrig. Am Ende hat das Spectrum auf ESPboy verdient, aber nur in der 48k-Version ohne AY-Emulation, weil sogar genug Speicher Ende-zu-Ende verfügbar war (buchstäblich ein paar Dutzend Bytes pro Stapel übrig).



Dank der Bemühungen von Shiru und seiner Experimente mit Sound erschienen jedoch ein DAC-Modul für ESPboy und ein PT3-Player AY-3-8910 Spectrum Music.

Das Modul wurde auf PCM5102 mit Unterstützung für die I2S- Schnittstelle verwendet (nicht zu verwechseln mit I2C ). Es gibt immer Quellcodes .



7. LORA-Messenger

Vor nicht allzu langer Zeit ist die LORA- Technologie , ein energiesparendes Protokoll zur Übertragung kurzer Datenpakete über einen Fernfunkkanal, sehr beliebt geworden . Ich kramte herum und entdeckte preiswerte Transceiver von EBYTE .

Und bei maximaler Leistung schießen sie bis zu 8 km in Sichtweite. Hier müssen Sie verstehen, dass Hindernisse in Form von Gelände und Stadtentwicklung diesen Indikator drastisch reduzieren, also auch den städtischen Lärm. Unter Vorortbedingungen oder wenn beispielsweise Satelliten mit GSM-Türmen fallen, ist dies ein ausgezeichneter Kommunikationskanal. Die Experimente führten zur Schaffung eines vollwertigen Chat-Moduls über Funk. Das Modul selbst verschlüsselt das Paket, aber ich bin auch als AES- Option ganz oben (dies ist standardmäßig deaktiviert).

MussteUm mit der Bibliothek unter dem Transceiver verwechselt zu werden, weil die vorhandenen entweder fehlerhaft waren oder ich nicht verstand, wie sie überhaupt funktionieren.





8. GSM-Hackertelefon

Nachdem ich im Netzwerk auf den Ringo- Telefondesigner (ehemals Maker Phone) gestoßen war , war ich über den Preis und die Komplexität sehr überrascht. Er hatte Erfahrung mit den bekannten SIM800- Modulen der Firma SimCom und wusch sein Handy schnell herunter.

Natürlich ist es nicht so praktisch wie die modernen Lieblings-Smartphones aller, aber es guckt und stiehlt Ihre Kontakte nicht.





Die geschriebene Software unterstützt das notwendige Minimum:

  • Aktuelle Zeitanzeige
  • Anrufe entgegennehmen und Anrufe abbrechen
  • Nummer wählen
  • SMS empfangen und senden

Darüber hinaus werden auf dem Bildschirm alle Serviceinformationen zum Betrieb des GSM-Transceivers angezeigt. Anfragen und Antworten von Basisstationen und der Hölle wissen was noch. Ich bin nichts Besonderes, aber es ist interessant zu sehen.

Als Bonus können Sie AT-Befehle auf niedriger Ebene eingeben, um den Transceiver zu steuern, wie in den guten alten Zeiten von DFÜ-Modems. Diese Befehle umfassen 600 Seiten in der Dokumentation von SimCom . Gut als ein Forschungsfeld für echte White-Hat-Hacker.

ESPboy App Store - Online-Bewerbungskatalog


Als ich die ESP8266-Dokumentation studierte und mich an WiFi an Bord erinnerte, war ich besonders beeindruckt von der Möglichkeit, die Firmware über http / https , dh über das Netzwerk, zu aktualisieren . Angesichts der Tatsache, dass das Programmieren von Mikrocontrollern eine mühsame Aufgabe ist und das Aktualisieren der Firmware fast immer Hämorrhoiden ist, wollte ich dies unbedingt ändern.

Wie sieht das Firmware-Update für den Mikrocontroller wie gewohnt aus?

  1. Wenn USB-TTL eingebaut ist, können Sie sich glücklich schätzen. Wenn nicht, müssen Sie nach einem separaten USB-TTL-Konverter suchen und herausfinden, wie eine Verbindung hergestellt werden kann
  2. Schließen Sie das Gerät mit einem Kabel an den Computer an und konfigurieren Sie den Treiber
  3. Installieren Sie die Arduino IDE
  4. Installieren Sie die ESP8266-Erweiterung unter der Arduino IDE
  5. Quellcode herunterladen
  6. Um zu verstehen, welche Bibliotheken dort verwendet werden und welche Versionen (was nie offensichtlich ist)
  7. Durchsuchen und laden Sie alle Bibliotheken der erforderlichen Versionen herunter und installieren Sie sie (und dies ist im Prinzip nicht immer möglich).
  8. Beschäftige dich mit Kompilierungsoptionen, setze sie (was auch nicht offensichtlich ist)
  9. Wenn Sie es endlich geschafft haben, zur Kompilierung zu gelangen, erhalten Sie eine Reihe von Fehlern
  10. Führen Sie Tänze mit Tamburinen durch und lösen Sie Kompilierungsfehler (manchmal passiert dies mehr als einen Tag, und selbst mit geriebenem Kalachami werden Sie manchmal nervös).

Es ist klar, dass es für Anfänger schwierig ist, eine solche Aufgabe zu meistern, und dies ist ein kritisches Hindernis beim Einstieg in das Thema Mikrocontroller-Programmierung, Rotobotechnik und andere solche Dinge.

Und wie kann das geändert werden?

Der Online-Anwendungskatalog selbst reduziert die Aktualisierung der Firmware auf die folgenden einfachen Schritte:

  1. Wählen Sie ein WiFi-Netzwerk aus der Liste
  2. Wählen Sie eine Anwendung aus der Liste aus
  3. Warten Sie eine halbe Minute

Nun, ist es nicht Schönheit und Glück!

Hier ist der Quellcode des Client-Teils, den Sie verbinden und genießen können .



Arduboy2 Bibliotheksport


Vor ungefähr einem Jahr, nachdem er ESPboy entworfen und mit Kraft und Kraft getestet hatte, stieß er auf ein kommerziell erfolgreiches Arduboy- Projekt .

Wie sich herausstellte, wurden unter diesem wunderbaren Gadget nicht wenige coole Open-Source-Spiele geschrieben , und bis heute entwickelt sich eine freundliche Community .

Die Entwicklung von Spielen für Arduboy basiert auf der Bibliothek Arduboy2 lib .

Nachdem diese Bibliothek auf ESPboy portiert wurde, war es möglich, Dutzende großartiger Spiele mit Arduboy mit minimalen Code-Anpassungen neu zu kompilieren.

Bibliotheksquellen, portierte Spiele und Anweisungen zum Portieren von Arduboy auf ESPboy, ebenfalls auf Github.



Neue Spiele auf Little Game Engine


Parallel zum ESPboy-Projekt wird das Fantasy-Projekt der Little Game Engine- Konsole intensiv weiterentwickelt .

Die Arbeit an Spielen, die mit der Little Game Engine erstellt wurden, wird von ESPboy unterstützt, und Igor, der Autor der Engine, freut sich immer wieder über neue Versionen .

Die Entwicklung dieser Spiele ist einfach und unkompliziert und über die Entwicklungsumgebung (IDE), die in jedem Browser ausgeführt wird und über einen integrierten Compiler und Emulator verfügt , auch für alle zugänglich .

Spielquellen sind offen, in der IDE bei der Auswahl eines Spiels sichtbar und stehen zum Bearbeiten und Experimentieren zur Verfügung. Um zu spielen, müssen Sie über dem Spielcode "Kompilieren" auswählen und dann auf das Symbol "Spielen" auf der linken Seite des Emulatorfensters klicken. Die "C" -Beschreibung einer solchen LGE-Sprache ist ebenfalls sehr detailliert.

Der Quellcode der Engine selbst kann ebenfalls überprüft werden.



Somit wird die Arbeit an dem Projekt fortgesetzt.

Es gibt noch viele interessante Dinge. Das Hinzufügen neuer Elemente des ESPboy-Ökosystems und die gründlichere Integration vorhandener Komponenten, um die Arbeit mit dem Gerät sowohl für Benutzer als auch für Entwickler zu vereinfachen.



Vielen Dank an alle, die zu dem Projekt beitragen: Dmitry (Pest) , Alexander (Shiru) , Mikhail G.,
Igor (Corax) , Alex (AlRado) , Mikhail (Torabora), Andrey S. , George P., Roman (orsweb) ) , Scott (MLXXXP) , Haroldo (Haroldo-OK) , John E. , Marcus de Verdier , Loopingstar , AccidentalRebel und viele andere, die spielen, lesen, testen, codieren, streamen, beraten und einfach mögen.

Alles gute und kreative Erfolge!

Grüße,
RomanS

All Articles