Arduino ISP Shield własnego wykonania

Ten wpis czekał trochę na publikację, ale wreszcie byłem w stanie go skończyć – jesteście ciekawi czym jest cudo na zdjęciu?

Pewnie tytuł mówi dużo – jest to shield do Arduino, który z założenia ma umożliwić proste i szybkie programowanie innych Arduino (oraz innych urządzeń programowalnych przez SPI) przez magistralę SPI. Nie jest on niestety kompletny, ale o tym później. Przejdźmy może do tego, o co tu chodzi 😉

Arduino może być programowane nie tylko przez USB – jest to możliwość udostępniona nam przez bootloader Arduino, który po restarcie mikrokontrolera oczekuje na dane programu na porcie szeregowy. Dane z USB są konwertowane przez specjalny chip TTL do postaci kompatybilnej z protokołem RS232, a one trafiają już bezpośrednio do naszej ATmegi. Jednak, co gdybyśmy przypadkowo nadpisali bootloader? Wtedy Arduino nie czekałoby już na nasze programy po jego włączeniu – dla niewprawnego użytkownika byłoby martwe. Bardziej doświadczeni użytkownicy wiedzą, że to żadna tragedia – Arduino posiada interfejs ICSP przez który, używając programatora ISP, można zaprogramować chip bezpośrednio i „przywrócić go do życia”.

Tu właśnie wchodzi do gry Arduino z moim shieldem. Nie wiem czy zauważyliście pojedynczy, nieprzyporządkowany do żadnej kategorii sketch w przykładach w Arduino IDE – tak, mówię o ArduinoISP. Ten sketch zamienia nasze Arduino w pełnoprawny programator ISP.

Shield w obecnej fazie rozwoju

Oczywiście – można ten sketch po prostu wgrać i podłączyć Arduino kabelkami do odpowiednich wyjść na płytce – ale po co utrudniać sobie życie? Posiadam jedną sztukę Arduino Pro Mini i zawsze denerwowało mnie to, jak trudno się je programuje. Dlatego właśnie pomyślałem o zrobieniu shielda z żeńskimi headerami dostosowanymi idealnie do tego mikrokontrolera. W ten sposób cały proces programowania staje się prosty – na Arduino Uno/Mega zakładam shielda, na shielda zakładam Arduino Pro Mini i gotowe!

Jaką przewagę daje mi shield w stosunku do gołego Arduino ze sketchem ArduinoISP? Po pierwsze, jak już wspomniałem, szybkość programowania – wkładam i gotowe, bez podłączania kabelków. Po drugie – na shieldzie znajdują się trzy diody, informujące o statusie programatora – jedna zielona, pokazująca tzw. Heartbeat (czyli mówiąc po ludzku pokazuje, że programator działa i czeka na instrukcje), jedna żółta, pokazująca, że programowanie jest w trakcie oraz jedna czerwona, pokazująca że coś podczas programowania poszło nie tak.

Widok z boku
Widok z boku

Jak widzicie na zdjęciach, żeńskich headerów jeszcze tam nie ma, bo zwyczajnie do mnie nie przyszły – może kiedyś będzie mi dane je przylutować 😛

Pomysł owszem, jest prosty – ale za to jak funkcjonalny! I to właśnie jest najważniejsze – funkcjonalność. Ja osobiście nie przykładam uwagi do wyglądu, dlatego wygląda to jak wygląda – zobaczymy jak będzie po dodaniu headerów 🙂

To by było na tyle, podobał wam się pomysł? Macie jakieś sugestie, pomysły? Podzielcie się nimi w komentarzach!