Attiny - NikolaiRadke/Nokolino_pcb GitHub Wiki

Der ATtiny

Nokolinos Hirn, ein ATtiny85 oder der (unwesentlich) preisgünstigere ATtiny45, muss natürlich vorher mit der Software beschrieben werden.

Wer sich nicht auskennt und keinen entsprechenden Programmer zur Hand hat, dem sei hier geholfen: Der ATtiny lässt sich über seine ICSP-Schnittstelle (In-Circuit Serial Programming) mit Hilfe eines Arduinos, Arduino-IDE und eines 10µF-Elkos leicht programmieren.

Arduino-IDE vorbereiten

Zunächst muss die ATtiny-Unterstützung installiert werden.

  1. Unter Datei > Voreinstellungen im Feld Zusätzliche Bordverwalter-URLs folgende URL eingetragen werden:

https://raw.githubusercontent.com/damellis/attiny/ide-1.6.x-boards-manager/package_damellis_attiny_index.json

  1. Mit OK bestätigen.
  2. IDE neu starten.
  3. Im Menü Werkzeuge > Board > Boardverwalter... den Boardverwalter starten.
  4. attiny by David A. Mellis auswählen und auf Installieren klicken.

Nun ist die ATtiny-Unterstützung installiert. Jetzt muss der Arduino vorbereitet werden.

Arduino vorbereiten

  1. Den Arduino (UNO, Nano,...) mit dem PC verbinden.
  2. Kontrollieren, ob auch das richtige Board unter Werkzeuge > Board eingestellt ist, also Arduino/Genuino UNO bzw. Arduino Nano.
  3. Unter Datei > Beispiele > ArduinoISP > ArduinoISP öffnen und mit Sketch > Hochladen auf den Arduino laden.

ATtiny und Arduino verbinden

Verbindung trennen und den Arduino wie folgt mit dem ATtiny verbinden, dabei den Elko nicht vergessen:

ATTINY-ARDUINO

Hinweis für den Arduino Mega
Bei den großen Brüdern gilt eine andere Pinbelegung:

Tiny  -> Mega 
Pin 1 -> Pin 53 | Pin 8 -> 5V
Pin 2 -> leer   | Pin 7 -> Pin 52
Pin 3 -> leer   | Pin 6 -> Pin 50
Pin 4 -> GND    | Pin 5 -> Pin 51

Bei manchen Klonen wird Pin 1 nicht mit Pin 53 verbunden, sondern mit Pin 10. Ausprobieren.

Bootloader flashen

Der ATtiny benötigt einen Bootloader, um starten zu können. Dabei wird auch die Frequenz festgelegt. Nokolinos ATtiny läuft mit 8 Mhz und dem internen Taktgeber.

  1. Den Arduino wieder mit dem PC verbinden. Unter Werkzeuge > Port ggf. wieder den verbundenen Port anpassen.
  2. Unter Werkzeuge > Programmer > Arduino as ISP einstellen.
  3. Unter Werkzeuge > Board > ATtiny25/45/85 einstellen.
  4. Unter Werkzeuge > Prozessor nun ATtiny85 bzw. ATtiny45 auswählen.
  5. Unter Werkzeuge > Clock > 8 MHz (internal) auswählen.
  6. Unter Werkzeuge > Bootloader brennen starten.

Nach einigen Sekunden ist der Bootloader gebrannt und der ATtiny kann mit eigenen Sketchen bespielt werden.

Nokolino-Firmware flashen

Jetzt fehlt noch der entsprechende Sketch, der jetzt installiert werden soll. Dazu wird zunächst Nokolino.ino, je nach Platine und MP3-Modul, in der IDE geöffnet.

Die Software ist mit meines Erachtens monstertypischen Voreinstellungen ausgerüstet. Es muss nur wenig eingestellt werden.

V3.1

  1. Soll Nokolino erst als Steckbrett ausgetestet werden, so sollte in dies in Zeile 37 definiert werden.
  2. Die Lautstärke kann in Zeile 31 angepasst werden. 25 ist ideal für Nokolino, 22 für Nokolina. Einfach ausprobieren.
  3. (Optional) Eigenes Sprachset in Zeile 34 und 35 definieren. Die Dateien für die Bauchtaste werden bei Button_event definiert, die weiteren Sprachdateien bei Time_event.
  4. (Optional) Sprachintervall in Zeile 30 einstellen (10 = 10 Minuten ist voreingestellt).
  5. (Optional) Nokolino sagt Piep beim Starten. Das kann in Zeile 47 deaktiviert werden.
  6. (Optional) Batteriewarnung deaktivieren in Zeile 48.
  7. (Optional) Wenn ein Lichtsensor verwendet wird, kann er in Zeile 49 aktiviert werden.
  8. (Optional) Soll Nokolino meckern, wenn es dunkel ist, kann das in Zeile 50 aktiviert werden. Das geht freilich nur mit Lichtsensor.
  9. Sketch hochladen.

V3.0

  1. Soll Nokolino erst als Steckbrett ausgetestet werden, so sollte in dies in Zeile 41 definiert werden.
  2. Die Lautstärke kann in Zeile 31 angepasst werden. 25 ist ideal für Nokolino, 22 für Nokolina. Einfach ausprobieren.
  3. (Optional) Eigenes Sprachset in Zeile 34 und konkret in Zeile 36 und 37 definieren. Die Dateien für die Bauchtaste werden bei Button_event definiert, die weiteren Sprachdateien bei Time_event.
  4. (Optional) Sprachintervall in Zeile 30 einstellen (10 = 10 Minuten ist voreingestellt).
  5. (Optional) Nokolino sagt Piep beim Starten. Das kann in Zeile 50 deaktiviert werden.
  6. (Optional) Batteriewarnung deaktivieren in Zeile 51.
  7. (Optional) Wenn ein Lichtsensor verwendet wird, kann er in Zeile 52 aktiviert werden.
  8. (Optional) Soll Nokolino meckern, wenn es dunkel ist, kann das in Zeile 53 aktiviert werden. Das geht freilich nur mit Lichtsensor.
  9. Sketch hochladen.

V2.1

  1. Die Lautstärke kann in Zeile 32 angepasst werden. 25 ist ideal für Nokolino, 22 für Nokolina. Einfach ausprobieren.
  2. (Optional) Eigenes Sprachset in Zeile 50 und konkret in Zeile 51 und 52 definieren. Die Dateien für die Bauchtaste werden bei Button_event definiert, die weiteren Sprachdateien bei Time_event.
  3. (Optional) Sprachintervall in Zeile 31 einstellen (10 = 10 Minuten ist voreingestellt).
  4. (Optional) Nokolino sagt Piep beim Starten. Das kann in Zeile 67 deaktiviert werden.
  5. (Optional) Batteriewarnung deaktivieren in Zeile 64.
  6. (Optional) Wenn ein Lichtsensor verwendet wird, kann er in Zeile 65 aktiviert werden.
  7. (Optional) Soll Nokolino meckern, wenn es dunkel ist, kann das in Zeile 66 aktiviert werden. Das geht freilich nur mit Lichtsensor.
  8. Sketch hochladen.

Firmware flashen

Das Hochladen funktioniert natürlich auch mit jedem anderen Sketch. Wer mag kann sich jetzt an den ATMEL-Winzlingen austoben und z.B. einen mächtigen Blink-Sketch (mit entsprechender Hardware) ausprobieren. Ansonsten kann die Verbindung nun getrennt und der ATtiny entfernt werden. Den Aufbau sollte jeder ruhig noch eine Weile so belassen, um ggf. Anpassungen am Sketch vornehmen zu können.

Hinweise für Linux-Nutzer

Bei einigen Debian-basierten Distributionen wie Ubuntu oder Mint kann eine Fehlermeldung beim Hochladen des Sketches auf den Attiny auftreten:
avrdude: ser_open(): can't open device "/dev/ttyUSB0": Permission denied.
Das Problem kann behoben werden, indem der eigene User zur dialout-Gruppe hinzugefügt wird. Dazu muss ein Terminal geöffnet und folgendes eingegeben werden:
sudo usermod -a -G dialout $USERNAME.
Nun das Passwort eingeben und neu starten. Das Hochladen sollte nun funktionieren.

Weiter

Los geht es! Der Lötkolben wird geschwungen und das Lot muss fließen! Bauanleitung Technik