19
ATtiny mit ARDUINO IDE Programmierung des ATtiny 85 mit der ARDUINO IDE Creative Open Lab - Rainer Keil

ATtiny mit ARDUINO IDE - FabLab Nürnbergwiki.fablab-nuernberg.de/files/f/f0/ATTiny_mit_Arduino_V05.pdf · Creative Open Lab 16.10.14 ATtiny mit Arduino IDE Seite 4 /19 Voraussetzungen

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

  • ATtiny mit ARDUINO IDE Programmierung des ATtiny 85 mit der ARDUINO IDE

    Creative Open Lab - Rainer Keil

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 2 /19

    Fragen über Fragen ...

    ● Worum geht es hier ?● Warum das Ganze ?● Was brauche ich ?● Wo installiere das ?● Welchen Programmer nehme ich ?● Wann blinkt endlich die LED ?● Wo finde ich weitere Infos ?● Was wurde denn schon gebaut ?

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 3 /19

    Warum ATtiny ?

    ● Klein - im 8 Pin DIL … als SMD noch kleiner● Günstig – je nach Quelle schon für weniger als 1€ zu bekommen● Braucht (fast) keine externe Beschaltung● Genug Leistung für viele einfache Anwendungen● Als Entwicklungsumgebung reicht ein Arduino

    ● Ein paar Leitungsdaten am Beispiel ATtiny85– 8 kByte Flash für die Programme – 512 Byte RAM für die Daten– 512 Byte EEPROM– Takt bis 20 Mhz ( bis 8 MHz mit internem Taktgenerator)– 5 (für uns nutzbare) programmierbare Ports (Digtal E/A, Analog In, PWM, Interrupt ..)– Betriebsspannung 2,7 – 5,5V

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 4 /19

    Voraussetzungen Was brauche ich ?

    ● Teil 1 - Hardware– Den Chip selber: Atmel ATtiny45, ATtiny85, ATtiny44 oder ATtiny84

    – Programmer zum Programmieren: ISP Programmer● Ein Original von Atmel, z. B. AT AVR ISP2

    ● Oder einen anderen ISP-Programmerz.B. USBasp, USBtinyISP …

    ● Oder einen Arduino … dazu später mehr

    – Breadboard etc.

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 5 /19

    Voraussetzungen Was brauche ich ?

    Software– Die bekannte und beliebte

    Arduino Entwicklungsumgebung (IDE) Download von http://arduino.cc/en/Main/Software

    für Windows, Mac OS X und Linux

    – Erweiterung der IDE für ATtinyvon http://highlowtech.org/

    Programming an ATtiny w/ Arduino 1.0This tutorial shows you how to program an ATtiny45, ATtiny85, ATtiny44 or ATtiny84 microcontroller using the Arduino software. http://highlowtech.org/?p=1695 https://github.com/damellis/attiny/archive/master.zip

    https://github.com/damellis/attiny/

    http://arduino.cc/en/Main/Softwarehttp://highlowtech.org/http://highlowtech.org/?p=1695https://github.com/damellis/attiny/archive/master.ziphttps://github.com/damellis/attiny/

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 6 /19

    Installation der ATtiny Erweiterung (1)

    ● Download der Erweiterung http://highlowtech.org/?p=1695 https://github.com/damellis/attiny/archive/master.zip

    Das ist eine .zip-Datei, die als Ordner entpackt heißt: attiny-master (oder ähnlich)in diesem Ordner findest Du den Unterordner: attiny

    ● Finde den Ordner mit Deinen Sketches – Das ist vom Betriebssystem abhängig

    ● On Windows and Macintosh machines, the default name of the folder is "Arduino" and is located in your Documents folder.

    ● On Linux machines, the folder is named "Sketchbook" and it is typically located in /home/

    ● Erstelle im Sketchbook den Ordner: hardware

    ● Kopiere den heruntergeladenen Ordner attiny in den Ordner hardware !

    http://highlowtech.org/?p=1695https://github.com/damellis/attiny/archive/master.zip

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 7 /19

    Installation der ATtiny Erweiterung (2)

    ● Nach einem Neustart der Arduino-IDE sind unter Tools => Board jede Menge neue ATtinys enthalten

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 8 /19

    Arduino als ISP Programmiergerät● Mit dem Sketch „ArduinoISP“ wird ein Arduino zum

    Programmiergerät(siehe auch http://arduino.cc/en/Tutorial/ArduinoISP)

    – Arduino anschliessen und in der IDE auswählen (Board und Schnittstelle)

    – „ArduinoISP“ öffen (unter Beispiele)

    – „ArduinoISP“ hochladen ( „Upload“)

    – Bei einem „UNO“ muss jetztein Kondensator 10µF zwischenRESET und GND eingebaut werden

    – Als Programmiergerät auswählen: Tools > Programmer > ArduinoISP

    – Damit stehen am Arduino die ISP Signale zur Verfügung

    slave reset Pin 10 MOSI Pin 11MISO Pin 12SCK Pin 13

    SCKMISOMOSIReset

    5 VGND

    10 µF

    http://arduino.cc/en/Tutorial/ArduinoISP

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 9 /19

    Alternaive Programmiergeräte

    ● ISP-Shield für Arduinovom Mose, erhältlich bei eHaJo

    ● ISP Programmer von verschiedenen Herstellern

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 10 /19

    Verdrahtung Arduino ISP → Attiny 85

    10µF

    10µF

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 11 /19

    … jetzt geht es los Hello World = „Blink“

    ● ATiny als Board Auswählen– Sinnvoll sind die Varianten mit

    interner TakterzeugungTools>Board>ATtiny85 (internal 8 MHz clock)

    ● Fuses des ATtiny setzen– Tools>Bootloader installieren

    ● Beispielsketch „Blink“ laden– Datei>Beispiele>Basics>Blink

    ● Ausgang auf Pin 3 setzen (war 13)● Übersetzen und Programmieren

    – Datei>Upload (mit Programmer)

    FERTIG

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 12 /19

    „Tiny-Blink“

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 13 /19

    Was geht ??

    Ein ATiny ist kein ATmega und daher wird nur ein Teil der Arduino Kommandos unterstützt

    ● pinMode()● digitalWrite()● digitalRead()● analogRead()● analogWrite()● shiftOut()● pulseIn()● millis()● micros()● delay()● delayMicroseconds()● SoftwareSerial (bei 8Mhz)

    In den Weiten des Internet finden sich noch viele Anregungen und Bibliotheken

    ● TinyWireM & TinyWireS: Wire (I2C / TWI) library for the ATtiny85 (using USI)● Servo8Bit: Servo library for the ATtiny45/85.● ...

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 14 /19

    PINOUT des ATtiny 85 und die ARDUINO Übersetzung

    WICHTIGPin1 ist nicht sinnvoll für uns nutzbar, da sonst eine erneute Programmierung nicht mehr möglich ist !(= RESET, mit 5V verbinden)

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 15 /19

    Beispiel 1Abluftsteuerung für den FabLab Laser

    ● An einem Analogeingang wird die Stellung eines Potentiometers eingelesen. Dieser Wert wird dann als Sollwert für die Drehzahlvorgabe verwendet.

    ● Der Lüfter wird dann durch ein vom Hersteller definierten PWM Signal angesteuert.

    ● Mit einen Schalter kann der Lüfter abgeschaltet werden.

    ● PWM mit 3,9 kHz (31250/8) statt ca. 500 Hz

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 16 /19

    Beispiel 1Abluftsteuerung für den FabLab Laser

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 17 /19

    Beispiel 2RC Servo Reverse und Blinker

    ● Das an PPM_INPUT anliegende Signal wir an die beiden Servos so ausgegeben, dass sie gegenläufig ausschlagen.

    ● Die beiden LEDs werden je nach Lenkausschlag als Blinker geschaltet

    ● Liegt kein Eingangssignal an (=Fehler) blinken beide LEDS schnell

  • Creative Open Lab16.10.14 ATtiny mit Arduino IDE Seite 18 /19

    Beispiel 2RC Servo Reverse und Blinker

  • ATtiny mit ARDUINO IDE

    Folie 1Folie 2Folie 3Folie 4Folie 5Folie 6Folie 7Folie 8Folie 9Folie 10Folie 11Folie 12Folie 13Folie 14Folie 15Folie 16Folie 17Folie 18Folie 19