Talaan ng mga Nilalaman:

TinyLiDAR sa isang Pi?: 9 Mga Hakbang (na may Mga Larawan)
TinyLiDAR sa isang Pi?: 9 Mga Hakbang (na may Mga Larawan)

Video: TinyLiDAR sa isang Pi?: 9 Mga Hakbang (na may Mga Larawan)

Video: TinyLiDAR sa isang Pi?: 9 Mga Hakbang (na may Mga Larawan)
Video: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, Nobyembre
Anonim
TinyLiDAR sa isang Pi?
TinyLiDAR sa isang Pi?

Hello ulit!

Ngayon na ginugol mo ang ilang oras sa kalidad sa tinyLiDAR at sa iyong Arduino - ang iyong Raspberry Pi na nararamdaman na medyo nag-iisa;)

Ang pi ay may isang I2C port di ba? Kaya't bakit hindi ito mai-hook up at subukan ito doon ?! Magandang plano, ngunit kung nasubukan mo na - maaaring napansin mo ang data na mukhang kakaiba.

Oo, ang pi ay nakapaloob na sa 1.8K na mga pull-up kaya't kailangan mong i-cut ang mga I2C pad sa tinyLiDAR upang makuha ang 4.7K na mga pull-up mula sa circuit - tingnan ang manu-manong sanggunian para sa mga detalye. Ngunit hindi ito ang dahilan para sa kakaibang data.

Ito ay dahil sa ang I2C bus ng pi ay hindi eksakto hanggang sa detalye. Ito ay naging ganito mula nang ipakilala ang pi dahil sa hanay ng chip ng Broadcom. Sa simula pa lamang ay hindi nila sinusuportahan nang maayos ang isang tampok na I2C na tinatawag na "pag-uunat ng orasan".

Maaari kang magbasa nang higit pa tungkol sa h / w bug dito.

Hakbang 1: Ano ang Pag-uunat ng Orasan?

Ano ang Pag-uunat ng Orasan?
Ano ang Pag-uunat ng Orasan?

Tulad ng iyong nalalaman, ang I2C bus ay binubuo ng 3 mga wire. Ito ay para sa orasan (SCL), data (SDA) at karaniwang batayan. Ang mga linya ng orasan at data ay bukas na uri ng open-collector / open-drain na nangangahulugang kailangan nila ng mga resistor na pull-up na konektado sa isang positibong supply rail upang bigyan sila ng mataas na lohika. Upang makakuha ng mababang lohika, ang anumang aparato sa bus ay maaaring hilahin ang linya sa karaniwang landas.

Tulad ng pamantayan ng I2C, ang aparato ng Master ay ang nagbibigay ng signal ng orasan sa linya ng SCL ngunit kung ang rate na ito ay masyadong mabilis pagkatapos ay pinapayagan ang Slave device na pabagalin ito sa pamamagitan lamang ng pagpindot sa linya ng orasan hanggang sa handa itong harapin kasama ang impormasyon. Ito ang tinatawag nating "orasan na lumalawak".

Opisyal, ang pag-uunat ng orasan ay nakalista bilang isang opsyonal na tampok sa pamantayan ng I2C ngunit ito ay isang pangkaraniwang tampok na kinakailangan para sa karamihan sa mga "matalinong" alipin na nangangailangan ng kaunting oras upang makapagbigay ng data ng sensor atbp.

Hakbang 2: Isang Maliit na Tulong Mula sa Mga Baboy Na Lumilipad

Upang harapin ang I2C h / w bug na ito, nakakita kami ng magandang maliit na libreng silid-aklatan na tinatawag na "pigpio". Ito ay isang tanyag, mabilis at magaan na silid-aklatan na nakasulat sa C. Nagpapatakbo ito bilang isang background daemon para sa Raspberry Pi at pinapayagan kaming kontrolin ang I2C pati na rin ang anumang GPIO na madali mula sa sawa. Tinatrato ng silid-aklatan ang mga port ng I2C na mas katulad ng GPIO at sa gayon ay na-bypass ang I2C na orasan na lumalawak na bug. Tulad ng lahat ng software sa pi, ang librarya ng pigpio ay isang simpleng "isama" lamang kaya't umalis na tayo!

Hakbang 3: Bersyon ng TL; DR

I-setup ang PiEnable SSH upang mag-login gamit ang PuttyInstall pigpio libraryGet tinyLiDAR zip fileUnzip at patakbuhin mula sa Putty

Opsyonal:

I-setup ang SublimeText kasama ang WinSCP

Hakbang 4: Pag-install

Pag-install
Pag-install

Para sa aming Raspberry Pi 3, ginamit namin ang karaniwang New Out Of the Box Software (NOOBS Lite v2.4) operating system. Naglalaman ito ng isang default na bersyon ng Python na naka-install para sa amin na handa nang mag-code. Maaari mong i-download ang OS mula rito.

Kapag na-install sa isang micro SD card kailangan mong ikonekta ang isang keyboard at subaybayan upang makapag-login ka sa pi sa kauna-unahang pagkakataon:

Username: pi Password: raspberry

Pagkatapos ay maaari mong simulan ang isang ligtas na shell server (SSH) sa mga utos na ito:

sudo systemctl paganahin ang sshsudo systemctl simulan ang ssh

Susunod ay kakailanganin namin ang IP address ng pi sa iyong network upang maaari kaming mag-login gamit ang PuTTY. Upang makuha ito, i-type lamang:

hostname -ako

At hanapin ang isang address ng format na IPv4 (Para sa aming pag-setup ito ay: 192.168.0.27)

Papayagan ng mga hakbang sa itaas ang pi na magpatakbo ng "walang ulo" na nangangahulugang hindi mo na kailangang mag-type muli sa keyboard na ito at hindi na rin kailangan ng isang monitor ng video. Mag-log in kami sa pamamagitan ng network sa pamamagitan ng isang ligtas na koneksyon sa SSH na pasulong. Ang utos sa itaas ay nagdudulot sa server ng SSH na awtomatikong maglunsad tuwing pinapagana ang pi. Maginhawa ito para sa amin habang nag-coding kami ngunit maaaring ito ay isang peligro sa seguridad sa paglaon (ang pagiging paranoid ay mabuti) kaya kapag handa ka na, maaari mong huwag paganahin ang tampok na awtomatikong pagsisimula ng SSH gamit ang utos na ito:

sudo systemctl huwag paganahin ang ssh

Ang utos na ito ay dapat na nai-type sa keyboard na konektado sa pi syempre.

Ang PuTTY ay isang programa sa terminal na kinakailangan upang mag-isyu ng mga utos mula sa PC hanggang sa pi kaya dapat mong kunin ang pinakabagong kopya mula dito.

I-install at simulan ang PuTTY. Kakailanganin mong i-type ang IP address mula sa itaas sa entry ng Host Name at gamitin ang mga default na setting ng SSH. Bigyan ang session ng anumang pangalan na gusto mo at pindutin ang i-save. Pagkatapos ay pindutin ang pagkarga at i-click ang BUKSAN upang magsimula ng isang session.

Dapat kang dalhin sa screen ng pag-login para sa pi. Gumamit ng pareho mong username at password na ginamit mo kanina.

Hakbang 5: I-install ang Pigpio

Ngayon, ang tanging bagay lamang na kailangan naming i-install pagkatapos nito ay ang library ng pigpio at magagawa natin ito sa pamamagitan ng paggamit ng mga sumusunod na utos.

Tip: Maaari mo lamang kopyahin ang [ctrl + c] at i-paste ang [mouse right click] sa mga ito at anumang iba pang mga utos sa terminal ng PuTTY

sudo apt-get update

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

Hakbang 6: Opsyonal: Pag-setup ng Dev System

Opsyonal: Pag-set up ng Dev System
Opsyonal: Pag-set up ng Dev System

Kaya narito ang isang tip na maaaring makatulong na makatipid ng ilang oras sa iyong pag-unlad ng code mundo. Talagang kinamumuhian namin ang mga editor ng teksto na batay sa unix. Ang interface ng gumagamit ay karaniwang malamya at sinisipsip ang mga font. Ang GNU nano ay halos matitiis ngunit wala kasing pino ng SublimeText na maaari mong i-download mula rito

Mayroon kaming isang kapaligiran na batay sa pagbuo ng windows at gustong gamitin ang text editor na ito hangga't maaari. Kaya't ang tip dito ay ang pagse-set up ng iyong system upang magamit ang propesyonal na text editor na ito sa iyong windows desktop upang direktang mag-code sa iyong piless na walang ulo.

Paano? Gamit ang isang libreng app na tinatawag na WinSCP na maaari mong i-download mula rito

Hakbang 7: Pag-set up ng WinSCP

Pag-set up ng WinSCP
Pag-set up ng WinSCP
Pag-set up ng WinSCP
Pag-set up ng WinSCP

Ang WinSCP ay isang ligtas na programa ng paglipat ng file na nagbibigay ng isang grapikong representasyon ng mga file na naroroon sa iyong rpi na uri tulad ng nakikita mo sa file manager sa iyong Windows PC.

Kaya sige at i-install din ang dalawang mga programa sa itaas ngayon din.

Susunod na kakailanganin mong gumawa ng ilang mga pagsasaayos upang maisagawa nang maayos ang lahat.

Para sa WinSCP, maaari kang mag-click sa BAGONG Site. Gagamitin namin ang mga default na setting ng SFTP at kailangan mo lamang ipasok ang IP address (para sa Host name) ng iyong pi at ang pangalan ng pag-login (para sa User name). Maaari mong piliing iwanang walang laman ang password kung nais mo - hihimokin ka nito para sa password sa tuwing mag-login ka.

Susunod, i-click ang Advanced na pindutan at pagkatapos ay mag-click sa kaliwang bahagi para sa mga setting ng Shell ng Kapaligiran. Sa kanang bahagi palitan ang "Default" na bumaba sa opsyong "sudo su -". Papayagan nitong maisulat ang mga pagbabago sa iyong pi nang walang mga error sa pahintulot kapag na-hit ang i-save mula sa SublimeText.

Itakda ang SublimeText upang maging Default na Editor sa WinSCP

Upang magawa ito, i-click ang pindutan ng Mga tool sa screen ng mga setting ng WinSCP Login kung saan mo sinimulan ang iyong diyalogo sa NewSite. Ipinapakita ng dalawang shot ng screen kung paano ito naka-configure, ngunit karaniwang mag-click ka upang mai-configure ang kagustuhan ng Mga Editor at Magdagdag ng isang Editor na magiging isang Panlabas na editor. Maaari kang mag-browse para sa.exe file kung saan matatagpuan ang editor na ito sa iyong computer.

Hakbang 8: (w) pagkuha ng Code

(w) pagkuha ng Code
(w) pagkuha ng Code

Kapag tapos na, sige at mag-login sa WinSCP at sa PuTTY.

Natapos na namin ang lahat maaari naming simulan ang aming tinyLiDAR code.

Gumawa ng isang direktoryo na tinatawag na tinyLiDAR sa ilalim ng iyong direktoryo sa bahay / pi.

Maaari mo itong gawin sa pamamagitan ng paggawa ng isang tamang pag-click sa kanang bahagi ng screen ng WinSCP at piliin ang Bago / Direktoryo.

Ngayon sa terminal ng PuTTY maaari kang mag-type

cd t

at pindutin ang tab upang hayaan itong awtomatikong kumpletuhin ang iyong utos upang makapunta sa direktoryo ng tinyLiDAR.

Sa sandaling dito i-type ang sumusunod:

wget

upang makuha ang mga file nang direkta mula sa aming server. Pagkatapos ay maaari nating i-unzip ang mga ito sa pamamagitan ng pagta-type

unzip r

at pindutin ang tab upang awtomatikong kumpletuhin ang pangalan

Upang patakbuhin ito, i-type lang

sawa tlgui.py

At ang iyong tinyLiDAR ay tutugon sa iyong bawat utos sa pi:)

Hakbang 9: Tandaan para sa Mga Mang-hack na Soon-to-be

Sige at tumingin sa ilalim ng hood sa pamamagitan ng pag-double click sa alinman sa mga file ng code mula sa WinSCP. Ang mga ito ay may isang.py extension. Ang mga file ay dapat buksan sa SublimeText nang direkta sa iyong PC. Baguhin ang anumang gusto mo at pagkatapos ay pindutin ang i-save. Ang iyong mga pagbabago ay mai-save nang direkta sa iyong pi.

Kapag handa na, patakbuhin mo ito muli sa pamamagitan ng paggamit ng pataas na arrow key para sa huling nai-type na utos o i-type lamang ito muli at pindutin ang enter:

sawa tlgui.py

Maaaring napansin mo ang layout ng Terminal GUI na mukhang mas maganda kaysa sa bersyon ng Arduino. Dahil sa sinusuportahan ng PuTTY ang mga character na unicode, kaya nagamit namin ang ilang dagdag na character na control ng cursor upang mas magmino ito.

Mayroon ding isang idinagdag na utos dito (kumpara sa bersyon ng Arduino) na kung saan ay "dc" para sa tuluy-tuloy na Basahin ang pagpapaandar. Subukan ito at makita kung ano ang iniisip mo.

Yun lang!

Salamat sa pagbabasa at nasisiyahan sa pag-hack sa pi:)

Inirerekumendang: