2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Voorwoord
Ek het onlangs 'n paar ESP8266 -gebaseerde IoT -projekte ontwikkel en gevind dat die kernverwerker sukkel om al die take uit te voer wat ek nodig gehad het om te bestuur, so ek het besluit om 'n paar van die minder belangrike aktiwiteite aan 'n ander mikrobeheerder (s) te versprei op hierdie manier kan u die ESP8266 vrystel om 'n IoT -toestel te wees.
Aangesien ek my projek aan 'n so groot moontlik publiek wil publiseer, het ek besluit om die Arduino IDE as die ontwikkelingsplatform van keuse te gebruik, aangesien dit so 'n wyd ondersteun gemeenskap het.
Ontwerpbeperkings
Om 'n redelike verspreiding van teikentoestelle moontlik te maak, wat die keuse van 'n geskikte mikrobeheerder vir die toepassing moontlik gemaak het, het ek besluit op die volgende Atmel -dele; ATMega328P, ATTiny84 en ATTiny85. Om die kompleksiteit van die nodige programmeerder te beperk, het ek die keuse van die klok beperk tot intern vir alle toestelle en 16MHz vir slegs die ATMega328P en ATTiny84.
Hierna volg 'n versameling aantekeninge oor programmering met die Arduino en 'n beskrywing van hoe ek 'n eenvoudige op Arduino Uno gebaseerde programmeerder vir hierdie toestelle saamgestel het (foto's hierbo).
Watter onderdele het ek nodig?
Om die programmeerder te bou, benodig u die volgende dele
- 1 afslag op Arduino Uno
- 2 af 28 -pins ZIP -DIP -voetstukke (Zero Insertion Force) (om ATMega328P, ATTiny85, ATTiny84 te hou)
- 1 uit Arduino prototipe skild (ek het myne hier;
- 2 af 5MM LED's
- 2 af 1K weerstande
- 1 uit 10K weerstand
- 4 af 22 pF keramiek kapasitors
- 2 af 16MHz kristalle
- 3 af 0.1uF keramiek kapasitors
- 1 uit 47uF elektrolitiese kondensator
- 1 af 10uF elektrolitiese kondensator
- Draaddraad van verskillende lengtes.
Watter sagteware het ek nodig?
Arduino IDE 1.6.9
Watter vaardighede het ek nodig?
- Kennis van Arduino IDE
- 'N Paar kennis van elektronika en hoe om te soldeer
- Baie handvaardigheid
- 'N Klomp geduld en goeie sig
Onderwerpe gedek
- Algemene inleiding tot die programmering van Atmel -mikrobeheerders
- ISP of Bootloader: Dit is 'n bietjie verwarrend
- Kringoorsig
- Stel u programmeerder op
- Gebruik u Arduino ISP -programmeerder
- Ontwikkel kode op u teikensisteem
- Gotchas
- Afsluiting
- Verwysings gebruik
Vrywaring
Soos altyd gebruik u hierdie instruksies op eie risiko en word dit nie ondersteun nie
Stap 1: Algemene inleiding oor die programmering van Atmel -mikrobeheerders
Daar is twee metodes beskikbaar vir die programmering van Atmel -mikrobeheerders;
- In stelselprogrammering (ISP),
- Selfprogrammering (via 'n selflaaiprogram).
Eersgenoemde metode (1) programmeer die mikrobeheerder direk via die SPI -koppelvlak nadat die toestel eers herstel is. Tensy anders aangedui, word 'n saamgestelde uitvoerbare bronprogram aan die toestel geleidelik in die kodegeheue geskryf, waarvandaan dit uitgevoer word by die aanvang. Daar is baie ISP -toestelle wat Atmel -toestelle kan programmeer, waarvan enkele (foto 1); AVRISPmkII, Atmel-ICE, Olimex AVR-ISP-MK2, Olimex AVR-ISP500. Foto 2 toon hoe die ISP -toestel aansluit by die ATMega328P (vreemd gemerk ICSP) op die Arduino Uno R3 -bord (prent 3 gee die ISP -pen uit). Dit is ook moontlik om 'n Atmel -mikrobeheerder te programmeer via sy SPI -koppelvlak met 'n Arduino Uno as ISP (prent 4), hier word die Uno gebruik om 'n ATMega328P te programmeer.
Laasgenoemde metode (2) gebruik 'n klein kode -stompie wat bekend staan as '' bootloader 'wat permanent in die uitvoerbare kodegeheue woon (gewoonlik gesluit om toevallige oorskrywing van prent 5 te voorkom). Hierdie kode word die eerste keer uitgevoer by die aanskakel of die herstel van die toestel, en laat die mikrobeheerder toe om homself te herprogrammeer met nuwe kode wat via een van sy koppelvlakke ontvang word vanaf 'n eksterne bron. Die bootloader-metode word deur die Arduino IDE gebruik om Arduinos wat as 'n USB-poort op die rekenaar gekarteer is, te herprogrammeer (of MAC, Linux-boks ens., Foto 6) en in die geval van die Arduino Uno kommunikeer dit met die Atmel-toestel via dit seriële koppelvlak op IC -penne 2 en 3 van die ATMega328P. Ook die Arduino Uno (met die ATMega328P -mikrobeheerder verwyder) kan gebruik word om 'n ATMega328P te programmeer via die selflaaiprogrammetode wat effektief as 'n USB na 'n seriële adapter (foto 7) funksioneer.
Wat is 'n USB na seriële adapter?
'N USB-na-serie-adapter is 'n hardeware wat by u rekenaar se USB-poort aansluit en lyk soos 'n seriële com-poort ('n nalatenskap van vroeër toe rekenaars 'n seriële kommunikasiestandaard, bekend as EIA-232, V24 of RS232) gebruik het, sodat u stuur en ontvang reeksdata op dieselfde elektriese vlakke van die mikrobeheerder. As u Tools -> Port -> COMx uit die Arduino IDE kies, verbind/koppel u u rekenaar aan u Arduino.
'N Toestel soos hierdie word soms 'n FTDI genoem (foto 8, wat eintlik 'n handelsnaam is) of CH340G, ens. USB na reeks op die Arduino uno word verkry via 'n ATMega16U2-MU (R) IC ZU4 soos in die Arduino-skema hieronder.
Ter duidelikheid, beeld 9 identifiseer die twee Atmel -toestelle en hul onderskeie ISP -verbindings op die Arduino Uno R3.
Opmerking 1: As u besluit om die FTDI -toestelroete te volg, moet u by 'n betroubare verkoper koop, aangesien daar baie goedkoop vervalste toestelle op die mark was wat misluk het toe 'n Windows -opdatering toegepas is.