Inhaltsverzeichnis:

Ghetto-Entwicklungsumgebung - Gunook
Ghetto-Entwicklungsumgebung - Gunook

Video: Ghetto-Entwicklungsumgebung - Gunook

Video: Ghetto-Entwicklungsumgebung - Gunook
Video: История Майоры Картер о возрождении города 2024, Juli
Anonim
Ghetto-Entwicklungsumgebung
Ghetto-Entwicklungsumgebung

Vor einiger Zeit habe ich eine schnelle und schmutzige "el Cheapo"-Methode veröffentlicht, um mit der Programmierung der Chips der Atmel AVR-Serie zu beginnen: Ghetto Programmer (Version 1.0) Seitdem habe ich mein Setup überarbeitet, überarbeitet und anderweitig verbessert. Ich dachte, es wäre schön, es zu dokumentieren. Das Ziel war es, eine flexible, kompakte, tragbare und überall einsetzbare AVR-basierte Mikrocontroller-Prototyping-Umgebung zu erhalten. Auf die billige (ish). Also ohne weitere Umschweife, hier ist die Ghetto Development Environment (GDE) (Version 1.2).

Schritt 1: Das Kit

Die Ausrüstung
Die Ausrüstung

Das Basis-Kit enthält die folgenden Sachen: USB-Programmierer. Weil Sie von Ihrem Laptop aus Mikrocontroller von überall aus programmieren möchten. Und weil USB eine sehr praktische Quelle für +5V ist. Programmierstationen. Einen für jede Art von Chip, mit dem Sie spielen. Das bedeutet für mich einen mit 8 Pins (ATtiny13, 15), einen mit 20 Pins (ATtiny 2313) und einen mit 28 Pins (ATmega8). Blinklichter. Wenn etwas mit Ihrem Code nicht stimmt, kann es nichts besser machen, als Lichter zur Diagnose einzustecken. Außerdem ist das LED-Blinker-Programm die "Hello World" der Mikrocontroller. Breadboard. Es ist schließlich ein Entwicklungskit.

Schritt 2: Der USB-Programmierer

Der USB-Programmierer
Der USB-Programmierer
Der USB-Programmierer
Der USB-Programmierer

Im Ghetto Programmer (v.1.0) habe ich einen Parallelport-Programmierer verwendet. Es ist großartig, weil es einfach und billig und schnell ist. Aber mein Laptop hat keine parallele Schnittstelle. Ich habe ein bisschen mit Programmierern für serielle Schnittstellen herumgespielt, aber ehrlich gesagt sind sie genauso kompliziert wie die USB-Version und sogar serielle Schnittstellen werden knapp. Tatsächlich hat mein Laptop nur USB. Also USB ist es. Wenn man sich umsieht, ist der USBTiny-Programmierer ziemlich einfach und funktioniert mit den kostenlosen GNU/AVR-GCC-Tools. Selber machen oder Bausatz kaufen? Der DIY-Weg ist gut, wenn man bereits einen ATTiny2313 (mit Parallelprogrammierer) programmieren kann und einen 12MHz-Quarz herumsitzt. USBTiny Page erläutert die Grundlagen. Er schließt das Programmierkabel mit einem parallelen Port ab, aber ich würde es in einem Standard-6-Pin-Header beenden, wenn ich neu anfangen würde. (Warum? Weil es Standard ist.) Hier sind seine Pin-Belegungen und das Bild unten für das Kabellayout. PD3 - MISOPD5 - ResetPD6 - SCKPD7 - MOSIWenn Sie Ihre eigenen machen, lernen Sie bitte aus meiner Erfahrung und legen Sie sie in eine schöne Plastikbox. Wenn Sie dies nicht tun, wird es irgendwann fehlschlagen, wenn der 12-MHz-Kristall abbricht. Deshalb verwende ich jetzt…Der schnelle und elegante Weg ist das USBtinyISP-Kit von Ladyada. Es kostet Sie 22 US-Dollar, aber Sie erhalten eine schöne Platine, vorprogrammiertes ATTiny2313 und eine saubere Box mit schönen Kabeln. Rohteile kosten sowieso zwischen 15 und 16 US-Dollar, und Sie müssen nicht Digikey aufrufen und sich dann um die Programmierung Ihres eigenen 2313 kümmern. Es dauert 30 Minuten - 1 Stunde, um alles zusammenzulöten. Protzen. Vertrau mir. (Keine Zugehörigkeit, zufriedener Kunde) Und habe gerade diesen Link gesehen: Ladyadas AVR-Tutorial, das mir ziemlich gut erscheint. (Und beachten Sie, dass Ladyadas Design und das ursprüngliche USBTiny unterschiedliche USB-Produktidentifikationscodes verwenden – Sie müssen die ID-Strings finden und avrGCC neu kompilieren, wenn Sie zwischen den beiden wechseln. Ich denke, es gibt Anweisungen auf den jeweiligen Webseiten.)

Falls Sie auf einem Ubuntu Linux-System sind und den USBTiny-Programmierer verwenden, sind hier die Befehle, die die gesamte Toolchain zum Laufen bringen: sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude(getestet auf Hardy Heron) Wenn Sie einen AMD64-Bogen haben, benötigen Sie möglicherweise auch: byacc libusb-dev flex bison libc6-devand dann um AVRdude von Hand zu kompilieren: (wget https://download.savannah.gnu.org/releases/avrdude/ avrdude-5.5.tar.gz tar xvzf avrdude-5.5.tar.gz cd avrdude-5.5 ## Patch benötigt für AMD64: wget https://savannah.nongnu.org/patch/download.php?file_id=14754 patch -p1 < avrdude-5.5.usbtiny.64bit.patch./configure make && make install sudo avrdude -p attiny2313 -c usbtiny ## zum Testen)Wenn Sie etwas sehen wie "avrdude: AVR-Gerät initialisiert und bereit, Anweisungen zu akzeptieren", dann wieder erledigt. Oh ja, und ich danke Wendel Oskay für das Diagramm der Standard-Pinouts des Programmierers.

Schritt 3: Die Programmierstation

Die Programmierstation
Die Programmierstation
Die Programmierstation
Die Programmierstation
Die Programmierstation
Die Programmierstation

In Ghetto Programmer v.1.0 habe ich eine Programmierstation mit einem nicht standardmäßigen Pin-Eingang und mit weiblichen Stiftleisten zum Einstecken von Sachen verwendet. Nicht-Standard-Pins sind eine schlechte Idee, da Sie Ihr Cradle nicht mit dem Programmierer eines anderen verwenden können und umgekehrt. Weibliche Stiftleisten haben Spaß gemacht, weil man LEDs direkt daran anschließen konnte, aber wenn ich etwas Komplexeres mache, würde ich es sowieso in ein Steckbrett verdrahten. Mit der neuen Wiege habe ich den Mittelsmann weggelassen. Weniger Handverdrahtung = besser. Der größte Vorteil dieses Cradle-Designs besteht jedoch darin, dass Sie das Cradle fast überall anschließen können, wo Sie den AVR-Chip anschließen könnten. Dies stellt sich als riesig heraus. Anstatt ISP-Schaltungen in Ihren Roboter oder was auch immer zu entwerfen, stecken Sie dieses Cradle-Ding einfach in den IC-Sockel. Dann können Sie das Gehirn Ihres Roboters im Schaltkreis programmieren / neu programmieren. Wenn Sie mit der Entwicklung fertig sind, schließen Sie den AVR direkt an und Sie können mit dem nächsten beginnen. Die Herstellung der Cradles ist einfach - Sie müssen nur die Pins des 6-Pin-Headers an die richtigen Stellen anschließen die Pommes. Dieses Mal habe ich geätzte Leiterplatten verwendet. Sie können das Ganze genauso gut per Hand verdrahten. Das ATTiny13/15-Cradle ist mit einer 8-poligen Wire-Wrap-Buchse ausgestattet. Ich liebe diese. Der Chip lässt sich leicht in seine schönen runden Löcher stecken und die langen Beine sorgen für zusätzlichen Spielraum auf dem Steckbrett. Ich habe die Leiterplattenspuren freihändig mit einem Sharpie gemacht. Die Halterung ATTiny2313 wurde mit Eagle und der Laser-Papier-Toner-Transfermethode hergestellt. Ich konnte keine 20-poligen Wire-Wrap-Buchsen finden, also musste ich auf eine normale 20-polige Buchse zurückgreifen, die auf 2 10-polige Stiftleisten gelötet ist. Dies endet mit einer Wiege mit kürzeren Beinen, aber es funktioniert. Der Schaltplan und das PDF, das ich für die Schaltung verwendet habe, sind unten. Bei beiden musste ich eine zusätzliche Leitung von Hand verdrahten. So ist das Leben.

Schritt 4: Blinkenlights

Blinklichter
Blinklichter
Blinklichter
Blinklichter

Einfachheit selbst. Ich würde diese gar nicht erwähnen, wenn sie nicht so verdammt praktisch wären.

Löten Sie einen Widerstand (150-220 Ohm ist ein guter Wert.) direkt auf die negative Leitung einiger LEDs. Es leuchtet von etwa 2 V bis 6 V auf, ohne auszubrennen. Und der Widerstand hilft Ihnen, sich daran zu erinnern, welche Seite negativ ist. Kleben Sie sie überall dort auf, wo Sie wissen möchten, dass es Strom gibt. Finden Sie heraus, ob dieser Transistor durchgebrannt ist. Verwandeln Sie einen Nikad-Akku in ein langlebiges Nachtlicht. Verwenden Sie eine Blinkcode-Schnittstelle, um Werte aus Ihrem Mikroprozessor (langsam) auszulesen. Oder machen Sie 8 davon und Sie haben eine 1-Byte-Anzeige (plus den Wirkstoff in Zylonenaugen). Machen Sie sie. Machen Sie viele. Machen Sie sie jetzt.

Schritt 5: Das Ende

Das Ende
Das Ende

Dieses "System" erfüllt also fast alle meine Entwicklungsbedürfnisse. Es ist modular, skalierbar, kompakt und tragbar.

Ich habe zum Beispiel die Routinen erarbeitet, um im Flugzeug auf dem Weg zur Hochzeit eines Freundes scrollende Nachrichten auf dem 4-stelligen Display (Intro-Seite) laufen zu lassen. Macht einen guten Eisbrecher mit den Flugbegleitern. Dieses Potentiometer -> ADC -> PWM-gesteuerte Amperemeter-Setup wurde vollständig zwischen meiner Couch und meinem Esstisch gebohrt, codiert und debuggt und bereinigt in etwa 2 Minuten, wenn Freunde vorbeikommen. (Es ist der Wecker-Einstellungsteil dessen, was eine Meter-Uhr sein wird.) Ich bringe das Setup manchmal zum Laufen, wenn ich Lust habe, Hooky zu spielen. Fügen Sie eine kleine Tüte mit Leckereien hinzu (einige Kondensatoren und Widerstände, Anschlusskabel, Transistoren, Piezo-Lautsprecher, Fotodioden, Mikrofone, kleine Motoren usw.) und Sie werden MacGuyver so weit voraus sein, dass es nicht einmal lustig ist.

Empfohlen: