![☠WEEDINATOR☠ 2. del: Satelitska navigacija: 7 korakov (s slikami) ☠WEEDINATOR☠ 2. del: Satelitska navigacija: 7 korakov (s slikami)](https://i.howwhatproduce.com/images/003/image-8830-65-j.webp)
Kazalo:
2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-23 15:09
![WEEDINATOR☠ 2. del: Satelitska navigacija WEEDINATOR☠ 2. del: Satelitska navigacija](https://i.howwhatproduce.com/images/003/image-8830-66-j.webp)
![WEEDINATOR☠ 2. del: Satelitska navigacija WEEDINATOR☠ 2. del: Satelitska navigacija](https://i.howwhatproduce.com/images/003/image-8830-67-j.webp)
![WEEDINATOR☠ 2. del: Satelitska navigacija WEEDINATOR☠ 2. del: Satelitska navigacija](https://i.howwhatproduce.com/images/003/image-8830-68-j.webp)
![WEEDINATOR☠ 2. del: Satelitska navigacija WEEDINATOR☠ 2. del: Satelitska navigacija](https://i.howwhatproduce.com/images/003/image-8830-69-j.webp)
Rojen je navigacijski sistem Weedinator!
Potujoči kmetijski robot, ki ga je mogoče upravljati s pametnim telefonom.
… In namesto da bi šel skozi običajen postopek, kako je sestavljen, sem mislil, da bom poskusil razložiti, kako v resnici deluje - očitno ne VSE, ampak najpomembnejše in najbolj zanimive koščke. Oprostite besedi, vendar se mi zdi zanimivo, kako podatki tečejo med posameznimi moduli in jih razčlenimo na najnižji imenovalec, ki ga na koncu dobimo z dejanskimi "bitovi" - ničlami in enotami. Če ste bili kdaj zmedeni glede bitov, bajtov, znakov in nizov, je morda zdaj pravi čas, da se zmedete? Prav tako bom poskušal odpraviti zmedo rahlo abstraktnega koncepta, imenovanega "Preklic napak".
Sam sistem ima:
- GPS/GNSS: Ublox C94 M8M (Rover in baza)
- 9DOF Razor IMU MO digitalni kompas
- Fona 800H 2G GPRS mobilno
- 2,2 -palčni zaslon TFT
- Arduino Due "Mojster"
- Različni Arduino "sužnji".
Nenavadno je, da veliko satelitskih navigacijskih naprav nima digitalnega kompasa, kar pomeni, da morate, če ste mirujoči in izgubljeni, hoditi ali voziti v kateri koli naključni smeri, preden vam naprava lahko pokaže pravilno smer s satelitov. Če se izgubite v debeli džungli ali podzemnem parkirišču, ste polni!
1. korak: Kako deluje
![Kako deluje Kako deluje](https://i.howwhatproduce.com/images/003/image-8830-70-j.webp)
Trenutno se iz pametnega telefona ali računalnika naloži preprost par koordinat, ki jih nato prenese Weedinator. Ti se nato razlagajo v naslovu v stopinjah in razdalji za potovanje v mm.
Fona GPRS se uporablja za dostop do spletne baze podatkov prek mobilnega omrežja 2G ter za sprejem in prenos koordinat na Arduino Due prek Arduino Nano. Due je mojster in upravlja niz drugih Arduinov kot podrejenih preko I2C in serijskih vodilov. Due lahko komunicira z živimi podatki iz Ubloxa in Razorja ter prikaže naslov, ki ga izračuna eden od njegovih sužnjev Arduino.
Satelitski sledilnik Ublox je še posebej pameten, saj uporablja preklic napak za zelo natančne popravke - končno nominalno skupno odstopanje približno 40 mm. Modul je sestavljen iz enakega para, od katerih se eden, "rover", premika z Weedinatorjem, drugi pa je "osnova" pritrjena na drog nekje na prostem. Odpoved napak je dosežena s tem, da lahko baza z veliko količino vzorcev sčasoma doseže resnično natančno rešitev. Ti vzorci se nato povprečijo, da kompenzirajo spreminjajoče se atmosferske razmere. Če bi se naprava premikala, očitno ne bi mogla doseči kakršnega koli povprečja in bi bila popolnoma na milost in nemilost spreminjajočega se okolja. Če pa statična in premična naprava delujeta skupaj, če lahko komunicirata med seboj, imata lahko koristi od obeh. Osnovna enota ima v vsakem trenutku napako, vendar ima tudi predhodno izračunano super natančno popravilo, tako da lahko izračuna dejansko napako tako, da odšteje en niz koordinat od drugega. Izračunsko napako nato pošlje roverju po radijski povezavi, ki napako nato doda na lastne koordinate in hej presto, imamo napako pri preklicu! Praktično gledano, preklic napak naredi razliko med skupnim odstopanjem od 3 metrov do 40 mm.
Celoten sistem je videti zapleten, v resnici pa ga je precej enostavno zgraditi bodisi ohlapno na neprevodni površini bodisi z uporabo tiskanega vezja, ki sem ga oblikoval, kar omogoča varno pritrditev vseh modulov. Prihodnji razvoj temelji na tiskanem vezju, kar omogoča vgradnjo velikega števila Arduinosov za krmiljenje motorjev za krmiljenje, premikanje naprej in vgrajen CNC stroj. Navigaciji bo pomagal tudi vsaj en sistem za prepoznavanje predmetov, ki s kamerami zaznava barvne predmete, na primer fluorescenčne žogice za golf, ki so skrbno postavljene v nekakšno mrežo - Oglejte si ta prostor!
Korak: Komponente
![Sestavni deli Sestavni deli](https://i.howwhatproduce.com/images/003/image-8830-71-j.webp)
![Sestavni deli Sestavni deli](https://i.howwhatproduce.com/images/003/image-8830-72-j.webp)
![Sestavni deli Sestavni deli](https://i.howwhatproduce.com/images/003/image-8830-73-j.webp)
- Ublox C94 M8M (Rover in baza) x 2 od
- 9DOF Razor IMU MO digitalni kompas
- Fona 800H 2G GPRS mobilno 1946
- Arduino Due
- Arduino Nano x 2 od
- SparkFun Pro Micro
- Adafruit 2.2 "TFT IL1940C 1480
- PCB (glej priložene datoteke Gerber) x 2 od
- 1206 SMD upori nič ohmov x 12 of
- 1206 LED x 24 palcev
Datoteka PCB se odpre s programsko opremo 'Design Spark'.
3. korak: Ožičenje modulov
![Ožičenje modulov Ožičenje modulov](https://i.howwhatproduce.com/images/003/image-8830-74-j.webp)
To je enostaven del - še posebej enostaven pri tiskanem vezju, ki sem ga naredil - samo sledite zgornjemu diagramu. Paziti je treba, da se izognete ožičenju 3v modulov na 5v, tudi na serijskih in I2C vodih.
4. korak: Koda
![Koda Koda](https://i.howwhatproduce.com/images/003/image-8830-75-j.webp)
Večina kode se ukvarja s pridobivanjem podatkov za urejeno gibanje po sistemu in pogosto je treba pretvoriti podatkovne formate iz celih v plavajoče v nize in v znake, kar je lahko zelo zmedeno! Protokol 'Serial' bo obravnaval samo znake, medtem ko bo I2Protokol C bo obravnaval zelo majhna cela števila, meni se je zdelo bolje, da jih pretvorim v znake in nato na drugem koncu daljnovoda pretvorim nazaj v cela števila.
Krmilnik Weedinator je v bistvu 8 -bitni sistem z veliko posameznimi Arduini ali MCU -ji. Ko je 8 bit opisan kot dejanske binarne ničle in enote, lahko izgleda tako: B01100101, kar bi bilo enako:
(1x2)+(0x2)2+(1x2)3+(0x2)4+(0x2)5+(1x2)6+(1x2)7+(0x2)8 =
Decimalna številska vrednost | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 | |
Dvojna številska vrednost | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 1 |
= 101
Največja možna vrednost je 255 … Tako lahko največje celo število 'bajtov' prenesemo preko I2C je 255, kar je zelo omejujoče!
Na Arduinu lahko hkrati pošljemo do 32 znakov ASCII ali bajtov z uporabo I2C, ki je veliko bolj uporaben, nabor znakov pa vključuje številke, črke in kontrolne znake v 7 -bitnem formatu, kot je prikazano spodaj:
![Slika Slika](https://i.howwhatproduce.com/images/003/image-8830-76-j.webp)
Na srečo prevajalnik Arduino v ozadju opravi vse delo pri pretvorbi znakov v binarno datoteko, vendar še vedno pričakuje pravilno vrsto znakov za prenos podatkov in ne bo sprejel 'nizov'.
Zdaj je čas, ko se stvari lahko zmedejo. Znaki se lahko izrazijo kot enojni znaki z uporabo definicije char ali kot enodimenzionalna matrika z 20 znaki z uporabo char [20]. Arduino niz je zelo podoben nizu znakov in je dobesedno niz znakov, ki jih človeški možgani pogosto razlagajo kot "besede".
// Zgradi znak 'distanceCharacter':
Začetnik niza = ""; distanceString = pobudnik + distanceString; int n = distanceString.length (); for (int aa = 0; aa <= n; aa ++) {distanceCharacter [aa] = distanceString [aa]; }
Zgornja koda lahko pretvori dolg niz znakov v niz znakov, ki se nato lahko prenese prek I2C ali serijsko.
Na drugem koncu daljnovoda lahko podatke pretvorite nazaj v niz z naslednjo kodo:
distanceString = distanceString + c; // niz = niz + znak
Niz znakov ni mogoče pretvoriti neposredno v celo število in mora najprej iti v obliko niza, vendar se naslednja koda pretvori iz niza v celo število:
int result = (distanceString).toInt ();
int distanceMetres = rezultat;
Zdaj imamo celo število, s katerim lahko izračunamo. Plavajoče (števila z decimalno vejico) je treba na stopnji prenosa pretvoriti v cela števila, nato pa jih za dve decimalni mesti deliti s 100, npr.:
float distanceMetres = razdaljaMm / 1000;
Nazadnje, niz lahko ustvarite iz mešanice znakov in celih števil, na primer:
// Tu so podatki zbrani v znak:
dataString = pobudnik + "BEAR" + zbearing + "DIST" + zdistance; // Omejeno na 32 znakov // Niz = niz + znaki + medštevilka + znaki + celo število.
Preostala koda je standardna Arduino, ki jo lahko najdete v različnih primerih v knjižnicah Arduino. Oglejte si primere 'examples >>>> Strings' in 'wire' library.
Tu je celoten postopek za prenos in sprejem plavajočega:
Pretvori Float ➜ Celo število ➜ Niz ➜ Znakovno polje ….. nato PRENOSI niz znakov iz Master ➜➜
➜➜ SPREJMITE posamezne znake na Slaveju…. nato pretvorite Znak ➜ Niz ➜ Celo število ➜ Float
5. korak: Baza podatkov in spletna stran
![Baza podatkov in spletna stran Baza podatkov in spletna stran](https://i.howwhatproduce.com/images/003/image-8830-77-j.webp)
![Baza podatkov in spletna stran Baza podatkov in spletna stran](https://i.howwhatproduce.com/images/003/image-8830-78-j.webp)
Zgoraj je prikazana struktura baze podatkov in priloženi sta datoteki s kodo php in html. Uporabniška imena, imena zbirk podatkov, imena tabel in gesla so zaradi varnosti prazna.
6. korak: Preskusi krmarjenja
![Navigacijski testi Navigacijski testi](https://i.howwhatproduce.com/images/003/image-8830-79-j.webp)
![Navigacijski testi Navigacijski testi](https://i.howwhatproduce.com/images/003/image-8830-80-j.webp)
![Navigacijski testi Navigacijski testi](https://i.howwhatproduce.com/images/003/image-8830-81-j.webp)
Uspelo mi je preko I2C priključiti zapisovalnik podatkov na nadzorno ploščo Weedinator in dobiti nekaj predstave o zmogljivosti pozicioniranja satelita Ublox M8M:
Pri "hladnem zagonu", prikazanem na zelenem grafu, se je modul zagnal z veliko napakami, precej podobnimi "običajnemu" GPS -u, postopoma pa se je napaka zmanjševala, dokler po približno 2 urah ni dobil popravka RTK med roverjem in podnožje (prikazano kot rdeči križ). V tem 2-urnem obdobju osnovni modul nenehno gradi in posodablja povprečno vrednost zemljepisne širine in dolžine in potem, ko se vnaprej programiran časovni interval odloči, da je dobro popravljen. Naslednja 2 grafa prikazujeta vedenje po vročem zagonu ", kjer je osnovni modul že izračunal dobro povprečje. Zgornji graf je daljši od 200 minut, občasno se popravek izgubi in rover pošlje sporočilo NMEA Weedinatorju, da je popravek začasno postal nezanesljiv.
Spodnji modri graf je "povečava" rdečega polja na zgornjem grafu in prikazuje dober reprezentativen posnetek uspešnosti Ubloxa s skupnim odstopanjem 40 mm, kar je več kot dovolj dobro, da vodi Weedinator do njegove lokacije, a morda ni dovolj dobro za obdelavo tal okoli posameznih rastlin?
Tretji graf prikazuje podatke, zbrane z Roverjem in bazo 100 metrov narazen - Dodatne napake niso bile zaznane - razdalja ločevanja ni vplivala na natančnost.
7. korak: Končno
Priporočena:
Satelitska podprta vremenska postaja: 5 korakov
![Satelitska podprta vremenska postaja: 5 korakov Satelitska podprta vremenska postaja: 5 korakov](https://i.howwhatproduce.com/images/001/image-233-j.webp)
Satelitsko podprta vremenska postaja: Ta projekt je namenjen ljudem, ki želijo zbrati lastne vremenske podatke. Lahko meri hitrost in smer vetra, temperaturo in vlažnost zraka. Sposoben je tudi poslušati vremenske satelite, ki krožijo okoli Zemlje enkrat na 100 minut. Bom
Prototip HUD pametnega motornega kolesa (navigacija od zavoja in še veliko več): 9 korakov
![Prototip HUD pametnega motornega kolesa (navigacija od zavoja in še veliko več): 9 korakov Prototip HUD pametnega motornega kolesa (navigacija od zavoja in še veliko več): 9 korakov](https://i.howwhatproduce.com/images/001/image-818-j.webp)
Prototip pametnega motornega kolesa HUD (navigacija po korakih in še veliko več): Pozdravljeni, ta Instructables je zgodba o tem, kako sem zasnoval in izdelal platformo HUD (Heads-Up Display), namenjeno za namestitev na čelade za motorna kolesa. Napisana je bila v okviru natečaja "zemljevidi". Žal mi ni uspelo popolnoma dokončati t
Glasovna navigacija Raspberry Pi v pomoč slepim osebam: 7 korakov (s slikami)
![Glasovna navigacija Raspberry Pi v pomoč slepim osebam: 7 korakov (s slikami) Glasovna navigacija Raspberry Pi v pomoč slepim osebam: 7 korakov (s slikami)](https://i.howwhatproduce.com/images/005/image-12642-j.webp)
Glasovna navigacija Raspberry Pi v pomoč slepim osebam: Pozdravljeni V tem navodilu bomo videli, kako lahko malina pi pomaga slepim osebam z uporabo glasovno določenih navodil. Tukaj, s pomočjo ultrazvočnega senzorskega vhoda za merjenje razdalje, ki jo lahko glasovno vodi slepe ljudi do naslednjega
☠WEEDINATOR☠ 3. del: Konstrukcija podvozja: 8 korakov (s slikami)
![☠WEEDINATOR☠ 3. del: Konstrukcija podvozja: 8 korakov (s slikami) ☠WEEDINATOR☠ 3. del: Konstrukcija podvozja: 8 korakov (s slikami)](https://i.howwhatproduce.com/images/003/image-7757-29-j.webp)
☠WEEDINATOR☠ 3. del: Konstrukcija podvozja: Zima je idealen čas za gradnjo strojev, še posebej, če gre za varjenje in rezanje s plazmo, saj oba zagotavljata pošteno toploto. Če se sprašujete, kaj je plazemski rezalnik, potem preberite o poglobljenih postopkih
Prenovljena satelitska satelitska antena zajema signale Wi-Fi in mobilnega telefona: 4 koraki
![Prenovljena satelitska satelitska antena zajema signale Wi-Fi in mobilnega telefona: 4 koraki Prenovljena satelitska satelitska antena zajema signale Wi-Fi in mobilnega telefona: 4 koraki](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10961767-repurposed-satellite-dish-antenna-captures-wi-fi-and-cell-phone-signals-4-steps-j.webp)
Ponovna namestitev satelitske antene zajema signale Wi-Fi in mobilnih telefonov: Ko sem se preselil iz San Antonia nazaj v podeželsko Severno Karolino, se mi je zdelo, da popolnoma ne morem dobiti signala wi-fi ali mobilnega telefona tam, kjer sem živel. Edini način, da sploh dobim signal celice, je bil, da se peljem več kot kilometer v obe smeri od tam, kjer sem