Kazalo:

TinyLiDAR na Pi?: 9 korakov (s slikami)
TinyLiDAR na Pi?: 9 korakov (s slikami)

Video: TinyLiDAR na Pi?: 9 korakov (s slikami)

Video: TinyLiDAR na Pi?: 9 korakov (s slikami)
Video: Мишка Косолапый по Лесу Идет - Песни Для Детей 2024, November
Anonim
TinyLiDAR na Pi?
TinyLiDAR na Pi?

Pozdravljeni še enkrat!

No, zdaj, ko ste preživeli nekaj kvalitetnega časa z tinyLiDAR -om in vašim Arduinom - vaš Raspberry Pi se morda počuti nekoliko osamljeno;)

Pi ima vrata I2C kajne? Zakaj ga torej ne bi priklopili in preizkusili tam ?! Dober načrt, če pa ste že poskusili - ste morda opazili, da so podatki nekoliko čudni.

Da, pi je že vgradil 1,8K vleke, tako da boste morali izrezati blazinice I2C na tinyLiDAR-u, da izvlečete 4,7K vleke iz vezja-za podrobnosti glejte referenčni priročnik. Toda to ni razlog za čudne podatke.

To je zato, ker pi -jevo vodilo I2C ni ravno v skladu s specifikacijami. Tako je že od prve predstavitve pi zaradi nabora čipov Broadcom. Od vsega začetka niso ustrezno podpirali funkcije I2C, imenovane "raztezanje ure".

Več o tej h/w hrošči si lahko preberete tukaj.

1. korak: Kaj je raztezanje ure?

Kaj je raztezanje ure?
Kaj je raztezanje ure?

Kot morda veste, vodilo I2C je sestavljeno iz 3 žic. To so za uro (SCL), podatke (SDA) in skupne točke. Ura in podatkovni vodi so tipa z odprtim zbiralnikom/odprtim odtokom, kar pomeni, da potrebujejo vlečne upore, priključene na pozitivno napajalno tirnico, da jim omogočijo visoko logiko. Da bi zmanjšali logiko, lahko katera koli naprava na vodilu povleče linijo do skupnega jezika.

V skladu s standardom I2C je glavna naprava tista, ki oddaja signal ure na liniji SCL, če pa je ta hitrost prehitra, jo lahko podrejena naprava upočasni tako, da preprosto zadrži uro, dokler ni pripravljena za delo. s podatki. Temu pravimo "raztezanje ure".

Uradno je bilo raztezanje ure navedeno kot izbirna funkcija v standardu I2C, vendar je zelo pogosta funkcija, ki je potrebna za večino "inteligentnih" podrejenih, ki potrebujejo nekaj več časa za posredovanje podatkov senzorjev itd.

2. korak: Mala pomoč prašičev, ki letijo

Za reševanje te napake I2C h/w smo našli lepo brezplačno knjižnico, imenovano "pigpio". To je zelo priljubljena, hitra in lahka knjižnica, napisana v C. Deluje kot demon ozadja za Raspberry Pi in nam omogoča preprost nadzor nad I2C in katerim koli GPIO iz pythona. Knjižnica obravnava vrata I2C bolj kot GPIO in je tako zaobšla napako raztezanja ure I2C. Kot vsa programska oprema na pi, je knjižnica pigpio le preprosto "vključi", zato pojdimo!

3. korak: TL; DR različica

Nastavitev PiEnable SSH za prijavo s programom Putty Namestitev knjižnice pigpio Pridobite datoteko ZIP z majhno datoteko LiDAR Razpakirajte in zaženite iz programa Putty

Neobvezno:

Nastavite SublimeText z WinSCP

4. korak: Namestitev

Namestitev
Namestitev

Za naš Raspberry Pi 3 smo uporabili standardni operacijski sistem New Out of the Box Software (NOOBS Lite v2.4). Vsebuje privzeto različico Pythona, ki je že nameščena za kodiranje. OS lahko prenesete od tukaj.

Ko ste nameščeni na kartico micro SD, morate povezati tipkovnico in monitor, da se lahko prvič prijavite v pi:

Uporabniško ime: pi Geslo: malina

Nato lahko zaženete strežnik zaščitene lupine (SSH) s temi ukazi:

sudo systemctl omogoči sshsudo systemctl zažene ssh

Nato bomo potrebovali IP naslov pi v vašem omrežju, da se bomo lahko prijavili s PuTTY. Če želite to narediti, samo vnesite:

ime gostitelja -I

In poiščite naslov v formatu IPv4 (za našo nastavitev je bil: 192.168.0.27)

Zgornji koraki bodo pi omogočili izvajanje "brez glave", kar pomeni, da vam ne bo treba več tipkati na tej tipkovnici in tudi ni več potreben video monitor. V prihodnje se bomo prijavljali prek omrežja prek varne povezave SSH. Zgornji ukaz povzroči, da se strežnik SSH samodejno zažene ob vsakem vklopu pi. To je za nas priročno, ko kodiramo, vendar bi lahko kasneje predstavljalo varnostno tveganje (paranoičnost je dobra), zato lahko, ko ste pripravljeni, onemogočite to funkcijo samodejnega zagona SSH s tem ukazom:

sudo systemctl onemogoči ssh

Ta ukaz je treba vnesti na tipkovnici, ki je seveda povezana s pi.

PuTTY je terminalski program, ki je potreben za oddajanje ukazov iz računalnika v pi, zato morate od tukaj vzeti najnovejšo kopijo.

Namestite in zaženite PuTTY. Pri vnosu imena gostitelja boste morali vnesti naslov IP od zgoraj in uporabiti privzete nastavitve SSH. Dajte seji poljubno ime in pritisnite shrani. Nato pritisnite obremenitev in kliknite OPEN za začetek seje.

Moral bi vas odpreti na prijavni zaslon za pi. Uporabite isto uporabniško ime in geslo, ki ste ga uporabili prej.

5. korak: Namestite Pigpio

Edino, kar moramo po tem namestiti, je knjižnica pigpio, kar lahko storimo z naslednjimi ukazi.

Nasvet: Lahko preprosto kopirate [ctrl+c] in prilepite [desni klik miške] te in vse druge ukaze v terminal PuTTY

sudo apt-get posodobitev

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

6. korak: Izbirno: nastavitev sistema Dev

Izbirno: nastavitev sistema Dev
Izbirno: nastavitev sistema Dev

Torej, tukaj je nasvet, ki vam lahko pomaga prihraniti nekaj časa v svetu razvoja kode. Zelo sovražimo urejevalnike besedil, ki temeljijo na unixu. Uporabniški vmesnik je običajno okoren in pisave zanič. GNU nano je skoraj znosno, vendar noben ni tako izpopolnjen kot SublimeText, ki ga lahko prenesete od tukaj

Imamo razvojno okolje, ki temelji na sistemu Windows, in radi uporabljamo ta urejevalnik besedil, kadar koli je to mogoče. Nasvet tukaj je torej v nastavitvi vašega sistema, da lahko uporabljate ta profesionalni urejevalnik besedil na svojem namizju Windows za neposredno kodiranje na pi brez glave.

Kako? Z brezplačno aplikacijo WinSCP, ki jo lahko prenesete od tukaj

7. korak: Nastavitev WinSCP

Nastavitev WinSCP
Nastavitev WinSCP
Nastavitev WinSCP
Nastavitev WinSCP

WinSCP je varen program za prenos datotek, ki grafično prikazuje datoteke, prisotne na vašem rpi, podobno tistemu, kar vidite v upravitelju datotek na računalniku z operacijskim sistemom Windows.

Zato nadaljujte z namestitvijo zgornjih dveh programov.

Nato boste morali narediti nekaj prilagoditev, da bodo vse delovale pravilno.

Za WinSCP lahko kliknete na NOVO spletno mesto. Uporabili bomo privzete nastavitve SFTP in vnesti morate le naslov IP (za ime gostitelja) pi in uporabniško ime (za uporabniško ime). Če želite, lahko geslo pustite prazno - ob vsaki prijavi vas bo vprašalo za geslo.

Nato kliknite gumb Napredno in nato kliknite na levi strani za nastavitve Okoljske lupine. Na desni strani spremenite »Privzeto«, povlecite navzdol na možnost »sudo su -«. To bo omogočilo zapisovanje sprememb v vaš pi brez napak pri dovoljenju, ko pritisnete shrani iz SublimeText.

Nastavite SublimeText na privzeti urejevalnik v WinSCP

Če želite to narediti, kliknite gumb Orodja na zaslonu z nastavitvami prijave za WinSCP, kjer ste zagnali pogovorno okno NewSite. Dva posnetka zaslona prikazujeta, kako je to konfigurirano, v bistvu pa kliknete, da konfigurirate nastavitve urejevalnikov in dodate urejevalnika, ki bo zunanji urejevalnik. Nato lahko poiščete datoteko.exe, v kateri je ta urejevalnik v vašem računalniku.

8. korak: (w) pridobitev kode

(w) pridobivanje kodeksa
(w) pridobivanje kodeksa

Ko končate, se prijavite in se prijavite z WinSCP in PuTTY.

Zdaj smo pripravljeni, lahko začnemo z našo kodo tinyLiDAR.

Naredite imenik tinyLiDAR v svojem domačem/pi imeniku.

To lahko storite tako, da z desno miškino tipko kliknete na desni strani zaslona WinSCP in izberete New / Directory.

Zdaj lahko na terminalu PuTTY tipkate

cd t

in pritisnite zavihek, da samodejno dokonča vaš ukaz za dostop do imenika tinyLiDAR.

Tukaj enkrat vnesite naslednje:

wget

da datoteke dobimo neposredno z našega strežnika. Nato jih lahko odpremo z vnosom

odpakiraj r

in pritisnite zavihek, da znova samodejno dokončate ime

Če ga želite zagnati, samo vnesite

python tlgui.py

In vaš tinyLiDAR se bo odzval na vsak vaš ukaz na pi:)

9. korak: Opomba za bodoče hekerje

Pojdite in poglejte pod pokrovom, tako da dvokliknete katero koli datoteko kode iz WinSCP. To so tisti z razširitvijo.py. Datoteke bi se morale odpreti v SublimeText neposredno v računalniku. Spremenite kar želite in nato pritisnite shrani. Vaše spremembe bodo shranjene neposredno v vašo pi.

Ko je pripravljen, ga znova zaženete s puščično tipko gor za zadnji vneseni ukaz ali pa ga znova vnesete in pritisnete enter:

python tlgui.py

Morda ste opazili, da je postavitev terminalskega grafičnega vmesnika nekoliko lepša od različice Arduino. To je zato, ker PuTTY podpira znake unicode, zato smo lahko uporabili nekaj dodatnih kontrolnih znakov kurzorja, da bi bil videti bolj izpopolnjen.

Tu je tudi dodaten ukaz (v primerjavi z različico Arduino), ki je "dc" za funkcijo neprekinjenega branja. Preizkusite in poglejte, kaj mislite.

To je vse!

Hvala za branje in uživajte v krampanju pi:)

Priporočena: