Attiny 2313 i Arduino IDE
Wiem, że był już jeden opis jak zacząć programować Attiny. Brakowało mu jednak znajomego środowiska Arduino IDE, sprawdzonych i dobrze znanych komend i prostoty kompilacji. Czyli tego, za co kochamy Arduino!
Okazuje się, że nie tylko mnie to bolało. Grupa ludzi wyprodukowała „plugin” do Arduino IDE, który oferuje w miarę prosty sposób przejścia ze starej dobrej, ale często aż za dużej Atmegi na Attiny. Poniżej postaram się najjaśniej jak potrafię opisać cały proces.
Po pierwsze! Działam na Arduino IDE 1.04. Z notatek znalezionych w internecie wynika, że podany niżej sposób NIE działa na wersji 1.02, więc upewnij się, na czym pracujesz.
Przede wszystkim plugin: trzeba go pobrać z tego miejsca. Następnie musisz znaleźć katalog, w którym Arduino zapisuje tworzone przez Ciebie projekty. U mnie to: C:\Users\Marcin\Documents\Arduino\ (Windows 7). Tam utwórz katalog o nazwie: hardware (o ile go nie ma). Kolejnym krokiem jest wypakowanie wcześniej ściągniętego archiwum do katalogu hardware (wystarczy sam folder tiny. Folder Tools jest niepotrzebny) ostatecznie ścieżka powinna wyglądać mniej więcej tak: C:\Users\Marcin\Documents\Arduino\hardware\tiny

Kolejna rzecz to odpalenie Arduino IDE i sprawdzenie, czy wszystko zrobiliśmy dobrze. W zakładce Narzędzia -> Płytka powinieneś mieć teraz listę powiększoną o dość pokaźną rodzinę Attiny (tak jak na screenie). Nie zmieniaj jednak jeszcze ustawień.
Teraz musisz załadować projekt ArduinoISP (jest on dostępny w Plik -> Przykłady ->ArduinoISP). ArduinoISP to program, który przekształca twoją płytkę w programator bez konieczności wyciągania kości Atmegi, czy podłączania dodatkowych elementów. Poza potwierdzeniem płynącym z kompilatora, możesz dodatkowo podłączyć diodę do pinu 9-tego na Arduino (przez rezystor!). Dioda powinna rytmicznie pulsować. To sygnał, że Twoje arduino jest już gotowe do programowania innych!
Kolejny krok to połączenie Twojego Arduino (teraz jest programatorem) z Attiny (Ja posiadam Attiny2313 i takie tu też

opiszę, ale sposób powinien się sprawdzać dla innych mikrokontrolerów wymienionych na liście) Szybki rzut okiem w kartę techniczną 2313 i już wiesz co z czym połączyć:
Arduino (nr pinu) |
Attiny2313 (nr pinu) |
10 |
1 |
11 |
17 |
12 |
18 |
13 |
19 |
5V |
20 |
GND |
10 |
Ostatnia rzecz: Zmień ustawienia Narzędzia -> Płytka na posiadaną przez Ciebie płytkę (w moim przypadku Attiny2313 @8MHz. Teraz zmień Narzędzia -> Programator -> Arduino as ISP wybierz ponownie Narzędzia -> wypal bootloader i GOTOWE!
Opcja „wypal bootloader” tak naprawdę nie wgrywa żadnego kodu na Attiny, więc nie musisz się martwić, że ta operacja uszczupli i tak niewielkie zasoby pamięci. Ustawia ona tylko FuseBity, o których wspomnę w kolejnych artykułach.
UWAGA! W anglojęzycznych opisach znalazłem informacje, że powinno się podłączyć kondensator elektrolityczny 10 mikroF między RESET a GROUND na płytce Arduino. Ja jednak pominąłem ten krok i zdaje się nie mieć to wpływu na funkcjonowanie całości.
Żeby wszystko sprawdzić otwórz przykład Basis -> blink, zmień wartość zmiennej led na 1 i podłącz przez rezystor diodę do pinu nr 3 swojego Attiny 2313.
Masz przyjazne środowisko, łatwość kompilacji, programowania i dobrze znane Ci intuicyjne komendy!
Żeby dodać troszkę dziegciu do tej pięknej beczki miodu, to jestem zmuszony wspomnieć, że nie wszystkie komendy z Arduino IDE będą działać :/ Te najważniejsze jednak pozostają bez zmian! (oczywiście operatory typu if, case, for itp. pozostają bez zmian. tak samo jak zmienne boolean, byte, int, long, itp.)
Oto lista dostępnych komend:
Dodatkowo są jeszcze AnalogRead i AnalogWrite, ale akurat Attiny2313 nie ma pinów z ADC. (Za to Attiny 45 i 85 jak narbardziej i tam te funkcje się przydadzą)
Jeśli Chcesz wrócić do programowania Arduino musisz zmienić:
- Narzędzia – > Płytka -> Arduino Uno
- Narzędzia -> Programator -> AVRISP mk ||
Jeśli potem znowu chcesz programować Attiny:
- Ładujesz: ArduinoISP do swojego Arduino
- Zmieniasz: Narzędzia -> Płytka –> Attiny2313
- Zmieniasz Narzędzia -> Programator -> Arduino as ISP
Prawda, że proste?
Pozostaje pytanie: Po co mi to?! Odpowiedź staje się oczywista, jeśli dodam wisienkę na torcie w postaci obsługi I2C (TWI) przez Attiny 2313. To oznacza, że po podłączeniu odpowiedniego źródła prądowego mamy olbrzymią ilość wejść/wyjść/PWM i nie tylko. Jeśli nie przychodzą Ci do głowy żadne praktyczne zastosowania takiego cudeńka, to poczekaj do następnego odcinka!
Do przetestowania tego opisu potrzebne Ci będą:
- Arduino Uno (lub kompatybilne) najlepiej Starter Kit bo zapewnia dostateczną ilość kabelków, diod, i płytkę prototypową.
- Attiny2313 – Wiadomo, na czymś trzeba prowadzić testy.
U mnie trzeba podłączyć kondensator 10uF między Reset (+) a GND (-) na pinach Arduino.
U mnie pinologia jest inna i nie rozumiem Twojego przypisania. Ja potrzebuję pinów Arduino 8,11,12. Zgodnie z notą dla atmega168/328 te piny odpowiadają następującym portom: 8-PB0, 11-PB3,a 12 to PB4. Tak więc w attiny2313 porty te mapują się następująco: PB0 to nóżka nr 12, PB3 to 15, a PB4 – 16. Dzielę się, bo być może się to komuś przyda.
Nie ma się co zachwycać, Microsoft wypuścił już jakiś czas temu: .NET Micro Framework, dzięki któremu można programować microcontrolery z Visual Studia – najlepszego obecnie na rynku środowiska programistycznego, oraz debugować.
Arduino IDE – jeszcze lata zajmie zanim dogoni VS.NET.
Poprostu podpinasz płytkę z microkontrolerem przez USB do komputera, włączas VS i programujesz czy to w przyjemnym C#.NET.
Tak, zgadza się. Ale celem Arduino IDE nie jest dogonienie (jak to określasz) VS.NET. To są inne grupy docelowe, Arduino jest skoncentrowane na ułatwieniu początkującym rozpoczęcia przygody z elektroniką i programowaniem. Jako takie świetnie się sprawdza. A jak ktoś już wie czego szukać to może wybierać pośród mnóstwa środowisk programistycznych od różnych producentów.