Talaan ng mga Nilalaman:
- Hakbang 1: Ano ang Pi Zero W?
- Hakbang 2: Scotty, Kailangan namin ng Higit na Lakas
- Hakbang 3: Pagkalalagay ng Sensor at Software
- Hakbang 4: Pag-set up ng Pi
- Hakbang 5: Oras ng WiFi
- Hakbang 6: Pag-log In
- Hakbang 7: Mga wire
- Hakbang 8: I-ilaw Ito
- Hakbang 9: Opsyonal na Hakbang at Makatulong na Mga Utos
Video: Pi Batay sa Sistema ng Pagtulong sa Paradahan: 9 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:14
Hoy, ikaw! Narito ang isang cool na maliit na proyekto na maaari mong gawin sa isang solong hapon at pagkatapos ay gamitin ito araw-araw. Ito ay batay sa Raspberry Pi Zero W at tutulungan ka na iparada ang iyong sasakyan nang perpekto sa tuwing.
Narito ang kumpletong listahan ng mga bahagi na kakailanganin mo:
- Raspberry Pi Zero W (tatawagin namin itong 'rpi' o 'pi' sa artikulong ito)
- 4GB o mas malaking micro SD card para sa pi OS
- Dalawang tinyLiDAR Oras ng mga module ng sensor ng distansya ng Flight
- 32x32 RGB LED Panel (maraming mga tagagawa para dito na may iba't ibang mga tuldok na tuldok, maaari mong halimbawa gamitin ang Adafruit 1484 o katulad, maghanap lamang para sa '32x32 LED Matrix' sa Google). Ang aming panel ay mayroong 6mm na pitch.
- 25 talampakan ng CAT5 cable
- tinatayang 22 may kulay na lalaki hanggang lalaking mga header pin jumper wires
- 5v 2Amp microUSB power supply (charger ng cell phone) Handa na? Tara na!
TL; Buod ng DR
- I-download ang Raspbian Lite OS para sa rpi
- I-configure ang pi upang magpatakbo ng walang ulo sa paglipas ng WiFi gamit ang isang static IP
- I-setup ang iyong PC dev environment gamit ang PuTTY, WinSCP at opsyonal na SublimeText w / FTP addon
- Mag-download, gumawa at magbigkis ng LED panel driver
- Mag-download at mag-install ng pigpio
- I-download ang aming Python code
- Wire up ang 32x32 LED display panel
- Gawin ang CAT5 extension cable para sa gilid na tinyLiDAR sensor
- Opsyonal na hakbang (ngunit para lamang sa mga advanced na gumagamit): gumawa ng mabilis na masayang sayaw kapag gumagana ang lahat;)
Hakbang 1: Ano ang Pi Zero W?
Walang alinlangan na narinig mo ang tungkol sa Raspberry Pi ngunit ano ano ang isang pi 'Zero W'?
Ang Raspberry Pi Zero at Zero W ay mas kamakailang mga pagdaragdag sa pamilya Pi na higit na nangangahulugang para sa IoT at iba pang mga low-embed na application na may mababang gastos. Nakuha ang mga ito ng mga bersyon ng orihinal na pi board ngunit mayroon pa ring isang malakas na 1GHz processor. Narito ang isang mahusay na paghahambing ng lahat ng mga modelo.
Ang pakinabang para sa amin sa pagpili ng Pi Zero W dito sa iba pang mga board ng controller ay madali naming mai-program ito sa mas mataas na antas na wika ng Python habang ginagamit pa rin ang mabilis na C / C ++ LED panel driver. Kaakit-akit din itong naka-presyo sa $ 10USD lamang.
Tandaan na dahil ang board na ito ay isang Nakuha na bersyon ng isang buong pi - ang ilang mga bagay ay nagbago. Sa partikular, ang ethernet jack ay tinanggal, ang konektor ng HDMI ay nabago sa isang maliit na sukat at ang apat na USB port ay pinasimple pababa sa isang uri lamang ng micro USB. Mayroong isa pang micro USB konektor sa onboard, ngunit para lamang ito sa pagpapagana ng board. Ang pag-aalis ng lahat ng buong sukat na mga konektor ng USB ay nagpapakilala ng ilang mga pagiging kumplikado. Pangalanan, paano ka makakabit ng isang keyboard at mouse? Ang mga karaniwang USB perfipheral at hub ay gumagamit ng mga konektor ng Type A hindi ang uri ng micro.
Kaya anong magagawa natin?
Maaari tayong walang ulo!
Hindi, hindi namin sinasadya na mabaliw ngunit gumamit ng isang kahalili sa normal na direktang pag-setup ng wired. Nangangahulugan ang walang ulo na "lagusan" sa pi nang malayuan gamit ang isang ligtas na koneksyon ng network ng shell (SSH). Para sa proyektong ito gagamitin namin ang walang diskarte na diskarte sa paglipas ng WiFi. Samakatuwid ang dahilan para sa amin sa pagpili ng W bersyon ng pi zero sa halip na ang mas mababang gastos na pi zero.
Tandaan na mayroon ding ibang paraan ng pagpapatakbo ng pi sa mode na walang ulo gamit ang isang bagay na tinatawag na VNC. Kailangan nito ng espesyal na VNC software na tumatakbo sa iyong PC kahit na nagbibigay ito ng isang buong virtual na grapikong desktop sa iyong PC. Hindi namin kailangan (at talagang ayaw) ang desktop para sa aming proyekto upang manatili kami sa mas simpleng pamamaraan ng SSH.
Hakbang 2: Scotty, Kailangan namin ng Higit na Lakas
Ang 32x32 LED matrix panel ay maaaring, lahat nang mag-isa, kumuha ng maraming mga amp ng kasalukuyang. Puwera biro! Iyon ang dahilan kung bakit ang karamihan sa mga panel na ito ay nagsasama ng ilang mga mabibigat na naghahanap na mga kable ng kuryente upang mapagana ito. Sa kasamaang palad para sa amin bagaman hindi namin kakailanganin upang makakuha ng isang napakalaking supply ng kuryente para sa proyektong ito. Nagawa naming mapagana ang buong system na ito mula sa isang ekstrang 5v / 2amp microUSB cell phone charger lamang na nakalatag kami. Ang dahilan para sa mas mababang kasalukuyang ay dahil gumagamit kami ng medyo simpleng graphics at samakatuwid ay hindi binuksan ang karamihan sa mga LED. Kung iniisip mong gumawa ng animasyon o paggamit ng video / maliwanag na mga graphic kung gayon dapat mong tiyak na isaalang-alang ang pag-power ng panel mula sa isang hiwalay na power supply.
Hakbang 3: Pagkalalagay ng Sensor at Software
Napansin mo bang gumagamit kami ng dalawang maliliit naLiDAR sa sistemang ito sa halip na isa lamang? Tulad ng ipinakita sa diagram ng pag-setup ng garahe, ang isa ay inilalagay sa harap ng kotse at ang isa ay inilalagay kasama ang isang gilid ng kotse.
Makikita ng sensor ng gilid kung mag-iikot ka sa gitna habang ipinaparada mo ang kotse at syempre sasabihin sa iyo ng harap kung kailan ka titigil.
Ang 32x32 LED display ay tutulong sa iyo sa pamamagitan ng pagpapakita ng mga arrow upang sumulong, pakaliwa o pakanan at isang count down display na may mga kulay na sulok upang ipahiwatig kung hanggang saan ka pa rin magmo-drive. Tingnan ang aming maikling video para sa lahat ng mga estado ng pagpapakita.
Plano ng Laro
Sa madaling sabi, gumagamit kami ng napakatanyag na hzeller C library para sa LED driver, Python para sa control code at pipgpio C library para sa wastong kontrol ng I2C ng aming mga sensor.
Ang Python ay isang napakadaling wika ng mataas na antas na madali mong mai-e-edit sa anumang text editor. Karaniwan kaming gumagamit ng SublimeText at para sa proyektong ito ay gumamit din kami ng isang napaka-kapaki-pakinabang na FTP plugin na nagbibigay-daan sa amin upang mai-edit ang mga file ng script nang direkta sa pi. Ito ay isang opsyonal na hakbang dahil kinakailangan lamang ito kung nais mong i-edit ang code. Maraming mga detalye ang magagamit sa pagtatapos ng artikulong ito.
Ang lahat ng mga board ng rpi, tulad ng nalalaman mo, ay hindi suportado ng katutubong pag-abot ng I2C na orasan. Kaya ginamit namin muli ang librarya ng pigpio para sa proyektong ito upang makontrol ang mga tinyLiDAR sensor ngunit sa oras na ito nang may bahagyang pag-ikot …
Maramihang mga maliliit na LiLAR
Kapag bumili ka ng isang tinyLiDAR, palagi itong nakatakda sa default na address ng alipin ng 0x10. Mabuti ito para sa kung gumagamit ka ng isang solong sensor ngunit kung mayroon kang higit sa isa sa bus ay maaaring isang problema kung sumulat ka ng isang utos sa 0x10 at silang lahat ay sumasagot pabalik!
Kaya mayroon kaming 3 mga pagpipilian dito:
Una, maaari naming gamitin ang (tinyLiDAR) "R" utos na magsulat ng isang bagong address ng alipin sa isang sensor na konektado sa I2C bus. Pagkatapos ulitin ito para sa bawat sensor. Pisikal na nakakabit, sumusulat at naglalayo ng bawat sensor para sa pamamaraang ito. iimbak ng tinyLiDAR ang ibinigay na address sa onboard na non-pabagu-bago na memorya nito. Mananatili ang address kahit na pagkatapos ng pagbibisikleta ng kuryente hanggang sa i-clear mo ito sa pamamagitan ng pag-isyu ng utos ng RESET.
Ang pangalawang pagpipilian ay ang paggamit ng maginhawang tampok na Auto Assign na nilikha namin bilang isang layunin ng pag-abot sa kampanya ng IGG. Nagsasangkot ito ng pagpapadala ng "AR" na utos at pagkatapos ay ituro ang iyong daliri sa bawat sensor nang paisa-isa upang awtomatikong magtalaga ng sunud-sunod na mga address ng I2C sa mga indibidwal na sensor na katulad ng unang pagpipilian ngunit hindi mo kailangang pisikal na idiskonekta ang bawat sensor upang magawa ito.
Ang pangatlong pagpipilian ay ang ginagamit namin dito sa proyektong ito at posible salamat sa library ng pigpio. Upang maipatupad nang maayos ang pamantayan ng I2C, bitbit ng pigpio ang GPIO. Kaya't dahil dito, madali kaming makakalikha ng magkakahiwalay na mga bus na I2C sa halos anumang pares ng ekstrang mga pin ng GPIO.
Samakatuwid hindi na kailangang muling programa ang mga address ng alipin para sa maraming sensor ng LiDAR. Maaari lamang kaming gumamit ng isang hiwalay na bus para sa bawat isa:)
Tandaan na ang I2C bus na tumatakbo sa 100Kbps ay talagang matatag. Gumagamit kami ng simpleng lumang CAT5 ethernet cable upang patakbuhin ang I2C bus palabas sa gilid ng tinyLiDAR sensor na isang buong 25 talampakan ang layo nang walang anumang mga aktibong bahagi ng repeater! Ang mga detalye ng mga kable ng sensor ay ipinapakita sa itaas.
Okay, sapat na jibber jabber, magsimula tayong mag-download ng code!
Hakbang 4: Pag-set up ng Pi
Pag-iingat: Ang pi ay gumagamit ng isang Linux file system kaya pinakamahusay na gawin ang mga sumusunod na hakbang sa isang sistemang batay sa Linux. Maaari mong tapusin ang muling pag-format ng iyong SD card kung gagawin mo ito sa Windows. Ginamit namin ang kahanga-hangang at libreng Ubuntu 18.04 desktop na tumatakbo sa isang virtual na kapaligiran sa isang Windows 10 PC ngunit maaari mong subukan ang isang bagay na katulad.
Kakailanganin mong i-download muna ang OS mula sa raspberrypi.org at pagkatapos ay sunugin ito sa iyong microSD card. Sundin ang mga hakbang na ito:
(1) Sa Ubuntu pumunta dito at kunin ang imahe ng Raspbian Lite. I-save ito sa iyong folder ng mga pag-download.
(2) Susunod na pag-download ng Etcher SD card utility sa pagsulat. FYI - ang opisyal na link ng pag-download ng Etcher para sa bersyon ng Linux sa kanilang home page ay hindi gumana para sa amin kaya ginamit namin ang pamamaraan na inilarawan dito:
Sa buod ang mga hakbang na inilarawan sa link ay:
Magdagdag ng Etcher debian repository:
echo "deb https://dl.bintray.com/resin-io/debian stable etcher" | sudo tee /etc/apt/sources.list.d/etcher.list
Tiwala sa key GPG ng Bintray.com:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61
I-update at i-install:
sudo apt-get update
sudo apt-get install etcher-electron
Kapag nakumpleto, maaari kang magpatuloy at ilunsad ang Etcher mula sa iyong desktop sa Ubuntu. Hihilingin sa iyo ang pinagmulan ng file (na inilagay mo sa mga folder ng pag-download). Ang susunod na hakbang sa Etcher ay piliin ang tamang target. Ang Etcher ay isang mahusay na trabaho ng pagtuklas ng iyong micro SD card ngunit dapat kang maging paranoid dito. Upang ma-verify ang paghahanap ng tamang patutunguhan - subukang palabasin ang microSD card sa pamamagitan ng pag-click sa eject sa window ng explorer ng Ubuntu file at i-verify na mawawala ito bilang target na pagpipilian sa loob ng Etcher. Pagkatapos i-pop ito muli at magpatuloy sa huling hakbang, na isulat ang file sa microSD card na ito.
Maghintay ng ilang sandali hanggang matapos ito at pagkatapos ay magpatuloy.
Hakbang 5: Oras ng WiFi
Okay kaya ngayon oras na upang ipasok ang iyong mga detalye sa WiFi.
Tip: maaari mong laging kopyahin (Ctrl + C) at i-paste ang (Tamang Pag-click, I-paste) ang impormasyon mula sa artikulong ito sa screen ng terminal ng PuTTY sa halip na i-type ang mga utos. Suriin ang pagtatapos ng artikulong ito para sa maraming kapaki-pakinabang na mga utos ng Linux din.
Kapag natapos na ang pagsulat ni Etcher sa micro SD card, magkakaroon ng 2 drive na nagpapakita tulad ng ipinakita sa itaas. Ang isa ay tinatawag na boot ang isa ay tinatawag na rootfs
Kailangan naming gamitin ang file manager upang pumunta sa folder ng boot at gumawa ng isang file na tinatawag na wpa_supplicant.conf.
Upang gawin ang hakbang na ito maaari ka lamang mag-click sa kaliwang bahagi kung saan sinasabi nito ang boot at pagkatapos ay sa kanang bahagi ng screen maaari kang mag-right click sa puting backgroud at piliin ang Buksan sa Terminal.
Bubuksan nito ang isang window ng terminal (katulad ng CMD sa Windows) kung saan maaari mong mai-type ang sumusunod:
sudo nano wpa_supplicant.conf Tip: Kakailanganin mong ipasok ang iyong Linux system password upang maaari itong tumakbo bilang Super User. Kailangan ito o kung hindi hindi mo mai-save ang mga file kapag tapos ka na sa pag-edit
Ilulunsad ng utos sa itaas ang "nano" na editor ng teksto kung saan maaari mong ipasok ang sumusunod na impormasyon:
bansa = US
ctrl_interface = DIR = / var / run / wpa_supplicant GROUP = netdev update_config = 1 network = {ssid = "WiFi_SSID" scan_ssid = 1 psk = "WiFi_Password" key_mgmt = WPA - PSK}
Tandaan: Tandaan na palitan ang WiFi_SSID at WiFi_Password ng iyong sariling pangalan ng WiFi network at password.
Kapag tapos ka na, i-click lamang ang Ctrl + X upang lumabas at sagutin ang Oo sa pagsulat ng file sa paglabas.
Ang aming susunod na hakbang ay upang lumikha ng isang walang laman na file na tinatawag na ssh. Upang magawa ito, i-type lamang namin ang sumusunod sa window ng terminal:
hawakan ssh
Ngayon kailangan naming bigyan ang aming pi ng isang static na IP address upang malaman namin kung nasaan ito sa tuwing nais naming kumonekta dito. I-type ang sumusunod sa window ng terminal:
sudo nano /etc/dhcpcd.conf
Dapat itong buksan muli ang nano text editor at maaari naming idagdag ang tekstong ito sa ilalim ng file:
interface wlan0
static ip_address = 192.168.0.static router = 192.168.0.1 static domain_name_servers = 192.168.0.1 8.8.8.8
Tandaan: Ipinapalagay nito ang iyong unlapi ng network ay 192.168.0. Kung mayroon kang 192.168.1 atbp pagkatapos ay gamitin ang iyong network sa halip. Ang server ng domain name 8.8.8.8 ay para sa Google at opsyonal dito.
I-type ang 'exit' sa Terminal upang isara ito. Pagkatapos ay mag-right click sa boot name sa kaliwang bahagi ng window ng Files manager at piliin ang Eject.
Maaari mo na ngayong mai-plug ang microSD card na ito sa iyong pi at i-plug ang microUSB power cable upang mapagana ang iyong pi.
Kung maayos ang lahat, ang berdeng LED ay magpikit ng ilang sandali tulad ng pag-access sa isang hard disk drive at dapat ka itong mai-log sa iyong WiFi network. Bigyan ito ng isang minuto upang tumira at maghintay para sa LED na maging solidong berde.
Upang ma-verify na gumana ang lahat, maaari naming subukang i-ping ito.
Kaya i-type lamang ang linya sa ibaba at suriin para sa isang tugon.
ping 192.168.0.200
Sa Ubuntu dapat kang makakuha ng katulad nito:
ping 192.168.0.200
PING 192.168.0.200 (192.168.0.200) 56 (84) bytes ng data. 64 bytes mula sa 192.168.0.200: icmp_seq = 1 ttl = 128 oras = 752 ms 64 bytes mula 192.168.0.200: icmp_seq = 2 ttl = 128 oras = 5.77 ms 64 bytes mula 192.168.0.200: icmp_seq = 3 ttl = 128 oras = 7.33 ms ^ C --- 192.168.0.200 ping istatistika --- 3 packet transmitted, 3 natanggap, 0% packet loss, oras 2001ms rtt min / avg / max / mdev = 5.777 / 255.346 / 752.922 / 351.839 ms
Tandaan na ang ping ay nagpapatuloy na gumana hanggang sa ma-hit ang Ctrl + C upang tumigil.
Sa Windows dapat kang makakuha ng isang bagay tulad nito:
ping 192.168.0.200
Pinging 192.168.0.200 na may 32 bytes ng data: Tumugon mula sa 192.168.0.200: bytes = 32 oras = 4ms TTL = 64 Tumugon mula sa 192.168.0.200: bytes = 32 oras = 5ms TTL = 64 Tumugon mula sa 192.168.0.200: bytes = 32 oras = 6ms TTL = 64 Tumugon mula sa 192.168.0.200: bytes = 32 oras = 5ms TTL = 64 Mga istatistika ng ping para sa 192.168.0.200: Mga Packet: Ipinadala = 4, Natanggap = 4, Nawala = 0 (0% pagkawala), Tinatayang oras ng pag-ikot sa milli-segundo: Minimum = 4ms, Maximum = 6ms, Average = 5ms
Ayos lahat? Pasulong…
Hakbang 6: Pag-log In
Ngayon na mayroon kaming pagkakakonekta sa pi, nais naming ipadala ito ng mga utos. Ngunit paano? PuTTY syempre! Maaari kang mag-download ng PuTTY mula ritoSetting up PuTTY Matapos i-download ang PuTTY software, gumawa ng isang profile para sa iyong pi na may sumusunod na impormasyon:
Pangalan ng Host (o IP address): 192.168.0.200 Uri ng koneksyon: SSHBigyan ang profile na ito ng isang pangalan sa ilalim ng Mga Nai-save na Session at pindutin ang I-save. Maaari mong gamitin ang anumang pangalan na gusto mo halimbawa ng "rpizw_200"
Upang mag-login, piliin lamang ito mula sa listahan at pindutin ang I-load. Pagkatapos ay pindutin ang Buksan. Ipasok ang pangalan ng gumagamit at password upang mag-log in:
pangalan sa pag-login: pi
Defalt password: raspberry
Narito ang isang halimbawang sesyon na ipinakita sa PuTTY kapag nag-login ka:
pag-login bilang: pi
[email protected]'s password: Linux raspberrypi 4.14.34+ # 1110 Mon Apr 16 14:51:42 BST 2018 armv6l Ang mga program na kasama sa Debian GNU / Linux system ay libreng software; ang eksaktong mga term ng pamamahagi para sa bawat programa ay inilalarawan sa mga indibidwal na mga file sa / usr / share / doc / * / copyright. Ang Debian GNU / Linux ay may ganap na WALANG WARRANTY, sa lawak na pinapayagan ng naaangkop na batas. Huling pag-login: [petsa at oras] mula 192.168.0. [Ip address] Pinapagana ang SSH at ang default na password para sa 'pi' na gumagamit ay hindi nabago. Ito ay isang peligro sa seguridad - mangyaring mag-login bilang 'pi' na gumagamit at i-type ang 'passwd' upang magtakda ng isang bagong password.
Sa unang pag-login, babalaan nito na hindi mo pa nababago ang password. Dapat mong palitan ito sa isang bagay na malakas ngunit simpleng alalahanin kaya't magpatuloy at baguhin ito sa pamamagitan ng pagta-type ng passwd at sundin ang mga senyas.
Susunod na dapat nating i-update ang software sa pi sa pamamagitan ng pagta-type nito:
sudo apt-get update && sudo apt-get upgrade
Magda-download ito ng anumang mga update na kinakailangan nito mula sa iyong koneksyon sa internet. Sagutin ang YES kung sinenyasan upang payagan itong magpatuloy at bigyan ito ng kaunting oras upang mag-update.
Sa oras na ito marahil ay dapat din nating patayin ang tunog sa pi dahil mayroon itong masamang juju sa LED library ng driver. Kopyahin, i-paste ang mga sumusunod na linya nang paisa-isa at pindutin ang enter pagkatapos ng bawat linya:
cd ~
pusa << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf blacklist snd_bcm2835 EOF sudo update-initramfs -u
Ang output ay magiging isang katulad nito:
pi @ raspberrypi: ~ $ cd ~
pi @ raspberrypi: ~ $ cat <> blacklist snd_bcm2835>> EOF blacklist snd_bcm2835 pi @ raspberrypi: ~ $ sudo update-initramfs -u pi @ raspberrypi: ~ $
Pagkatapos ay kailangan nating i-reboot ang pi upang magkabisa ang mga pagbabago, kaya i-type ang sumusunod:
sudo reboot ngayon
Ang koneksyon ay mahuhulog syempre habang ang pi ay rebooting upang maaari mong isara ang PuTTY. Subukang mag-log in sa isang minuto mamaya.
Ngayon ay oras na upang makakuha ng isang graphic na FTP file manager na tinatawag na WinSCP. Maaari mong i-download ang WinSCP mula rito
Ang WinSCP ay katulad ng file mangager sa Windows at Ubuntu. Pinapayagan kaming mabilis na mag-drag at mag-drop ng mga file sa & mula sa pi at lumikha ng mga diretory sa isang tamang pag-click lamang ng mouse.
Kapag na-download na, kakailanganin mong mag-setup ng isang profile para sa iyong pi.
WinSCP Setup Sa pag-login na pag-login, pumili ng Bagong Site. Gamitin ang mga sumusunod na setting para sa session:
File protocol: SFTP Host name: 192.168.0.200 User name: pi Password: {anumang password na binago mo ang default sa hakbang na PuTTY sa itaas}
Sa Mga Advanced na Setting ng Site pumunta sa Kapaligiran | Mga direktoryo at ipasok / bahay / pi para sa Remote na direktoryo at kung ano ang gusto mo para sa setting ng Lokal na Direktoryo.
Sa Mga Advanced na Setting ng Site pumunta sa Kapaligiran | Shell at pumili ng sudo su - sa listahan ng drop down na Shell.
Pagkatapos ay pindutin ang Save.
Panatilihing bukas ang parehong WinSCP at PuTTY habang ginagawa ang mga sumusunod na hakbang
Pumunta sa terminal ng PuTTY at ipasok ang sumusunod:
cd ~
Dadalhin kami nito sa aming direktoryo sa bahay sa loob ng pi.
Maaari na nating grab ang LED driver library mula sa github. Upang magamit ang pinakabagong code, kakailanganin naming hilahin ang repo kaya kailangan naming i-install ang git utility.
Ipasok ito sa PuTTY:
sudo apt-get install git
sagutin ang Y upang magpatuloy at aabutin ng ilang segundo upang mai-install ang git para sa amin mula sa internet.
Ang output ay dapat magmukhang ganito:
pi @ raspberrypi: ~ $ sudo apt-get install git
Nagbabasa ng mga listahan ng pakete… Tapos na Pag-uugali ng puno ng impormasyon sa pagbasa ng estado… Tapos na Ang sumusunod na karagdagang mga pakete ay mai-install: git-man liberror-perl Iminungkahing mga pakete: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Ang mga sumusunod na BAGONG pakete ay mai-install: git git-man liberror-perl 0 na-upgrade, 3 bagong naka-install, 0 upang alisin at 0 hindi na-upgrade. Kailangang makakuha ng 4, 848 kB ng mga archive. Matapos ang operasyon na ito, gagamitin ang 26.4 MB ng karagdagang disk space. Gusto mo bang magpatuloy? [Y / n] y Kunin: 1 https://muug.ca/mirror/raspbian/raspbian kahabaan / pangunahing armhf liberror-perl lahat ng 0.17024-1 [26.9 kB] Kunin: 2 https://muug.ca/mirror/ raspbian / raspbian stretch / main armhf git-man lahat 1: 2.11.0-3 + deb9u3 [1, 433 kB] Kunin: 3 https://muug.ca/mirror/raspbian/raspbian kahabaan / pangunahing armhf git armhf 1: 2.11.0-3 + deb9u3 [3, 388 kB] Kinuha ang 4, 848 kB sa 5s (878 kB / s) Ang pagpili ng dati nang hindi napili na package na liberror-perl.(Pagbabasa ng database … 34363 mga file at direktoryo na kasalukuyang naka-install.) Naghahanda upang i-unpack … / liberror-perl_0.17024-1_all.deb… Inaalis ang liberror-perl (0.17024-1)… Ang pagpili ng dating hindi napiling package git-man. Paghahanda upang i-unpack … / git-man_1% 3a2.11.0-3 + deb9u3_all.deb… Inaalis ang git-man (1: 2.11.0-3 + deb9u3)… Ang pagpili ng dati nang hindi napiling package git. Paghahanda upang i-unpack … / git_1% 3a2.11.0-3 + deb9u3_armhf.deb… Inaalis ang git (1: 2.11.0-3 + deb9u3) … Pagse-set up ng git-man (1: 2.11.0-3 + deb9u3)… Pagse-set up liberror-perl (0.17024-1)… Nag-trigger ang pagpoproseso para sa man-db (2.7.6.1-2)… Pagse-set up ng git (1: 2.11.0-3 + deb9u3)…
Bumalik ngayon sa WinSCP at mag-navigate sa folder ng / home / pi. Pagkatapos sa kanang bahagi ng window ng WinScp na ito, mag-right click at pumili upang lumikha ng isang Bagong Direktoryo na tinatawag na "paradahan"
Bumalik sa screen ng PuTTY maaari mong i-type ang ls upang kumpirmahin na gumawa ka lamang ng isang bagong folder sa pi. Pagkatapos ay ipasok ito:
cd p [TAB]Tip: Ang pagpindot sa TAB key ay awtomatikong makukumpleto ang bahagyang pangalan para sa iyo
Pindutin ang enter key upang makapunta sa direktoryong ito.
pi @ raspberrypi: ~ $ cd parking /
pi @ raspberrypi: ~ / paradahan $ ls
Maaari na nating makuha ang mga file ng driver sa pamamagitan ng pagpasok ng mga sumusunod sa PuTTY:
git clone
Ang output ay magmumukhang ganito:
pi @ raspberrypi: ~ / parking $ git clone
Pag-clone sa 'rpi-rgb-led-matrix'… remote: Nagbibilang ng mga bagay: 3740, tapos na. remote: Kabuuang 3740 (delta 0), muling ginamit na 0 (delta 0), pack-reuse 3740 Mga tumatanggap ng mga bagay: 100% (3740/3740), 20.61 MiB | 1.32 MiB / s, tapos na. Paglutas ng mga delta: 100% (2550/2550), tapos na.
I-compile ngayon ang mga file ng driver ng LED sa pamamagitan ng pagpunta sa bagong direktoryo na 'rpi-rgb-led-matrix' at i-type ang make command:
cd r [TAB]
gumawa At ito ang hitsura nito sa aming board
pi @ raspberrypi: ~ / paradahan $ cd rpi-rgb-led-matrix /
pi @ raspberrypi: ~ / parking / rpi-rgb-led-matrix $ make -C./lib make [1]: Pagpasok sa direktoryo '/ home / pi / parking / rpi-rgb-led-matrix / lib' g ++ - I../ isama -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-hindi nagamit-parameter -fno-mga pagbubukod -c -o gpio.o gpio.cc g ++ -ako../ isama -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-hindi nagamit-parameter -fno-mga pagbubukod -c -o led-matrix.o led-matrix.cc g ++ -ako../ isama - Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-hindi nagamit-parameter -fno-mga pagbubukod -c -o options-initialize.o options-initialize.cc g ++ -I../ isama -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-hindi nagamit-parameter -fno-mga pagbubukod -c -o framebuffer.o framebuffer.cc g ++ -ako../ isama -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-unused-parameter -fno-pagbubukod -c -o thread.o thread.cc g ++ -ako../ isama ang -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = ' "regular" '-Wextra -Wno-unused-parameter -fno-exception -c -o bdf-font.o bdf-fon t.cc g ++ -ako../ isama ang -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-hindi nagamit-parameter -fno-mga pagbubukod -c -o graphics.o graphics.cc g ++ - I../ isama ang -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-hindi nagamit-parameter -fno-mga pagbubukod -c -o transformer.o transformer.cc g ++ -ako../ isama -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-hindi nagamit-parameter -fno-mga pagbubukod -c -o led-matrix-co led-matrix-c.cc cc -I../ isama ang -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-unused-parameter -c -o hardware-mapping.o hardware-mapping.c g ++ -ako../ isama -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-unused-parameter -fno-exception --c -o content-streamer.o content-streamer.cc g ++ -ako../ isama -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-hindi nagamit-parameter -fno-mga pagbubukod -c -o pixel-mapper.o pixel-mapper.cc g ++ -ako../ isama -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno-unused-parameter -fno-excepto tions -c -o multiplex-mappers.o multiplex-mappers.cc ar rcs librgbmatrix.a gpio.o led-matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o graphics.o transformer.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers.o g ++ -shared -Wl, -soname, librgbmatrix.so.1 -o librgbmatrix.so.1 gpio.o led -matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o graphics.o transformer.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers. o -lpthread -lrt -lm -lpthread make [1]: Aalis ng direktoryo '/ home / pi / parking / rpi-rgb-led-matrix / lib' make -C halimbawa-api-use make [1]: Pagpasok ng direktoryo ' / home / pi / parking / rpi-rgb-led-matrix / halimbawa-api-use 'g ++ -ako../ isama ang -Wall -O3 -g -Wextra -Wno-hindi nagamit-parameter -c -o demo-main. o demo-main.cc make -C../lib make [2]: Pagpasok sa direktoryo '/ home / pi / parking / rpi-rgb-led-matrix / lib' make [2]: Pag-iwan ng direktoryo '/ home / pi / parking / rpi-rgb-led-matrix / lib 'g ++ demo-main.o -o demo -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ isama ang -Wall -O3 -g -Wextra -Wno-hindi nagamit-parameter -c -o minimal-example.o minimal-example.cc g ++ minimal-example.o - o minimal-halimbawa -L../ lib -lrgbmatrix -lrt -lm -lpthread cc -I../ isama -Wall -O3 -g -Wextra -Wno-hindi nagamit-parameter -c -o c-halimbawa.o c- halimbawa.c cc c-halimbawa.o -o c-halimbawa -L../ lib -lrgbmatrix -lrt -lm -lpthread -lstdc ++ g ++ -ako../ isama -Wall -O3 -g -Wextra -Wno-hindi nagamit- parameter -c -o text-example.o text-example.cc g ++ text-example.o -o text-example -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -ako../ isama -Wall - O3 -g -Wextra -Wno-hindi nagamit-parameter -c -o pag-scroll-text-halimbawa.o pag-scroll-text-example.cc g ++ pag-scroll-text-halimbawa.o -o pag-scroll-text-halimbawa -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ isama ang -Wall -O3 -g -Wextra -Wno-hindi nagamit-parameter -c -o orasan.o orasan.cc g ++ orasan.o -o orasan -L.. / lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ isama ang -Wall -O3 -g -Wextra -Wno-hindi nagamit-parameter -c -o ledcat.o ledcat.cc g ++ le dcat.o -o ledcat -L../ lib -lrgbmatrix -lrt -lm -lpthread make [1]: Aalis ng direktoryo '/ home / pi / parking / rpi-rgb-led-matrix / halimbawa-api-use' pi @raspberrypi: ~ / paradahan / rpi-rgb-led-matrix $
Ang aming susunod na hakbang ay upang talakayin ang RGB matrix library sa Python. Ginamit namin ang default na Python 2 para sa proyektong ito. Kaya upang gawin ang pagbubuklod na ito ipinasok namin ang sumusunod na isang linya nang paisa-isa tulad ng dati:
sudo apt-get update && sudo apt-get install python2.7-dev python-pillow -y
gumawa ng build-python sudo gumawa ng install-python
Tandaan: Maaari mong ligtas na balewalain ang isang babala tungkol sa '-Wstrict-prototype' na lalabas kapag pinatakbo ang dalawa na gumawa ng mga pahayag. Ang mga gumawa ng utos ay tumatagal ng ilang minuto upang tumakbo at hindi nila sinabi kahit ano sa habang sila ay abala. Kaya't huwag kang matakot - ang iyong pi ay dapat bumalik sa lalong madaling panahon;)
Narito ang bahagyang output sa unang pahayag na gumawa:
pagbuo ng extension na 'graphics'
arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strikto-aliasing -Wdate-time -D_FORTIFY_SOURCE = 2 -g -fdebug-prefix-map = / build / python2.7-kKRR4y / python2.7-2.7.13 =. -fstack-protector-malakas -Wformat -Werror = format-security -fPIC -I../../ isama ang I / usr / isama / python2.7 -c rgbmatrix / graphics.cpp -o build / temp.linux- armv6l-2.7 / rgbmatrix / graphics.o -O3 -Wall cc1plus: babala: pagpipilian ng linya ng utos na '-Wstrict-prototypes' ay wasto para sa C / ObjC ngunit hindi para sa C ++ arm-linux-gnueabihf-g ++ -pthread -shared -Wl, -O1 -Wl, -Bsymbolic-functions -Wl, -z, relro -fno-istrikto-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wallict-prototypes -Wdate-time -D_FORTIFY_SOURCE = 2 -g -fdebug-prefix -map = / build / python2.7-kKRR4y / python2.7-2.7.13 =. -fstack-protector-strong -Wformat -Werror = format-security -Wl, -z, relro -Wdate-time -D_FORTIFY_SOURCE = 2 -g -fdebug-preview-map = / build / python2.7-kKRR4y / python2.7 -2.7.13 =. -fstack-protector-malakas -Wformat -Werror = format-security build / temp.linux-armv6l-2.7 / rgbmatrix / graphics.o -L../../ lib -lrgbmatrix -o./rgbmatrix/graphics.so make [1]: Pag-iwan ng direktoryo '/ home / pi / parking / rpi-rgb-led-matrix / bindings / python' pi @ raspberrypi: ~ / parking / rpi-rgb-led-matrix $
Susunod na mai-install namin ang library ng pigpio C. Upang magawa ito nang maayos kailangan naming gawin ito mula sa mapagkukunan kaya ipasok lamang ang mga sumusunod na linya:
cd ~
sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip unzip pigpio.zip cd PIGPIO make sudo make install rm pigpio.zip
Ang pag-install sa itaas ay tumatagal ng halos 3 minuto.
Ngayon ay oras na upang makuha ang aming mga file ng proyekto ng Python. Ipasok ang sumusunod:
cd ~
cd / home / pi / parking / rpi-rgb-led-matrix / bindings / python / sample wget https://s3.amazonaws.com/microedco/tinyLiDAR/Raspberry+Pi/tinyL_parking.zip unzip -j tinyL_parking.zip rm tinyL_parking.zip
Pagkatapos upang maipatupad ito, i-type ang sumusunod:
sudo python parking.py
Ngunit hindi mo kailangang gawin ito sa ngayon dahil kailangan pa nating i-wire ang lahat…
Hakbang 7: Mga wire
Tulad ng nabanggit kanina, pinalakas namin ang LED panel mula sa parehong power adapter na nagpapagana sa pi. Upang magawa ito, kailangan mong i-splice ang mabigat na pula at itim na mga wire sa mga male header pin upang maaari silang mai-plug sa mga pin 2 at 9 ng 40pin pi connector.
I-unplug ang kuryente sa pi ngayon at i-wire ang LED panel ayon sa nakalarawan na diagram sa itaas. Panatilihing nakakakonekta ang pin 2 para sa ngayon.
TANDAAN: Ang panel ng LED matrix ay maaaring paminsan-minsan ay nagpapagana sa isang funky na estado. Kung mangyari ito maaari itong mag-load ng matindi ang iyong supply ng kuryente anuman ang kasalukuyang kapasidad na mayroon ito. Napansin namin ito sa panahon ng pag-unlad sa aming bench supply na maaaring magbigay ng higit sa 4 amps. Ang solusyon dito ay upang patakbuhin muna ang pi code at pagkatapos ay plug sa pin 2 upang mapagana ang LED panel. Sa ganitong paraan dapat lumitaw ang panel sa isang mababang estado ng kuryente dahil pinalabas nito ang mga random na estado ng LED. Ang kasalukuyang Quiescent (lahat ng LEDs off) para sa aming LED panel ay 50mA lamang sa 5v.
CAT5
Gumamit kami ng isang 25 paa CAT5 ethernet cable at binago ito upang isaksak sa mga pin ng header ng pi sa isang dulo at tanggapin ang mga pin ng konektor ng GROVE sa kabilang panig upang mapalawak namin ang distansya upang mailagay ang aming panig na tinyLiDAR sensor. Ipinapakita ng mga larawan sa itaas ang cable na ito bago at pagkatapos ng mga pagbabago. Hindi alintana ang mga kulay ng mga wire ng header pin dahil hindi sila naiugnay sa mga diagram. Siguraduhin lamang na i-wire mo ang iyong system tulad ng ipinakita sa mga nakalarawang diagram ng koneksyon na ipinakita nang mas maaga sa hakbang 3.
Hakbang 8: I-ilaw Ito
Ang wastong paunang pagkakasunud-sunod ng lakas ay dapat na mai-plug sa microUSB charger sa pi at hintayin ang mga asul na LED sa mga tinyLiDAR sensor na mabilis na kumurap na nagpapakita na kumukuha sila ng mga sukat. Pinatutunayan nito na gumagana nang maayos ang code.
Maaari mong marahan ngunit mahigpit na ikonekta ang pin 2 para sa LED panel supply. Mag-ingat na hindi glitch ito habang ginagawa ito! Kung ang LED panel ay nagpapakita ng ilang mga nakapirming maliwanag na LEDs marahil ito ay glitched kaya alisin ang lakas ng microUSB mula sa pi at maghintay ng ilang segundo upang subukang muli ang pagkakasunud-sunod ng power up.
Upang patakbuhin ang code, ipasok ang sumusunod:
cd / home / pi / parking / rpi-rgb-led-matrix / bindings / python / sample
sudo python parking.py
Kung maayos ang lahat dapat kang makakuha ng isang display na katulad sa ipinakita sa video.
Mabilis na tingnan ang parking.py code upang maunawaan kung anong mga limitasyon ang ginamit namin. Ang default para sa front sensor ay 200mm. Tulad ng saklaw ng sensor ay 11mm hanggang 2m magandang ideya na panatilihin ang distansya ng nom_parked_Front sa 200mm o mas mataas. Ang side sensor nom_parked_Side ay nakatakda sa 600mm. Tingnan ang larawan sa itaas para sa code ng Python na ipinapakita ang mga pagpipiliang pagsasaayos na ito.
Kung gumagana ang lahat, maaari kang magpatuloy at mai-mount ang system sa iyong garahe at ayusin ang mga parameter sa itaas kung kinakailangan. Dahil naka-konekta ka sa iyong WiFi, palagi kang makakapasok at mai-edit ang iyong mga setting ng distansya ayon sa kailangan mo para sa iyong partikular na pag-setup ng garahe habang naka-mount pa rin ito.
Ngayon na ba ito?
Bakit oo, oo ito! - oras upang gawin ang iyong masayang sayaw:)
Salamat sa pagbabasa at tangkilikin ang iyong bagong katulong sa paradahan!
Hakbang 9: Opsyonal na Hakbang at Makatulong na Mga Utos
Opsyonal na Hakbang - FTP addon para sa Sublime Text
Upang mai-edit ang mga file ng script ng Python nang direkta sa pi, maaari naming mai-install ang FTP addon na tinatawag na Sublime SFTP ng Wbond. Maaari mong i-download ang addon na ito sa pamamagitan ng pagsunod sa mga tagubilin dito
Upang ma-setup ang addon na ito kailangan naming i-configure ang mga kredensyal ng FTP sa ilalim ng File | SFTP / FTP | Pahina ng Pag-setup ng Server…
Para sa aming pag-setup na ginamit namin:
"type": "sftp", "sync_down_on_open": true, "sync_same_age": true, "host": "192.168.0.200", "user": "pi", "password": "HIS_RPI_PASSWORD_HERE", "port": "22", "remote_path": "/ home / pi /", "file_permissions": "664", "dir_permissions": "775",
Gumamit ng Ctrl + S o File | I-save upang mai-save ang impormasyong ito. Sasabihan ka para sa isang pangalan upang tawagan ang pagsasaayos na ito. Tinawag lang namin itong "rpizw_0_200"
Ngayon upang mag-login sa pi mula sa SublimeText, pumunta sa File | SFTP / FTP | Mag-browse sa Server…
Pumili mula sa listahan ng mga pagpipilian na mag-popup. Gusto mong piliin ang profile na may pangalan na iyong tinukoy sa itaas;) Sundin ang mga senyas upang mag-navigate sa mga folder at i-edit ang nais na file.
Nakatutulong na Mga Ekstra
Mga kapaki-pakinabang na utos ng Linux na gamitin sa pi.
Bago i-unplug ang pi, ALWAYS siguraduhin na i-shut down ito upang hindi ka makakuha ng katiwalian sa file sa iyong microSD card. Ipasok ang utos na ito:
sudo shutdown ngayon
at hintayin ang berde na humantong upang patayin bago alisin ang lakas. Katulad nito upang i-restart ito, maaari kang magpasok ng:
sudo reboot ngayon
Upang mailista ang mga file sa isang direktoryo, gamitin ito:
ls
Maaari kang makahanap ng iba pang kapaki-pakinabang na mga utos ng Linux dito
Inirerekumendang:
Sistema ng Alarma sa Paradahan ng Sasakyan Gamit ang PIR Sensor- DIY: 7 Hakbang (na may Mga Larawan)
Sistema ng Alarma sa Paradahan ng Sasakyan Gamit ang PIR Sensor- DIY: Nagkaroon ka ba ng problema habang nagpaparada para sa sasakyang tulad ng kotse, trak, motor na de-motor o anupaman, sa itinuturo na ito ay ipapakita ko sa iyo kung paano malampasan ang problemang ito gamit ang isang simpleng alarm sa paradahan ng Sasakyan system gamit ang PIR Sensor. Sa sistemang ito
DIY - Arduino Batay sa Katulong sa Paradahan V2: 6 Mga Hakbang
DIY - Arduino Batay sa Parking Assistant V2: Kapag binibigyan ka ng buhay ng mga saging !!!!! Kainin lamang sila. Ang pangangailangan ay ang ina ng mga imbensyon, at hindi ko tatanggihan ang katotohanang iyon. Sa totoo lang, ito ang ika-2 na beses na nakabunggo ako sa aming pader ng garahe mula nang lumipat kami sa bagong bahay na ito. Iyon lang, walang t
Sistema ng Pagsukat ng Batay ng Static na Batay sa Sistema ng Pag-iilaw ng Emergency: 8 Hakbang
Static Elektrisidad na Pagsukat ng Batay sa Sistema ng Pag-iilaw ng Pagbabagong-buhay: Naisip mo ba na gumawa ng isang emergency na sistema ng pag-iilaw kapag namatay ang iyong pangunahing lakas. At dahil mayroon kang kahit kaunting kaalaman sa electronics dapat mong malaman na madali mong suriin ang pagkakaroon ng lakas ng mains sa pamamagitan ng simpleng pagsukat ng
Pamamahala ng Tanim na Batay sa Batay sa Solar Na May ESP32: 7 Mga Hakbang (na may Mga Larawan)
Pamamahala ng Tanim na Batay sa Batay ng Solar Sa ESP32: Ang paglaki ng mga halaman ay masaya at pagtutubig at pag-aalaga sa kanila ay hindi talaga isang abala. Ang mga aplikasyon ng Microcontroller upang subaybayan ang kanilang kalusugan ay nasa buong internet at ang inspirasyon para sa kanilang disenyo ay nagmula sa static na katangian ng halaman at ang kadalian ng moni
Batay sa Autonomous na Batay ng Arduino Gamit ang Ultrasonic Sensor: 5 Mga Hakbang (na may Mga Larawan)
Batay ng Autonomous na Batay ng Arduino Paggamit ng Ultrasonic Sensor: Lumikha ng iyong sariling Arduino based Autonomous Bot gamit ang Ultrasonic Sensor. Ang bot na ito ay maaaring lumipat sa sarili nitong walang pag-crash ng anumang mga hadlang. Karaniwan kung ano ang ginagawa nito ay nakita nito ang anumang uri ng mga hadlang sa paraan nito at nagpapasya ang pinakamahusay na pa