Sisukord:

SONIC LED TAGASISIDE: 7 sammu (piltidega)
SONIC LED TAGASISIDE: 7 sammu (piltidega)

Video: SONIC LED TAGASISIDE: 7 sammu (piltidega)

Video: SONIC LED TAGASISIDE: 7 sammu (piltidega)
Video: HUNGRY SHARK WORLD EATS YOU ALIVE 2024, Juuli
Anonim
SONIC LED TAGASISIDE
SONIC LED TAGASISIDE
SONIC LED TAGASISIDE
SONIC LED TAGASISIDE
SONIC LED TAGASISIDE
SONIC LED TAGASISIDE

Tere jälle, Kas vihkate, et teie robot kõigega kokku puutub? See lahendab selle probleemi. Kaheksa helianduri abil tundub see keeruline … aga tegelikult tegin selle väga lihtsaks. Püüan postitada projekte, mis aitavad teil Arduino tundmaõppimist ja näitavad „väljaspool kasti” kontseptsiooni. See postitus aitab teil mõista 595 lülitamist, pro-minisid programmeeritava andurina ja reaalajas juhitud tagasiside suurt kasutamist. Kui teile meeldib Arduino „kopeerida ja kleepida ning pistikprogrammi lisada”, võite selle lihtsalt vahele jätta.

Mulle meeldib kasutada pro-minisid. Need on umbes 2,50 dollarit, töötavad täieliku unona ja päiste installimine muudab need väga paindlikuks. Kui kasutate anduri mikrot, saate selle teha, mida soovite, selle asemel, mida ostetud andur dikteerib. Kui I2C kasutab ainult kahte juhtmest, saab need kokku siduda ühe reaga. Nii et minge üle MEGA -le ja mul on 4 mini, mis töötavad korraga 4 eraldi koodirida hinnaga 10,00 dollarit. Siin kasutan minit, et poputada heliandureid läbi 595 ja näidata reaalajas juhitud kaugust. Seejärel jagage lihtsalt emaplaadiga 8 bitti andmeid. See võtab koormuse emaplaadilt maha ja muudab tema koodi väga lihtsaks.

Helianduritega on probleem … visuaalset tagasisidet pole. Kunagi ei tea, kas andur on lihtsalt tühimass või töötab! Ma usun, et see, kes kunagi "BLINK" välja mõtles, on targem kui Einstine. Vilkumine edastab vaid ÜHE LED -i ja teabemaailma. Seega vajab heliandur reaalajas tagasisidet. Siin kasutasin iga anduri jälgimiseks hulga LED -e. Te ei vaja neid, valmistage andurid ilma LED -ideta. Kuid LED -de trükkplaadil on abi.

Samm: valmistage trükkplaat

TEE PCB
TEE PCB
TEE PCB
TEE PCB
TEE PCB
TEE PCB
TEE PCB
TEE PCB

tehke PCB ja täitke. ETTEVAATUST … Ma tegin viga trükkplaadil 4 -kontaktiliste ühenduste korral, et heliandurid saaksid ühendada. ECHO ja TRIGGER Vcc ja pinnad ühendati PCB -ga. Pistikute jaoks pole piisavalt ruumi, nii et tegin lihtsalt trükkplaadi koos nööpnõeltega. Nii saate juhtmepistiku PCB -le joota ja ühendada tegelike helianduritega. Mis puutub LED -idesse, siis panin kollased LED -id siseserva ja punased väljastpoolt. see aitab kaugelt näha, kas andurid mõõdavad õigesti.

See on üks väheseid 2 -osalisi trükkplaate, mida ma kunagi teinud olen. Pigem teeksin 2 ea ühe külje ja jooksu džemprid. LED -ekraani saamiseks on vaja vähemalt ülemist PCB -d. Eraldasin allalaadimisel paigutuse.

PCB on mõeldud pro-mini jaoks, mille servapäises on A4-A5. Mõlemal juhul ühendage lihtsalt A4-A5 Master A4-A5-ga. Ärge unustage ka Vcc ja Groundsi.

2. samm: PALJU VEAD

PALJU VEAD
PALJU VEAD

Nüüd minu vigadest … Proovisin käivitajaid korraga avada (kõik omavahel seotud) ja see sorta töötas hästi, kuid toimus mõningane suhtlus. Nüüd lähevad kõik ECHOS -id mikro (8) juurde ja TRIGGERID on seadistatud 595. Veel kolm tihvti (3). LEDide osas multipleksimine ei tööta. Iga LED -i jaoks on vaja täielikku sisselülitusaega. See tähendab, et igal 7 LED -i real peab olema oma 595. Pärast 595 värskendamist jäävad LED -id põlema kuni järgmise värskenduseni. Kui LED -ide multipleksimine süttib ainult selle kümnendiku jooksul. See töötab minu lugejate jaoks hästi ja vajab spetsiaalset mikrot. Pole aega 8 helianduri skannimiseks ja vahemaade mõõtmiseks. Proovisin ja sain väga kehvad tulemused. Valgusdioodide multipleksimine tähendab ka rea + veeru ruudustikku ja see tähendab umbes 64+ toitevoolu PCB -s.

Ma kasutasin 595 -st ainult 7 väljundit trükkplaadi segaduse tõttu. Eemalt ei saa öelda, kas nende liikumisel on 7 või 8 LED -i. Teil võib tekkida kiusatus siduda kõik LED -id ühe takisti külge ja see töötab, kuid massiivi heledus muutub koos lihtsate LED -ide hulgaga. Nii et üks takisti LED -i kohta on parim. Ma lihtsalt armastan 595, kuid kui nad lihtsalt liigutaksid Vcc ja 0-out tihvte või teeksid 18-pin ic koos kõigi väljunditega samal küljel … kõigi kaheksa väljundi ühendamine oleks nii lihtne. Aga siis ei müüks see alla 30 sendi.

Samm 3: PAIGALDUSANDURID

PAIGALDUSANDURID
PAIGALDUSANDURID
PAIGALDUSANDURID
PAIGALDUSANDURID
PAIGALDUSANDURID
PAIGALDUSANDURID
PAIGALDUSANDURID
PAIGALDUSANDURID

Liimige heliandurid kohvikaane külge. isane pistik tuleb iga anduri suhtes sissepoole painutada. See toimib paremini, kui painutate ühte tihvti korraga. Ma kasutasin 2 külgmist vahtlinti, et vibratsioon oleks väiksem. Minu andurid on liiga lähedal ja vajavad PCB -ga paremini sobitamiseks 1/4 tolli ruumi. Olen varem kasutanud heliandureid ja mõnikord ei õnnestu neid täpselt mõõta ning peate seda meeles pidama. Nii et ärge liimige neid kõiki püsivalt.

Samuti aitab see enne iga kasutamist kiirkatse läbi viia. Ma saan umbes ühe kehva näidu anduri partiis 20. Makstud hinna eest pole paha.

4. samm: kõva traat

KÕV traat
KÕV traat

Ma arvasin, et arvuti ja arvuti vahel on ruumi pistikute ja pistikute jaoks

helinõelad, aga ma jooksin toast välja. Nii et ma ühendasin PCB otsa kõvasti ja tegin lihtsalt kaja- ja käivitusjuhtmeid naissoost pistikutega (8ea). Ma sidusin andurite 8ea Vcc ja 8ea alused kokku, nii et see lõi nende jaoks ainult 2 ühendust PCB -ga.

8 anduri ja 8 595-ga ei saa uno või pro-mini seda toita. Selle projekti osana peab olema 5 V reguleeritud allikas. Minu robotil on patareidest lihtne 7805 @ 1amp. See on seotud kõigi seadmete 5v Vcc -ga. 7805 langeb umbes volti, nii et selle toitmiseks vajate vähemalt 6,5 volti. See tähendab 2 liitiumakut 3,3 V juures. Minu robotil on kasutatud puuripakkidest vanad nikad ja 8 nikad käitavad 20 -dollarise paagi tüüpi šassiis tüüpilist Hiina hammasratastega 12 -voldilist mootorit.

Samm 5: LAADI SONIC SKETCH alla

LAADI alla SONIC SKETCH
LAADI alla SONIC SKETCH

Laadige sketš alla ja installige. Rääkimiseks on palju viise

teine uno aga mulle meeldib I2c. segadus on pöördumine ja isand/ ori. Nagu enamiku andurite puhul (mõelge teisele minile kui andurile), pöördute anduri poole ja küsite x baitide arvu. sama asi siin. Teises mini -s panete kõrvale x hulga baite, mida soovite saata. Segadus on selles, et nimedel pole tähtsust. See aitab teil meeles pidada ainult siis, kui jagate nimesid. Nii et visandis saadan 8 helikauguse mõõtmist sentimeetrites sendR1, sendR2, sendR3, sendR4, sendL1, sendL2, sendL3, sendL4. Meister saab andmete saamiseks vaid 8 baiti ja saate neid baite helistada ükskõik mida. Lugesin neid kui gotR1, gotR2, got….. Saadetud baitide järjekord on sama. Nii et bait A, B, C….. ärge arvake, et nime muutmine annab teile erinevaid andmeid. Ja teine saak, saate vastu võtta ainult neid andmeid, mis on määratud saatmiseks. Nii et kui soovite muid andmeid, peate muutma nii master kui ka slave.

6. samm: KOMMUNIKATSIOON

KOMMUNIKATSIOON
KOMMUNIKATSIOON

Saate selle vahele jätta, kui teate, kuidas seadistada 2 Unot üksteisega rääkimiseks. Mul on lõpus natuke infot. Selle lihtsustamiseks nimetan robotbaasis olevat unot M1 -ks ja heliandurit S2 -ks. Ühendage Vcc, ground, A4, A5 üksteisega.

S2 visandis algab see #include

Seejärel looge saatmiseks 8 baiti. bait R1, bait R2, bait L1 jne. Uno on 8 -bitine mikro, nii et nad saadavad 1 -baidi korraga, kasutades int -i asemel baiti.

Lisage seadistusse () lisage „Wire.begin (aadress)”, mis ütleb I2c -le, milline seade see on. Aadress on tavaliselt suvaline number vahemikus 4 - 200. ühe baidi suurune. Siin kasutasin numbrit 10. Nii et selle anduriga S2 rääkimiseks peab kapten helistama Wire.requestFrom (10, 8). See on aadress 10 ja 8 on mitu baiti soovitud. Ka 'setup ()' lisage Wire.onRequest (isr anyName). Kui M1 päringule helistab, reageerib S2 andur katkestusele. See lihtsalt kutsub funktsiooni anyName. Seega tuleb see funktsioon AnyName luua. Vaadake visandit ja vaadake funktsiooni 'sendThis ()'. Siin saadetakse baidid tegelikult M1 -le. Ainult baidid lähevad ja MITTE nimed ja saadetud järjekorras. Siit algab saadetavate andmete suurus ja kogus. Selles lihtsas baitide vormingus peaksid saatmine ja vastuvõtmine ühtima. Siin saadeti 8 ja vastu võetud 8 baiti. Üks märkus, et funktsiooni kutsumine nõuab (). Nagu viivitus (), millis (), Serial.print (). Kui kasutate ISR -i (teenuse katkestamise rutiin), helistab funktsioon (). Nii et Wire.onRequest (sendThis) mitte Wire.onRequest (sendThis ()).

Segadus, mis mul tekkis, oli peremehe/orja asi. Alguses arvasin, et peremees on ALATI peremees. Kuid visandis saate vahetada ülem-/alamseadet, et taotleda teistelt mikrotelt või saata teistele. Niikaua kui järgisite ülalkirjeldatud põhivormingut. Pidage meeles … jagate AINULT andmeid, mis on määratud.

Kaks tükki seinast ära. ISR -katkestus katkestab ainult visandijoonte vahel. Kui olete lukustatud ahelasse või ajaks, ei toimu midagi enne, kui tsükkel väljub. EI ole suur asi, kuna see võib kesta paar mikrosekundit ja andmed on vanad.

Teine probleem on see, et mikro sees on 100% veavaba arvutus. Igasugune „väline” (juhtmete) side võib olla vigane. On mitmeid viise, kuidas kontrollida, kas edastatud andmed on veadeta ja vastavad allikale. Lihtsaim viis on kontrollsumma. Lihtsalt lisage saatvate baitide kogusummad (tegelikud väärtused) ja saatke kogusummad ning vastuvõtvas otsas kogusummad ja vaadake, kas need kattuvad. Kui need sobivad, või visake see andmekogum, kui mitte. Loomulikult hõlmab see täisarvu väärtuse saatmist, mitte baite. Nii et jagate täisarvu HI- ja LO -baitideks ning saadate eraldi baitidena. Seejärel pange vastuvõtja juurde kokku.

LIHTNE:

int x = 5696; (mis tahes kehtiv int väärtus, max on 65k või 32k negatiivne)

bait hi = x >> 8; (22)

bait lo = x; (64)

saatke baidid ja ühendage teises otsas …

bait hi = Wire.read ();

bait lo = Wire.read ();

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

7. samm: SULETUS

SULETUS
SULETUS
SULETUS
SULETUS
SULETUS
SULETUS
SULETUS
SULETUS

Sulgemiseks annab see heliandur emaplaadile reaalajas tooreid kaugandmeid. See vabastab mikro ja muudab visandi palju vähem keerukaks. Mikro saab nüüd teha hea otsuse aeglustada, keerata, peatada või tagurdada, tuginedes juhuslike oletuste asemel headele andmetele. Vaadake minu teist postitust bluetooth IDE kohta, et visandid ilma juhtmeteta üles laadida ja kogu aeg oma robotit ühendada, et oma visandit kiiresti muuta. Täname, et vaatasite seda. oldmaninsc.

Soovitan: