Pro mini pinout. Opis plošče arduino pro mini. Arduino Pro Mini - pinout in značilnosti. Shema in začetni dizajn. Dodajanje kitajskega Pro Mini v Arduino IDE

Nedolgo nazaj sem naletel na potrebo po uporabi Arduino Pro Mini v svojem projektu in takoj se je pojavilo vprašanje, kako vanj naložiti skico. Seveda se prodajajo različni adapterji UART, s pomočjo katerih je to težavo mogoče hitro rešiti, vendar v tistem trenutku takšnega adapterja ni bilo pri roki.

To je, kot sledi:

Nano -> Pro Mini

  • +5v -> Vcc
  • GND -> GND
  • D10 -> RST
  • D11 -> D11
  • D12 -> D12
  • D13 -> D13

Dobil sem nekaj takega:

Ko je vse sestavljeno in preverjeno, lahko Nano povežete z računalnikom tako, da 7-krat utripnete, obe plošči sta pripravljeni za uporabo.

Nato se moramo za bliskavico vdelane programske opreme prepričati, da pri nastavljanju plošče, ki jo želimo flashati, in programatorja uporabljamo enake hitrosti vrat, pri čemer za standard vzamemo hitrost iz skice. Za vrsto plošče morate najti datoteko boards.txt njegova pot je relativna nameščen program IDE je takšen: Arduino/strojna oprema/arduino/boards.txt. V njem moramo najti razdelek s parametri za ploščo Pro Mini, videti je nekako takole:

Pro5v328.name=Arduino Pro ali Pro Mini (5V, 16 MHz) w/ ATmega328

Imam flashable 5-voltni mini z mikrokontrolerjem ATmega328, vendar če imate drugačno različico plošče, potem morate poiskati razdelek, ki ustreza vaši plošči.

Tu se morate prepričati, da je hitrost pravilno nastavljena:

Pro5v328.upload.speed=19200

Nato pojdite na datoteko programmers.txt, njeno pot Arduino/hardware/arduino/programmers.txt in se prepričajte, da so parametri pravilni:

Arduinoisp.name=Arduino kot ISP
arduinoisp.communication=serial
arduinoisp.protocol=stk500v1
arduinoisp.speed=19200

Ko se prepričate, da so vsi parametri pravilni, lahko zaženete IDE; če se je izvajal, ga znova zaženite. To je potrebno, da začnejo veljati novi parametri.

Po zagonu IDE moramo v meniju »Orodja« nastaviti našo ploščo, da se utripa, in tip programatorja »Arduino kot ISP«:

Zdaj smo vsi pripravljeni na firmware. Izberite želeno skico, za testiranje pa lahko izberete katerega od primerov. In zdaj posebna pozornost Povedal vam bom, kako ga utripati, običajni gumb za utripanje nam ne bo deloval, saj je namenjen utripanju s standardnim programatorjem, tj. v Arduino Nano in ko ga pritisnemo, bomo Nano preprosto utripali, česar pa nikakor ne potrebujemo.

Pravilen način za flashanje Pro Mini je v meniju »Datoteka« in se imenuje »Nalaganje s programatorjem«, imam različico IDE 1.5.6-r2, tam se ta element imenuje »Nalaganje s programatorjem«, očitno obstajajo težave s prevajanjem v tej izdaji, v različici 1.0.5-r2 je vse v redu.

Prvič ga morda ne boste mogli bliskati, v prihodnosti pa boste morda prejeli takšno napako:

Vendar ne skrbite, če je vse pravilno sestavljeno in varno spajkano, potem samo pritisnite “Reset” na Pro Mini, počakajte nekaj sekund in plošča bo uspešno utripana.

Hvala za pozornost, to je zaenkrat vse.

– kompaktna različica platforme Arduino, zasnovana za gradnjo vseh vrst projektov, ki niso veliki. Platforma je 100% kompatibilna z drugimi Arduino platformami, kot npr Arduino UNO, vendar veliko bolj kompakten od njega. V tem članku bom pregledal kitajski analog Arduino Pro mini, vam povedal, v čem se razlikuje od originala, v čem se ta plošča razlikuje od drugih plošč platforme Arduino in vam tudi povedal, kako jo povezati z računalnikom, da naložite skico vanj. Nazadnje se prepričajmo, da plošča deluje, tako da kot primer uporabimo skico »mežikanje«.

Ta analog Arduino Pro mini sem kupil na Aliexpressu za 1,30 $, originalna plošča na spletni strani proizvajalca pa stane 13 €. Razlika v ceni je prva glavna razlika med kitajskim analogom in izvirnikom.

Plošča je priložena v antistatični vrečki. V kompletu so bile tudi kontaktne ploščice.

Za primerjavo, zgornja plošča je originalni Arduino Pro mini, spodaj je moj kitajski dvojnik. Po številu in lokaciji kontaktov je plošča enaka originalu, razen kontaktov A4, A5, A6 in A7. Vklopljeno originalna plošča Ti kontakti se nahajajo v sredini, na analogni strani pa na levi strani.

Da bi imeli vizualno predstavo o velikosti plošče, jo bom pokazal poleg njenega kitajskega kolega Arduino UNO. Pro mini je bilo mogoče zmanjšati z odstranitvijo USB priključek, vezija za ujemanje plošč z vrata USB, odstranjen je bil tudi napajalni konektor. Kitajski analog je 100% združljiv z vsemi moduli, gonilniki, senzorji, ki delujejo z izvirno različico.

Originalna sodobna mini plošča Arduino Pro je zasnovana na mikrokontrolerju ATmega328, na istem kot Arduino UNO. več zgodnji modeli ta plošča je bila zgrajena na mikrokrmilniku ATmega168.

Kitajski analogi Arduino Pro mini na ta trenutek se gradijo kot ATmega328, in naprej ATmega168. To je druga razlika med izvirnikom in njegovim analogom. Plošča, ki temelji na ATmega168, bo stala manj kot plošča, ki temelji na ATmega328. Glavna razlika med temi krmilniki je, da ATmega328 vsebuje dvakrat več pomnilnika kot ATmega168.

Razlike med mikrokontrolerji

ATmega168

ATmega328

16 KB

A to ne pomeni, da na ATmega168 ne bo mogoče zgraditi projekta, ki je bil razvit na plošči z ATmega328, saj bo 16 KB povsem dovolj za marsikatero skico. Kljub temu, če potrebujete dvojno količino pomnilnika, pred nakupom preberite opis plošče. Pri nakupu svojega kitajskega primerka sem izbral ploščo za 1,30 USD z ATmega168 namesto plošče za 1,93 USD z ATmega328. Kot vidite, lahko tukaj tudi prihranimo pri nakupih.

Originalna plošča Pro mini je izdelana z dvema možnostma napajanja: 5 in 3,3 voltov. Za različico, ki deluje od 3,3 voltov, mikrokrmilnik deluje pri frekvenci 8 MHz, za različico 5 voltov - pri frekvenci 16 MHz. Kitajski analogi se proizvajajo tudi v dveh različicah. Moja plošča deluje na 5 voltov.
Vizualno lahko delovno frekvenco regulatorja določimo s kvarcem, ki je nameščen na plošči, če je v velikem ohišju, se jasno vidi, na kateri frekvenci deluje: 8 ali 16 MHz.

Fragmenti plošč s kremenom, ki deluje na različnih frekvencah.

O napajalniku za Arduino Pro mini.

Nožice GND, VCC in RAW se uporabljajo za napajanje plošče.
GND- to je minus moč (ozemljitev).
VCC– uporablja se za napajanje 3,3 ali 5 voltov, odvisno od različice plošče. Ta priključek se napaja izključno z napetostjo, za katero je izdelana plošča. Napetost s tega kontakta gre neposredno na mikrokontroler; če je višja od potrebne, lahko slednji odpove.
Če boste ploščo napajali z visoko napetostjo, morate na konektor priključiti napajalnik "+". SUROV. Ta konektor lahko napaja do 12 V, ne glede na napetost, za katero je plošča zasnovana. Napetost iz tega kontakta se napaja v stabilizator napetosti, ki jo pretvori v zahtevano vrednost in šele nato se napaja v krmilnik.

Če se zgodi, da ste kupili ploščo in ne veste, za kakšno napetost je zasnovana, priključite 5 voltov na priključek RAW in izmerite napetost na priključku VCC. Če je plošča zasnovana za 3,3 volta, bo ustrezna napetost na VCC, če je 5 voltov na VCC, potem je plošča 5 voltov.

Digitalni in analogni izhodi Pro mini ustrezajo enakemu številu izhodov kot plošča UNO: 14 digitalnih in 6 analognih. Za povezavo se uporabljajo kontakti A4 (SDA) in A5 (SCL). razne naprave prek vodila I2C.

O vdelani programski opremi Arduino Pro mini.

Ker je plošča Pro mini postala ena najmanjših plošč na platformi Arduino, je dobila pomanjkljivost - plošče ni mogoče bliskati brez zunanja pomoč. Vse ti bom povedal možne načine nalaganje skic v Pro mini.

Vdelana programska oprema za Arduino Pro mini z uporabo plošče Arduino UNO.

To ni najlažji način, saj nimajo vsi plošče UNO in ni priporočljivo, da bi jo kupili posebej za utripanje Pro mini plošč. Ker pa imam kitajski analog UNO, bom začel s to metodo. Za izvedbo te metode je treba na ploščo UNO namestiti gonilnik in določiti številko vrat COM, na katera je ta plošča povezana. Kako to storiti, je opisano v članku o kitajskem analogu Arduino UNO.

Plošče povežemo kot na sliki. zaključki GND, TX in RX povezovati s podobnimi. Zaključek " VCC"na plošči Pro mini se povežemo z " 5V" ali " 3V3"na odboru ZN. Če imate 5-voltno različico Pro mini, jo priključite na terminal "5V", kot v moji različici. Če je različica 3-voltna, priključite na "3V3" na plošči UNO. Zaključek PONASTAVITI na plošči UNO priključimo na pin DTR na plošči Pro mini. Na originalni plošči izhod DTR označen kot GRN, na splošno je to isto.

Ko je vse povezano, zaženemo Arduino IDE.



Izberite ploščo, v katero želite vdelati skico:« Orodja» - « Plačati:" in izberite svojo ploščo, v tem primeru je "Arduino Pro ali Pro Mini».

Ker lahko plošče Pro Mini uporabljajo različne mikrokontrolerje (ATmega168 ali ATmega328), kot tudi različne napajalne napetosti (3.3 v ali 5v ), izberite svojo konfiguracijo: “ Orodja» - « procesor:"V v tem primeru izberem " ATmega168 (5 V, 16 MHz)».

Izberite vrata, na katera je priključena ploščaUNO: « Orodja» - « vrata:» v mojem primeru je "COM7».

Poskusimo naložiti prvo skico in se prepričati, da plošča deluje. Izberite skico " Utripaj ", katerega pomen je utripanje LED, vgrajene v ploščo: " mapa» - « Vzorci» - « 01. Osnove» - « Utripaj».

Uporaba gumbov " Preverite"in" obremenitev"Skica se preveri glede napak in se naloži na tablo. Če ni napak, bo na plošči Pro Mini začela utripati modra LED.

Lahko se igrate z vrednostmi v skici in spremenite čas, ko je LED dioda vklopljena, in čas, ko je LED dioda izklopljena, znova izpolnite skico in vidite, da bo LED dioda utripala drugače.

Vdelana programska oprema za Arduino Pro mini z uporabo adapterja USB v TTL.

O enem od teh adapterjev na čipu PL2303 sem že govoril, zdaj je čas, da ga preizkusim v praksi. Obstajata dve različici tega adapterja, ena brez kontakta GRN (DTR), kot je moj, in druga s tem kontaktom. Tisti s kontaktom stanejo vsaj dvakrat več kot tisti brez stika.

Če uporabljate adapter brez GRN (DTR) kontakta, ga priključite na Pro mini kot na sliki.

Če imate 3-voltno različico Pro mini, potem mora biti VCC pin na plošči priključen na 3V3 pin adapterja USB.

Ko je vse povezano, zaženite Arduino IDE. Izberemo različico plošče, procesor in vrata, izberemo skico "Blink", vse je enako kot v zgornjem primeru z UNO.

Za izpolnitev skice potrebujete:
1. Kliknite na " obremenitev».
2. Začel se bo postopek sestavljanja skice, kot je razvidno iz napisa " Kompilacija skic ...».
3. Takoj, ko se ta napis spremeni v " Nalaganje...».
4. Na kratko pritisnite gumb na plošči Pro mini PONASTAVITI.
5. Skica se bo naložila na tablo, na njej pa bo viden napis “ Raztovorjeno"in z utripajočo LED na plošči.

Če imate slučajno v rokah adapter USB v TTL, z zatičem DTR (aka GRN, RESET), ga povežite z ustreznim zatičem RESET na plošči Pro mini. V tem primeru vam pri nalaganju skice ne bo treba pritisniti gumba RESET, plošča se bo ponastavila sama.

Ta adapter, tako kot PL2303, omogoča flash ploščo Arduino. Diagram povezave je naslednji:

Obstajajo tudi drugi USB adapterji za utripanje vdelane programske opreme Arduino Pro mini, na primer na čipu FT232, vendar zaradi dejstva, da je ta adapter dražji, ga ne upoštevam.

Vdelana programska oprema za Arduino Pro mini z uporabo programatorja CH341A.

Programator na čipu CH341A lahko deluje v načinu UART, kar pomeni, da lahko bliska Arduino Pro mini.

Programator je lahko predstavljen v različnih vizualnih oblikah, glavna razlika pa je cena in prisotnost dodatnih stikov. Med te kontakte lahko na primer napeljemo dodaten +5V kontakt. Ta, ki sem ga kupil, ni imel tega kontakta, moral sem ga spajkati na ploščo, da sem dobil to napetost.

Če želite uporabiti ta programator kot adapter UART, morate odpreti kontakte P/S.

Za povezavo s Pro mini boste potrebovali kontakte na programatorju: Tx, Rx, GND in +5V. Druga značilnost tega programatorja je, da je na krovu kontakt DTR, ki ga povežete s ploščo Pro mini, ne bo treba pritisniti gumba Ponastaviti, pri izpolnjevanju skice. Če želite aktivirati ta stik, ga morate uporabiti MOSI, v načinu UART deluje kot DTR.

V moji različici programatorja kontakt +5 V ni bil izhoden, to napetost sem moral vzeti iz noge stabilizatorja. Končna povezava je naslednja:

Pro mini CH341A
Tx Rx
Rx Tx
DTR MOSI
GND GND
VCC +5V

Prenos gonilnika: Yandex disk MEGA Oblak mail@ru

Po namestitvi gonilnika se v upravitelju naprav prikažejo navidezna vrata COM. Polnjenje skic poteka na enak način kot prek adapterjev PL2303 / CH340G, z edino razliko, da vam ni treba pritisniti gumba Ponastaviti.

Upoštevati je treba, da je ta programator mogoče priključiti samo na 5 voltov Arduino plošče saj uporablja nivoje 5 voltov! Enako velja za druge naprave, ki potrebujejo adapter UART.

Firmware za Arduino Pro mini prek vrat COM.

Plošče ne bo mogoče neposredno bliskati prek vrat COM, saj imata vrata COM in Pro mini različne logične ravni. Če jih želite uskladiti, morate uporabiti adapter na čipu MAX232. Sam čip ni drag, vendar ne vem, če se splača truditi Pro firmware mini montaža takega adapterja, če cena ni cenejša od nakupa USB adapterja za .

V vsakem primeru predstavljam diagram.

Da bi se prepričal, da ta metoda deluje, sem moral sam sestaviti to vezje na mizi. Plačilo v teku...

Večina modulov, ki se prodajajo kot deli kompletov Arduino, je plošča z linearnim stabilizatorjem in napisom: "vhodna napetost od 3 do 5 voltov", sama mikrovezja, ki opravljajo delo modulov, pa se pogosto napajajo z napetostjo 3,3 V, in včasih lahko deluje pri znižanju na 3 ali 1,8 V.

Ta modul bo pomagal optimizirati velikost in podaljšati čas delovanja mojega zapisovalnika GPS...

Arduino je pakiran v vrečki s črtno kodo:



Mogoče je to originalni modul?


LED indikatorja napajanja sveti zeleno, #13 je rdeče:

Zakaj potrebujete prav ta Arduino - 3,3 V, in ne kot vsi drugi - 5 V za 1,4 $? Vse je v redu, ko je treba pokazati čudež, ki se zgodi, ko napravo priključimo na Arduino: kupimo module, jih povežemo na skupni vir 5V, naložimo skico - in vse se sveti in puhti. Toda pri razvoju bolj ali manj rabljenih naprav morate razmišljati tako o energetski učinkovitosti kot o kompaktnosti - posledično polovica dodatnih blokov odleti iz vezij.

Kot lahko vidite, je procesor Atmega328 tega modula lahko deluje pri napetosti 2,7 V, napetost pa praktično pade na stabilizatorju; za primerjavo, na 5-voltnem Arduinu (od prejšnja različica GPS logger) Opazil sem napetost 3,6 V pri napajanju iz 5 V na vhodu RAW.

Mimogrede, s kakšno hitrostjo proizvaja informacije? Imel sem dnevniško datoteko, v dveh minutah se nabere 5,42 KB (4336 KB) ~ 37 KB/s, če se ne motim, je hitrost skoraj 15-krat manjša.

Enako ožičenje, priključimo napajanje brez stabilizatorja - neposredno na VCC, TX -> 2:


Skript bere znak za znakom iz programske opreme serijska vrata in piše v sobo s strojno opremo, na katero smo povezali programator, in poglejmo, kaj se izkaže:
#vključi // Za uporabo vrat programske opreme. SoftwareSerial mySerial(2, 3); //Inicializiraj pin 2 Arduina. char ch; // Medpomnilnik. void setup() ( Serial.begin(9600); mySerial.begin(9600); ) void loop() ( // Če je znak prebran iz znoja programske opreme, if ((ch = mySerial.read()) != -1) Serial.write(ch); // zapiši v strojno opremo. )
V "Monitorju vrat" so vrstice, značilne za modul GPS:

Prej napisana koda je dejansko včasih hrošča, zato jo je treba še izboljšati. Po zbiranju te različice alfa:


prepisal scenarij -

skoraj dokončan zapisovalnik GPS

#vključi #define SER_SP 9600 // Hitrost serijskih vrat. Datoteka flDataFile; // Datoteka za snemanje nizov GPS. char chGpsLint; // Spremenljivka za shranjevanje niza GPS, bajt btReaded; // njegova dolžina. void setup() ( Serial.begin(SER_SP); // Nastavitev vrat. if (!SD.begin()) // Če ne moremo začeti delati s kartico, delay(3600000); // storiti ničesar za eno uro. flDataFile = SD.open("-NKK-LOG.GPS", FILE_WRITE); // Datoteka za pisanje: če (!flDataFile) // če ne moremo odpreti delay(3600000); // storiti ničesar za eno uro. ) void loop() () void serialEvent() ( // Samodejno poklican, ko prispejo novi podatki. while (Serial.available()) ( // Medtem ko so podatki na serijskih vratih, btReaded = Serial.readBytesUntil ("\n", chGpsLint, 128) ; // preberi vrstico, če (btReaded > 45) // če je dolga vsaj toliko znakov, flDataFile.write(chGpsLint, btReaded); // zapiši podatke v datoteko. ) flDataFile.flush(); // Izprazni medpomnilnik datoteke. )

Ujemite besedilo ob prekinitvi. Tega, ki je prikazan na zgornji fotografiji, lahko že priključite na baterijo in uporabljate, vendar je treba izdelek dodelati!

Za namestitev je bilo odločeno, da se uporabi, vendar pred namestitvijo ne bi bilo bolje razmisliti o tem, kako bodo elementi razporejeni - Fritzing pomagati!


Najtežje je bilo dokončati risanje plošče, vendar je bolje preživeti čas pred računalniškim zaslonom kot še več časa s spajkalnikom in izbrati optimalno razporeditev elementov.
“Hut” na levi - adapter za pomnilniško kartico MicroSD->SD;
LED zgoraj desno: 3 za kadenco in ena za prikaz stanja naprave (napaka pri dostopu do kartice, napaka pri ustvarjanju datoteke, čakanje na podatke iz GPS), upor bo SMD proti masi;
Modul GPS ni prikazan: nahaja se na zadnji strani plošče;
tam bo tudi napajalna baterija;
spodaj desno - jack-3.5 za priključitev reed stikala; v ohišju boste morali izvrtati luknjo blizu njegove lokacije.
Začel sem sestavljati, izkazalo se je, da je velikost plošče točno enaka velikosti ohišja. Zdi se mi, da sem ga izbral za ta kovček... Pri lepljenju modulov v kovčku mi bo pomagalo talilno lepilo! Sprva sem želel izklesati baterijo v ohišje:


Toda konstrukcijske značilnosti določajo, da ga je bolje postaviti na ploščo:


Nato so na ploščo pritrdili GPS modul in njegovo anteno (tako da je ležala ob bateriji), zaradi pomanjkanja prostora so morali odstraniti “ekran” z antene:


Da bi bilo odstranjevanje še bolj priročno, je bil na ploščo prispajkan "ročaj":


Sprva sem načrtoval montažo modula Arduino skozi konektorje, a ker višina ohišja ni bila dovolj in nisem želel nič drugega žagati ali rezati, sem se odločil, da ga na ploščo prispajkam na kul način:


Prvič sem videl takšno montažo na ploščo v modulu Bluetooth - izkazalo se je kul. Edina pomanjkljivost je, da ga lahko nazaj neboleče odstranite le s sušilcem za lase. Za utripanje bom spajkal več kontaktov - plošča je velika.
Zgornja slika mi je pomagala pri spajkanju adapterja za pomnilniško kartico, 2-krat sem ga ponovno spajkal, tretjič pa sem si zapomnil lokacijo kontaktov =)


Za udobje ga pritrdimo z vročim lepilom:

^-pod adapterjem so napajalni kontakti za modul GPS, povezani z mostičkom: skozi mostiček napajanje prihaja iz linearnega stabilizatorja Arduino. Pri povezovanju z modulom GPS prek UART lahko mostiček odstranite, tako da Arduino ne prestreže vmesnika.


Po vklopu je GPS dal GMT čas po 80 sekundah, podatke o položaju pa po 14 minutah! Veliko je, a to je samo z balkona.
Po preklopu in spajkanju LED in kondenzatorja v RAW (28uF, za vsak slučaj, našli "dodatne" dele):

^- za povezavo s programatorjem kontakti štrlijo na plošči.
Na hrbtni strani zgoraj omenjeni mostiček omogoča onemogočanje modula GPS pri delu z Arduino ali Aruino pri delu z modulom GPS prek programatorja UART:

^- stiki so prikazani ločeno za enostavno povezavo z GPS.

Pokrov, v katerem je deska pritrjena, položimo na dno in ga pritrdimo (zaenkrat z gumicami iz komore). Dno je nato pritrjeno na volan, za to so v ogliščih pravokotnika 4 luknje:


Za zaslonske LED-diode je potrebnih nekaj lukenj na robu, vendar jih bo treba še prilagoditi: ali bom pritrdil LED-diode noter ali pa bom luknje zalepil s prozornim vročim lepilom, nisem se še odločil. Prilepljeno na sprednjo stran ohišja:


Dno je pritrjeno na volan:


"Pokrov" se oprime dna (in se spremeni v dno):


Ko je pritrjen na volan, "dna" ni več mogoče odstraniti in naprava ostane v pokrovu; lahko jo odstranite in uporabite ločeno za odpravljanje napak ali snemanje proge, na primer teka.

Tri modre LED indikatorske kadence zasvetijo po naslednjem vzorcu:
[LED] [ * * * ] 130 + [ * * ] 120 [ * ] 110 [ * * ] 100 [ * ] 90 [ * * ] 80 [ * ] 70 70 - [Kadenca]

Od tega, kar je bilo treba narediti:
- po tem je bilo odločeno, da se programsko onemogoči;
- modul ojačevalnika napetosti je bil odstranjen, trenutna poraba je okoli 95-125 mA - to je skoraj 2-krat manj v primerjavi z in ni bilo nobenih LED, od katerih vsaka porabi 10-15 mA;
- SD povezan neposredno;
- lokacija LED diod in elementov znotraj ohišja je v nasprotju z željo po izdelavi univerzalnega/razstavljivega sistema na plošči - posledično ohišje ostaja isto in baterije skoraj ni kam vtakniti =)

Vir

/** * Na veliko povpraševanje * objavljam dolgo pričakovano izvorno kodo, * brez indikatorjev kadence. * Ena LED (17) sveti na začetku delovanja * dokler ni prejet prvi NMEA niz 70 znakov. */ #vključi #define FILE_NM "-NKK-LOG.GPS" #define SER_SP 9600 #define RED_ON PORTC |= 0b000001000 // Vklop ali #define RED_OFF PORTC &= 0b111110111 // izklop rdeče LED. volatile word wTotRev, // Skupno število vrtljajev pedala; wTotRevLastWtd = 0; // zadnji zapisan v dnevnik. Datoteka flNMEA; // Datoteka za snemanje nizov GPS. char chNMEA; // Spremenljivka za shranjevanje niza GPS, bajt btReaded; // njegova dolžina. bool bWaitingGps = res; // Čakalna zastavica za prve trenutne podatke GPS. void setup() ( delay(800); // Napajalni kontakti lahko poskakujejo, ko so vklopljeni. pinMode(17, OUTPUT); // LED-lučke stanja naprave. while (!SD.begin()) ( // Medtem ko je kartica SD vklopljena ni zaznano , RED_ON; delay(150); // utripa. RED_OFF; delay(500); ) flNMEA = SD.open(FILE_NM, FILE_WRITE); // Preverjanje dela z datotekami. if (!flNMEA) // Če obstaja je napaka pri odpiranju datoteke medtem (true) ( ​​​​// utripne 2-krat. RED_ON; delay(150); RED_OFF; delay(150); RED_ON; delay(150); RED_OFF; delay(500); ) Serijski .begin(SER_SP); // Začnimo delati s senzorjem GPS. RED_ON; ) // setup() // void loop() ( ) // loop() // void serialEvent() ( // Samodejno priklican, ko je nov podatki prispejo. while (Serial.available( )) ( // Medtem ko so podatki na serijskih vratih, preberite. btReaded = Serial.readBytesUntil("\n", chNMEA, 128); if (bWaitingGps) ( // Če GPS še ne proizvaja trenutnih podatkov, if (btReaded > 70 ) ( // jih preveri. bWaitingGps = false; RED_OFF; flNMEA.write(chNMEA, btReaded); ) ) else if (btReaded > 0) // Če je GPS predhodno izdal trenutni podatki, flNMEA.write(chNMEA, btReaded); // pisanje v datoteko. ) flNMEA.flush(); // Ponastavi medpomnilnik datoteke. ) // serialEvent() //

Izdelek je za pisanje ocene posredovala trgovina. Recenzija je bila objavljena v skladu s členom 18 Pravil spletnega mesta.

Nameravam kupiti +21 Dodaj med priljubljene Ocena mi je bila všeč +16 +36

Arduino + dva servoma + polnilna plošča + plošča za pospeševalni pretvornik + stara baterija + kup radijskih komponent + kos vezanega lesa + preklopno stikalo = idiotske sanje so se uresničile!
Veliko besedila za tiste, ki radi berejo. Veliko spojlerjev za tiste, ki radi berejo diagonalno. Video, za tiste, ki obožujete videe. Skica za tiste, ki radi takoj kopirajo in tečejo "na koleno". Fotografija, fotografija, fotografija. Cat, za ljubitelje mačk.

Pravzaprav ni izjava o omejitvi odgovornosti

To je moj prvi projekt, razen utripajoče LED, Hello world itd. Po tradiciji morate najprej posuti pepel na glavo, da zagotovite, da koda še zdaleč ni popolna, in se o tem obvezno vključite v spor. In tudi glede delnega kopiranja kode iz drugega projekta, prosim, da ne udarite premočno itd. Ampak to se ne bo zgodilo. Koda je popolna! Ker deluje, mi je všeč in sem si ga naredila.
Tistim, ki jih to zanima, bom svetoval: ne bojte se, pridružite se bitki, izkopajte gore kode, zgradite svoje mega piramide iz različnih operaterjev. Sčasoma bodo prišli stil, prefinjenost in ideal.
Dokler je prostor v pomnilniku krmilnika, se ne bojiš ničesar. Če naletite na zid, boste optimizirali. In tudi to je razvoj. Pomembno je.
Velika knjiga o programiranju C - ja, uporabna. Toda na začetku je veliko bolj koristno imeti pri roki hiter referenčni vodnik o ukazih in v svojih zaznamkih shraniti več povezav za delo z preprosti primeri, knjižnice itd., kot je, ali isti Ampere.
Poleg tega mi diagrami poteka zelo pomagajo. Pravokotnik, diamant, oval. Kdor se je s tem srečal, razume. Zdaj delam en projekt - brez diagrama poteka ne morem. Zame je bolje več dni risati - prerisovati na papir, da si bolj jasno predstavljam celoten potek programa, kot pa si zapisati kup kode in se vanjo zatakniti, ker ... Zaradi omejenih izkušenj nimam možnosti zajeti celotne kode z močjo svojih programskih misli.
Tistim, ki ga želite ponoviti ali narediti na svoj način, bom odgovoril na vsa vprašanja.
Ne bom se spuščal v prazne spore o svojem pisanju, stilu, dizajnu, kodi in nujnosti izdelka itd. Če sem se kje v recenziji resno zmotil, jo bom popravil ali dodal.

Lahko poguglate, kaj je "Najbolj neuporabna naprava". Naletel sem nanj po naključju. Ta koda je bila vzeta kot osnova, ker ni se zagnal sam od sebe in želel sem narediti lastne skripte.

Lirična digresija

Pravijo, da je treba po štiridesetem, še posebej, ko si že krepko po štiridesetem, poskušati »razviti« možgane. In da je učenje jezikov najboljše ogrevanje. Pa ne samo pri tej starosti. Nisem ravno spreten v jezikih, ampak revija Zdravje menda svetuje ... Na splošno sem se odločil, da se bom naučil nekaj novega zase. Elektronika mi ni tuja, čeprav sem večino pozabil, programiranja pa mi nikoli ni bilo domače. Bala sem se ga. Toda tu so se ujemala številna znamenja od zgoraj: revija Zdravje, ki priporoča učenje nečesa novega, dolgoletne sanje, da bi (vsaj malo) razumeli programiranje (vsaj nekaj) in youtube, v katerem le leni ne govorijo o tem, kako utripati LED z uporabo pametne pristojbine za dolar in peni.
Pred tem sem z dvema tranzistorjema, kondenzatorjem in parom uporov lepo obvladal utripanje LED diode, zdaj pa pravijo, da ni comme il faut. Torej morate biti v trendu.


Ta neuporabna, v dobesednem pomenu besede, naprava mi je bila zelo všeč. Videl sem in se zaljubil. Želim si, to je vse! Kot otroške sanje! Toda starost je naredila svoje prilagoditve. Želim si ga narediti sam, ne kupiti. Še posebej, ker je naprodaj enostavne naprave. Naletel sem na enega "intelektualca", vendar v prodaji nisem našel ničesar podobnega. Še več, to je treba storiti!
In spet Arduino. In ne bum-bum v tem. Torej moramo ugotoviti. Aliexpress na pomoč. Začel sem z Arduinom. Razumel sem, da bo pot do študija trnova in odrekanja neizogibna. Tako sem naročil pet različnih. Naj gorijo, če kaj. Odpravljanje napak v vezju je potekalo na Uno od drugega prodajalca. Ker pa je bila ta posebna plošča v končni napravi, je bila vključena v naslov.
Poleg Arduino sem naročil ogromno vse vrste krame, tako Arduino združljive kot skoraj Arduino. Tukaj vam bom povedal samo o tem, kaj je bilo koristno v tem izdelku.

Arduino Pro Mini


Dostava je hitra, pakirano v standardni antistatični vrečki in kuverti z mozoljasto notranjo površino. Prodajalec je družaben, rusko govoreč.
Na čipu 328. 3,3 volta, 8 MHz. Zakaj je temu tako? Da, po pomoti. Želel sem 5 voltov, 16 MHz, a sem kupil tega. Sama sem si kriva. Vendar za ta projekt ni kritično - namestil sem dodatni pretvornik napetosti. To je vse. Kakšnih velikih razlik od drugih Minijev nisem našel. Razlika v znamki je črni tekstolit(?).Od podbojev: na plošči ne dela RAW pin. Toda tudi to se ni ustavilo. Čeprav bi z njim lahko privarčevali s pretvornikom 3,3 V. Glavniki niso spajkani. Tabla je narejena dobro.
Zakaj tako kratko? Ker že obstaja pristranskost glede tega prodajalca in njegovih honorarjev (klavzula 18). Kdor hoče, ga zlahka najde. Nima smisla pripovedovati. Dodal sem mu tudi svoja dva centa v komentarjih. In s prodajalcem sem si veliko dopisoval.


Servo pogon SG90


3,2 $ za lot dveh kosov.
Nič posebnega ni za opisati. Šibek servo pogon s povprečno natančnostjo pozicioniranja, ki je močno odvisna od hitrosti gibanja. Je pa poceni. Za pogon pokrova - več kot dovolj, za "roko" - na robu možnosti. Za delovanje potrebuje 5 voltov, za krmiljenje pa zadostuje 3,3 volta. Poskusil sem ga krmiliti preko pretvornika in direktno iz Arduina - ni razlike. Zato je pretvornik ravni prihranil denar.


Krmilnik polnjenja in pretvornik moči


2,28 $ za pet kosov. Z zaščito. Med polnjenjem sveti rdeča LED, ko je polnjenje končano, sveti modra LED. Tukaj je bil pregled.


0,50 $ vsak. Dostava se sicer plačuje, sem pa v tej trgovini kupila še cel kup drugih stvari, tako da dostava ni bila moteča. Vtičnica USB je bila odstranjena, da bi zmanjšali težo))) Izhod proizvede 5,12 voltov.





Vzel sem ga brez povezave. Malo tesno. Da bi olajšali delovanje servo, ga je bilo mogoče razstaviti, skrajšati vzmet ali zamenjati s šibkejšo. Toda lenoba je zmagala. Postavil sem takole. Res je, da sem moral v kodo napisati dodatke za kot vrtenja servo pri visokih hitrostih.


TTL pretvornik


1,5 $ na kos. Pravzaprav sem ga najprej naročil. Pol cene je. Toda zaradi nenavadnih razlogov je umrl junaško. Še vedno ne razumem, kako sem ga ubil. Iz tega razloga je projekt zastal mesec dni, dokler ni prišel nov, naprednejši - ni bilo treba pritisniti na ponastavitev. Ali ni to napredek?


Ostalo je iz skladišča

Regulator napetosti 1117T-3,3V v ohišju TO220, kondenzatorja 1500,0x6,3 in 470,0x16, dva kondenzatorja 0,1 μF, bela LED in mikrostikalo iz otroškega avtomobila, upor 220 Ohm. Baterija je nekaj let ležala neuporabljena. Nekoč sem razstavil zažgan (dobesedno) prenosni DVD predvajalnik. Edina dobra stvar so bile baterije, ki so preživele. Tukaj je ena od njih, ki je prišla prav. Napetost 3,7 V, kapacitete nisem našel v oznaki.
Pištola za lepilo, elastični trak za denar, dve kljukici iz ... nedrčka (hvala moji ženi. Draga, ljubim te!), dva pohištvena moznika, štirje vijaki, štirje lepilni odbijači za pohištvena vrata, kos krušne plošče, žice, konektorji.


Bolj zapletena je bila situacija s trupom. Veliko škatel je bilo preizkušenih. Plastična škatla iz ure Tissot se je izkazala za krhko, deloma iz kartona. Toda kovinske zavese so prišle gor. Še ena je ostala na zalogi. Preizkusil sem pripravljene škatle za parfume, škatlo za vino in škatlo za bonbone. Na koncu sem se odločil, da to naredim sam.
V otroškem kurilnem kompletu so našli kakovostno vezano ploščo, najverjetneje brezo. Otrok je odrasel - komplet ostaja. Na eni strani je bila risba, na drugi strani pa je bilo videti naravnost povedano odlično

Preprosto povedano, odlično

V šoli smo imeli Trudovik. Stara. Na splošno je čudovita oseba. Bil je spoštovan. Ko smo šli skozi elektriko, nam je na primeru baterije, žarnice in ključa predaval.
»V bateriji je tok. Zdaj pride iz pozitiva in sledi žicam. Gre, gre, nenadoma bam - ključ je na poti. In ključ je odprt. Tok razume, da ni kam naprej. Obrnil se je in šel v baterijo. In lučka ne sveti. Zapremo ključ. Tok je spet začel teči, prišel do ključa, šel skozi njega, skozi žarnico in se vrnil v baterijo. In žarnica sveti, odkrito povedano, odlično.” Od takrat je v leksikonu tak stavek kot sinonim za nekaj nepričakovano uspešnega.




Poskušal sem rezati vezan les z nožno in vbodno žago, a ni šlo. Ostružki, ki jih je potem težko odstraniti, in neraven rob. Našel sem izhod - oster pisarniški nož. Prereže polovico vezanega lesa na eni strani in polovico na drugi strani. Potem malo brušenja in je vse vredu. Toda z dobrim kovinskim ravnilom in stalno ostrim rezilom dobite popoln rez in ravno linijo.
Seveda ne brez pomanjkljivosti - pod nalepko Hand made se skriva banalna luknja. Na sredino sem ga izvrtal za preklopno stikalo. Toda servo ni ustrezal. Preklopno stikalo sem moral premakniti na stran in zapreti luknjo. Takšne težave me ne prestrašijo.
Ne vidim smisla v opisovanju vsakega kihanja pri izdelavi naprave. Opisal bom nekaj točk. In kdor ima roke, naj to naredi.
Škatlo sem sestavil z vročim lepilom. Samega lepila nisem prizanašala. Odlično se drži. Ne škripa, ne igra. Hitro, poceni in veselo. In na splošno, kot ste opazili, skoraj vse drži skupaj to lepilo. Priporočam. Močno pospeši postopek sestavljanja. Izklopni mikrofon sem prilepil z notranje strani na levo steno - malo se vidi na sliki.
Pokrov je bil pritrjen na zaveso.

S tančico sem trpela. Veliko sem eksperimentiral. Želel sem, da je pokrov nameščen na vrhu škatle in ne znotraj. Iz sponk sem celo upognila več različic spenjanih zaves. Poe se je pozneje spominjal, da so mu med poskusi v oči padle zavese s škatle ur Tissot. Tako dobro, Švicar (Kitajec?).
Tančica je pomembna stvar. Njegova kakovost je zelo pomembna za celotno zunanja lepota naprave.
Glavno preklopno stikalo mora biti mehkejše, potem bo lažje delovalo.
Pokrov se vrne v zaprt položaj z elastičnim trakom. Ni ga treba izbrati zelo togega - servo ga bo obvladal, če pa je zavesa nameščena na sredini, se bo pokrov upognil.
Pri vezanem lesu je lakiranje obvezno - zelo se umaže. Uporabila sem prozoren tsapon lak. Preprosto zato, ker drugega ni bilo pri roki.
Servo, ki krmili "roko", je bolje postaviti drugače. Ne ob strani, ampak pred preklopnim stikalom. Potem je lahko "roka" enostavnejša za izdelavo - v obliki črke L, namesto v obliki črke U. Širina škatle se lahko zmanjša in preklopno stikalo se lahko postavi na sredino.
Bolje je zavrteti servo pokrova za 180 stopinj, potem bo v kodi lažje povezati stopinje tega servo z delovanjem pokrova. Pri meni je obratno, tako da odpiranje pomeni nižanje stopinj. Toda za "roko" je obratno. In pravilneje je, da potisnete pokrov z iste strani, s katere ga elastični trak vleče nazaj.
Škatla ne sme biti premajhna. Ne bo priročno za uporabo. Sprejemljiva pa je bolj položna. Škatla je lahka in če je bolj ravna bo bolj stabilna. Bolj priročno bo, da preklopno stikalo pritisnete s prstom, ne da bi držali škatlo.
Naredil sem nekaj podobnega ščitu iz dveh kosov krušne plošče. Prispajkan v Arduino brez priključkov. Tesno. Ne moti me.


Sem pa vso periferijo naredil na konektorje. Je bolj udobno.
Kondenzator velika zmogljivost Potreben je napajalnik za arduino (3,3 V). Brez tega Arduino visi.
Nimam sestavnih risb naprave. Je tako preprosta, da je mogoče uporabiti številne druge enostavne rešitve, na katerem temelji vsa mehanika. V videu, tako mojega kot drugih podobnih naprav, si lahko ogledate uporabljene možnosti pogona.

#vključi #vključi Servo vrataServo; //pokrov servo pogona Servo handServo; //roka servo Odboj odboj = Odboj(12, 40); //ustvari primerek razreda Bounce za pin 12 preklopnega stikala int pos = 0; //spremenljivka začetnega položaja int pos1door = 70; //začetni položaj servo pokrova int pos2door = 30; //končni položaj servo pokrova int pos1hand = 10; //začetni položaj ročnega servo int pos2hand = 160; //končni položaj servo ročice int r; //naključna številka, od katere je odvisna možnost izklopa preklopnega stikala #define LED_PIN 11 // številka izhoda, povezanega z LED int ledState = LOW; // nastavimo stanje LED s to spremenljivko long previousMillis = 0; // shrani čas zadnjega preklopa LED #define INTERVAL 30UL // interval med vklopom/izklopom LED void setup() ( pinMode(LED_PIN, OUTPUT); pinMode(12, INPUT); // preklopni pin 12 v način vnosa digitalWrite(12, 1); //vklopite vlečni upor na njem Serial.begin(9600); //nastavite vrata na hitrost 9600 bps. Za odpravljanje napak. Nato ga lahko odstranite. doorServo .attach(9); //dodelite servo pokrova zatiču 9 handServo.attach(10); //dodelite ročni servo zatiču 10 doorServo.write(pos1door); //nastavite servo za pokrov na začetni položaj handServo. write(pos1hand); //nastavi ročni servo v začetni položaj ) void loop() ( if (bouncer.update()) ( if (bouncer.read()==0) ( //če je gumb pritisnjen ( r = random(0,11); //generiraj naključno število jn 0 do 10 Serial.println® ; if (r == 0) ( move_0(); ) //pokliči funkcijo z uporabo naključnega števila else if (r == 1) ( premakni_1(); ) else if (r == 2) ( premakni_2(); ) else if (r == 3) ( premakni_3(); ) sicer če (r == 4) ( premakni_4() ; ) else if (r == 5) ( premakni_5(); ) else if (r == 6) ( premakni_0(); ) else if (r == 7) ( premakni_1(); ) else if (r == 8 ) ( premakni_4(); ) else if (r == 9) ( premakni_3(); ) else if (r == 10) ( premakni_0(); ) ) ) ) // Knjižnica funkcij. Splošno načelo: odprite pokrov - iztegnite roko in izklopite preklopno stikalo - umaknite roko - zaprite pokrov // in tukaj so možnosti, kako to lepo okrasiti............ void move_0( ))( //preprosta možnost: odprto-obrnjeno-zaprto //odpiranje pokrova za(pos = pos1door; pos >= pos2door; pos -=3) ( doorServo.write(pos); delay(15); ) // iztegnite roko za (pos = pos1roka; poz<= pos2hand; pos +=3) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand; pos >= pos1roka; pos -=3) ( handServo.write(pos); delay(15); ) //zaprite pokrov za (pos = pos2door; pos<= pos1door; pos +=3) { doorServo.write(pos); delay(15); } } void move_1(){ //простой вариант 2: открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2vrata; pos -=1) (doorServo.write(pos); delay(15); ) delay(1000); //iztegnite roko za(pos = pos1hand; pos<= pos2hand; pos +=1) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand; pos > <= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_2(){ //задумчивый вариант 2: приоткрыли-закрыли-открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= položaj2vrat+15; pos -=5) (doorServo.write(pos); delay(15); ) delay(1000); //zaprite pokrov za (pos = pos2door+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } delay(1000); //открываем крышку for(pos = pos1door; pos > <= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+2; pos >= pos1roka; pos -=5) ( handServo.write(pos); delay(15); ) //zaprite pokrov za (pos = pos2door; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_3(){ //дерганый вариант: приоткрыли-подергали - закрыли-открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= položaj2vrat+15; pos -=1) (doorServo.write(pos); delay(50); ) delay(500); //povlecite pokrov za(int i=1; i<=8; i ++) { doorServo.write(pos2door+18); delay(80); doorServo.write(pos2door+15); delay(80); static unsigned long previousMillis = 0; if(millis() - previousMillis >INTERVAL) ( previousMillis = millis(); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); ) ) delay(500); //zaprite pokrov za (pos = pos2door+15; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } delay(1000); //открываем крышку for(pos = pos1door; pos >= pos2vrata; pos -=5) ( doorServo.write(pos); delay(15); ) //iztegnite roko za(pos = pos1hand; pos<= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+2; pos >= pos1roka; pos -=5) ( handServo.write(pos); delay(15); ) //zaprite pokrov za (pos = pos2door; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_4(){ //открываем крышку delay(2000); for(pos = pos1door; pos >= položaj2vrat+15; pos -=5) (doorServo.write(pos); delay(50); ) delay(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); zamuda (2000); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); zamuda (500); //zaprite pokrov za (pos = pos2door+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(50); } delay(1000); //открываем крышку не полностью for(pos = pos1door; pos >= položaj2vrat+15; pos -=1) (doorServo.write(pos); delay(50); ) delay(2000); //popolnoma odprite pokrov za(pos = pos2door+15; pos >= pos2door; pos -=1) ( doorServo.write(pos); delay(15); ) //iztegnite roko za(pos = pos1hand; poz<= pos2hand-35; pos +=1) { handServo.write(pos); delay(35); } delay(1000); //высовываем руку for(pos = pos2hand-35; pos <= pos2hand+3; pos +=4) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+3; pos >= pos1roka; pos -=7) ( handServo.write(pos); delay(15); ) //zaprite pokrov za (pos = pos2door; pos<= pos1door; pos +=7) { doorServo.write(pos); delay(15); } delay(500); //открываем крышку for(pos = pos1door; pos >= položaj2vrat+20; pos -=5) (doorServo.write(pos); delay(50); ) delay(300); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); zamuda (500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); zamuda (100); //zaprite pokrov za (pos = pos2door+20; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } } void move_5(){ //возня for(int i=1; i <=2; i ++) { for(pos = pos1door; pos <= pos1door+45; pos +=5) { doorServo.write(pos); delay(50); } for(pos = pos1door+45; pos >= pos1vrata; pos -=5) (doorServo.write(pos); delay(50); ) delay(100); ) //povlecite pokrov za(int i=1; i<=3; i ++) { doorServo.write(pos1door-6); delay(80); doorServo.write(pos1door-3); delay(80); } delay(300); //открываем крышку digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos1door; pos >= položaj2vrat+25; pos -=5) (doorServo.write(pos); delay(50); ) delay(500); //odpiranje pokrova digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2door+25; pos >= pos2door+10; pos -=5) ( doorServo.write(pos); delay(50); ) //odpri vrata digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2door+10; pos >= pos2door-5; pos -=2) ( doorServo.write(pos); delay(50); ) //iztegnite roko za(pos = pos1hand; pos<= pos2hand-35; pos +=9) { handServo.write(pos); delay(35); } delay(1000); //убираем руку for(pos = pos2hand-35; pos >= pos2hand-70; pos -=1) (handServo.write(pos); delay(15); ) delay(1000); //iztegnite roko za (pos = pos2hand-70; pos<= pos2hand+3; pos +=9) { handServo.write(pos); delay(15); } delay(50); //убираем руку for(pos = pos2hand+3; pos >= pos1roka; pos -=7) ( handServo.write(pos); delay(15); ) //zapiranje pokrova digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2door-5; pos<= pos1door+3; pos +=5) { doorServo.write(pos); delay(50); } }

Skica, ki jo je predlagal avtor s povezave na začetku recenzije, mi ni uspela. In še nisem bil profesionalec, kot sem zdaj)))))))
Na splošno sem začel razumeti. Posledično sem na podlagi nekoga drugega naredil svojo skico. Dodana zaščita proti odboju. Seveda bi bilo lažje namestiti upor s kondenzatorjem, vendar sem ga res želel programirati.


Načeloma je shema razvidna iz skice. Ampak jo bom vseeno pripeljal. Oprostite za kakovost - kolikor sem lahko. Vzel sem nekoliko drugačno pretvorniško ploščo - v pogledu od spredaj se mi ni zdelo potrebno.


Posebnih pojasnil za skico ni. Morda trenutek dodajanja nekaj stopinj rotacijskega kota, ko je hitrost serva visoka. Opazil sem, da če "roka" nenadoma skoči, ne izklopi preklopnega stikala. To je očitno posledica slabe kakovosti servomotorjev. Zato morate nekoliko dodati kot odhoda "roke". Sumim, da bodo te dodatne diplome zaradi ponavljanja zate drugačne. Odvisno od ramena "roke".
In o programih. Do sedaj je šest programov. Poklicano z generiranjem naključnih števil. Poleg tega se preprosti programi (0, 1 in 2) kličejo pogosteje kot običajni. Vsem mojim testerjem se je zdelo, da bi morali biti bolj izpopolnjeni programi redek prijeten bonus, potem se pojavi določena spletka. Tako sem tudi naredil.
Za ljubitelje številk je velikost škatle: dolžina - 150 mm, višina - 70 mm, širina - 65 mm.

Youtube je močno poslabšal kvaliteto. Če želite pogledati izvirnik, ga prenesite. 21 MB.
Tukaj je bila skica spremenjena, da vam omogoča ogled vseh šest programov po vrsti, tako da imate predstavo o vseh. V življenju imajo, kot sem napisal, psevdonaključni vrstni red.



Polnjenje poteka prek mikro-USB z običajnim mobilnim polnilcem. Življenjska doba baterije je močno odvisna od pogostosti uporabe. Včasih več dni, včasih pa “ubijem” v enem dnevu.


Nazadnje.
Projekt pa je mogoče še razvijati in izboljševati. Lahko si izmislite nove scenarije. Dodate lahko visokotonec in napravi glas. Na primer, pustite mu, da "renči", kot da se jezi, če je čas med izklopom in vklopom preklopnega stikala zelo kratek. Kot v prvotnem projektu lahko dodate gibanje škatle v različnih smereh.
Lahko vgradite pregled za primer, ko "roka" iz nekega razloga ni izklopila preklopnega stikala (na primer v mrazu servo ne doseže želenega kota precej) in prilagodite kot enega po enega, s pisanjem nekakšnega »živčnega« sporočila posebej za tak primer » zaustavitveni program. Nano lahko namestite in programirate prek USB-ja, ne da bi vsakič razstavili napravo.

In na splošno - to lahko storite bolj previdno. Možnih je veliko različnih stvari. Pravzaprav je to točno tisto, kar predlagam tistim, ki jih to zanima.
Mogoče sem kaj spregledal. To je malo pregled za tako preprosto napravo. Za to se lahko opravičim.
Sedaj pa mačka in hvala, da ste prebrali do konca.

6,3 USD (trenutno 1,43)

Pred 1,5 leti sem kupil Arduino Pro Mini v kompletu z adapterjem USB-UART na čipu CP2102 (cene so od takrat močno padle) in ves ta čas so ležali na moji polici. Vsi niso mogli narediti ničesar na tem krmilniku. Pomembno vlogo pri tem je igralo dejstvo, da je utripanje skice v Arduino Pro Mini, čeprav ni težko, nekoliko težje kot v Arduino UNO, Mega ali Nano.

In tako sem se odločil, da uporabim ta krmilnik v enem od svojih projektov, še vedno miruje.

Arduino Pro Mini PODROBNOSTI

ATmega168 ali 328

Delovna napetost

3,35 -12 V (model 3,3 V) ali 5 - 12 V (model 5 V)

Digitalni V/I zatiči

14 (od tega 6 zagotavlja PWM izhod)

Analogni vhodni zatiči

DC tok na I/O Pin

16 KB (od tega 2 KB uporablja zagonski nalagalnik)

8 MHz (3,3 V model) ali 16 MHz (5 V model)

Slučajno sem imel 16MHz 5-voltni model na čipu ATmega 328. Kot se je izkazalo pri analizi podatkov iz interneta, obstajajo krmilne plošče, ki nimajo usmerjenega signala DTR. V mojem primeru je vse pravilno ožičeno. Komplet je vseboval pretvornik USB-UART.

Platforma vsebuje 14 digitalnih vhodov in izhodov (od katerih jih je 6 mogoče uporabiti kot PWM izhode), 6 analognih vhodov, resonator, gumb za ponastavitev in luknje za pritrditev zatičev. Na pretvorniško ploščo USB-UART je mogoče priključiti blok šestih zatičev.

Arduino Pro Mini je po svojih tehničnih lastnostih in parametrih zelo podoben Arduino Nano. Po širini sta enake velikosti, vendar je dolžina Arduino Pro Mini približno 1 cm krajša.

10 mm je veliko. Če pa v ploščo spajkate nožice za povezavo USB-UART, vse prednosti te plošče pred Nano izginejo. Trenutno Arduino Pro Mini stane 0,25 $ manj kot Arduino Nano. To je nepomembno. Ni več prednosti in slabosti, samo slabosti.

In glavna pomanjkljivost je bolj zapleteno nalaganje skic.

Obstaja več načinov za bliskavico skice.

Eden od načinov je uporaba Arduino UNO kot USB-UART. Na internetu je veliko navodil, kako to storiti, zato se ne bom o tem ukvarjal.

Drugi način je uporaba samega adapterja USB-UART. Imam ga, in to "pravilnega", zato sem se odločil, da ga uporabim. Kako deluje adapter? Arduino komunicira s pretvorniškim čipom prek običajnega UART-a, na računalnik pa se poveže prek USB-ja. Računalnik prepozna priključen adapter kot vrata COM.

Nalaganje skice v Arduino Pro Mini, kot se je kasneje izkazalo, sploh ni težko. Samo povezati morate žice iz kompleta 5 zatičev na adapterju in Arduinu:

(pretvornik)<->(Arduino)

DTR<->GRN
TXD<->RXI
RXD<->TXO
GND<->GND
5V<->VCC

Na mojem Arduino Pro Mini je signal DRT označen z GRN. Ni bilo lahko uganiti, kaj je kaj, še posebej, ker je na eni od strani "prijazen" svetovalec zapisal, da je treba GRN povezati z GND. No, internet je veliko smetišče in to ni prvič, da sem se prepričal, da na forumih niso najbolj pripravljeni svetovati tisti, ki res razumejo obravnavano temo. Torej, GRN je DTR.

Za tiste, ki ne veste kaj je DTR:
Podatkovni terminal pripravljen (DTR) - krmilni signal v serijski podatkovni protokol, ki se prenaša iz terminalske opreme (DTE) v sprejemno opremoda pokaže, da je terminal pripravljen za komunikacijo.

V Arduinu signal DTR sproži signal Reset v trenutku, ko se skica začne prenašati.

Možna namesto DTR povezave<->GRN povežite adapter DTR prek kondenzatorja 0,1 uF na Reset Arduino Pro Mini. Tudi tako deluje, preizkušeno. To je skozi kondenzator. Kljub dejstvu, da je na forumih in številnih spletnih mestih zapisano, da morate neposredno povezati DTR in RESET, se z neposredno povezavo skica ne prenese. Vsaj meni z direktno povezavo ni delovalo nič.

Teoretično, kot pišejo na internetu, lahko posnamete skeč brez DTR s pritiskom na reset na krmilni plošči točno v trenutku, ko se snemanje začne. Večkrat sem poskušal ujeti ta trenutek, a mi ni uspelo. Nisem treniral svojih veščin v poskusu ponastavitve ob pravem času; lažje je zaupati pretvorniškemu čipu CP2102, da bo zagotovil signal za ponastavitev.

Vendar niso vsi CP2102 enaki. Na eBayu in AliExpressu se prodaja veliko poceni ponaredkov, s katerimi se ljudje borijo in jih morajo pogosto spreminjati, da lahko posnamejo skico v Arduino Pro Mini. V teh adapterjih signal DTR iz nožice 28 čipa CP2102 ni usmerjen. Nekateri imajo pomešani oznaki Rx in Tx. Zato je na forumih na spletu toliko navodil, ki si nasprotujejo in včasih preprosto zavajajo bralce. Približno dve uri sem bral te neumnosti (nisem hotel znova izumljati kolesa, mislil sem, da bom prihranil čas) in poskušal napisati skico v krmilnik s temi navodili. Posledično se je izkazalo, da vsa navodila za moj adapter CP2102 ne delujejo. Izkazalo se je »pravilno«, v katerem so bile pravilno označene in vsi signali pravilno speljani.

Dovolj je bilo samo povezati vse žice in vse je delovalo.

Če se torej soočate s potrebo po snemanju skice v Arduino Pro Mini prek USB-UART, najprej preverite, ali je signal DTR usmerjen na ploščo Arduino Pro Mini. Prebral sem, da obstajajo table, na katerih ni napeljano. V tem primeru lahko uporabite možnost povezave signala DTR iz adapterske plošče USB-UART na pin RESET Arduino Pro Mini prek kondenzatorja 0,1–0,15 µF.

Drugič, preverite, ali je signal DTR povezan s katerim koli zatičem na adapterski plošči USB-UART. Nožica je lahko in celo podpisana kot DTR, vendar ni povezana s pinom 28 čipa CP2102. Če pin 28 tega mikrovezja ni nikjer povezan, morate zagotoviti njegovo povezavo z zatičem DTR. Če je nožica 28 povezana nekje v vezju, je treba to stezo prerezati in priključiti neposredno na nožico DTR.

Pravilnost oznak Rx in Tx na ponarejeni plošči CP2102 je mogoče določiti eksperimentalno; obstajata samo 2 možnosti.

Prebral sem tudi navodila na internetu, da je treba posneti skeč z USB-UART adapterjem CP2102 v načinu “Naloži prek programatorja”, menda le tako vse deluje. Ne vem, ali avtor tega opusa namenoma zavaja bralce, ali je imel kaj drugega kot adapter CP2102 USB-UART, vendar je ta nasvet NAPAČEN!

Prek adapterja USB-UART CP2102 računalnik vidi Arduino Pro Mini, kot da bi bil priključen na vrata COM, torej tako kot drugi Arduini, ki imajo na krovu adapter USB-UART.

Zato se skice nalagajo na Arduino Pro Mini na enak način kot na druge modele Arduino. V programskem okolju Arduino morate samo izbrati model Pro Mini, nato pa v dodatnem elementu, ki se prikaže, izbrati enega od 4 možnih tipov procesorja (ATmega168 ali 328, 3.3 ali 5V) in virtualna COM vrata, ki se prikažejo po namestitvi Gonilniki adapterjev USB-UART. Nato lahko uporabite gumb za prenos ali Ctrl-U. Če je vse pravilno priključeno, vrsta in model adapterja nista pomembna, skice se naložijo prek UART. Preprosto izberemo vrata COM, ki določajo adapter.

Po 2 urah branja forumov in strani z “vodiči” in “nasveti”, ki so bili 99% napačni, vsaj niso bili primerni za moje specifične modele Arduino Pro Mini in USB-UART adapter CP2102, mi je uspelo povezati in naložiti vse pravilno vstavite v krmilnik nekoliko spremenjeno skico utripanja LED. Prisilil sem ga, da mižikne SOS v Morsejevi abecedi.

Tukaj je skica, če koga zanima:

// funkcija nastavitve se zažene enkrat, ko pritisnete ponastavitev ali napajanje plošče
void setup() (
// inicializiramo digitalni pin 13 kot izhod.
pinMode(13, IZHOD);
}

// funkcija zanke teče vedno znova in znova
void loop() (
zamuda (100); // počakaj
zamuda (300); // počakaj
digitalWrite(13, HIGH); // vklopite LED (VISOKA je raven napetosti)
zamuda (100); // počakaj
digitalWrite(13, LOW); // izklopite LED tako, da napetost nastavite na NIZKO
zamuda (300); // počakaj
digitalWrite(13, HIGH); // vklopite LED (VISOKA je raven napetosti)
zamuda (100); // počakaj
digitalWrite(13, LOW); // izklopite LED tako, da napetost nastavite na NIZKO
zamuda (300);
digitalWrite(13, HIGH); // vklopite LED (VISOKA je raven napetosti)
zamuda (300); // počakaj
digitalWrite(13, LOW); // izklopite LED tako, da napetost nastavite na NIZKO
zamuda (300); // počakaj
digitalWrite(13, HIGH); // vklopite LED (VISOKA je raven napetosti)
zamuda (300); // počakaj
digitalWrite(13, LOW); // izklopite LED tako, da napetost nastavite na NIZKO
zamuda (300); // počakaj
digitalWrite(13, HIGH); // vklopite LED (VISOKA je raven napetosti)
zamuda (300); // počakaj
digitalWrite(13, LOW); // izklopite LED tako, da napetost nastavite na NIZKO
zamuda (300); // počakaj
digitalWrite(13, HIGH); // vklopite LED (VISOKA je raven napetosti)
zamuda (100); // počakaj
digitalWrite(13, LOW); // izklopite LED tako, da napetost nastavite na NIZKO
zamuda (300); // počakaj
digitalWrite(13, HIGH); // vklopite LED (VISOKA je raven napetosti)
zamuda (100); // počakaj
digitalWrite(13, LOW); // izklopite LED tako, da napetost nastavite na NIZKO
zamuda (300); // počakaj
digitalWrite(13, HIGH); // vklopite LED (VISOKA je raven napetosti)
zamuda (100); // počakaj
digitalWrite(13, LOW); // izklopite LED tako, da napetost nastavite na NIZKO
zamuda (300); // počakaj
zamuda (1500); // počakajte 1,5 sekunde.
}

Sklepi:

Če ne bi poskušal prihraniti časa s »ponovnim odkrivanjem kolesa« in ne bi porabil časa za branje neuporabnih (celo precej škodljivih) nasvetov in vodnikov na forumih in spletnih mestih, povezovanje in utripanje Arduino Pro Mini ne bi trajalo 2 uri, ampak kar največ 5-10 minut.

Kupil sem svoj komplet Arduino Pro Mini in USB-UART adapterja CP2102, ki je bil po današnjih standardih precej drag. Resnici na ljubo me tolaži dejstvo, da je adapter pravilen in so nanj priključeni vsi signali.

Arduino Nano je po parametrih in zmogljivostih enak Arduino Pro Mini, stane le malo več (največ 25-50 centov), ​​izgubi 1 cm na velikosti (in s spajkanimi pini Arduino Pro Mini sploh ne izgubi), je pa veliko bolj priročen za uporabo zaradi vgrajenega USB-UART in običajnega priključka MicroUSB.

Arduino Pro Mini ni najbolj priljubljena plošča, vnesite "Arduino Nano" v iskanje na eBayu in razvrstite po ceni v naraščajočem vrstnem redu in videli boste, kako zviti Kitajci zelo poceni prodajajo veliko Arduino Pro Mini v tem razdelku, mimo off kot Nano? v upanju, da kupec ne bo ugotovil in bo izkoristil nizko ceno kupil te krmilnike. Vse upanje polagajo le na kupce, ki so naivneži.

Bi priporočal nakup Arduino Pro Mini? Za začetnika - ne. Ja – človeku, ki točno ve, kaj je, kakšne slabosti ima in ali so vredne pičlih prihrankov.

Še enkrat ponavljam, da fleširanje Arduino Pro Mini ni težko, ampak ali je ta fuša s povezovanjem napeljave ali Arduino UNO vredna razlike v ceni 0,2-0,25$. Še posebej, če morate krmilnik večkrat povezati z računalnikom za odpravljanje napak, kaj pa, če je v ohišju? Če menite, da je povezovanje in odklapljanje 5 žic deset do petnajstkrat bolj donosno kot plačilo 20 centov, je ta krmilnik za vas.

To je vse. Delil sem svojo izkušnjo in izrazil svoje mnenje, na vas je, da se odločite.

P.S. Minilo je malo časa in nekoliko sem spremenil svoje mnenje o Arduino Pro Mini. Tudi prihranek 25-50 centov je veliko, še posebej, če se sestavi manjša serija izdelkov s tem krmilnikom. Jasno je, da je za majhno serijo bolje integrirati krmilnik neposredno na ploščo, namesto da bi uporabili že pripravljen Arduino (to je še vedno bolj plošča za odpravljanje napak). Obstajajo pa različne možnosti, včasih obstajajo že pripravljene plošče in jih lahko nadgradite in razširite njihovo funkcionalnost z integracijo Arduina. To bo ceneje kot gradnja novih plošč.

Prisotnost adapterja USB-UART na izdelku, predanem uporabniku, je popolnoma nepotrebna in celo škodljiva. Arduino Pro Mini ima torej pravico do življenja.