Përmbajtje:

Sistemi i Ndihmës së Parkimit të bazuar në Pi: 9 hapa
Sistemi i Ndihmës së Parkimit të bazuar në Pi: 9 hapa

Video: Sistemi i Ndihmës së Parkimit të bazuar në Pi: 9 hapa

Video: Sistemi i Ndihmës së Parkimit të bazuar në Pi: 9 hapa
Video: Përse po digjen makinat? Mekanikët tregojnë gabimet që bëjnë shoferët në Shqipëri 2024, Nëntor
Anonim
Sistemi i Ndihmës së Parkimit të bazuar në Pi
Sistemi i Ndihmës së Parkimit të bazuar në Pi

Çkemi! Këtu keni një projekt të lezetshëm të vogël që mund të bëni në një pasdite të vetme dhe pastaj ta përdorni çdo ditë. Bazohet në Raspberry Pi Zero W dhe do t'ju ndihmojë të parkoni makinën tuaj në mënyrë perfekte çdo herë.

Këtu është lista e plotë e pjesëve që do t'ju nevojiten:

  • Raspberry Pi Zero W (ne do ta quajmë këtë 'rpi' ose 'pi' në këtë artikull)
  • Kartë mikro SD 4 GB ose më e madhe për pi OS
  • Dy module të vogla të kohës së fluturimit të sensorit të distancës së fluturimit
  • Paneli LED Rx 32x32 (ka shumë prodhues për këtë me pika të ndryshme, për shembull mund të përdorni Adafruit 1484 ose të ngjashme, thjesht kërkoni për '32x32 LED Matrix' në Google). Paneli ynë kishte një hap prej 6 mm.
  • 25 metra kabllo CAT5
  • përafërsisht 22 tela me ngjyrë blu për meshkuj me meshkuj
  • Furnizim me energji 5V 2Amp microUSB (karikues për celular) Të gjitha të gatshme? Shkojme!

TL; Përmbledhje DR

  • Shkarkoni Raspbian Lite OS për rpi
  • Konfiguroni pi që të funksionojë pa kokë mbi WiFi me një IP statike
  • Konfiguroni mjedisin tuaj kompjuterik me PuTTY, WinSCP dhe opsionalisht SublimeText w/ shtesë FTP
  • Shkarkoni, bëni dhe lidhni drejtuesin e panelit LED
  • Shkarkoni dhe instaloni pigpio
  • Shkarkoni kodin tonë Python
  • Lidhni panelin e ekranit LED 32x32
  • Bëni kabllon shtesë CAT5 për sensorin anësor tinyLiDAR
  • Hapi opsional (por vetëm për përdoruesit e avancuar): bëni një vallëzim të shpejtë të lumtur kur gjithçka funksionon;)

Hapi 1: Çfarë është Pi Zero W?

Çfarë është Pi Zero W?
Çfarë është Pi Zero W?

Ju padyshim keni dëgjuar për Raspberry Pi por çfarë dreqin është një pi 'Zero W'?

Raspberry Pi Zero dhe Zero W ishin shtesa më të fundit në familjen Pi që nënkuptonin më shumë për IoT dhe aplikacione të tjera të ngulitura me kosto të ulët. Ata janë hequr versionet e bordit origjinal pi, por ende me një procesor të fuqishëm 1GHz. Këtu keni një krahasim të mirë të të gjitha modeleve.

Përfitimi për ne në zgjedhjen e Pi Zero W këtu mbi bordet e tjera të kontrolluesit është se ne mund ta programojmë me lehtësi në gjuhën Python të nivelit më të lartë ndërsa përdorim akoma drejtuesit e shpejtë të panelit LED C/C ++. It'sshtë gjithashtu me çmim tërheqës në vetëm 10 dollarë amerikanë.

Mbani në mend se meqenëse ky bord është një version i zhveshur i një pi të plotë - disa gjëra kanë ndryshuar. Në veçanti, foleja ethernet është eliminuar, lidhësi HDMI ka ndryshuar në një madhësi mini dhe katër portat USB janë thjeshtuar në vetëm një lloj mikro USB. Ekziston një lidhës tjetër mikro USB në bord, por është vetëm për të fuqizuar bordin. Eliminimi i të gjithë lidhësve USB me madhësi të plotë prezanton disa kompleksitete. Gjegjësisht, si mund të lidhni një tastierë dhe një mouse? Periferikët dhe shpërndarësit standardë të USB përdorin lidhës të tipit A jo të llojit mikro.

Pra, çfarë mund të bëjmë?

Mund të shkojmë pa kokë!

Jo, nuk kemi për qëllim të çmendemi, por të përdorim një alternativë ndaj konfigurimit normal të drejtpërdrejtë me tela. Koka pa kokë do të thotë të "tunelosh" në pi nga distanca duke përdorur një lidhje rrjeti të sigurt shell (SSH). Për këtë projekt ne do të përdorim qasjen pa kokë mbi WiFi. Prandaj arsyeja për ne në zgjedhjen e versionit W të pi zero në vend të kostos edhe më të ulët pi zero.

Vini re se ekziston gjithashtu një mënyrë tjetër për të drejtuar pi në modalitetin pa kokë duke përdorur diçka të quajtur VNC. Ajo ka nevojë për softuer të veçantë VNC që funksionon në kompjuterin tuaj edhe pse siguron një desktop të plotë grafik virtual në kompjuterin tuaj. Ne nuk kërkojmë (dhe vërtet nuk duam) desktopin për projektin tonë, kështu që ne do t'i përmbahemi metodës më të thjeshtë SSH.

Hapi 2: Scotty, Ne kemi nevojë për më shumë fuqi

Scotty, Ne kemi nevojë për më shumë fuqi!
Scotty, Ne kemi nevojë për më shumë fuqi!

Paneli i matricës LED 32x32 mund të marrë të gjithë në vetvete disa amperë të rrymës. Pa shaka! Kjo është arsyeja pse shumica e këtyre paneleve përfshijnë disa kabllo energjie me pamje të fuqishme për ta fuqizuar atë. Për fat të mirë për ne edhe pse nuk do të kemi nevojë të marrim një furnizim masiv me energji për këtë projekt. Ne ishim në gjendje ta fuqizonim të gjithë këtë sistem nga vetëm një karikues rezervë 5V/2amp i telefonit celular microUSB që kishim shtrirë përreth. Arsyeja për rrymën më të ulët është sepse ne përdorim grafikë relativisht të thjeshtë dhe prandaj nuk ndezim shumicën e LED -ve. Nëse jeni duke menduar të bëni animacion ose të përdorni video/grafika të ndritshme, atëherë patjetër që duhet të merrni parasysh fuqizimin e panelit nga një furnizim me energji të veçantë.

Hapi 3: Vendosja e Sensorit dhe Softueri

Vendosja e Sensorit dhe Softueri
Vendosja e Sensorit dhe Softueri
Vendosja e Sensorit dhe Softueri
Vendosja e Sensorit dhe Softueri

A e vutë re se ne po përdorim dy tinyLiDAR në këtë sistem në vend të vetëm një? Siç tregohet në diagramin e vendosjes së garazhit, njëra vendoset para veturës dhe tjetra vendoset përgjatë njërës anë të makinës.

Sensori anësor do të zbulojë nëse devijoni nga qendra ndërsa parkoni makinën dhe sigurisht që pjesa e përparme do t'ju tregojë kur të ndaloni.

Ekrani LED 32x32 do t'ju ndihmojë duke treguar shigjeta për të ecur përpara, majtas ose djathtas dhe një ekran numërimi me kënde me ngjyra për të treguar se sa larg keni ende për të përzënë. Hidhini një sy videos sonë të shkurtër për të gjitha gjendjet e ekranit.

Plani i lojës

Me pak fjalë, ne po përdorim bibliotekën gjithnjë të njohur hzeller C për drejtuesin LED, Python për kodin kontrollues dhe bibliotekën pipgpio C për kontrollin e duhur I2C të sensorëve tanë.

Python është një gjuhë super e lehtë e nivelit të lartë që mund ta redaktoni lehtësisht në çdo redaktues teksti. Ne zakonisht përdorim SublimeText dhe për këtë projekt ne përdorëm gjithashtu një shtojcë FTP shumë të dobishme që na lejon të redaktojmë skedarët e skriptit direkt në pi. Ky është një hap opsional pasi është i nevojshëm vetëm nëse doni të redaktoni kodin. Më shumë detaje janë në dispozicion në fund të këtij artikulli.

Të gjitha bordet rpi, siç mund ta dini, nuk e mbështesin shtrirjen e orës I2C. Kështu që ne përdorëm përsëri bibliotekën e pigpio për këtë projekt për të kontrolluar sensorët e vegjël LiDAR, por këtë herë me një kthesë të lehtë …

LiDAR të shumtë të vegjël

Kur blini një tinyLiDAR, ai gjithmonë vendoset në adresën e paracaktuar të skllavit 0x10. Kjo është mirë kur përdorni një sensor të vetëm, por nëse keni më shumë se një në autobus, mund të jetë problem nëse i shkruani një komandë 0x10 dhe të gjithë përgjigjen!

Pra, ne kemi 3 mundësi këtu:

Së pari, ne mund të përdorim komandën (tinyLiDAR) "R" për të shkruar një adresë të re skllave në një sensor të lidhur me autobusin I2C. Pastaj përsërisni këtë për secilin sensor. Bashkangjitja fizike, shkrimi dhe shkëputja e secilit sensor për këtë procedurë. tinyLiDAR do të ruajë adresën e dhënë në kujtesën e tij jo të paqëndrueshme në bord. Adresa do të vazhdojë edhe pas ciklit të energjisë derisa ta pastroni duke lëshuar komandën RESET.

Opsioni i dytë është përdorimi i funksionit të përshtatshëm Auto Assign që krijuam si një qëllim shtrirës në fushatën IGG. Kjo përfshin dërgimin e komandës "AR" dhe më pas drejtimin e gishtit te secili sensor individualisht për të caktuar automatikisht adresa sekuenciale I2C tek sensorët individualë të ngjashëm me opsionin e parë, por nuk keni pse ta shkëputni fizikisht secilin sensor për ta bërë këtë.

Opsioni i tretë është ai që ne po përdorim këtu në këtë projekt dhe është i mundur falë bibliotekës së pigpio. Për të zbatuar standardin I2C siç duhet, pigpio bitbangs GPIO. Pra, për shkak të kësaj, ne lehtë mund të krijojmë autobusë të veçantë I2C në pothuajse çdo palë kunja rezervë GPIO.

Prandaj nuk ka nevojë të ri-programoni adresat e skllevërve për sensorët e shumtë LiDAR. Ne thjesht mund të përdorim një autobus të veçantë për secilin:)

Vini re se autobusi I2C që funksionon me 100Kbps është në të vërtetë mjaft i fuqishëm. Ne po përdorim kabllo të vjetër të thjeshtë CAT5 ethernet për të drejtuar autobusin I2C jashtë sensorit tinyLiDAR që është plot 25 metra larg pa asnjë përbërës aktiv të përsëritësit! Detajet e instalimeve elektrike të sensorit janë treguar më lart.

Mirë, mjaft jabber jabber, le të fillojmë të shkarkojmë kodin!

Hapi 4: Vendosja e Pi

Vendosja e Pi
Vendosja e Pi
Vendosja e Pi
Vendosja e Pi

Kujdes: Pi përdor një sistem skedar Linux kështu që është më mirë të kryeni hapat e mëposhtëm në një sistem të bazuar në Linux. Ju mund të përfundoni duke riformatuar kartën tuaj SD nëse e bëni këtë në Windows. Ne përdorëm desktopin e mrekullueshëm dhe falas të Ubuntu 18.04 që funksionon në një mjedis virtual në një kompjuter Windows 10, por ju mund të provoni diçka të ngjashme.

Së pari do të duhet të shkarkoni OS nga raspberrypi.org dhe më pas ta digjni në kartën tuaj microSD. Ndiqni pra këto hapa:

(1) Në Ubuntu shkoni këtu dhe kapni imazhin Raspbian Lite. Ruajeni atë në dosjen tuaj të shkarkimeve.

(2) Tjetra shkarkoni programin e shkrimit të kartës Etcher SD. FYI - lidhja zyrtare e shkarkimit Etcher për versionin Linux në faqen e tyre kryesore nuk funksionoi për ne, kështu që ne përdorëm metodën e përshkruar këtu në vend të kësaj:

Në mënyrë të përmbledhur hapat e përshkruar në lidhje ishin:

Shto depon e debianit Etcher:

jehonë "deb https://dl.bintray.com/resin-io/debian stable etcher" | sudo tee /etc/apt/sources.list.d/etcher.list

Besoni në çelësin GPG të Bintray.com:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61

Përditësoni dhe instaloni:

përditësim sudo apt-get

sudo apt-get install etcher-electron

Pasi të keni përfunduar, mund të vazhdoni dhe të nisni Etcher nga desktopi juaj i Ubuntu. Do t'ju kërkojë skedarin burimor (të cilin e vendosni në dosjen e shkarkimeve). Hapi tjetër në Etcher është të zgjidhni objektivin e duhur. Etcher bën një punë të mirë për të zbuluar kartën tuaj mikro SD, por këtu duhet të jeni paranojak. Për të verifikuar se është gjetur destinacioni i duhur - provoni të nxirrni kartën microSD duke klikuar eject në dritaren e eksploruesit të skedarëve Ubuntu dhe verifikoni që ajo të largohet si opsioni i synuar brenda Etcher. Pastaj futeni përsëri dhe vazhdoni në hapin përfundimtar, që është të shkruani skedarin në këtë kartë microSD.

Prisni pak derisa të përfundojë dhe pastaj vazhdoni tutje.

Hapi 5: Koha e WiFi

Koha e WiFi
Koha e WiFi
Koha e WiFi
Koha e WiFi

Në rregull, tani është koha për të futur të dhënat tuaja WiFi.

Këshillë: gjithmonë mund të kopjoni (Ctrl+C) dhe të ngjisni (Klikoni me të djathtën, ngjisni) informacionin nga ky artikull në ekranin e terminalit PuTTY në vend që të shtypni komandat. Kontrolloni fundin e këtij artikulli për disa komanda të dobishme Linux gjithashtu.

Kur Etcher të ketë mbaruar së shkruari në kartën micro SD, do të shfaqen 2 disqe siç tregohet më sipër. Njëra quhet boot, tjetra quhet rootfs

Ne duhet të përdorim menaxherin e skedarëve për të hyrë në dosjen e nisjes dhe për të krijuar një skedar të quajtur wpa_supplicant.conf.

Për ta bërë këtë hap, thjesht mund të klikoni në anën e majtë ku thotë boot dhe pastaj në anën e djathtë të ekranit mund të klikoni me të djathtën në grupin e bardhë të sfondit dhe zgjidhni Open in Terminal.

Kjo do të hapë një dritare terminale (e ngjashme me CMD në Windows) ku mund të shkruani sa vijon:

sudo nano wpa_supplicant.conf Këshillë: Ju do të duhet të futni fjalëkalimin e sistemit tuaj Linux në mënyrë që të mund të funksionojë si Super Përdorues. Kjo kërkohet ose përndryshe nuk do të jeni në gjendje t'i ruani skedarët kur të keni mbaruar me redaktimin

Komanda e mësipërme do të nisë më pas redaktuesin e tekstit "nano" ku mund të futni informacionin e mëposhtëm:

vendi = SHBA

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}

Shënim: Mos harroni të zëvendësoni WiFi_SSID dhe WiFi_Password me emrin dhe fjalëkalimin tuaj të rrjetit WiFi.

Kur të keni mbaruar, thjesht klikoni Ctrl+X për të dalë dhe përgjigjuni Po për të shkruar skedarin pas daljes.

Hapi ynë tjetër është krijimi i një skedari bosh të quajtur ssh. Për ta bërë këtë, ne thjesht shkruajmë sa vijon në dritaren e terminalit:

prek ssh

Tani ne duhet t'i japim pi -së tonë një adresë IP statike në mënyrë që të dimë se ku është çdo herë që duam të lidhemi me të. Shkruani sa vijon në dritaren e terminalit:

sudo nano /etc/dhcpcd.conf

Kjo duhet të hapë përsëri redaktorin e tekstit nano dhe ne mund ta shtojmë këtë tekst në fund të skedarit:

ndërfaqja wlan0

statike ip_address = 192.168.0. ruterat statikë = 192.168.0.1 serverët e domain_name statik = 192.168.0.1 8.8.8.8

Shënim: Kjo supozon se parashtesa e rrjetit tuaj është 192.168.0. Nëse keni 192.168.1 etj, atëherë përdorni rrjetin tuaj në vend. Serveri i emrit të domain 8.8.8.8 është për Google dhe opsional i tij këtu.

Shkruani 'exit' në Terminal për ta mbyllur atë. Pastaj klikoni me të djathtën mbi emrin e nisjes në anën e majtë të dritares së menaxherit të skedarëve dhe zgjidhni Hiq.

Tani mund ta lidhni këtë kartë microSD në pi tuaj dhe të lidhni kabllon e energjisë microUSB për të fuqizuar piun tuaj.

Nëse gjithçka shkon mirë, LED i gjelbër do të pulsojë për një kohë sikur të ketë qasje në një hard disk dhe duhet t'ju regjistrojë në rrjetin tuaj WiFi. Jepini asaj një minutë që të qetësohet dhe prisni që LED të bëhet e gjelbër.

Për të verifikuar që gjithçka funksionoi, mund të përpiqemi ta pingojmë.

Pra, thjesht shkruani rreshtin më poshtë dhe kontrolloni për një përgjigje.

ping 192.168.0.200

Në Ubuntu duhet të merrni diçka të ngjashme me këtë:

ping 192.168.0.200

PING 192.168.0.200 (192.168.0.200) 56 (84) byte të dhënash. 64 bytes nga 192.168.0.200: icmp_seq = 1 ttl = 128 kohë = 752 ms 64 bytes nga 192.168.0.200: icmp_seq = 2 ttl = 128 kohë = 5.77 ms 64 bytes nga 192.168.0.200: icmp_seq = 3 ttl = 128 kohë = 7.33 ms ^C --- 192.168.0.200 statistika ping --- 3 pako të transmetuara, 3 të marra, 0% humbje të paketave, kohë 2001ms rtt min/avg/max/mdev = 5.777/255.346/752.922/351.839 ms

Vini re se ping vazhdon të funksionojë derisa të shtypni Ctrl+C për ta lënë.

Në Windows ju duhet të merrni diçka si kjo:

ping 192.168.0.200

Pinging 192.168.0.200 me 32 bajt të dhëna: Përgjigje nga 192.168.0.200: byte = 32 kohë = 4ms TTL = 64 Përgjigje nga 192.168.0.200: byte = 32 kohë = 5ms TTL = 64 Përgjigje nga 192.168.0.200: byte = 32 kohë = 6ms TTL = 64 Përgjigje nga 192.168.0.200: byte = 32 kohë = 5ms TTL = 64 Statistika Ping për 192.168.0.200: Paketat: Dërguar = 4, Marrë = 4, Humbur = 0 (humbje 0%), Orare të përafërta vajtje -ardhje në mili-sekonda: Minimumi = 4ms, Maksimumi = 6ms, Mesatarja = 5ms

Gjithcka mire? Në vazhdim…

Hapi 6: Identifikimi

Identifikimi
Identifikimi

Tani që kemi lidhje me pi, duam t'i dërgojmë komanda. Por si? PuTTY sigurisht! Ju mund të shkarkoni PuTTY nga këtuNgritja e PuTTY Pasi të keni shkarkuar programin PuTTY, krijoni një profil për pi tuaj me informacionin e mëposhtëm:

Emri i hostit (ose adresa IP): 192.168.0.200 Lloji i lidhjes: SSH Jepini këtij profili një emër nën Sesionet e Ruajtura dhe shtypni Ruaj. Ju mund të përdorni çdo emër që ju pëlqen për shembull "rpizw_200"

Për t'u regjistruar, thjesht zgjidhni atë nga lista dhe shtypni Load. Pastaj shtypni Open. Vendosni emrin e përdoruesit dhe fjalëkalimin për t'u regjistruar:

emri i hyrjes: pi

Fjalëkalimi i defaltuar: mjedër

Këtu keni një sesion mostër të treguar në PuTTY kur identifikoheni:

identifikohuni si: pi

[email protected] fjalëkalimi: Linux raspberrypi 4.14.34+ #1110 E Hënë 16 Prill 14:51:42 BST 2018 armv6l Programet e përfshira me sistemin Debian GNU/Linux janë softuer falas; kushtet e sakta të shpërndarjes për secilin program përshkruhen në skedarët individualë në/usr/share/doc/*/copyright. Debian GNU/Linux vjen me ABSOLUTISHT JO GARANCI, në masën e lejuar nga ligji në fuqi. Hyrja e fundit: [data dhe ora] nga 192.168.0. [Adresa IP] SSH është aktivizuar dhe fjalëkalimi i paracaktuar për përdoruesin 'pi' nuk është ndryshuar. Ky është një rrezik sigurie - ju lutemi identifikohuni si përdoruesi 'pi' dhe shkruani 'passwd' për të vendosur një fjalëkalim të ri.

Në hyrjen e parë, do të paralajmërojë se nuk e keni ndryshuar ende fjalëkalimin. Ju duhet ta ndryshoni atë në diçka të fortë por të thjeshtë për t’u mbajtur mend, kështu që vazhdoni dhe ndryshojeni duke shtypur passwd dhe ndiqni kërkesat.

Ne duhet të azhurnojmë softuerin në pi duke shtypur këtë:

sudo apt-merrni përditësim && sudo apt-merrni përmirësim

Kjo do të shkarkojë çdo përditësim që i nevojitet nga lidhja juaj e internetit. Përgjigjuni PO nëse ju kërkohet ta lejoni të vazhdojë dhe më pas jepini pak kohë për tu përditësuar.

Në këtë kohë ne ndoshta duhet të fikim edhe tingullin në pi pasi ka një xhuxh të keq me bibliotekën e shoferit LED. Kopjoni, ngjisni rreshtat e mëposhtëm një nga një dhe shtypni enter pas çdo rreshti:

cd

mace << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf lista e zezë snd_bcm2835 EOF sudo update-initramfs -u

Rezultati do të jetë diçka si kjo:

pi@raspberrypi: ~ $ cd

pi@raspberrypi: ~ $ cat <> lista e zezë snd_bcm2835>> EOF lista e zezë snd_bcm2835 pi@raspberrypi: ~ $ sudo update -initramfs -u pi@raspberrypi: ~ $

Pastaj ne duhet të rindizim pi që ndryshimet të hyjnë në fuqi, kështu që shkruani sa vijon:

rindez sudo tani

Lidhja natyrisht do të bjerë pasi pi po rindizet kështu që ju mund të mbyllni PuTTY. Provo të regjistrohesh përsëri një minutë më vonë.

Tani është koha për të marrë një menaxher grafik të skedarëve FTP të quajtur WinSCP. Mund të shkarkoni WinSCP nga këtu

WinSCP është shumë si menaxhuesi i skedarëve në Windows dhe Ubuntu. Kjo na lejon të tërheqim dhe lëshojmë me lehtësi skedarët në & nga pi dhe të krijojmë diretori me vetëm një klikim të djathtë të miut.

Pasi të shkarkohet, do t'ju duhet të krijoni një profil për pi tuaj.

Konfigurimi i WinSCP Në dritaren që shfaqet Identifikohu, zgjidhni Faqja e Re. Përdorni cilësimet e mëposhtme për seancën:

Protokolli i skedarit: SFTP Emri i hostit: 192.168.0.200 Emri i përdoruesit: pi Fjalëkalimi: {çfarëdo fjalëkalimi në të cilin e keni ndryshuar parazgjedhjen në hapin PuTTY më lart}

Në Cilësimet e Avancuara të Sajtit shkoni te Mjedisi | Drejtoritë dhe futni /home /pi për drejtorinë në distancë dhe çdo gjë që ju pëlqen për cilësimin e Drejtorisë Vendore.

Në Cilësimet e Avancuara të Sajtit shkoni te Mjedisi | Shell dhe zgjidhni sudo su - në listën zbritëse të Shell.

Pastaj shtypni Ruaj.

Mbani të dy WinSCP dhe PuTTY të hapura ndërsa kryeni hapat e mëposhtëm

Shkoni në terminalin PuTTY dhe futni sa vijon:

cd

Kjo do të na çojë në drejtorinë tonë në shtëpi brenda pi.

Tani mund të kapim bibliotekën e shoferëve LED nga github. Për të përdorur kodin e fundit, do të na duhet të tërheqim repon kështu që duhet të instalojmë mjetin git.

Futeni këtë në PuTTY:

sudo apt-get install git

përgjigjuni Y për të vazhduar dhe do të duhen disa sekonda për të instaluar git për ne nga interneti.

Dalja duhet të duket diçka si kjo:

pi@raspberrypi: ~ $ sudo apt-get install git

Leximi i listave të paketave… U krye Ndërtimi i pemës së varësisë Leximi i informacionit të gjendjes… U krye Pakot e mëposhtme shtesë do të instalohen: git-man liberror-perl Paketat e sugjeruara: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Do të instalohen paketat e mëposhtme të reja: git git-man liberror-perl 0 përmirësuar, 3 sapo instaluar, 0 për të hequr dhe 0 jo të azhurnuar. Duhet të merrni 4, 848 kB arkiva. Pas këtij operacioni, do të përdoren 26.4 MB hapësirë shtesë në disk. Doni të vazhdoni? [Y/n] y Merr: 1 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf liberror-perl all 0.17024-1 [26.9 kB] Merr: 2 https://muug.ca/mirror/ shtrirje raspbian/raspbian/armhf kryesore git-man të gjithë 1: 2.11.0-3+deb9u3 [1, 433 kB] Merr: 3 https://muug.ca/mirror/raspbian/raspbian stretch/armhf main git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] Marrë 4, 848 kB në 5s (878 kB/s) Zgjedhja e paketës së pazgjedhur më parë liberror-perl.(Leximi i bazës së të dhënave … 34363 skedarë dhe drejtori aktualisht të instaluara.) Përgatitja për shpaketimin…/liberror-perl_0.17024-1_all.deb… Zhbllokimi i liberror-perl (0.17024-1)… Zgjedhja e paketës së pazgjedhur më parë git-man. Përgatitja për të shpaketuar…/git-man_1%3a2.11.0-3+deb9u3_all.deb… Shpaketimi i git-man (1: 2.11.0-3+deb9u3)… Zgjedhja e paketës git të pazgjedhur më parë. Përgatitja për të shpaketuar…/git_1%3a2.11.0-3+deb9u3_armhf.deb… Shpaketimi i git (1: 2.11.0-3+deb9u3)… Konfigurimi i git-man (1: 2.11.0-3+deb9u3)… Konfigurimi liberror-perl (0.17024-1)… Përpunimi i shkaktarëve për njeriun-db (2.7.6.1-2)… Konfigurimi i git (1: 2.11.0-3+deb9u3)…

Tani kthehuni te WinSCP dhe lundroni te dosja /home /pi. Pastaj në anën e djathtë të kësaj dritareje WinScp, klikoni me të djathtën dhe zgjidhni të krijoni një Drejtori të Re të quajtur "parkim"

Kthehu në ekranin PuTTY mund të shkruani ls për të konfirmuar që sapo keni bërë një dosje të re në pi. Pastaj futni këtë:

cd p [TAB]Këshillë: Shtypja e butonit TAB do të plotësojë automatikisht emrin e pjesshëm për ju

Shtypni butonin enter për të hyrë në këtë drejtori.

pi@raspberrypi: parking $ cd parking/

pi@raspberrypi: ~/parkim $ ls

Tani mund t'i marrim skedarët e shoferit duke futur sa vijon në PuTTY:

git klon

Rezultati do të duket diçka si kjo:

pi@raspberrypi: ~/parking $ git klon

Klonimi në 'rpi-rgb-led-matrix' … telekomandë: Numërimi i objekteve: 3740, i kryer. telekomandë: Gjithsej 3740 (delta 0), ripërdorur 0 (delta 0), paketë të ripërdorura 3740 Objekte marrëse: 100% (3740/3740), 20.61 MiB | 1.32 MiB/s, e kryer. Zgjidhja e deltave: 100% (2550/2550), e kryer.

Tani përpiloni skedarët e shoferit LED duke hyrë në këtë drejtori të re 'rpi-rgb-led-matrix' dhe duke shtypur komandën make:

cd r [TAB]

bëj Dhe kështu dukej në tabelën tonë

pi@raspberrypi: ~/parking $ cd rpi-rgb-led-matrix/

pi@raspberrypi:/parking/rpi-rgb-led-matrix $ make make -C./lib make [1]: Hyrja në drejtorinë '/home/pi/parking/rpi-rgb-led-matrix/lib' g ++- I../ përfshijnë -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"të rregullt"' -Extra -Pa parametër të papërdorur -fno -përjashtime -c -o gpio.o gpio.cc g ++ -I../ përfshij -Mur -O3 -g -fPIC -DDEFAULT_HARDWARE = '"i rregullt"' -Estra -Pa -parametër të papërdorur -fno -përjashtime -c -o led -matrix.o led-matrix.cc g ++ -I../ përfshijnë - Muri -O3 -g -fPIC -DDEFAULT_HARDWARE = '"i rregullt"' -Estra -Pa -parametër të papërdorur -fno -përjashtime -c -o opsione -iniciale.o opsione- initialize.cc g ++ -I../ përfshijnë -Mur -O3 -g -fPIC -DDEFAULT_HARDWARE = '"e rregullt"' -Estra -Pa parametër të papërdorur -fno -përjashtime -c -o framebuffer.o framebuffer.cc g ++ -I../ përfshijnë -Murin -O3 -g - fPIC -DDEFAULT_HARDWARE = '"e rregullt"' -Estra -Pa parametër të papërdorur -fno -përjashtime -c -o fije. fije.cc g ++ -I../ përfshijnë -Mur -O3 -g -fPIC -DDEFAULT_HARDWARE = ' "i rregullt" '-Extra -Wno -parametër i papërdorur -fno -përjashtime -c -o bdf -font.o bdf -fon t.cc g ++ -I../ përfshijnë -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"të rregullt"' -Estra -Pa parametër të papërdorur -fno -përjashtime -c -o grafikë. grafikë.cc g ++ - I../ përfshijnë -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"të rregullt" -Wextra -Pa parametër të papërdorur -fno -përjashtime -c -o transformator.o transformer.cc g ++ -I../ përfshij -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"i rregullt"' -Extra -Pa parametër të papërdorur -fno -përjashtime -c -o led -matrix -co led-matrix-c.cc cc -I../ përfshijnë -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"të rregullt"' -Wextra -Wno -parametër të papërdorur -c -o -hardware -mapping.o hardware -mapping.c g ++ -I../ përfshijnë -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"i rregullt"' -Të tjera -Pa parametra të papërdorur -fno -përjashtime -c -o -përmbajtje -transmetues.o përmbajtje -streamer.cc g ++ -I../ përfshijnë -Mur -O3 - g -fPIC -DDEFAULT_HARDWARE = '"e rregullt"' -Estra -Pa parametër të papërdorur -fno -përjashtime -c -o pixel -mapper.o pixel-mapper.cc g ++ -I../ përfshijnë -Mur -O3 -g -fPIC -DDEFAULT_HARDWARE = '"e rregullt"' -Estra -Pa parametër të papërdorur -fno -përjashtim 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 ++ -hared -Wl, -soname, librgbmatrix.so.1 -o librgbmatrix.so.1 gpio.o led -matrix.o opsionet-fillimi.o framebuffer.o thread.o bdf-font.o grafika.o transformatori.o led-matrix-co hardware-mapping.o content-streamer.o pixel-mapper.o multiplex-mappers. o -lpthread -lrt -lm -lpthread bëjnë [1]: Largimi nga drejtoria '/home/pi/parking/rpi -rgb -led -matrix/lib' make -C shembuj -api -use make [1]: Hyrja në drejtori ' /home/pi/parking/rpi -rgb -led -matrix/shembuj -api -përdorim 'g ++ -I../ përfshijnë -Murin -O3 -g -Wextra -Pa parametër të papërdorur -c -o demo -main. o demo-main.cc make -C../lib make [2]: Hyrja në drejtorinë '/home/pi/parking/rpi-rgb-led-matrix/lib' make [2]: Largimi nga drejtoria '/home/pi /parking/rpi-rgb-led-matrix/lib 'g ++ demo-main.o -o demo -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ përfshijnë -Wall -O3 -g -Wextra -Wno -parametër të papërdorur -c -o minimal -shembull.o minimal-example.cc g ++ minimal -example.o - o minimal -shembull -L../ lib -lrgbmatrix -lrt -lm -lpthread cc -I../ përfshij -Wall -O3 -g -Wextra -Wno -parametër të papërdorur -c -o c -shembull.o c- shembull.c cc c -shembull.o -o c -shembull -L../ lib -lrgbmatrix -lrt -lm -lpthread -lstdc ++ g ++ -I../ përfshijnë -Wall -O3 -g -Wextra -Wno -unused- parametër -c -o tekst -shembull.o tekst- shembull.cc g ++ tekst -shembull.o -o tekst -shembull -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ përfshijnë -Mur - O3 -g -Wextra -Wno-parametër i papërdorur -c -o scrolling-text-example.o scrolling-text-example.cc g ++ scrolling-text-example.o -o scrolling-text-example -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ përfshijnë -Wall -O3 -g -Wextra -Wno -parametër të papërdorur -c -o orë.o orë.cc g ++ orë.o -o orë -L.. /lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ përfshijnë -Wall -O3 -g -Wextra -Wno -parametër të papërdorur -c -o ledcat.o ledcat.cc g ++ le dcat.o -o ledcat -L../ lib -lrgbmatrix -lrt -lm -lpthread make [1]: Largimi nga drejtoria '/home/pi/parking/rpi -rgb -led -matricë/shembuj -api -përdorim' pi @raspberrypi: ~/parking/rpi-rgb-led-matricë $

Hapi ynë tjetër do të jetë lidhja e bibliotekës së matricës RGB me Python. Ne përdorëm Python 2 të paracaktuar për këtë projekt. Pra, për ta bërë këtë detyrim, ne futim rreshtin vijues një nga një, si më parë:

sudo apt-get update && sudo apt-get install python2.7-dev python-pillow -y

make build-python sudo make install-python

Shënim: Ju mund të injoroni me siguri një paralajmërim në lidhje me '-Ustrict-prototype' që shfaqet kur ekzekutoni të dy deklaratat. Komandat e krijimit duhen disa minuta për të funksionuar dhe ato nuk thonë asgjë ndërkohë që janë të zënë. Prandaj mos kini frikë - pi juaj duhet të kthehet së shpejti;)

Këtu është dalja e pjesshme në deklaratën e parë të bërjes:

ndërtimi i zgjerimit 'grafik'

arm -linux -gnueabihf -gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototipe -fno -strikte -aliasing -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefiks -map =/build/python2.7-kKRR4y/python2.7-2.7.13 =. -fstack -protector -strong -Wormat -Werror = format -security -fPIC -I../../ përfshijnë -I/usr/include/python2.7 -c rgbmatrix/graphics.cpp -o build/temp.linux- armv6l-2.7/rgbmatrix/graphics.o -O3 -Wall cc1plus: paralajmërim: opsioni i vijës së komandës '-Prototipet e rrepta' është i vlefshëm për C/ObjC por jo për C ++ arm-linux-gnueabihf-g ++ -thread -hared -Wl, -O1 -Wl, -Bsimbolike -funksionet -Wl, -z, relro -fno -strikt -aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototypes -Wdate -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefiks -map =/build/python2.7-kKRR4y/python2.7-2.7.13 =. -fstack -protector -strong -Wformat -Werror = format -siguri -Wl, -z, relro -Date -time -D_FORTIFY_SOURCE = 2 -g -fdebug -prefiks -map =/build/python2.7 -kKRR4y/python2.7 -2.7.13 =. -fstack -protector -strong -Wformat -Werror = format -security build/temp.linux -armv6l -2.7/rgbmatrix/graphics.o -L../../ lib -lrgbmatrix -o./rgbmatrix/graphics.so bëni [1]: Largimi nga drejtoria '/home/pi/parking/rpi-rgb-led-matrix/bindings/python' pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $

Tjetra ne do të instalojmë bibliotekën pigpio C. Për ta bërë këtë siç duhet, ne duhet ta bëjmë atë nga burimi, kështu që thjesht futni rreshtat e mëposhtëm:

cd

sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip hap zinxhirin pigpio.zip cd PIGPIO bëj sudo make install rm pigpio.zip

Instalimi i mësipërm zgjat rreth 3 minuta.

Tani është koha për të marrë skedarët tanë të projektit Python. Futni sa vijon:

cd

cd/home/pi/parking/rpi-rgb-led-matrix/lidhjet/python/mostrat wget https://s3.amazonaws.com/microedco/tinyLiDAR/Raspberry+Pi/tinyL_parking.zip unzip -j tinyL_parking.zip rm tinyL_parking.zip

Pastaj për ta ekzekutuar atë, shkruani sa vijon:

parkimi sudo python.py

Por nuk keni nevojë ta bëni këtë tani pasi ne ende duhet t'i lidhim të gjitha …

Hapi 7: Telat

Telat
Telat
Telat
Telat
Telat
Telat
Telat
Telat

Siç u përmend më herët, ne mundësuam panelin LED nga i njëjti përshtatës i energjisë që fuqizon pi. Për ta bërë këtë, do t'ju duhet të bashkoni telat e mëdhenj kuq e zi në kunjat e kokës mashkullore, në mënyrë që ato të lidhen në kunjat 2 dhe 9 të lidhësit 40pin pi.

Shkëputeni fuqinë nga pi tani dhe lidhni panelin LED sipas diagramit piktorik të mësipërm. Mbajeni pinin 2 të shkëputur tani për tani.

SHENIM: Paneli i matricës LED ndonjëherë mund të ndizet në një gjendje shokuese. Nëse kjo ndodh, ai mund të ngarkojë fuqinë tuaj të energjisë pa marrë parasysh se çfarë kapaciteti aktual ka. Ne e vumë re këtë gjatë zhvillimit në furnizimin me stol, i cili mund të sigurojë mbi 4 amper. Zgjidhja për këtë është që së pari të ekzekutoni kodin pi dhe më pas të futni pin 2 për të fuqizuar panelin LED. Në këtë mënyrë paneli duhet të dalë në një gjendje të ulët të fuqisë pasi nxjerr gjendjet e rastësishme të LED. Rryma qetësuese (të gjitha LED -të e fikura) për panelin tonë LED ishte vetëm 50mA në 5v.

CAT5

Ne përdorëm një kabllo ethernet 25 këmbë CAT5 dhe e modifikuam që të futet në kunjat e kokës pi në njërën anë dhe të pranojmë kunjat e lidhësit GROVE në anën tjetër, në mënyrë që të mund të zgjasim distancën për të vendosur sensorin tinyLiDAR në anën tonë. Fotografitë e mësipërme tregojnë këtë kabllo para dhe pas modifikimeve. Shpërfillni ngjyrat e telave të kunjave të kokës pasi ato nuk lidhen me diagramet. Vetëm sigurohuni që të lidhni sistemin tuaj siç tregohet në diagramet e lidhjes pikturale të treguar më herët në hapin 3.

Hapi 8: Ndizeni atë

Image
Image
Hapi opsional dhe komandat ndihmuese
Hapi opsional dhe komandat ndihmuese

Sekuenca e duhur fillestare e ndezjes duhet të jetë lidhja e karikuesit microUSB në pi dhe pritja që LED -et blu në sensorët e vegjël LiDAR të vezullojnë me shpejtësi duke treguar se ata janë duke marrë matje. Kjo dëshmon se kodi po punon si duhet.

Atëherë mund të lidhni ngadalë por në mënyrë të vendosur pinin 2 për furnizimin e panelit LED. Kini kujdes të mos e dëmtoni atë kur e bëni këtë! Nëse paneli LED tregon disa LED të ndritshëm të ndritshëm, atëherë ndoshta ka probleme, kështu që hiqni fuqinë microUSB nga pi dhe prisni disa sekonda për të provuar përsëri sekuencën e ndezjes.

Për të ekzekutuar kodin, futni sa vijon:

cd/home/pi/parking/rpi-rgb-led-matrix/bindings/python/mostra

parkimi sudo python.py

Nëse gjithçka shkon mirë, duhet të merrni një ekran të ngjashëm me atë të treguar në video.

Hidhini një sy të shpejtë kodit të parkimit.py për të kuptuar se cilat kufij kemi përdorur. Parazgjedhja për sensorin e përparmë është 200 mm. Meqenëse diapazoni i sensorit është 11mm deri në 2m është ide e mirë të mbani distancën nom_parked_F front në 200mm ose më të lartë. Sensori anësor nom_parked_Side është vendosur në 600mm. Shikoni foton e mësipërme për kodin Python që tregon këto mundësi konfigurimi.

Nëse gjithçka funksionon, mund të shkoni përpara dhe të montoni sistemin në garazhin tuaj dhe të rregulloni parametrat e mësipërm sipas nevojës. Meqenëse ju jeni pi është i lidhur me WiFi tuaj, gjithmonë mund të hyni dhe të modifikoni cilësimet e distancës tuaj siç ju nevojiten për konfigurimin tuaj të veçantë të garazhit ndërsa është ende i montuar.

"A është kjo tani?"

Pse po, po është! - Koha për të bërë vallëzimin tuaj të lumtur:)

Faleminderit që lexuat dhe shijoni ndihmësin tuaj të ri të parkimit!

Hapi 9: Hapi Opsional dhe Komandat ndihmëse

Hapi Opsional - shtesë FTP për Tekstin Sublime

Për të redaktuar skedarët e shkrimit Python direkt në pi, ne mund të instalojmë shtesën FTP të quajtur Sublime SFTP by Wbond. Ju mund ta shkarkoni këtë shtesë duke ndjekur udhëzimet këtu

Për të konfiguruar këtë shtesë ne duhet të konfigurojmë kredencialet FTP nën File | SFTP/FTP | Setup Server … faqe.

Për konfigurimin tonë kemi përdorur:

"type": "sftp", "sync_down_on_open": true, "sync_same_age": true, "host": "192.168.0.200", "user": "pi", "password": "YOUR_RPI_PASSWORD_HERE", "port": "22", "shtegu_ i largët": "/home/pi/", "file_permissions": "664", "dir_permissions": "775",

Përdorni Ctrl+S ose File | Ruaj për të ruajtur këtë informacion. Do t'ju kërkohet një emër për ta thirrur këtë konfigurim. Ne thjesht e quajtëm atë "rpizw_0_200"

Tani për t'u identifikuar në pi nga SublimeText, shkoni te File | SFTP/FTP | Shfleto serverin…

Zgjidhni nga lista e opsioneve që shfaqen. Ju do të dëshironi të zgjidhni profilin me emrin që keni specifikuar më sipër;) Ndiqni kërkesat për të lundruar në dosje dhe për të redaktuar skedarin e dëshiruar.

Shtesa ndihmuese

Komandat e dobishme Linux për t'u përdorur në pi.

Para se të hiqni prizën nga priza, GJITHMON sigurohuni që ta mbyllni atë në mënyrë që të mos merrni korrupsion të skedarëve në kartën tuaj microSD. Futni këtë komandë:

sudo mbyllje tani

dhe prisni që drita e gjelbër të fiket para se të shkyçni rrymën. Në mënyrë të ngjashme për ta rinisur atë, mund të futni:

rindez sudo tani

Për të listuar skedarët në një drejtori, përdorni këtë:

ls

Ju mund të gjeni komanda të tjera të dobishme Linux këtu

Recommended: