Wechsel zu Arduino Nano Every
Gründe für einen Wechsel
Die TonUINO Software verfügt mittlerweile über so viele Funktionen, dass der Programmspeicher des ursprünglich verwendeten Arduino Nano V3
nicht mehr ausreicht, um eine Kombination von mehreren Funktionen aufzunehmen. Speicherintensive Funktionen sind:
- Steuerung von NEO-Pixel Elementen
- Das Quiz-Spiel mit seinen Varianten
- Das Memory-Spiel
Damit diese Funktionen zusätzlich und ohne Einschränkungen genutzt werden können, ist ein µController mit größerem Programmspeicher erforderlich.
Als µController, der die erweiterten Anforderungen erfüllt, steht der Arduino Nano Every zur Verfügung.
Eine weitere bedeutende Funktionserweiterung ist mit einem Wechsel zum Nano ESP32 möglich.
Erforderliche Maßnahmen
- Schaltung / Verdrahtung
Der Arduino Nano Every hat denselben Formfaktor (Baugröße, Abmessungen) wie der Arduino Nano und ist auch vollkommen pin-kompatibel, so dass
der Nano Every einfach gegen einen bestehenden Nano V3 ohne Veränderung an der Schaltung ausgetauscht werden kann.
Um jedoch das volle Potenzial des Nano Every ausnutzen zu können, sollte die Steuerung des DF-Players über eine bisher durch Software nachgebildete
serielle Schnittstelle umgestellt werden auf eine Schnittstelle mit eigenem Hardwarecontroller, die im Nano Every verfügbar ist. Dadurch werden 2
Anschlüsse frei, die zur Steuerung anderer Funktionen verwendet werden können.
Die hardware-gesteuerte Schnittstelle ist allerdings nur nutzbar, wenn RX/TX-Anschlüsse des DF-Players auf die Hardware-Schnittstelle
des Nano Every umgelegt werden. Dazu wird
- das RX-Signal vom DF-Player statt bisher auf Pin D3 nun auf Pin D1/TX des Arduino Every gelegt.
- das TX-Signal vom DF-Player statt bisher auf Pin D2 nun auf Pin D0/RX des Arduino Every gelegt.
Achtung! Boardaufdruck der Pin-Bezeichnung beachten
- Anpassung der Arduino IDE
Damit die Firmware für den Arduino Nano Every compiliert werden kann, muss das entsprechende Board-Paket in der Arduino IDE installiert werden.
Der Nano Every ist als Original mit einem ATMega4809 Prozessor neben einigen Klons mit ATMega4808 Prozessoren am Markt erhältlich. Beide Varianten
sind verwendbar, benötigen allerdings eigene Compilereinstellungen. Diese Einstellungen werden vom Board-Paket MegaCoreX V 1.1.2 bereitgestellt.
Mit den folgenden Schritten gelingt die Umstellung / Erweiterung der Arduino IDE mit dem Boardpaket:
- Über „Datei“ + „Einstellungen“ muss der Link zu dem Boardpaket eingetragen werden:
https://mcudude.github.io/MegaCoreX/package_MCUdude_MegaCoreX_index.json
- Nach Eintrag der Adresse wird das Boardpaket automatisch heruntergeladen und es erscheinen folgende Meldungen:
-
Nachdem die Meldungen durchgelaufen sind, bestätigt die letzte Meldung, dass das Boardpaket installiert ist.
Das heißt aber nur, dass das Datenpaket an die richtige Stelle im Programmverzeichnis kopiert wurde.
Damit es in der Arduino IDE tatsächlich nutzbar wird, muss das Boardpaket noch über die Boardverwaltung installiert (aktiviert) werden.
Nachdem das Boardpaket nun komplett installiert / aktiviert ist, werden weitere Boards in der Boardauswahl gelistet.
Für den Nano Every darf hier nun nicht mehr der „Nano Every“ ausgewählt werden, sondern es muss entsprechend des vorhandenen
µControllers ein Board „ATmega4809“ bzw. „ATmega4808“ eingestellt und der entsprechende Com-Port ausgewählt werden.
-
Mit der Einstellung eines ATmega4809 Boards werden unter „Werkzeuge“ weitere Einstellungen angeboten, die bisher nicht vorhanden waren,
aber unbedingt vorgenommen werden müssen.
Bootloader: muss eingestellt werden auf "Optiboot (UART0 default Pins)
-
Pinout: Das Pinout muss für den Nano Every eingestellt werden
-
Programmer: Das Programmer Protokoll muss auf „JTAG2UDPI“ eingestellt werden:
Sind alle Einstellungen gemacht und vom Programm übernommen worden, sollte das Drop-Down-Menü „Werkzeuge“ jetzt wie nebenstehend aussehen.
Bereits im Drop-Down-Menü werden die getroffenen Einstellungen eingeblendet, was die Kontrolle sehr erleichtert.
Ist alles wie angegeben eingestellt, sollte die Firmware nun problemlos compiliert werden können.
Hinweis
Es ist wichtig, die MegaCoreX V 1.1.2 zu verwenden.
Bereits nach dem Update auf MegaCoreX V 1.1.3 wurde der Sketch zwar fehlerlos compiliert,
aber ein Upload auf den Nano Every 4809 (ATmega 4809) war mit den angegebenen Einstellungen (siehe oben) nicht mehr möglich.
- Wichtig!
Abschließend muss noch, wie in der "Readme.md" angegeben, die Datei "platform.local.txt" in das Verzeichnis
C:\Users\\AppData\Local\Arduino15\packages\arduino\hardware\megaavr\1.8.8
kopiert werden, damit der Compiler korrekt auf die verwendete Sprachversion des Programmcodes eingestellt wird.
Wechsel zu Arduino Nano ESP32
Gründe für einen Wechsel
Es gelten die gleichen Gründe, wie für den Wechsel vom einfachen Nano V3 zum Nano Every.
Als bedeutender Mehrwert kommt durch den Wechsel auf den Nano ESP32 hinzu, dass der TonUINO nun WLAN-fähig wird
und sich damit über eim Webinterface von PCs und anderen Mobilgeräten bedienen und auch konfigurieren (wie über das Admin-Menü) lässt.
Erforderliche Maßnahmen
- Schaltung / Verdrahtung
Der Arduino Nano ESP32 hat denselben Formfaktor (Baugröße, Abmessungen) wie der Arduino Nano und ist auch vollkommen pin-kompatibel, so dass
der Nano ESP32 einfach gegen einen bestehenden Nano V3 oder Nano Every ohne Veränderung an der Schaltung ausgetauscht werden kann.
Um jedoch das volle Potenzial des Nano ESP32 ausnutzen zu können, sollte die Steuerung des DF-Players über eine bisher durch Software nachgebildete
serielle Schnittstelle umgestellt werden auf eine Schnittstelle mit eigenem Hardwarecontroller, die im Nano ESP32 verfügbar ist. Dadurch werden 2
Anschlüsse frei, die zur Steuerung anderer Funktionen verwendet werden können.
Die hardware-gesteuerte Schnittstelle ist allerdings nur nutzbar, wenn RX/TX-Anschlüsse des DF-Players auf die Hardware-Schnittstelle
des Nano ESP32 umgelegt werden. Dazu wird
- das RX-Signal vom DF-Player statt bisher auf Pin D3 nun auf Pin D1/TX des Arduino ESP32 gelegt.
- das TX-Signal vom DF-Player statt bisher auf Pin D2 nun auf Pin D0/RX des Arduino ESP32 gelegt.
Achtung! Boardaufdruck der Pin-Bezeichnung beachten
- Anpassung der Arduino IDE
Damit die Firmware für den Arduino Nano ESP32 compiliert werden kann, muss das entsprechende Board-Paket in der Arduino IDE installiert werden.
Nach Installation des Board-Pakets muss nund das verwendete µController Board und der Com-Port ausgewählt werden.
Nach Auswahl des Arduino Nano ESP32 Boards muss nun noch die Art der Pin Nummerierung eingestellt werden.
Die Korrekte Einstellung auf Nummerierung entsprechend GPIO ist wichtig für die programminterne Verarbeitung und Kommunikation mit den benötigten Baugruppen-Bibliotheken.
Auf diese Weise können die von Nano V3 und Nano Every bekannten Pin-Bezeichnungen und Nummerierungen erhalten werden.
Sind alle Einstellungen gemacht und vom Programm übernommen worden, sollte das Drop-Down-Menü „Werkzeuge“ jetzt wie nebenstehend aussehen.
Bereits im Drop-Down-Menü werden die getroffenen Einstellungen eingeblendet, was die Kontrolle sehr erleichtert.
- Wichtig!
Abschließend muss noch, wie in der "Readme.md" angegeben, die Datei "platform.local.txt" in das Verzeichnis
C:\Users\\AppData\Local\Arduino15\packages\arduino\hardware\esp32\2.0.18-arduino.5
kopiert werden, damit der Compiler korrekt auf die verwendete Sprachversion des Programmcodes eingestellt wird.
Ist alles wie angegeben eingestellt, sollte die Firmware nun problemlos compiliert werden können.