Inhaltsverzeichnis:

$3 Alternative zu Makey Makey – Gunook
$3 Alternative zu Makey Makey – Gunook
Anonim
$3 Alternative zu Makey Makey
$3 Alternative zu Makey Makey
$3 Alternative zu Makey Makey
$3 Alternative zu Makey Makey

Der Makey Makey ist ein tolles kleines Gerät, das eine USB-Tastatur emuliert und Sie aus jedem etwas leitfähigen Gegenstand (Aluminiumfolie, Bananen, Knetmasse usw.) Schlüssel herstellen lässt, die dann als Controller für Spiele und Bildungsprojekte verwendet werden können. Der Makey Makey hat zwei Nachteile: (1) Kosten und (2) die Notwendigkeit einer Erdungsverbindung.

Dieses Projekt ist eine billige Alternative mit einer STM32F1-Platine für 2 USD und kapazitiver Abtastung. Es hat nur 10 Eingänge im Gegensatz zu den 12 des Makey Makey, hat aber den Vorteil, dass es zusätzlich zur Emulierung einer Tastatur einen USB-Gamepad-Controller (digitalen Joystick) emulieren kann.

Teile:

  • "schwarze Pille" STM32F103c8-Board ($ 1,90 bei Aliexpress; weitere Informationen hier)
  • Steckbrett (weniger als 1 $ bei Aliexpress) und Überbrückungsdrähte; oder nur ein paar weibliche-zu-männliche Dupont-Steckverbinder (0,70 $ bei Aliexpress für eine Packung mit 40)
  • Büroklammern, Krokodilklemmen usw.

Werkzeuge:

  • Rechner
  • UART-zu-USB-Adapter für die anfängliche Board-Programmierung (ein Arduino Uno oder Mega wird die Arbeit erledigen, ebenso wie ein billiges CH340-Gerät)
  • Lötkolben zum Löten von Headern an die Platine (Sie können auch ein paar Testclips verwenden, ohne zu löten, aber sie fallen manchmal heraus)

Die Software ist eine Beispielskizze, die in meiner ADCTouchSensor-Bibliothek enthalten ist und die kapazitive Erfassung mit einem einzigen Pin auf der STM32F1-Platine pro Sensor ermöglicht (basierend auf der Bibliothek von martin2250 für AVR).

Warnung: Berühren Sie bei trockenem Wetter oder bei statischer Aufladung (z. B. auf einem Teppich) nicht die freiliegenden Metallanschlüsse, damit die STM32F1-Platine nicht elektrostatisch beschädigt wird. Ich erwarte, dass die Beständigkeit von Kartoffeln, Bananen, Knete usw. zum Schutz des Bretts beiträgt, aber wenn Sie blanke Aluminiumfolie verwenden, können Sie Probleme bekommen. Auf der anderen Seite kostet das Board nur 1,90 US-Dollar.

Ideen für Bildungsaktivitäten:

  • Experimentieren Sie, um herauszufinden, welche Gegenstände leitfähig sind und als Kontrollflächen verwendet werden können. (Z. B. Bleistiftmine vs. Buntstift; Knete vs. Kerze.)
  • Schreiben Sie Scratch-Spiele, die einen hausgemachten Controller verwenden.
  • Ändern Sie den Arduino-Code, der das Projekt antreibt, um Mausklicks / -bewegungen, andere Tasten, mehr als vier Joystick-Richtungen usw.

Schritt 1: Bootloader auf dem Entwicklungsboard installieren

Bootloader auf dem Entwicklungsboard installieren
Bootloader auf dem Entwicklungsboard installieren
Bootloader auf dem Entwicklungsboard installieren
Bootloader auf dem Entwicklungsboard installieren
Bootloader auf dem Entwicklungsboard installieren
Bootloader auf dem Entwicklungsboard installieren

Löten Sie die beiden dreipoligen Stiftleisten in der Mitte des Black Pill-Entwicklungssystems (B0-/Mitte/B0+; B1-/Mitte/B1+) und die langen Stiftleisten entlang der Kanten (wenn Sie es eilig haben oder wollen) um unnötige Pins zu vermeiden, die Kinder verwirren könnten, benötigen Sie nur Pins für A0-A10 und G).

Sie benötigen eine UART-zu-USB-Brücke, die mit 3,3-V-Geräten kompatibel ist. Sie können einen ch340 bei Aliexpress für 0,66 $ bestellen, aber ich hatte einen Arduino Mega-Knockoff herumsitzen, und es gab einen coolen Trick, den ich online gefunden habe. Wenn Sie bei einem Arduino den Reset-Pin mit einem kurzen Draht mit Masse kurzschließen, wird es zu einer UART-zu-USB-Brücke - keine Skizze erforderlich. Der einzige Trick besteht darin, dass die RX- und TX-Beschriftung umgekehrt wird: Der "RX" -Pin des Arduino sendet und sein "TX" -Pin empfängt. Der Arduino läuft mit 5V und die Black Pill mit 3,3V, aber die PA9- und PA10-Pins des stm32f103 sind 5V-tolerant, das sollte also kein Problem sein.

Setzen Sie auf die gelöteten Header einen Jumper von B0+ zur Mitte und von B1- zur Mitte.

Stellen Sie folgende Verbindungen her:

  • PA9 zu UART Bridge RX ("TX", wenn Sie den Arduino-Trick verwenden)
  • PA10 zu UART Bridge TX ("RX", wenn Sie den Arduino-Trick verwenden)
  • G zu UART-Brückenmasse

Sie können ein Steckbrett oder Stecker-zu-Buchse-Jumper verwenden, oder wenn Sie dies vor dem Löten der Header tun möchten, können Sie Testclips verwenden (wie auf dem Foto).

Laden Sie die Bootloader-Binärdatei herunter. Sie möchten generische_boot20_pb12.bin.

Installieren Sie unter Windows den Flash Loader Demonstrator von ST. Verwenden Sie unter Linux (und möglicherweise OS X und sogar Windows, wenn Sie Befehlszeilentools bevorzugen) stattdessen dieses Python-Skript, aber meine Anweisungen gelten für Windows. Verbinden Sie Ihre UART-Bridge mit Ihrem Computer.

Schalten Sie die Black Pill über den USB-Anschluss ein (wenn Sie den Computer verwenden, wird er sich wahrscheinlich über ein nicht erkanntes USB-Gerät beschweren; ignorieren Sie das). Starten Sie den Flash Loader-Demonstrator. Wählen Sie den COM-Port für Ihre UART-Bridge. Wählen Sie "Schutz entfernen", falls verfügbar. Wählen Sie eine 64-kb- statt einer 128-kb-Flash-Version. Und laden Sie die Bootloader-Binärdatei hoch.

Schalten Sie alles aus und verschieben Sie dann den Jumper von B0+/Mitte auf B0/Mitte. Sie haben jetzt einen Bootloader, den Sie mit der Arduino IDE verwenden können.

Schritt 2: Arduino-IDE einrichten

Arduino-IDE einrichten
Arduino-IDE einrichten

Ich gehe davon aus, dass Sie die neueste Arduino IDE installiert haben.

In Tools | Bretter | Boards Manager, installieren Sie die Unterstützung für den Arduino Zero (geben Sie einfach Zero in die Suche ein, klicken Sie auf den gefundenen Eintrag und dann auf Installieren). Ja, Sie arbeiten nicht mit einer Zero, aber dies installiert den richtigen gcc-Compiler.

Laden Sie als Nächstes den stm32duino-Kern herunter. Unter Windows empfehle ich, die ZIP-Datei herunterzuladen, da ich beim Auschecken der Dateien (zugegeben mit svn) einige Berechtigungsprobleme mit Dateien im Windows-Tools-Verzeichnis hatte, die behoben werden mussten. Legen Sie den Zweig in Arduino/Hardware/Arduino_STM32 ab (damit Sie Ordner wie Arduino/Hardware/Arduino_STM32/STM32F1 usw. haben). Unter Windows installieren Sie die Treiber, indem Sie driver\win\install_drivers.bat ausführen.

Schritt 3: Installieren Sie die kapazitive Controller-Skizze

Installieren Sie die kapazitive Controller-Skizze
Installieren Sie die kapazitive Controller-Skizze
Installieren Sie die kapazitive Controller-Skizze
Installieren Sie die kapazitive Controller-Skizze
Installieren Sie die kapazitive Controller-Skizze
Installieren Sie die kapazitive Controller-Skizze

Wählen Sie in der Arduino-IDE Sketch | Bibliothek einschließen | Bibliotheken verwalten. Suchen Sie nach "ADCTouchSensor" und installieren Sie Version 0.0.6 oder neuer. Wiederholen und suchen Sie nach "USBHID" und installieren Sie meine USBHID_stm32f1-Bibliothek.

Wählen Sie Datei | Beispiel | ADCTouchSensor | Kapazitiver Controller.

Stellen Sie sicher, dass Sie unter Tools die folgenden Einstellungen haben:

  • Platine: Generisches STM32F103C8
  • Upload-Methode: STM32duino Bootloader

Stecken Sie die Platine in den Computer und klicken Sie auf die Schaltfläche "Hochladen" mit dem Pfeil nach rechts. Möglicherweise müssen Sie das Board zurücksetzen (drücken Sie die Reset-Taste), sobald die Upload-Meldung in der Konsole angezeigt wird.

Schritt 4: Anschlüsse und Tasten

Anschlüsse und Tasten
Anschlüsse und Tasten
Anschlüsse und Tasten
Anschlüsse und Tasten
Anschlüsse und Tasten
Anschlüsse und Tasten

Verlegen Sie bei abgezogenem Gerät Kabel von den STM32F1-Pins zu Ihren Bedienoberflächen. Verbinden Sie sich mit Krokodilklemmen, Büroklammern oder einfach durch Stecken von Jumpern in Gegenstände. Sie können ein Steckbrett oder Jumper von weiblich zu männlich verwenden. Für Tetris auf dem Computer haben wir den Tastaturmodus und die Pfeiltasten verwendet; für Pac Man auf dem Tablet haben wir ein USB-OTG-Kabel und den Joystick-Modus verwendet.

Die CapacitiveController-Skizze kalibriert die kapazitiven Sensoren, wenn sie eingeschaltet ist. Stellen Sie sicher, dass Sie beim Einschalten nicht die Steuerflächen, Drähte oder Stifte berühren. Und wenn Sie eine Bedienoberfläche ändern, müssen Sie sie neu kalibrieren, indem Sie den Stecker ziehen und wieder einstecken oder den weißen Reset-Knopf auf der Platine drücken.

Die meisten Apps hier funktionieren ebenso wie viele andere. Sie können auch sehen, wie viele Makey Makey-Projekte Sie anpassen können.

Einige gute Steueroberflächen:

  • Früchte und Gemüse
  • Knetmasse
  • Aluminiumfolie (außer bei hohen statischen Bedingungen)
  • stark mit Bleistift gezeichnete Knöpfe/Anschlüsse auf Papier (die Verbindungslinien sollten nicht zu lang sein - auf dem Foto funktionierte der unterste Knopf nicht)
  • experimentiere mit vielen mehr! (Sie können auch versuchen, die Zeile 25 in if (sensors->read() > 25) im Quellcode für einige Oberflächen zu optimieren)

Anschlüsse im Tastaturmodus:

  • A10 getrennt lassen
  • A0: Leerzeichen
  • A1: hoch
  • A2: links
  • A3: runter
  • A4: richtig
  • A5: w
  • A6: a
  • A7: so
  • B0: d
  • B1: f

Anschlüsse im Gamepad/Joystick-Modus:

  • Verbinden Sie A10 mit Masse (G), um den Joystick-Modus einzustellen
  • A0: Taste 1
  • A1: hoch
  • A2: links
  • A3: runter
  • A4: richtig
  • A5-A7, B0, B1: Tasten 2-6

Hinweis:

Wenn Sie Stecker-zu-Buchse-Jumper verwenden, können Sie die A10-Erdungsverbindung im Joystick-Modus herstellen, indem Sie die männlichen Enden von zwei Jumpern ineinander stecken, wodurch ein weiblich-zu-Buchse-Jumper gebildet wird.

Empfohlen: