Jeffrey Cross
Jeffrey Cross

Noise Toy - Crash-Kurs in der Programmierung

Das Noise Toy-Kit macht Spaß, aber wenn Sie wie ich sind - lassen Sie den kleinen "PROGRAM" -Port unbenutzt, was Sie verrückt macht.

Mit wenig Wissen über AVR-Programmierung und etwas Spaß mit Arduino habe ich mir selbst beigebracht, wie man Quellcode dafür hochlädt und hackt. Lesen Sie weiter, um zu sehen, wie die Tat ausgeführt wurde, und hören Sie sich ein Beispiel an.

Verbunden:

  • HOW TO - das Geräuschspielzeug bauen
  • Noise Toy-in-a-Box

Teil 1 - Hardware-Hacker

Wenn Sie noch nie zuvor einen Mikrocontroller programmiert haben, erscheint der Interessent möglicherweise ein wenig abschreckend - aber es ist wirklich nicht so schwierig, und wenn Sie diesen Prozess lernen, eröffnen sich eine Menge neuer Optionen. (Wenn Sie bereits wissen, wie Sie die relevanten Noise Toy-Dateien aufrufen können, gehen Sie zu Teil 3 über.)

Das Noise Toy verwendet einen Atmel AVR-Mikrocontroller-Chip (der ATTiny85, um genau zu sein). Laute Objekte haben das Kit so konzipiert, dass der Chip umprogrammiert werden kann, ohne dass er vom Gerät oder „In-Circuit“ entfernt werden muss. Tatsächlich kann das Toy als einfaches AVR-Target-Board betrachtet werden, auf dem ein Mikrocontroller neuen Code von der seriellen Datenverbindung eines PCs empfangen kann.

Serienanschlüsse sind auf den meisten neuen Computern ziemlich selten (und auf Macs nicht vorhanden). Daher verwenden die meisten Benutzer stattdessen USB. Um diese USB-Daten für unseren kleinen Chip in etwas mehr Serielles umzuwandeln, verwenden wir einen In-System-Programmierer (kurz ISP). Die Entwickler von Noise Toy haben diesen PROGRAM-Header so angeordnet, dass er mit einem bestimmten ISP verbunden ist - dem AvrUsb500 von Tuxgraphics. Ich hatte keinen davon zur Hand, aber einen anderen ISP, den USBTinyISP von Adafruit Industries. Um es mit dem Spielzeug verwenden zu können, war etwas Anpassung nötig.

Der USBTinyISP verwendet einen 6-Pin-Anschluss, einen Pin mehr als der AvrUsb500. Um herauszufinden, welche Pins das machten, habe ich die Dokumentation beider Geräte miteinander verglichen und das Datenblatt des ATTiny85 referenziert.

Es stellt sich heraus, dass der zusätzliche Pin am USBTiny die Platine optional mit Strom versorgt, während der AvrUsb500 davon ausgeht, dass Ihr Chip bereits während der Programmierung mit Strom versorgt wird.

Zu diesem Zweck habe ich den optionalen Power Pin des USBTinyISP deaktiviert, indem ich einen einfachen Jumper im Gerät bewegte. Mit den Informationen, die aus diesen Pin-Vergleichen entnommen wurden, erstellte ich ein schnelles Schaltbild, in dem beschrieben wird, wie sich mein USBTiny mit dem PROGRAM-Header des Spielzeugs verbinden soll.

Sie können einen festen Kern oder Überbrückungsdraht verwenden, um die richtigen Verbindungen herzustellen. Für eine dauerhafte Lösung habe ich einen kleinen Adapter aus Perfboard hergestellt.

Nicht zu ordentlich, aber es erledigt die Arbeit.

Teil 2 - Software-Spaß und Programmiervorgang

Nachdem Sie die Benutzeroberfläche ermittelt haben, benötigen Sie eine Software, um die eigentliche Programmierung durchzuführen. Ich habe AVR MacPack heruntergeladen und auf meinem Powerbook installiert (Windows kann WinAVR verwenden). Dann lernte ich den grundlegenden Programmiervorgang mithilfe der praktischen Tutorials auf Ladyada.net kennen.

Weiterer Quellcode für Noise Toy kann von der Website von Loud Objects heruntergeladen werden. Dies sind .c-Dateien und müssen als .hex kompiliert werden, bevor sie auf den Chip geschrieben werden. Dazu benötigen Sie ein "Makefile", das einige notwendige Variablen angibt. Ich habe auf der Website von Psychogenic ein einfaches Vorlagen-Makefile gefunden und es mit den erforderlichen Details aktualisiert.

Name des Mikrocontrollers:

MCU = attiny85 PROGRAMMER_MCU = t85

Projektname:

PROJECTNAME = Mynoisetoyproject

Name meiner .c-Quelldatei:

PRJSRC = mynoisetoyproject.c

Sie können das bearbeitete Makefile hier herunterladen.

Speichern Sie das neue Makefile als (Sie haben es erraten) “Makefile"Und legen Sie es in einem neuen Ordner mit dem Namen"Mynoisetoyprojekt" innerhalb des Unterlagen Mappe.

Dave_matthews_band.c von Loud Objects klang wie ein Hauptziel für Experimente, also öffnete ich es in meinem bevorzugten Texteditor und machte mich an die Arbeit. Beim Durchlesen des Codes fiel mir ein bisschen auf, das mir bekannt vorkam. Neugierig ersetzte ich alle Fälle von Zufällig() und ersetzte sie mit 0 - dann die Datei als "mynoisetoyproject.c" in gespeichert Dokumente / mynoisetoyproject.

Sobald der Ordner und die Dateien gut waren, fuhr ich mit den folgenden Formalitäten fort:

Öffnen Sie die Terminalanwendung und geben Sie folgende Zeilen ein:

cd Documents / mynoisetoyproject make all make mynoisetoyproject.hex

Verbinden Sie den ISP über USB mit dem Computer, dann mit Noise Toy und geben Sie Folgendes ein:

avrdude -c usbtiny -p t85 -U flash: w: mynoisetoyproject.hex

Nachdem Terminal einen schnellen Upload-Vorgang angezeigt hatte, unterbrach ich das Spielzeug und hörte meinem kleinen Demo-Hack zu. Etwas vorhersehbar hörte ich eine weniger zufällige Version von "dave_matthews_band.c" - ich nenne es "chris_mattews_band"

Hören Sie sich chris_matthews_band an

Nur ein paar Änderungen am ursprünglichen Programm haben den Klang wesentlich verändert. Wenn Sie mit Arduino gearbeitet haben, bevor Sie wahrscheinlich die Sprache in diesen Quelldateien erkennen. Diese Art von Hacking scheint ein guter Weg zu sein, um mehr über das Codieren im Allgemeinen zu lernen - oh, und es macht Spaß!

Teil 3 - Dateien und dergleichen

Hier sind einige Beispiele aus den anderen Programmen auf der Website von Loud Objects:

  • birdlane.mp3
  • stereo.mp3
  • dave_matthews_band.mp3
  • Ike.mp3
  • kunrnd.mp3
  • rptrnd.mp3
  • Erlösung.mp3

Für den Fall, dass Sie keinen Code hacken / schreiben möchten, finden Sie hier eine ZIP-Datei aller Originalprogramme, die als .hex-Dateien zum Hochladen - Noise Toy-Hex-Pack vorkompiliert wurden

Und hier ist das bearbeitete Makefile und das Beispiel-Code-Hack - Mynoisetoyproject-Makefile

Ich hoffe, das hilft einigen, mit der Mikrocontroller-Entwicklung das Eis zu brechen und mit einem einfachen, aber sehr nützlichen Kit zusätzliche Kilometer zu erzielen. Wenn Sie ein gutes Programm für das Kit schreiben / hacken, teilen Sie es in den Kommentaren unten mit!

EOM

Aktie

Leave A Comment