Turinys:

„TinyLiDAR“ant „Pi“?: 9 žingsniai (su nuotraukomis)
„TinyLiDAR“ant „Pi“?: 9 žingsniai (su nuotraukomis)

Video: „TinyLiDAR“ant „Pi“?: 9 žingsniai (su nuotraukomis)

Video: „TinyLiDAR“ant „Pi“?: 9 žingsniai (su nuotraukomis)
Video: What is Lidar? How does Lidar work? Know all about LiDAR 2024, Lapkritis
Anonim
TinyLiDAR ant Pi?
TinyLiDAR ant Pi?

Labas dar kartą!

Dabar, kai praleidote kokybišką laiką su tinyLiDAR ir „Arduino“- jūsų „Raspberry Pi“galbūt jaučiasi šiek tiek vienišas;)

Pi turi I2C prievadą, tiesa? Taigi kodėl gi ne prijungti ir išbandyti ten ?! Geras planas, bet jei jau bandėte - galbūt pastebėjote, kad duomenys atrodo kiek keistai.

Taip, „pi“jau įdiegė 1,8K prisitraukimus, todėl turėsite nupjauti „I2C“pagalvėles „tinyLiDAR“, kad pašalintumėte 4,7K prisitraukimus-išsamiau žr. Tačiau tai nėra keistų duomenų priežastis.

Taip yra todėl, kad „Pi“I2C magistralė neatitinka specifikacijų. Taip buvo nuo tada, kai pi pirmą kartą buvo pristatytas dėl „Broadcom“mikroschemų rinkinio. Nuo pat pradžių jie netinkamai palaikė I2C funkciją, vadinamą „laikrodžio tempimu“.

Daugiau apie šią h/w klaidą galite perskaityti čia.

1 žingsnis: kas yra laikrodžio tempimas?

Kas yra laikrodžio tempimas?
Kas yra laikrodžio tempimas?

Kaip žinote, I2C magistralę sudaro 3 laidai. Jie skirti laikrodžiui (SCL), duomenims (SDA) ir bendram pagrindui. Laikrodis ir duomenų linijos yra atviro kolektoriaus/atviro nutekėjimo tipo, o tai reiškia, kad jiems reikia traukiamųjų rezistorių, prijungtų prie teigiamo tiekimo bėgio, kad jie būtų logiški. Kad būtų sumažinta logika, bet kuris magistralės įrenginys gali nutraukti liniją iki bendro pagrindo.

Pagal I2C standartą pagrindinis įrenginys tiekia laikrodžio signalą SCL linijoje, tačiau jei šis greitis yra per greitas, pavaldžiajam įrenginiui leidžiama jį sulėtinti, tiesiog laikant nuspaudus laikrodžio liniją, kol jis bus paruoštas veikti su informacija. Tai mes vadiname „laikrodžio tempimu“.

Oficialiai laikrodžio tempimas buvo įtrauktas į papildomą I2C standarto funkciją, tačiau tai yra labai įprasta funkcija, reikalinga daugeliui „protingų“vergų, kuriems reikia šiek tiek daugiau laiko pateikti jutiklių duomenis ir pan.

2 žingsnis: nedidelė skraidančių kiaulių pagalba

Norėdami susidoroti su šia I2C h/w klaida, radome gražią mažą nemokamą biblioteką, pavadintą „pigpio“. Tai labai populiari, greita ir lengva biblioteka, parašyta C. Ji veikia kaip „Raspberry Pi“fono demonas ir leidžia mums lengvai valdyti „I2C“ir bet kurį GPIO iš „python“. Biblioteka I2C prievadus traktuoja labiau kaip GPIO ir taip apeina I2C laikrodžio tempimo klaidą. Pigpio biblioteka, kaip ir visa pi programinė įranga, yra tik paprastas „įtraukimas“, todėl eikime!

3 žingsnis: TL; DR versija

Nustatykite „Pi“Įjunkite SSH, kad prisijungtumėte naudodami „Putty“Įdiekite „pigpio“biblioteką Gaukite mažą „LiDAR“zip failą

Neprivaloma:

Nustatykite „SublimeText“naudodami „WinSCP“

4 žingsnis: diegimas

Montavimas
Montavimas

„Raspberry Pi 3“naudojome standartinę „New Out Of the Box“(NOOBS Lite v2.4) operacinę sistemą. Jame jau yra įdiegta numatytoji „Python“versija, paruošta koduoti. Galite atsisiųsti OS iš čia.

Įdiegę „micro SD“kortelę, turite prijungti klaviatūrą ir monitorių, kad galėtumėte pirmą kartą prisijungti prie „pi“:

Vartotojo vardas: pi Slaptažodis: avietė

Tada galite paleisti saugų apvalkalo serverį (SSH) naudodami šias komandas:

sudo systemctl įgalinti sshsudo systemctl paleisti ssh

Tada mums reikės jūsų tinklo IP adreso, kad galėtume prisijungti naudodami „PuTTY“. Norėdami tai padaryti, tiesiog įveskite:

pagrindinio kompiuterio vardas -aš

Ir ieškokite IPv4 formato adreso (mūsų sąrankai tai buvo: 192.168.0.27)

Pirmiau minėti veiksmai leis „pi“paleisti „be galvos“, o tai reiškia, kad jums nebereikės rašyti šia klaviatūra, taip pat nebereikia vaizdo monitoriaus. Toliau prisijungsime prie tinklo naudodami saugų SSH ryšį. Aukščiau pateikta komanda priverčia SSH serverį automatiškai paleisti kiekvieną kartą, kai įjungiamas „pi“. Tai mums patogu koduojant, tačiau vėliau tai gali kelti pavojų saugumui (būti paranojiškam), todėl kai būsite pasiruošę, galite išjungti šią automatinio paleidimo SSH funkciją naudodami šią komandą:

sudo systemctl išjungti ssh

Ši komanda, žinoma, turėtų būti įvesta prie klaviatūros, prijungtos prie pi.

„PuTTY“yra terminalo programa, reikalinga norint išduoti komandas iš kompiuterio į „pi“, todėl turėtumėte paimti naujausią kopiją iš čia.

Įdiekite ir paleiskite „PuTTY“. Įvesdami pagrindinio kompiuterio pavadinimą, turėsite įvesti IP adresą iš viršaus ir naudoti numatytuosius SSH nustatymus. Sesijai suteikite bet kokį norimą pavadinimą ir paspauskite „Išsaugoti“. Tada paspauskite apkrovą ir spustelėkite ATIDARYTI, kad pradėtumėte sesiją.

Tai turėtų jus nukreipti į pi prisijungimo ekraną. Naudokite tą patį vartotojo vardą ir slaptažodį, kuriuos naudojote anksčiau.

5 veiksmas: įdiekite „Pigpio“

Dabar vienintelis dalykas, kurį turime įdiegti, yra „pigpio“biblioteka, ir mes galime tai padaryti naudodami šias komandas.

Patarimas: galite tiesiog nukopijuoti [ctrl+c] ir įklijuoti [pelės dešiniuoju pelės klavišu] šias ir bet kurias kitas komandas į „PuTTY“terminalą

sudo apt-get atnaujinimas

sudo apt-get install pigpio python-pigpio python3-pigpio

6 veiksmas: pasirinktinai: „Dev System Setup“

Neprivaloma: „Dev System Setup“
Neprivaloma: „Dev System Setup“

Taigi čia yra patarimas, kuris gali padėti sutaupyti šiek tiek laiko jūsų kodo kūrimo pasaulyje. Mes tikrai nekenčiame „Unix“pagrįstų teksto redaktorių. Vartotojo sąsaja paprastai yra gremėzdiška, o šriftai šlykštūs. „GNU nano“yra beveik pakenčiamas, tačiau nė vienas nėra toks patobulintas kaip „SublimeText“, kurį galite atsisiųsti iš čia

Turime „Windows“kūrimo aplinką ir mėgstame naudoti šį teksto rengyklę, kai tik įmanoma. Taigi patarimas yra nustatyti savo sistemą, kad galėtumėte naudoti šį profesionalų teksto redaktorių savo „Windows“darbalaukyje, kad galėtumėte tiesiogiai koduoti savo begalį.

Kaip? Naudodami nemokamą programą „WinSCP“, kurią galite atsisiųsti iš čia

7 veiksmas: „WinSCP“nustatymas

„WinSCP“nustatymas
„WinSCP“nustatymas
„WinSCP“nustatymas
„WinSCP“nustatymas

„WinSCP“yra saugi failų perkėlimo programa, suteikianti grafinį vaizdą apie jūsų „rpi“esančius failus, panašius į tai, ką matote „Windows“kompiuterio failų tvarkyklėje.

Taigi eikite į priekį ir dabar įdiekite dvi aukščiau pateiktas programas.

Toliau turėsite atlikti keletą pakeitimų, kad jie visi veiktų tinkamai.

„WinSCP“galite spustelėti NAUJA svetainė. Mes naudosime numatytuosius SFTP nustatymus ir jums reikės tik įvesti savo pi IP adresą (pagrindinio kompiuterio pavadinimą) ir prisijungimo vardą (vartotojo vardui). Jei norite, galite palikti slaptažodį tuščią - kiekvieną kartą prisijungus jis paprašys įvesti slaptažodį.

Tada spustelėkite mygtuką Išplėstinė, tada spustelėkite „Aplinkos apvalkalo“nustatymų kairę pusę. Dešinėje pusėje pakeiskite parinktį „Numatytasis“į parinktį „sudo su -“. Tai leis įrašyti pakeitimus į jūsų pi be leidimo klaidų, kai paspausite įrašyti iš „SublimeText“.

Nustatykite „SublimeText“kaip numatytąjį „WinSCP“redaktorių

Norėdami tai padaryti, spustelėkite „Įrankiai“mygtuką „WinSCP“prisijungimo nustatymų ekrane, kuriame pradėjote dialogą naujoje svetainėje. Dvi ekrano nuotraukos rodo, kaip tai sukonfigūruota, tačiau iš esmės spustelėsite, kad sukonfigūruotumėte redaktoriaus nuostatas, ir pridėkite redaktorių, kuris bus išorinis redaktorius. Tada galite ieškoti.exe failo, kuriame yra šis redaktorius jūsų kompiuteryje.

8 žingsnis: (w) gaukite kodą

w) gauti kodeksą
w) gauti kodeksą

Baigę eikite į priekį ir prisijunkite naudodami „WinSCP“ir „PuTTY“.

Dabar esame pasiruošę ir galime pradėti savo mažą „LiDAR“kodą.

Sukurkite katalogą „tinyLiDAR“savo namų/pi kataloge.

Tai galite padaryti dešiniuoju pelės klavišu spustelėdami dešinėje „WinSCP“ekrano pusėje ir pasirinkę Naujas / katalogas.

Dabar „PuTTY“terminale galite rašyti

cd t

ir paspauskite tabuliavimo klavišą, kad jis automatiškai užbaigtų jūsų komandą, kad patektumėte į tinyLiDAR katalogą.

Kai čia įveskite:

wget

gauti failus tiesiai iš mūsų serverio. Tada galime juos išpakuoti įvesdami

išpakuokite r

ir paspauskite skirtuką, kad vėl automatiškai užbaigtumėte pavadinimą

Norėdami jį paleisti, tiesiog įveskite

python tlgui.py

Ir jūsų tinyLiDAR atsakys į kiekvieną jūsų komandą pi:)

9 veiksmas: pastaba netrukus įsilaužėliams

Eikite į priekį ir pažiūrėkite po gaubtu, dukart spustelėdami bet kurį „WinSCP“kodo failą. Jie yra tie, kurių plėtinys.py Failai turėtų būti atidaryti „SublimeText“tiesiogiai jūsų kompiuteryje. Pakeiskite viską, kas jums patinka, tada spustelėkite „Išsaugoti“. Jūsų pakeitimai bus išsaugoti tiesiai į jūsų pi.

Kai būsite pasiruošę, paleisite jį dar kartą naudodami rodyklės aukštyn klavišą paskutinei įvestai komandai arba tiesiog įveskite dar kartą ir paspauskite „Enter“:

python tlgui.py

Galbūt pastebėjote, kad terminalo GUI išdėstymas atrodo šiek tiek gražesnis nei „Arduino“versija. Taip yra todėl, kad „PuTTY“palaiko unikodo simbolius, todėl galėjome naudoti keletą papildomų žymeklio valdymo simbolių, kad jis atrodytų rafinuotiau.

Čia taip pat yra papildoma komanda (palyginti su „Arduino“versija), kuri yra „dc“nuolatinio skaitymo funkcijai. Išbandykite ir pažiūrėkite, ką manote.

Tai viskas!

Dėkojame, kad skaitote, ir mėgaukitės įsilaužimu į pi:)

Rekomenduojamas: