Sadržaj:

SONIC LED POVRATNE PRIJAVE: 7 koraka (sa slikama)
SONIC LED POVRATNE PRIJAVE: 7 koraka (sa slikama)

Video: SONIC LED POVRATNE PRIJAVE: 7 koraka (sa slikama)

Video: SONIC LED POVRATNE PRIJAVE: 7 koraka (sa slikama)
Video: 16 ошибок штукатурки стен. 2024, Juli
Anonim
SONIC LED POVRATNE INFORMACIJE
SONIC LED POVRATNE INFORMACIJE
SONIC LED POVRATNE INFORMACIJE
SONIC LED POVRATNE INFORMACIJE
SONIC LED POVRATNE INFORMACIJE
SONIC LED POVRATNE INFORMACIJE

Zdravo ponovo, Mrzite što vaš robot naleti na sve? Ovo će riješiti taj problem. Sa 8 zvučnih senzora ovo izgleda komplicirano … ali u stvari sam ovo jako olakšao. Pokušavam objaviti projekte koji vam pomažu da naučite o Arduinu i prikažete koncept "izvan okvira". Ovaj će vam post pomoći da razumijete 595 prebacivanje, pro-minis kao programabilni senzor i veliku upotrebu povratnih informacija u stvarnom vremenu. Ako uživate u Arduinu kao „kopiraj i zalijepi i dodatak“, ovo možete jednostavno preskočiti.

Volim koristiti pro-mini. Koštaju oko 2,50 USD, rade kao potpuni uno, a instaliranje zaglavlja čini ih vrlo fleksibilnima. Koristeći se kao senzorski mikrofon, možete imati „radi šta želite“umjesto onoga što nalaže kupljeni senzor. S I2C -om koji koristi samo 2 žice, oni se mogu povezati zajedno na jednu liniju. Dakle, pređite na MEGA -u, mogu imati 4 minisa koji istovremeno izvode 4 zasebne linije koda, za samo 10,00 USD. Ovdje koristim mini za prolaz zvučnih senzora kroz 595 i prikazivanje udaljenosti u stvarnom vremenu. Zatim samo podijelite 8 bita podataka s matičnom pločom. Ovo skida opterećenje sa matične ploče i čini njen kod vrlo jednostavnim.

Postoji problem sa zvučnim senzorima … nema vizuelnih povratnih informacija. Nikada ne znate je li senzor samo mrtva težina ili radi! Vjerujem da je ko god je smislio 'BLINK' pametniji od Einstine. Samo JEDAN je vodio i svet informacija se prenosi treperenjem. Dakle, zvučni senzor treba povratnu informaciju u stvarnom vremenu. Ovdje sam koristio niz LED dioda za nadzor svakog senzora. Ne trebaju vam, samo napravite senzore bez LED dioda. Ali imati LED diode na PCB -u je od pomoći.

Korak 1: NAPRAVITE PCB

MAKE PCB
MAKE PCB
MAKE PCB
MAKE PCB
MAKE PCB
MAKE PCB
MAKE PCB
MAKE PCB

napraviti PCB i napuniti. OPREZ … Pogriješio sam na PCB -u pri 4 -polnim priključcima za uključivanje zvučnih senzora. ECHO i TRIGGER Vcc i podlozi će se priključiti na PCB. Nema dovoljno mjesta za konektore pa sam upravo napravio PCB s pin-outom. Tako da možete lemiti žičani konektor na PCB i priključiti na stvarne zvučne senzore. Što se tiče LED dioda, stavio sam žute diode sa unutrašnje ivice i crvene sa spoljne strane. ovo vam pomaže da vidite na daljinu da li senzori pravilno mjere.

Ovo je jedna od NEKOLIKO dvostranih ploča koje sam ikada napravio. Radije bih napravio 2 jednostruka jednosmjerna skakača. Ali da biste dobili LED ekran potrebna vam je barem gornja ploča. Odvojio sam izgled prilikom preuzimanja.

PCB je za pro-mini sa A4-A5 unutar rubnog zaglavlja. U svakom slučaju samo spojite A4-A5 na master A4-A5. Ne zaboravite ni Vcc i Grounds.

Korak 2: MNOGE GREŠKE

MNOGE GREŠKE
MNOGE GREŠKE

Što se tiče mojih grešaka … Pokušao sam aktivirati Okidače odjednom (svi povezani) i ova vrsta je dobro funkcionirala, ali došlo je do nekih interakcija. Dakle, sada svi ECHOS -i idu na mikro (8), a TRIGGERS su postavljeni na 595. Još tri pina (3). Što se tiče LED dioda, multipleksiranje neće raditi. Potrebno vam je potpuno vreme uključivanja za svaki LED. To znači da svaki red od 7 LED dioda mora imati vlastiti 595. Kada ažurirate 595, LED diode ostaju upaljene do sljedećeg ažuriranja. Tamo gdje multipleksiranje LED -a svijetli samo tu desetinku sekunde. Ovo dobro funkcionira kod mojih čitatelja i potrebna mu je namjenska mikro kartica. Nema vremena za skeniranje 8 zvučnih senzora i mjerenje udaljenosti. Pokušao sam i postigao sam vrlo loše rezultate. Multipleksiranje LED dioda također će značiti mrežu redaka + stupaca, a to znači oko 64+ prolaza kroz PCB.

Koristio sam samo 7 izlaza sa 595 zbog nereda na PCB -u. Na daljinu se ne može vidjeti ima li 7 ili 8 LED dioda samo njihovim kretanjem. Možda ćete doći u iskušenje da sve LED diode povežete za jedan otpornik i to funkcionira, ali svjetlina niza mijenja se s količinom lakih LED dioda. Dakle, jedan otpornik po LED diodi je najbolji. Obožavam 595, ali ako su samo premjestili Vcc i 0-izlazne pinove ili napravili 18-polni ic sa SVIM izlazima na istoj strani … povezivanje svih osam izlaza bilo bi tako jednostavno. Ali tada se ne bi prodavao za manje od 30 centi.

Korak 3: UGRADNJA SENZORA

MONTAŽNI SENZORI
MONTAŽNI SENZORI
MONTAŽNI SENZORI
MONTAŽNI SENZORI
MONTAŽNI SENZORI
MONTAŽNI SENZORI
MONTAŽNI SENZORI
MONTAŽNI SENZORI

Zalijepite zvučne senzore na poklopac kafe. muški utikač mora biti savijen prema unutra na svakom senzoru. Ovo funkcionira bolje ako savijate jednu iglu odjednom. Koristio sam dvostranu pjenastu traku samo da bi vibracije bile manje. Moji senzori su preblizu i potrebno im je 1/4 inča prostora kako bi bolje odgovarali PCB -u. Prije sam koristio zvučne senzore, a ponekad se ne uspije precizno mjeriti i morate to imati na umu. Zato ih ne lijepite trajno.

Pomaže i pokretanje brzog testa udaljenosti na svakom prije nego što ga upotrebite. Dobijam otprilike jedan senzor sa slabim očitanjem u seriji od 20. Nije loše za cijenu koju sam platio.

Korak 4: HARD WIRE

HARD WIRE
HARD WIRE

Mislio sam da će biti mjesta za utičnice i utikače sa računara na

zvučne iglice, ali ponestalo mi je prostora. Tako sam čvrsto ožičio kraj PCB -a i upravo napravio žice za odjek i okidač sa ženskim utičnicama (8ea). Spojio sam 8ea Vcc i 8ea uzemljenje senzora zajedno tako da su za njih ostvarene samo 2 veze s PCB -om.

Sa 8 senzora i 8 595s ovo uno ili pro-mini NE MOŽE napajati. U sklopu ovog projekta mora postojati 5V regulirani izvor. Moj robot ima jednostavno 7805 @ 1amp iz baterija. Ovo je povezano sa svim 5v Vcc za sve uređaje. 7805 pada oko volta pa vam je potrebno najmanje 6,5 volti za napajanje. To su 2 litijumske baterije na 3.3v. Moj robot ima stare nicade iz rabljenih paketa bušilica i 8 nicada pokreće tipični kineski motor sa 12v pogonom u šasiji od 20 USD.

Korak 5: PREUZMITE SONIC SKICU

PREUZMITE SONIC SKICU
PREUZMITE SONIC SKICU

Preuzmite skicu i instalirajte. Postoji mnogo načina za razgovor

još jedno uno, ali sviđa mi se I2c. zabuna je adresiranje i master/ slave. Kao i kod većine senzora (drugi mini smatrajte senzorom) obraćate se senzoru i tražite x količinu bajtova. ista stvar i ovdje. U drugom mini izdvajate x količinu bajtova koje želite poslati. Zabuna je što imena nisu bitna. Samo vam pomaže da zapamtite ako podijelite imena. Dakle, na skici šaljem 8 mjerenja zvučne udaljenosti u cm kao sendR1, sendR2, sendR3, sendR4, sendL1, sendL2, sendL3, sendL4. Master samo dobiva 8 bajtova podataka i možete ih nazvati kako god želite. Pročitao sam ih kao gotR1, gotR2, got….. Poslani red bajtova je isti. Dakle, bajtovi A, B, C….. nemojte misliti da ćete promjenom imena dati različite podatke. A drugi ulov, možete primati samo podatke za koje je rečeno da se šalju. Dakle, ako želite druge podatke morate promijeniti OBA master i slave.

Korak 6: KOMUNIKACIJA

KOMUNIKACIJA
KOMUNIKACIJA

Ovo možete preskočiti ako znate kako postaviti 2 Uno -a da međusobno razgovaraju. Na kraju imam par sitnica. Da bih vam olakšao, nazvat ću uno u bazi robota M1 i zvučni senzor kao S2. Spojite Vcc, uzemljenje, A4, A5 jedan s drugim.

Na skici za S2 počinje sa #include

Zatim kreirajte 8 bajtova za slanje. bajt R1, bajt R2, bajt L1 itd. Uno je 8 -bitni mikro pa šalju po 1 bajt koristeći "bajt" umjesto "int" je ispravno.

U 'setup ()' add 'Wire.begin (address)' ovo govori I2c -u koji je ovo uređaj. Adresa je obično bilo koji broj koji vam se sviđa između 4 - 200. veličine jednog bajta. Ovdje sam upotrijebio broj 10. Dakle, za razgovor s ovim senzorom S2, gospodar mora pozvati Wire.requestFrom (10, 8). Ovo je adresa 10, a 8 je koliko bajtova je potrebno. Takođe u 'setup ()' dodajte Wire.onRequest (isr anyName). Kada M1 pozove zahtjev, senzor S2 reagira s prekidom. Ovo samo poziva funkciju anyName. Dakle, ovu funkciju anyName treba kreirati. Pogledajte skicu i pogledajte funkciju 'sendThis ()' Ovdje se bajtovi zapravo šalju u M1. Idu samo bajtovi, a NE imena i poslani redoslijed. Tu počinje veličina i količina podataka za slanje. U ovom jednostavnom formatu bajtova slanje i primanje bi se trebali podudarati. Ovdje je poslano 8 i primljeno 8 bajtova. Jedna napomena ovdje je da pozivanje funkcije zahtijeva (). Kao i delay (), millis (), Serial.print (). Kada koristite ISR (rutinu prekida usluga) pozivanje funkcije ispušta (). Dakle Wire.onRequest (sendThis) ne Wire.onRequest (sendThis ()).

Zabuna koju sam imao bila je stvar gospodar/rob. U početku sam mislio da je majstor Uvijek gospodar. Ali unutar skice možete prebaciti master/slave na zahtjev od drugih mikro ili poslati na druge mikro. Sve dok ste slijedili osnovni format naveden gore. Zapamtite … dijelite SAMO dodijeljene podatke.

Dva bita sa zidom. Isr prekid samo prekida između linija skice. Ako ste zaključani u petlji 'while ili for', ništa se neće dogoditi dok petlja ne izađe. Ništa strašno jer ovo može potrajati nekoliko mikrosekundi i podaci su stari.

Drugi problem je što "unutar" mikro računara postoji 100% proračun bez grešaka. Svaka "vanjska" (žičana) komunikacija podložna je greškama. Postoji mnogo načina da provjerite da li dostavljeni podaci ne sadrže greške i da li odgovaraju izvoru. Najlakši način je s kontrolnim zbrojem. Samo dodajte ukupne iznose slanja bajtova (stvarne vrijednosti) i pošaljite ih, a na kraju primatelja dodajte zbrojeve i provjerite odgovaraju li. Ako se slažu u redu ili bacite taj skup podataka ako se ne slažu. Naravno, ovo uključuje slanje cijele vrijednosti, a ne bajtova. Dakle, samo podijelite cijeli broj na HI bajt i LO bajt i pošaljite kao zasebne bajtove. Zatim sastavite prijemnik.

LAKO:

int x = 5696; (svaka važeća vrijednost int, max je 65k ili 32k negativno)

bajt hi = x >> 8; (22)

bajt lo = x; (64)

pošaljite bajtove i kombinirajte na drugom kraju….

bajt hi = Wire.read ();

bajt lo = Wire.read ();

int newx = (hi << 8) + lo; (5696)

Korak 7: ZATVARANJE

ZATVARANJE
ZATVARANJE
ZATVARANJE
ZATVARANJE
ZATVARANJE
ZATVARANJE
ZATVARANJE
ZATVARANJE

Za zatvaranje, ovaj zvučni senzor daje matičnoj ploči neobrađene podatke o udaljenosti u stvarnom vremenu. Ovo oslobađa mikro i čini skicu mnogo manje kompliciranom. Mikro sada može donijeti dobru odluku o usporavanju, okretanju, zaustavljanju ili kretanju unatrag na temelju dobrih podataka umjesto slučajnih nagađanja. Pogledajte moj drugi post o bluetooth IDE -u za postavljanje skica bez žica i stalno povezivanje vašeg robota samo radi brze izmjene u skici. Hvala što ste ovo pogledali. oldmaninsc.

Preporučuje se: