Sisällysluettelo:
2025 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2025-01-13 06:57
Hei taas!
Nyt kun olet viettänyt laatuaikaa tinyLiDARin ja Arduinon kanssa - Raspberry Pi saattaa tuntua hieman yksinäiseltä;)
Onko piillä I2C -portti? Joten miksi et kytke sitä ja kokeile sitä siellä ?! Hyvä suunnitelma, mutta jos olet jo kokeillut - olet ehkä huomannut, että tiedot näyttävät hieman oudolta.
Kyllä, pi on sisäänrakennettu jo 1,8 K: n pull-up-toimintoja, joten sinun on leikattava I2C-tyynyt tinyLiDAR-laitteella saadaksesi 4,7 K-vetimet pois piiristä-katso lisätietoja käyttöoppaasta. Mutta tämä ei ole syy outoihin tietoihin.
Tämä johtuu siitä, että pi: n I2C -väylä ei ole täsmälleen spec. Se on ollut tällainen siitä lähtien, kun pi esiteltiin ensimmäisen kerran Broadcom -sirusarjan vuoksi. Alusta alkaen he eivät ole tukeneet kunnolla I2C -ominaisuutta nimeltä "kellon venytys".
Voit lukea lisää tästä h/w -virheestä täältä.
Vaihe 1: Mitä kellon venytys on?
Kuten ehkä tiedät, I2C -väylä koostuu 3 johtimesta. Nämä ovat kelloa (SCL), dataa (SDA) ja yhteistä maata. Kello ja tietolinjat ovat avoimen keräimen/avoimen tyhjennyksen tyyppiä, mikä tarkoittaa, että ne tarvitsevat vetovastuksia, jotka on kytketty positiiviseen syöttökiskoon, jotta ne olisivat loogisia. Logiikan heikkenemiseksi mikä tahansa väylän laite voi vetää linjan yhteiseen maahan.
I2C -standardin mukaan isäntälaite toimittaa kellosignaalin SCL -linjalla, mutta jos tämä nopeus on liian nopea, orjalaite saa hidastaa sitä pitämällä kellon linjaa alhaalla, kunnes se on valmis käsittelemään tietojen kanssa. Tätä kutsumme "kellon venyttämiseksi".
Virallisesti kellon venytys oli lisävarusteena I2C -standardissa, mutta se on hyvin yleinen ominaisuus, jota tarvitaan useimmille "älykkäille" orjille, jotka tarvitsevat lisäaikaa anturitietojen toimittamiseen jne.
Vaihe 2: Pieni apu lentäviltä sioilta
Tämän I2C h/w -vian käsittelemiseksi löysimme mukavan pienen ilmaisen kirjaston nimeltä "pigpio". Se on erittäin suosittu, nopea ja kevyt kirjasto, joka on kirjoitettu C. Kirjasto käsittelee I2C -portteja enemmän kuin GPIO ja on siten ohittanut I2C -kellon venytysvirheen. Kuten kaikki pi -ohjelmistot, pigpio -kirjasto on vain "sisällytettävä" pois, joten mennään!
Vaihe 3: TL; DR -versio
Määritä PiEnable SSH to login with Putty Asenna pigpio -kirjasto Hanki tinyLiDAR zip -tiedostoPura ja suorita Putty
Valinnainen:
Asenna SublimeText WinSCP: n avulla
Vaihe 4: Asennus
Raspberry Pi 3: ssa käytimme normaalia New Out Of the Box Software (NOOBS Lite v2.4) -käyttöjärjestelmää. Se sisältää Pythonin oletusversion, joka on jo asennettu meille valmiiksi koodattavaksi. Voit ladata käyttöjärjestelmän täältä.
Kun olet asentanut micro SD -kortille, sinun on liitettävä näppäimistö ja näyttö, jotta voit kirjautua pi: hen ensimmäistä kertaa:
Käyttäjätunnus: pi Salasana: vadelma
Sitten voit käynnistää suojatun kuoripalvelimen (SSH) seuraavilla komennoilla:
sudo systemctl käyttöön sshsudo systemctl käynnistä ssh
Seuraavaksi tarvitsemme pi: n IP -osoitteen verkossa, jotta voimme kirjautua sisään PuTTY: llä. Saat tämän kirjoittamalla:
isäntänimi -I
Ja etsi IPv4 -muotoinen osoite (määrityksessämme se oli: 192.168.0.27)
Yllä olevat vaiheet mahdollistavat pi: n ajamisen "ilman päätä", mikä tarkoittaa, että sinun ei tarvitse kirjoittaa tällä näppäimistöllä uudelleen, eikä myöskään tarvitse enää videomonitoria. Kirjaudumme sisään verkon kautta suojatun SSH -yhteyden kautta jatkossa. Yllä oleva komento saa SSH -palvelimen käynnistymään automaattisesti aina, kun pi käynnistetään. Tämä on kätevää meille koodauksen aikana, mutta se voi olla turvallisuusriski myöhemmin (paranoidi on hyvä), joten kun olet valmis, voit poistaa tämän automaattisen SSH -ominaisuuden käytöstä käyttämällä tätä komentoa:
sudo systemctl poista ssh käytöstä
Tämä komento tulee kirjoittaa näppäimistöön, joka on kytketty tietysti pi: hen.
PuTTY on pääteohjelma, jonka on annettava komentoja PC: ltä pi: lle, joten sinun pitäisi napata uusin kopio täältä.
Asenna ja käynnistä PuTTY. Sinun on kirjoitettava IP -osoite ylhäältä isäntänimen kohtaan ja käytettävä SSH -oletusasetuksia. Anna istunnolle haluamasi nimi ja paina Tallenna. Napsauta sitten lataa ja aloita istunto napsauttamalla OPEN.
Sen pitäisi saada sinut kirjautumisnäyttöön pi: lle. Käytä samaa käyttäjätunnusta ja salasanaa kuin aiemmin.
Vaihe 5: Asenna Pigpio
Ainoa asia, joka meidän on asennettava tämän jälkeen, on pigpio -kirjasto, ja voimme tehdä tämän käyttämällä seuraavia komentoja.
Vinkki: Voit kopioida [ctrl+c] ja liittää [hiiren kakkospainikkeella] nämä ja muut komennot PuTTY -päätelaitteeseen
sudo apt-get päivitys
sudo apt-get install pigpio python-pigpio python3-pigpio
Vaihe 6: Valinnainen: Järjestelmän asennusohjelma
Joten tässä on vinkki, joka voi säästää aikaa koodin kehittämismaailmassasi. Vihaamme todella unix -pohjaisia tekstieditoria. Käyttöliittymä on yleensä kömpelö ja fontit perseestä. GNU nano on melkein siedettävä, mutta mikään ei ole niin hienostunut kuin SublimeText, jonka voit ladata täältä
Meillä on Windows -pohjainen kehitysympäristö ja haluamme käyttää tätä tekstieditoria aina kun mahdollista. Joten tässä on vihje järjestelmän asentamisessa, jotta voit käyttää tätä ammattimaista tekstieditoria Windows -työpöydälläsi suoraan koodattavaksi päätteesi pi.
Miten? Voit käyttää ilmaista WinSCP -sovellusta, jonka voit ladata täältä
Vaihe 7: WinSCP: n määrittäminen
WinSCP on turvallinen tiedostonsiirto -ohjelma, joka antaa graafisen esityksen rpi -tiedostossasi olevista tiedostoista, kuten mitä näet Windows -tietokoneen tiedostonhallinnassa.
Joten mene eteenpäin ja asenna myös yllä olevat kaksi ohjelmaa.
Seuraavaksi sinun on tehtävä muutamia säätöjä, jotta ne toimivat oikein.
WinSCP: ssä voit napsauttaa UUSI sivusto. Käytämme SFTP -oletusasetuksia ja sinun tarvitsee vain syöttää pi: si IP -osoite (isäntänimi) ja kirjautumisnimi (käyttäjänimi). Voit halutessasi jättää salasanan tyhjäksi - se kysyy salasanaa joka kerta, kun kirjaudut sisään.
Napsauta seuraavaksi Lisäasetukset -painiketta ja napsauta sitten vasemmalla puolella ympäristön kuoren asetuksia. Vaihda oikeanpuoleinen "Oletus" -valinta alas "sudo su -" -vaihtoehtoon. Tämä sallii muutosten kirjoittamisen pi -laitteeseesi ilman lupa virheitä, kun napsautat Tallenna SublimeTextistä.
Aseta SublimeText WinSCP: n oletuseditoriksi
Voit tehdä tämän napsauttamalla Työkalut -painiketta WinSCP -kirjautumisasetusten näytössä, josta aloitit NewSite -valintaikkunan. Kaksi kuvakaappausta osoittavat, miten tämä on määritetty, mutta pohjimmiltaan napsautat muokataksesi Editors -asetusta ja Lisää editori, joka on ulkoinen editori. Voit sitten selata.exe -tiedostoa, jossa tämä editori sijaitsee tietokoneellasi.
Vaihe 8: (w) koodin hankkiminen
Kun olet valmis, kirjaudu sisään WinSCP: llä ja PuTTY: llä.
Nyt olemme valmiit aloittamaan tinyLiDAR -koodimme.
Tee hakemisto nimeltä tinyLiDAR koti-/pi -hakemistoosi.
Voit tehdä tämän napsauttamalla hiiren kakkospainikkeella WinSCP -näytön oikeaa reunaa ja valitsemalla Uusi / hakemisto.
Nyt PuTTY -päätelaitteessa voit kirjoittaa
cd t
ja paina sarkainta, jotta se voi täydentää komennon automaattisesti päästäksesi tinyLiDAR -hakemistoon.
Kirjoita tänne seuraava:
wget
saadaksesi tiedostot suoraan palvelimeltamme. Voimme sitten purkaa ne pakkaamalla kirjoittamalla
pura r
ja täydennä nimi uudelleen painamalla sarkainta
Suorita se kirjoittamalla
python tlgui.py
Ja tinyLiDARisi vastaa kaikkiin pi -komentoihisi:)
Vaihe 9: Huomautus tuleville hakkereille
Mene eteenpäin ja katso konepellin alle kaksoisnapsauttamalla mitä tahansa WinSCP: n kooditiedostoa. He ovat niitä, joilla on.py laajennus. Tiedostojen pitäisi avautua SublimeTextissä suoraan tietokoneellesi. Muuta mitä haluat ja paina sitten Tallenna. Muutoksesi tallennetaan suoraan pi.
Kun olet valmis, suoritat sen uudelleen käyttämällä viimeksi kirjoitettua komentoa ylöspäin osoittavaa nuolinäppäintä tai kirjoita se uudelleen ja paina enter:
python tlgui.py
Olet ehkä huomannut, että Terminal GUI -asettelu näyttää hieman hienommalta kuin Arduino -versio. Tämä johtuu siitä, että PuTTY tukee unicode -merkkejä, joten pystyimme käyttämään joitain ylimääräisiä kohdistimen ohjausmerkkejä, jotta se näyttäisi hienostuneemmalta.
Täällä on myös lisätty komento (verrattuna Arduinon versioon), joka on "dc" jatkuvan lukemisen toiminnolle. Kokeile ja katso mitä mieltä olet.
Siinä kaikki!
Kiitos, että luit ja nauti hakkeroinnista:)