Jednym z najbardziej przydatnych narzędzi w elektronice, jest programator AVR. Kosztuje on około 20-30zł(USBASP) i pozwala na wgrywanie oprogramowania na procesory AVR. Jeżeli jednak potrzebujemy szybko zaprogramować jeden układ bądź naprawić bootloader w arduino, a posiadamy układ ESP8266, możemy łatwo taki programator złożyć. Dodatkowo, programator ten jest bezprzewodowy, co pozwala na wbudowanie go w trudno dostępne miejsca.
Potrzebne przedmioty:
- Dowolny moduł ESP8266 posiadający min. 4 GPIO. (Np.: ESP-12). Moduł ESP-1 nie będzie działał z tym układem. Sam korzystam z płytki Nodemcu(ESP-12E+konwerter USB-RS232).
- Przejściówka RS232 do zaprogramowania tego układu. (Układ z którego korzystam, ta wbudowany ten “programator”)
- Garść kabli do płytki stykowej
- Płytka stykowa
- Procesor który chcemy zaprogramować.
- (Opcjonalnie) Konwerter poziomów napięcia.
Instalacja ESP8266 w Arduino IDE:
Potrzebujemy najnowszej wersji Arduino IDE. Uruchamiamy program, i wchodzimy w Plik->Preferencje. Znajdujemy napis “Dodatkowe adresy URL do menadżera płytek” i w polu po prawej wklejamy “http://arduino.esp8266.com/staging/package_esp8266com_index.json”. Wychodzimy z okna “Preferencje”, i z rozwijanej listy “Narzędzia”, wybieramy “Płytka”-“Menadżer Płytek”. Znajdujemy ESP8266 i klikamy “install“.
Podłączenie ESP8266.
Układ ESP8266 łączymy z konwerterem według tego poradnika. Sam układ podłączamy do procesora AVR w ten sposób:
ESP8266 | AVR |
---|---|
GPIO12 | MISO |
GPIO13 | MOSI |
GPIO14 | SCK |
GPIO5 | RESET |
!!! Układ ESP8266 obsługuje tylko napięcia 3.3V. Jeżeli chcesz zaprogramować układ 5V, musisz użyć konwertera poziomów napięcia.!!!
Wgrywanie programu na ESP8266.
W “Narzędziach” wybieramy “Generic ESP8266 module”, oraz ustawiamy port naszego konwertera. Z przykładów wybieramy “ESP8266AVRISP”. W kodzie zmieniamy:
- “ssid” na nazwę naszej sieci
- “pass” na hasło naszej sieci
- “reset_pin” na 5
Wgrywamy kod i otwieramy monitor szeregowy. Powinien być tam widoczny adres ip naszego układu.
Korzystanie z programatora.
W ustawieniach AVRDUDE ustawiamy jako programator “arduino”, a jako port (-P) “net:ADRES_IP:328”.
Komenda AVRDUDE powinna wyglądać podobnie do tej:
avrdude -c arduino -p attiny85 -P net:ADRES_IP:328… nasze polecenia
gdzie attiny45 to nazwa programowanego układu.
Mam nadzieję, że ten prosty układ okaże się przydatny dla wielu osób.
Ogólnie fajnie ale jeden błąd
“Avrdude -c arduino -p attiny85 -P net:ADRES_IP:328… nasze polecenia
gdzie attiny45 to nazwa programowanego układu.”
W komendzie jest attiny85 a nie 45 ale ogólnie 5/5
Niezłyr bajer. Ciekawe cy dało by radę zrobić coś takiego na bluetooth, np z HC05 i jakąś kością np atmega8
dałoby radę i bez kości :)
Problem byłby z resetem chyba, a co do programowania czegokolwiek przez konwerter USB uart mam do tego wybitnego pecha. Mam 4 takie urządzenia i żadnym mi się jeszcze nie udało :(
Oto schemat do programowania ;)
Tak można ardu zaprogramować (o ile ma bootloader arduino) przez HC-05
Tani to raczej nie jest, samo wifi z twojego linka to 72 zł.
Nie wspomnę o reszcie.
A USBASP to 20 zł z przesyłką.
Pozdrawiam.
17zł w pl, 2 dol za granicą ;)
Nie sprawdzałem, czy u mnie na pinie state faktycznie pojawia się stan wysoki po nawiązaniu połączenia. Czy opornik do bazy tranzystora musi mieć aż 10kOhm a do kolektora podciągający 1kOhm. I rozumiem że kondensator 1uF jest pot, żeby reset był wywołany tylko na moment, a nie utrzymywać układ cały czas w stanie resetu? Czy ten kondensator musi mieć taką wartość dokładnie czy może być z jakiegoś przedziału wartości? I pytanie o prędkość modułu HC05, bo udało mi się po ciężkich bojach wgrać parę przykładów z bluetooth i arduino as ISP, ale prędkość modułu była 38xxx (te xxx bo nie pamiętam końcówki) a nie 57600?
Super! czy bedzie to dzialac tez z Attiny 13, 25, 45, 85 ? Czy moze ktos zapodac podlaczenie z udzialem konwertera poziomow?