Ich möchte hier ein Entwicklungs-Board das auf dem ATtiny85 Mikrocontroller basiert vorstellen. Das Board soll sehr einfach aufzubauen sein, damit es auch im Schulunterricht aufgebaut werden kann. Die Kosten pro Board sollen nach Möglichkeit unter 5 Euro liegen.
Geplant sind zwei Versionen. Die eine Version basiert auf einer Lochstreifen-Platine. Die andere Version basiert auf einer Platine die gefräst wird.
Das Board (Prototype)
Layout
PINOUT
Alle PINs können als digitale I/O benutzt werden. Zusätzlich stehen folgende Funktionen zur Verfügung:
- Pin 0: I2C SDA, PWM
- Pin 1: PWM, (grüne LED)
- Pin 2: I2C SCK, Analog In
- Pin 3: Analog In (USB+ für USB Port)
- Pin 4: PWM, Analog In (USB- für USB Port)
- Pin 5: Analog In
Bootloader mit Hilfe des Raspberry PIs installieren
Der Raspberry PI bietet mit seinen GPIO PINs eine sehr gute Basis um den Bootloader auf den ATiny85 zu brennen. Natürlich kann auch ISP-Programmiere oder ein Arduino Board benutzt werden.
- Der SPI-Mode muss beim Raspberry PI aktiviert werden. Das geht über das Setup-Programm des PIs:
<br /> rasp-update<br />
<br /> sudo apt-get install bison automake autoconf flex git gcc<br /> sudo apt-get install gcc-avr binutils-avr avr-libc<br /> git clone https://github.com/kcuzner/avrdude<br /> cd avrdude/avrdude<br /> ./bootstrap<br /> ./configure<br /> sudo make install<br />
<br /> cd ~<br /> git clone git://git.drogon.net/wiringPi<br /> cd wiringPi<br /> ./build<br />
<br /> sudo gpio -g mode 22 out<br /> sudo gpio -g write 22 0<br /> sudo avrdude -p t85 -P /dev/spidev0.0 -c linuxspi -b 10000<br /> sudo gpio -g write 22 1<br />
Hier sollte folgende Meldung ausgegeben werden:
</p> <p>pi@rpi01 ~ $ sudo avrdude -p t85 -P /dev/spidev0.0 -c linuxspi -b 10000</p> <p>avrdude: AVR device initialized and ready to accept instructions</p> <p>Reading | ################################################## | 100% 0.02s</p> <p>avrdude: Device signature = 0x1e930b</p> <p>avrdude: safemode: Fuses OK (E:FF, H:DF, L:62)</p> <p>avrdude done. Thank you.<br />
<br /> wget http://paperduino.eu/lib/exe/fetch.php?media=micronucleus-1.06-upgrade.hex.zip<br /> unzip micronucleus-1.06-upgrade.hex.zip<br />
Und anschließend kann der ATiny85 gebrannt werden:
<br /> sudo gpio -g mode 22 out<br /> sudo gpio -g write 22 0<br /> sudo avrdude -P /dev/spidev0.0 -c linuxspi -b 10000 -p t85 -U flash:w:micronucleus-1.06-upgrade.hex -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xfe:m<br /> sudo gpio -g write 22 1<br />
[js_markieren]
Wenn alles richtig funktioniert sollte die Ausgabe wie folgt lauten:
<br /> pi@rpi01 ~/wiringPi $ sudo avrdude -P /dev/spidev0.0 -c linuxspi -b 10000 -p t85 -U flash:w:micronucleus-1.06-upgrade.hex -U lfuse:w:0xe1:m -U hfuse:w:0x5d:m -U efuse:w:0xfe:m</p> <p>avrdude: AVR device initialized and ready to accept instructions</p> <p>Reading | ################################################## | 100% 0.02s</p> <p>avrdude: Device signature = 0x1e930b<br /> avrdude: NOTE: "flash" memory has been specified, an erase cycle will be performed<br /> To disable this feature, specify the -D option.<br /> avrdude: erasing chip<br /> avrdude: reading input file "micronucleus-1.06-upgrade.hex"<br /> avrdude: input file micronucleus-1.06-upgrade.hex auto detected as Intel Hex<br /> avrdude: writing flash (3018 bytes):</p> <p>Writing | ########################################### | 86% 12.62s</p> <p>
Der erste Sketch
Bevor der erste Sketch geladen werden kann, muss unter Ubuntu 14.04 noch ein paar Einstellungen vorgenommen werden:
- Installation der notwendigen Packete
- Dann muss noch eine speziell präparierte Arduino IDE heruntergeladen werden:
- Jetzt kann der folgende Beispielsketch erstellt werden.
[js_markieren]
// the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(1, OUTPUT); //on board LED } // the loop routine runs over and over again forever: void loop() { digitalWrite(1, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(1, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
Das Board darf nicht mit dem PC verbinden sein, wenn ein neuer Sketch geladen werden soll! Während des Hochladens wird man aufgefordert das Board mit dem PC zu verbinden. Es sollte innerhalb von 60 Sekunden automatisch erkannt werden. Wenn alles funktioniert hat, sollte jetzt die Led an PIN 1 blinken.
<br /> sudo apt-get install libusb-0.1-4:i386 usbutils<br />
<br /> wget https://github.com/digistump/DigistumpArduino/releases/download/v1.5.8C/DigistumpIDE1.5.8C-linux64.tar.gz<br />
Lieber Herr Wolff,
ihre Arbeit hat uns sehr inspiriert und interessiert. Wie immer fanden wir ihren Beitrag hervorragend. Ich warte sehnsüchtig auf die nächsten Beiträge. Trotzdem möchten wir jetzt gerne nach Hause gehen. Wir finden gut, dass Sie immer Physikertshirts tragen.
Physikergruß aus der Schwäbischen Alp
Hallo,
sehr gelungenes Projekt und ausführliche Beschreibung. Einplatinencomputer und Mikrocontroller-Board der Marke Eigenbau sind imer interessante Projekte!
Gruß
Tony