wtorek, 8 marca 2016

Digispark Attiny85 - szybki start

Czym jest Digispark? To miniaturowa płytka z mikrokontrolerem Attiny85 oparta o ideę Arduino. Czyli korzystamy z IDE Arduino i niektórych bibliotek. Dlaczego niektórych? A dlatego, że nie wszystko się zmieści łącznie z programem w pamięci mikrokontrolera Attiny85 - 8kB, która to pamięć jest jeszcze zmniejszona o 2kB przez bootloader. Więc dużo nie zostaje. Dokładna specyfikacja. Układ można zasilać wprost z portu USB, lub przez odpowiednie piny na płytce. Przez to, że mikrokontroler jest wpięty wprost do portu USB, należy uważać by nie uszkodzić portu w komputerze przez zwarcie w budowanym na bazie płytki układzie. Producent poleca podpinać płytkę przez hub USB, lub uruchamiać korzystając z zewnętrznego zasilacza.

Jak zacząć

1. Sterowniki

Pobieramy sterowniki - można pobrać plik _DriverFiles.7z lub pobrać całe repozytorium.
Może się zdarzyć, że system po zainstalowaniu nie widzi płytki (pojawia się nieznane urządzenie). Wtedy należy ręcznie wskazać sterowniki do płytki w menedżerze urządzeń:
  1. Klikamy prawym klawiszem myszy na "Nieznane urządzenie";
  2. W zakładce "Sterownik" wybieramy "aktualizuj sterownik";
  3. Potem "Przeglądaj mój komputer w poszukiwaniu oprogramowania sterownika";
  4. Następnie "Pozwól mi wybrać z listy sterowników urządzeń na moim komputerze";
  5. Na następnym ekranie wybieramy pozycję "Pokaż wszystkie urządzenia" i dajemy dalej;
  6. W kolejnym oknie klikamy przycisk "Z dysku" i w oknie dialogowym wyboru plików wybieramy plik inf w katalogu ze sterownikami do Digisparka;
  7. Akceptujemy to że sterownik nie jest podpisany cyfrowo;
  8. Po zainstalowaniu sterownika, odłączamy na chwilę płytkę od portu i po ponownym włączeniu powinna być już widoczna jako "Digispark USB".
W moim przypadku urządzenie stało się wykrywalne po bezpośrednim wpięciu do portu USB komputera, wpięcie przez hub powoduje, że płytka nie jest wykrywana.

2. IDE Arduino

W Arduino IDE dodajemy nowe źródło konfiguracji płytek http://digistump.com/package_digistump_index.json:

Później w "Menedżerze płytek" instalujemy "Digistump AVR Boards"

3. Wgrywamy pierwszy program

W porównaniu do klasycznego Arduino, program wgrywa się w momencie wpięcia płytki do portu USB. Bootloader przez około 5 sekund oczekuje na zaprogramowanie. Dlatego najpierw w Arduino uruchamia się załadowanie szkicu, a dopiero pod koniec po komunikacie, mówiąc o wpięciu płytki wpina się ją (zazwyczaj jest na to przeznaczone 60 sekund) i następuje rzeczywiste załadowanie programu.
Na początek trzeba wybrać odpowiednią płytkę:

Później kompilujemy i ładujemy szkic do płytki (płytka musi być odłączona) i czekamy na komunikat:
W tym momencie podłączamy płytkę i po jej wykryciu nastąpi załadowanie szkicu:
Gotowe! Pierwszy szkic załadowany.

Podsumowanie

Płytka jest niewielka, szkice które można załadować też muszą być niewielkie. W porównaniu do Arduino, oferuje znacznie mniejsze możliwości. Plusem płytki są małe wymiary. Minusem jednak problematyczne działanie z USB. Samo ładowanie szkiców nie jest aż takim dużym problemem, można się przyzwyczaić, że najpierw szkic trzeba skompilować a potem podłączyć płytkę aby się załadował. Większym problemem jest wykrywanie urządzenia USB, sterowniki oraz huby USB, które nie zawsze chcą współpracować.

Mimo tego płytka Digispark może być ciekawą podstawą do projektów. Dołączone liczne przykłady pokazują różne zastosowania płytki. Mimo niewielkiej ilości pinów, można sobie poradzić budując projekty oparte o magistralę I2C.

Moim skromnym zdaniem to coś więcej niż tylko ciekawostka.