Turinys:

„Pi“pagrįsta parkavimo pagalbos sistema: 9 žingsniai
„Pi“pagrįsta parkavimo pagalbos sistema: 9 žingsniai

Video: „Pi“pagrįsta parkavimo pagalbos sistema: 9 žingsniai

Video: „Pi“pagrįsta parkavimo pagalbos sistema: 9 žingsniai
Video: Building Apps for Mobile, Gaming, IoT, and more using AWS DynamoDB by Rick Houlihan 2024, Liepa
Anonim
Pi pagrįsta parkavimo pagalbinė sistema
Pi pagrįsta parkavimo pagalbinė sistema

Labas! Štai šaunus mažas projektas, kurį galite padaryti per vieną popietę ir naudoti jį kasdien. Jis sukurtas remiantis „Raspberry Pi Zero W“ir padės jums visada puikiai pastatyti automobilį.

Čia yra visas jums reikalingų dalių sąrašas:

  • „Raspberry Pi Zero W“(šiame straipsnyje tai vadinsime „rpi“arba „pi“)
  • 4 GB ar didesnė „micro SD“kortelė „pi OS“
  • Du nedideli „LiDAR“skrydžio laiko atstumo jutiklių moduliai
  • 32x32 RGB LED skydelis (tam yra daug gamintojų su skirtingais taškeliais, pavyzdžiui, galite naudoti „Adafruit 1484“ar panašų, tiesiog „Google“ieškokite „32x32 LED Matrix“). Mūsų skydelis turėjo 6 mm žingsnį.
  • 25 pėdų CAT5 kabelio
  • apytiksliai 22 spalvotų kaiščių jungiamieji laidai nuo patinėlio iki vyriškos lyties
  • 5v 2Amp microUSB maitinimo šaltinis (mobiliojo telefono įkroviklis) Viskas nustatyta? Eime!

TL; DR santrauka

  • Atsisiųskite „Raspbian Lite OS“, skirtą rpi
  • Konfigūruokite „pi“, kad jis veiktų be galvos per „WiFi“su statiniu IP
  • Nustatykite kompiuterio kūrėjo aplinką naudodami „PuTTY“, „WinSCP“ir pasirinktinai „SublimeText“su FTP priedu
  • Atsisiųskite, sukurkite ir suriškite LED skydelio tvarkyklę
  • Atsisiųskite ir įdiekite pigpio
  • Atsisiųskite mūsų „Python“kodą
  • Prijunkite 32x32 LED ekraną
  • Padarykite CAT5 prailginimo kabelį šoniniam „tinyLiDAR“jutikliui
  • Neprivalomas žingsnis (bet tik pažengusiems vartotojams): atlikite greitą linksmą šokį, kai viskas veikia;)

1 žingsnis: Kas yra „Pi Zero W“?

Kas yra „Pi Zero W“?
Kas yra „Pi Zero W“?

Neabejotinai girdėjote apie „Raspberry Pi“, bet kas gi yra „pi Zero W“?

„Raspberry Pi Zero“ir „Zero W“buvo naujesni „Pi“šeimos papildymai, labiau susiję su daiktų internetu ir kitomis nebrangiomis įterptosiomis programomis. Jie yra pašalintos originalios pi plokštės versijos, tačiau vis dar turi galingą 1 GHz procesorių. Štai geras visų modelių palyginimas.

Mums naudinga, kai čia pasirenkame „Pi Zero W“, o ne kitas valdiklių plokštes, nes mes galime lengvai ją užprogramuoti aukštesnio lygio „Python“kalba, tuo pačiu naudodamiesi greitais „C/C ++“LED skydelių tvarkyklėmis. Tai taip pat patraukliai kainuoja tik 10 USD.

Turėkite omenyje, kad kai ši lenta yra išardyta viso „pi“versija, kai kurie dalykai pasikeitė. Visų pirma pašalintas eterneto lizdas, HDMI jungtis pakeista į mini dydį, o keturi USB prievadai buvo supaprastinti iki vieno tipo „micro USB“. Yra dar viena mikro USB jungtis, tačiau ji skirta tik maitinti plokštę. Panaikinus visas pilno dydžio USB jungtis, kyla tam tikrų sunkumų. Būtent, kaip galite prijungti klaviatūrą ir pelę? Standartiniai USB periferiniai įrenginiai ir šakotuvai naudoja A tipo jungtis, o ne mikro.

Taigi, ką mes galime padaryti?

Mes galime eiti be galvos!

Ne, mes nenorime išprotėti, o naudoti alternatyvą įprastam tiesioginiam laidiniam nustatymui. „Headless“reiškia „tunelį“į pi nuotoliniu būdu, naudojant saugaus apvalkalo (SSH) tinklo ryšį. Šiam projektui mes naudosime metodą be galvos per „WiFi“. Štai kodėl mes pasirinkome „pi zero“W versiją, o ne dar mažesnę kainą „pi zero“.

Atkreipkite dėmesį, kad yra ir kitas būdas paleisti „pi“režimu be galvos, naudojant vadinamąjį VNC. Jai reikalinga speciali VNC programinė įranga, veikianti jūsų kompiuteryje, nes ji suteikia pilną virtualų grafinį darbalaukį jūsų kompiuteryje. Savo projektui nereikalaujame (ir tikrai nenorime) darbalaukio, todėl laikysimės paprastesnio SSH metodo.

2 žingsnis: Scotty, mums reikia daugiau energijos

Scotty, mums reikia daugiau jėgų!
Scotty, mums reikia daugiau jėgų!

32x32 LED matricos skydas pats gali priimti keletą amperų srovės. Nejuokauju! Štai kodėl daugumoje šių plokščių yra keli stipriai atrodantys maitinimo kabeliai, skirti jį maitinti. Mūsų laimei, nors šiam projektui mums nereikės gauti didelio energijos šaltinio. Mes galėjome maitinti visą šią sistemą tik iš atsarginio 5v/2amp microUSB mobiliojo telefono įkroviklio, kurį turėjome. Mažesnės srovės priežastis yra ta, kad mes naudojame palyginti paprastą grafiką ir todėl neįjungiame daugumos šviesos diodų. Jei galvojate kurti animaciją ar naudoti vaizdo/ryškią grafiką, tikrai turėtumėte apsvarstyti galimybę maitinti skydelį iš atskiro maitinimo šaltinio.

3 žingsnis: jutiklio išdėstymas ir programinė įranga

Jutiklių išdėstymas ir programinė įranga
Jutiklių išdėstymas ir programinė įranga
Jutiklių išdėstymas ir programinė įranga
Jutiklių išdėstymas ir programinė įranga

Ar pastebėjote, kad šioje sistemoje naudojame ne vieną, o du mažus „LiDAR“? Kaip parodyta garažo įrengimo schemoje, vienas yra priešais automobilį, o kitas - išilgai vienos automobilio pusės.

Šoninis jutiklis aptiks, ar statydami automobilį nukrypote nuo centro, ir, žinoma, priekinis nurodys, kada sustoti.

32x32 LED ekranas padės jums rodyklėmis judėti pirmyn, į kairę arba į dešinę ir atgalinio skaičiavimo ekranu su spalvotais kampais, rodančiais, kiek dar turite nuvažiuoti. Peržiūrėkite mūsų trumpą vaizdo įrašą apie visas ekrano būsenas.

Žaidimo planas

Trumpai tariant, mes naudojame vis populiaresnę „hzeller C“biblioteką, skirtą šviesos diodų tvarkyklei, „Python“- valdymo kodui ir „pipgpio C“biblioteką, kad mūsų jutikliai tinkamai valdytų I2C.

„Python“yra labai paprasta aukšto lygio kalba, kurią galite lengvai redaguoti bet kuriame teksto rengyklėje. Paprastai naudojame „SublimeText“ir šiam projektui taip pat naudojome labai naudingą FTP papildinį, kuris leidžia mums redaguoti scenarijaus failus tiesiai pi. Tai neprivalomas veiksmas, nes jis reikalingas tik tada, jei norite redaguoti kodą. Daugiau informacijos rasite šio straipsnio pabaigoje.

Kaip žinote, visos „RPI“plokštės nepalaiko I2C laikrodžio tempimo. Taigi šiam projektui vėl panaudojome „pigpio“biblioteką, kad galėtume valdyti mažus „LiDAR“jutiklius, tačiau šį kartą su nedideliu posūkiu …

Keletas mažų LiDAR

Perkant „tinyLiDAR“, jis visada nustatytas pagal numatytąjį vergo adresą 0x10. Tai gerai, kai naudojate vieną jutiklį, tačiau jei jūsų magistralėje yra daugiau nei vienas, gali kilti problemų, jei parašysite komandą 0x10 ir visi atsakys atgal!

Taigi čia turime 3 variantus:

Pirma, mes galime naudoti (tinyLiDAR) „R“komandą, norėdami parašyti naują vergo adresą vienam jutikliui, prijungtam prie I2C magistralės. Tada pakartokite tai kiekvienam jutikliui. Šiai procedūrai fiziškai pritvirtinkite, užrašykite ir atjunkite kiekvieną jutiklį. „tinyLiDAR“išsaugos nurodytą adresą savo nuolatinėje atmintyje. Adresas išliks net ir po maitinimo ciklo, kol jį išvalysite išleisdami komandą RESET.

Antrasis variantas - naudoti patogią automatinio priskyrimo funkciją, kurią sukūrėme kaip IGG kampanijos tikslą. Tai reiškia, kad reikia atsiųsti komandą „AR“ir tada rodyti pirštu į kiekvieną jutiklį, kad automatiškai priskirtų nuoseklius I2C adresus atskiriems jutikliams, panašius į pirmąją parinktį, tačiau norint tai padaryti nereikia fiziškai atjungti kiekvieno jutiklio.

Trečias variantas yra tas, kurį mes naudojame šiame projekte, ir tai įmanoma dėl „pigpio“bibliotekos. Norėdami tinkamai įgyvendinti I2C standartą, pigpio bitbangs GPIO. Taigi dėl šios priežasties mes galime lengvai sukurti atskirus I2C magistrales beveik ant bet kokių atsarginių GPIO kaiščių.

Taigi nereikia iš naujo užprogramuoti kelių LiDAR jutiklių vergų adresų. Kiekvienam galime naudoti atskirą autobusą:)

Atminkite, kad I2C magistralė, veikianti 100 kbps greičiu, iš tikrųjų yra gana tvirta. Mes naudojame paprastą seną CAT5 eterneto kabelį, kad paleistume I2C magistralę į šoninį tinyLiDAR jutiklį, esantį už 25 pėdų, be jokių aktyvių kartotuvo komponentų! Jutiklio laidų detalės pateiktos aukščiau.

Gerai, užtenka džerbergo, pradėkime atsisiųsti kodą!

4 žingsnis: „Pi“nustatymas

„Pi“nustatymas
„Pi“nustatymas
„Pi“nustatymas
„Pi“nustatymas

Įspėjimas: „Pi“naudoja „Linux“failų sistemą, todėl geriausia atlikti šiuos veiksmus naudojant „Linux“pagrįstą sistemą. Galite tai padaryti iš naujo suformatuodami SD kortelę, jei tai padarysite sistemoje „Windows“. Mes naudojome nuostabų ir nemokamą „Ubuntu 18.04“darbalaukį, veikiantį virtualioje aplinkoje „Windows 10“kompiuteryje, tačiau galite išbandyti kažką panašaus.

Pirmiausia turėsite atsisiųsti OS iš raspberrypi.org ir tada įrašyti į „microSD“kortelę. Taigi atlikite šiuos veiksmus:

(1) „Ubuntu“eikite čia ir paimkite „Raspbian Lite“vaizdą. Išsaugokite jį atsisiuntimų aplanke.

(2) Tada atsisiųskite „Etcher“SD kortelės rašymo įrankį. FYI - oficiali „Etcher“atsisiuntimo nuoroda į „Linux“versiją jų pagrindiniame puslapyje mums neveikė, todėl mes naudojome čia aprašytą metodą:

Apibendrinant, nuorodoje aprašyti veiksmai buvo šie:

Pridėti „Etcher“debiano saugyklą:

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

Pasitikėkite „Bintray.com“GPG raktu:

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

Atnaujinkite ir įdiekite:

sudo apt-get atnaujinimas

sudo apt-get įdiegti etcher-electron

Baigę galite eiti į priekį ir paleisti „Etcher“iš savo „Ubuntu“darbalaukio. Jis paprašys jūsų šaltinio failo (kurį įdėjote į atsisiuntimų aplanką). Kitas „Etcher“žingsnis yra pasirinkti tinkamą tikslą. „Etcher“gerai aptinka jūsų „micro SD“kortelę, tačiau čia turėtumėte būti paranojikas. Norėdami patikrinti, ar jis randa tinkamą paskirties vietą, pabandykite išimti „microSD“kortelę spustelėdami „Išstumti“„Ubuntu“failų naršyklės lange ir patikrinkite, ar ji išnyksta kaip tikslinė parinktis „Etcher“viduje. Tada įdėkite jį atgal ir tęskite paskutinį veiksmą, ty įrašykite failą į šią „microSD“kortelę.

Palaukite, kol viskas bus baigta, ir tada tęskite.

5 žingsnis: „WiFi“laikas

„WiFi“laikas
„WiFi“laikas
„WiFi“laikas
„WiFi“laikas

Gerai, dabar atėjo laikas įvesti savo „WiFi“informaciją.

Patarimas: visada galite kopijuoti (Ctrl+C) ir įklijuoti (dešiniuoju pelės klavišu, įklijuoti) informaciją iš šio straipsnio į „PuTTY“terminalo ekraną, o ne įvesti komandas. Šio straipsnio pabaigoje taip pat rasite keletą naudingų „Linux“komandų.

Kai Etcher baigs rašyti į „micro SD“kortelę, bus rodomi 2 diskai, kaip parodyta aukščiau. Vienas vadinamas įkrova, kitas - rootfs

Turime naudoti failų tvarkyklę, kad patektume į įkrovos aplanką ir sukurtume failą pavadinimu wpa_supplicant.conf.

Norėdami tai padaryti, galite tiesiog spustelėti kairę pusę, kurioje sakoma „įkrova“, o tada dešinėje ekrano pusėje galite dešiniuoju pelės mygtuku spustelėti baltą foną ir pasirinkti „Atidaryti terminale“.

Bus atidarytas terminalo langas (panašus į CMD sistemoje „Windows“), kuriame galite įvesti:

sudo nano wpa_supplicant.conf Patarimas: turėsite įvesti „Linux“sistemos slaptažodį, kad jis galėtų veikti kaip „Super User“. Tai būtina, kitaip baigus redaguoti negalėsite išsaugoti failų

Tada aukščiau pateikta komanda paleis „nano“teksto redaktorių, kuriame galėsite įvesti šią informaciją:

šalis = JAV

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}

Pastaba: nepamirškite pakeisti „WiFi_SSID“ir „WiFi_Password“savo „WiFi“tinklo pavadinimu ir slaptažodžiu.

Kai baigsite, tiesiog spustelėkite „Ctrl“+X, kad išeitumėte, ir atsakykite „Taip“rašydami failą išeidami.

Kitas žingsnis yra sukurti tuščią failą, pavadintą ssh. Norėdami tai padaryti, terminalo lange tiesiog įveskite:

paliesk ssh

Dabar turime suteikti savo pi statinį IP adresą, kad žinotume, kur jis yra kiekvieną kartą, kai norime prie jo prisijungti. Terminalo lange įveskite:

sudo nano /etc/dhcpcd.conf

Tai turėtų vėl atidaryti nano teksto rengyklę ir galime pridėti šį tekstą failo apačioje:

sąsaja wlan0

statinis ip_adresas = 192.168.0.statiniai maršrutizatoriai = 192.168.0.1 statinis domeno_vardo_serveris = 192.168.0.1 8.8.8.8

Pastaba: tai reiškia, kad jūsų tinklo prefiksas yra 192.168.0. Jei turite 192.168.1 ir tt, naudokite savo tinklą. 8.8.8.8 domenų vardų serveris skirtas „Google“ir čia neprivalomas.

Terminale įveskite „exit“, kad jį uždarytumėte. Tada dešiniuoju pelės mygtuku spustelėkite įkrovos pavadinimą kairėje failų tvarkyklės lango pusėje ir pasirinkite Išstumti.

Dabar galite prijungti šią „microSD“kortelę prie „pi“ir prijungti „microUSB“maitinimo kabelį, kad galėtumėte maitinti „pi“.

Jei viskas klostysis gerai, žalias šviesos diodas kurį laiką mirksės, tarsi pasiektų standųjį diską, ir turėtų prisijungti prie „WiFi“tinklo. Skirkite maždaug minutę nusistovėti ir palaukite, kol šviesos diodas taps žalias.

Norėdami patikrinti, ar viskas veikė, galime pabandyti įvesti ping.

Taigi tiesiog įveskite žemiau esančią eilutę ir patikrinkite, ar nėra atsakymo.

ping 192.168.0.200

„Ubuntu“turėtumėte gauti kažką panašaus į šį:

ping 192.168.0.200

PING 192.168.0.200 (192.168.0.200) 56 (84) baitai duomenų. 64 baitai nuo 192.168.0.200: icmp_seq = 1 ttl = 128 laikas = 752 ms 64 baitai nuo 192.168.0.200: icmp_seq = 2 ttl = 128 laikas = 5.77 ms 64 baitai nuo 192.168.0.200: icmp_seq = 3 ttl = 128 laikas = 7.33 ms ^C --- 192.168.0.200 ping statistika --- 3 perduoti paketai, 3 gauti, 0% paketų praradimo, laikas 2001ms rtt min/avg/max/mdev = 5.777/255.346/752.922/351.839 ms

Atminkite, kad „ping“veiks iki tol, kol paspausite „Ctrl“+C.

„Windows“sistemoje turėtumėte gauti kažką panašaus:

ping 192.168.0.200

Pingingas 192.168.0.200 su 32 baitais duomenų: Atsakymas iš 192.168.0.200: baitai = 32 laikas = 4 ms TTL = 64 Atsakymas iš 192.168.0.200: baitai = 32 laikas = 5 ms TTL = 64 Atsakymas iš 192.168.0.200: baitai = 32 laikas = 6ms TTL = 64 Atsakymas iš 192.168.0.200: baitai = 32 laikas = 5ms TTL = 64 192.168.0.200 Ping statistika: paketai: išsiųsti = 4, gauti = 4, prarasti = 0 (0% nuostolis), apytikslis kelionės laikas pirmyn ir atgal per milisekundes: mažiausiai = 4ms, maksimaliai = 6ms, vidutiniškai = 5ms

Viskas gerai? Toliau…

6 veiksmas: prisijungimas

Prisijungiama
Prisijungiama

Dabar, kai turime ryšį su pi, norime siųsti jam komandas. Bet kaip? PuTTY, žinoma! „PuTTY“nustatymas Atsisiuntę „PuTTY“programinę įrangą, sukurkite savo „Pi“profilį su šia informacija:

Pagrindinio kompiuterio vardas (arba IP adresas): 192.168.0.200 Ryšio tipas: SSH Suteikite šiam profiliui pavadinimą skiltyje Išsaugotos sesijos ir paspauskite Išsaugoti. Galite naudoti bet kokį jums patinkantį pavadinimą, pvz., „Rpizw_200“

Norėdami prisijungti, tiesiog pasirinkite jį iš sąrašo ir paspauskite Įkelti. Tada paspauskite Atidaryti. Norėdami prisijungti, įveskite vartotojo vardą ir slaptažodį:

prisijungimo vardas: pi

Apsaugotas slaptažodis: avietė

Štai pavyzdinis seansas, rodomas „PuTTY“, kai prisijungiate:

prisijungti kaip: pi

[email protected] slaptažodis: Linux raspberrypi 4.14.34+ #1110 Mon Apr 16 14:51:42 BST 2018 armv6l Į „Debian GNU/Linux“sistemą įtrauktos programos yra nemokama programinė įranga; tikslios kiekvienos programos platinimo sąlygos aprašytos atskiruose failuose, esančiuose/usr/share/doc/*/copyright. „Debian GNU/Linux“suteikiama be jokių garantijų, kiek tai leidžia galiojantys įstatymai. Paskutinis prisijungimas: [data ir laikas] nuo 192.168.0. [Ip address] SSH yra įjungtas ir numatytasis „pi“vartotojo slaptažodis nepasikeitė. Tai kelia pavojų saugumui - prisijunkite kaip „pi“vartotojas ir įveskite „passwd“, kad nustatytumėte naują slaptažodį.

Pirmą kartą prisijungus, jis įspės, kad dar nepakeitėte slaptažodžio. Turėtumėte jį pakeisti į ką nors stipraus, tačiau paprasta prisiminti, todėl eikite į priekį ir pakeiskite jį įvesdami passwd ir vykdykite nurodymus.

Toliau turėtume atnaujinti pi programinę įrangą, įvesdami tai:

sudo apt-get update && sudo apt-get upgrade

Tai atsisiųs visus reikalingus naujinius iš jūsų interneto ryšio. Atsakykite TAIP, jei būsite paraginti leisti tai tęsti, ir duokite šiek tiek laiko atnaujinti.

Šiuo metu turbūt taip pat turėtume išjungti garsą pi, nes jame yra blogas juju su LED tvarkyklės biblioteka. Nukopijuokite, įklijuokite šias eilutes po vieną ir paspauskite „Enter“po kiekvienos eilutės:

cd ~

katė << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf juodasis sąrašas snd_bcm2835 EOF sudo update-initramfs -u

Išvestis bus maždaug tokia:

pi@raspberrypi: ~ $ cd ~

pi@raspberrypi: ~ $ cat <> juodasis sąrašas snd_bcm2835>> EOF juodasis sąrašas snd_bcm2835 pi@raspberrypi: ~ $ sudo update -initramfs -u pi@raspberrypi: ~ $

Tada turime iš naujo paleisti pi, kad pakeitimai įsigaliotų, todėl įveskite:

sudo dabar paleiskite iš naujo

Ryšys, žinoma, nutrūks, kai „pi“iš naujo paleidžiamas, kad galėtumėte uždaryti „PuTTY“. Po minutės pabandykite vėl prisijungti.

Dabar atėjo laikas gauti grafinį FTP failų tvarkyklę, vadinamą WinSCP. „WinSCP“galite atsisiųsti iš čia

„WinSCP“yra panašus į failų tvarkyklę „Windows“ir „Ubuntu“. Tai leidžia mums lengvai nuvilkti failus į ir iš pi ir sukurti sąrašus tik dešiniuoju pelės klavišu.

Atsisiuntę turėsite nustatyti savo „Pi“profilį.

„WinSCP“sąranka Iššokančiajame prisijungimo lange pasirinkite Nauja svetainė. Sesijai naudokite šiuos nustatymus:

Failo protokolas: SFTP Pagrindinio kompiuterio pavadinimas: 192.168.0.200 Vartotojo vardas: pi Slaptažodis: {bet koks slaptažodis, kurį pakeitėte numatytąjį, atlikdami aukščiau pateiktą „PuTTY“veiksmą}

Išplėstiniuose svetainės nustatymuose eikite į Aplinka | Katalogai ir įveskite /home /pi, kad gautumėte nuotolinį katalogą, ir viską, ką norite, nustatydami vietinį katalogą.

Išplėstiniuose svetainės nustatymuose eikite į Aplinka | „Shell“ir išskleidžiamajame sąraše „Shell“pasirinkite „sudo su“.

Tada spustelėkite Išsaugoti.

Atlikdami toliau nurodytus veiksmus, atidarykite „WinSCP“ir „PuTTY“

Eikite į „PuTTY“terminalą ir įveskite:

cd ~

Tai pateks į mūsų namų katalogą pi viduje.

Dabar galime paimti LED tvarkyklių biblioteką iš „github“. Norėdami naudoti naujausią kodą, turėsime ištraukti repo, kad turėtume įdiegti „git“įrankį.

Įveskite tai į PuTTY:

sudo apt-get install git

Jei norite tęsti, atsakykite Y ir užtruks kelias sekundes, kol „git“bus įdiegta iš interneto.

Išvestis turėtų atrodyti maždaug taip:

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

Skaitomi paketų sąrašai… Atlikta Sukurti priklausomybės medį Skaityti būsenos informaciją … Atlikta Bus įdiegti šie papildomi paketai: git-man liberror-perl Siūlomi paketai: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Bus įdiegti šie nauji paketai: git git-man liberror-perl 0 atnaujinta, 3 naujai įdiegta, 0 pašalinta ir 0 neatnaujinta. Reikia gauti 4 848 kB archyvų. Po šios operacijos bus sunaudota 26,4 MB papildomos vietos diske. Ar norite tęsti? [Y/n] y Gaukite: 1 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf liberror-perl visi 0.17024-1 [26.9 kB] Gaukite: 2 https://muug.ca/mirror/ raspbian/raspbian stretch/main armhf git-man all 1: 2.11.0-3+deb9u3 [1, 433 kB] Gauti: 3 https://muug.ca/mirror/raspbian/raspbian stretch/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] Gauta 4, 848 kB per 5 s (878 kB/s) Pasirinkus anksčiau nepasirinktą paketą liberror-perl.(Skaitoma duomenų bazė … Šiuo metu įdiegti 34363 failai ir katalogai.) Ruošiamasi išpakuoti…/liberror-perl_0.17024-1_all.deb… Išpakavimas „liberror-perl“(0.17024-1)… Anksčiau nepasirinkto paketo „git-man“pasirinkimas. Ruošiamasi išpakuoti…/git-man_1%3a2.11.0-3+deb9u3_all.deb… Išpakuoti „git-man“(1: 2.11.0-3+deb9u3)… Pasirinkus anksčiau nepasirinktą paketą „git“. Ruošiamasi išpakuoti…/git_1%3a2.11.0-3+deb9u3_armhf.deb… Išpakavimas „git“(1: 2.11.0-3+deb9u3)… „git-man“sąranka (1: 2.11.0-3+deb9u3)… Nustatymas liberror-perl (0.17024-1)… Apdorojami „man-db“aktyvikliai (2.7.6.1-2)… „git“nustatymas (1: 2.11.0-3+deb9u3)…

Dabar grįžkite į „WinSCP“ir eikite į aplanką /home /pi. Tada dešinėje šio „WinScp“lango pusėje dešiniuoju pelės mygtuku spustelėkite ir pasirinkite sukurti naują katalogą pavadinimu „parking“

Grįžę į „PuTTY“ekraną, galite įvesti ls, kad patvirtintumėte, jog ką tik sukūrėte naują aplanką pi. Tada įveskite tai:

cd p [TAB]Patarimas: paspaudus klavišą TAB, dalinis pavadinimas bus automatiškai užbaigtas

Norėdami patekti į šį katalogą, paspauskite įvesties klavišą.

pi@raspberrypi: ~ $ cd parking/

pi@raspberrypi: ~/parking $ ls

Dabar mes galime gauti tvarkyklės failus įvesdami „PuTTY“:

git klonas

Išvestis atrodys maždaug taip:

pi@raspberrypi: ~/parking $ git clone

Klonavimas į „rpi-rgb-led-matrix“… nuotolinis: skaičiuojami objektai: 3740, padaryta. nuotolinis: iš viso 3740 (delta 0), pakartotinai panaudota 0 (delta 0), pakartotinai panaudota 3740 Priimami objektai: 100% (3740/3740), 20,61 MiB | 1,32 MiB/s, padaryta. Deltos išsprendimas: 100% (2550/2550), padaryta.

Dabar surinkite LED tvarkyklės failus, eidami į šį naują „rpi-rgb-led-matrix“katalogą ir įvesdami komandą make:

cd r [TAB]

padaryti Ir taip atrodė mūsų lentoje

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

pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $ make make -C./lib make [1]: įvedamas katalogas '/home/pi/parking/rpi-rgb-led-matrix/lib' g ++- I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parametras -fno -išimtys -c -o gpio.o gpio.cc g ++ -I../ apima -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -nenaudojamas parametras -fno -išimtys -c -o led -matrix.o led-matrix.cc g ++ -I../ include - Siena -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parametras -fno -išimtys -c -o options -initialize.o options-initialize.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -nenaudojamas parametras -fno -išimtys -c -o framebuffer.o framebuffer.cc g ++ -I../ include -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parametras -fno -išimtys -c -o thread.o thread.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = ' "įprastas" -Wextra -Wno -unused -parametras -fno -išimtys -c -o bdf -font.o bdf -fon t.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parametras -fno -išimtys -c -o graphics.o graphics.cc g ++ - I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parametras -fno -išimtys -c -o transformatorius.o transformatorius.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -nenaudojamas parametras -fno -išimtys -c -o led -matrix -co led-matrix-c.cc cc -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -c -o hardware -mapping.o hardware -mapping.c g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parametras -fno -išimtys -c -o content -streamer.o content-streamer.cc g ++ -I../ include -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parametras -fno -išimtys -c -o pixel -mapper.o pixel-mapper.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -excep 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 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]: Išeinant iš katalogo '/home/pi/parking/rpi -rgb -led -matrix/lib' make -C example -api -use make [1]: įvedamas katalogas ' /home/pi/parking/rpi -rgb -led -matrix/example -api -use 'g ++ -I../ include -Wall -O3 -g -Wextra -Wno -nenaudojamas parametras -c -o demo -main. o demo-main.cc make -C../lib make [2]: įvedimas į katalogą '/home/pi/parking/rpi-rgb-led-matrix/lib' make [2]: paliekamas katalogas '/home/pi /parking/rpi-rgb-led-matrix/lib 'g ++ demo-main.o -o demo -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ include -Wall -O3 -g -Wextra -Wno -nepanaudotas parametras -c -o minimal -example.o minimal-example.cc g ++ minimal -example.o - o minimalus pavyzdys -L../ lib -lrgbmatrix -lrt -lm -lpthread cc -I../ include -Wall -O3 -g -Wextra -Wno -nenaudojamas parametras -c -o c -example.o c- example.c cc c -example.o -o c -example -L../ lib -lrgbmatrix -lrt -lm -lpthread -lstdc ++ g ++ -I../ include -Wall -O3 -g -Wextra -Wno -unused- parametras -c -o text -example.o text-example.cc g ++ text -example.o -o text -example -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ include -Wall - O3 -g -Wextra -Wno-nenaudojamas parametras -c -o scrolling-text-example.o scrolling-text-example.cc g ++ scrolling-text-example.o -o scrolling-text-example -L../ lib -lrgbmatrix -lrt -lm -lreadread g ++ -I../ include -Wall -O3 -g -Wextra -Wno -nenaudojamas parametras -c -o clock.o clock.cc g ++ clock.o -o clock -L.. /lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ include -Wall -O3 -g -Wextra -Wno -unused -parametras -c -o ledcat.o ledcat.cc g ++ le dcat.o -o ledcat -L../ lib -lrgbmatrix -lrt -lm -lpthread make [1]: Išeinant iš katalogo '/home/pi/parking/rpi -rgb -led -matrix/example -api -use' pi @raspberrypi: ~/parking/rpi-rgb-led-matrix $

Kitas mūsų žingsnis bus susieti RGB matricos biblioteką su „Python“. Šiam projektui naudojome numatytąjį „Python 2“. Taigi, norėdami atlikti šį įrišimą, mes įvedame šią eilutę vienu metu, kaip anksčiau:

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

padaryti build-python sudo make install-python

Pastaba: galite saugiai ignoruoti vieną įspėjimą apie „-Wstrict-prototype“, kuris rodomas vykdant du pareiškimus. Komandų „make“paleidimas užtrunka porą minučių ir per užimtumą jos nieko nesako. Taigi nebijokite - jūsų pi turėtų greitai sugrįžti;)

Čia yra dalinis pirmojo pareiškimo rezultatas:

„grafikos“plėtinio kūrimas

arm -linux -gnueabihf -gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototypes -fno -range -aliasing -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 -fPIC -I../../ include -I/usr/include/python2.7 -c rgbmatrix/graphics.cpp -o build/temp.linux- armv6l-2.7/rgbmatrix/graphics.o -O3 -Wall cc1plus: įspėjimas: komandinės eilutės parinktis „-Wstrict-prototypes“galioja „C/ObjC“, bet ne „C ++ arm-linux-gnueabihf-g ++ -pthread -hared -Wl“, -O1 -Wl, -Symbolinės funkcijos -Wl, -z, relro -fno -griežtas slapyvardis -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -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 -prefix -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 padaryti [1]: išeinant iš katalogo '/home/pi/parking/rpi-rgb-led-matrix/bindings/python' pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $

Toliau įdiegsime „pigpio C“biblioteką. Norėdami tai padaryti tinkamai, turime tai padaryti iš šaltinio, todėl tiesiog įveskite šias eilutes:

cd ~

sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip išpakuoti pigpio.zip cd PIGPIO padaryti sudo make įdiegti rm pigpio.zip

Aukščiau pateiktas diegimas trunka apie 3 minutes.

Dabar atėjo laikas gauti mūsų „Python“projekto failus. Įveskite:

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

Tada, jei norite jį vykdyti, įveskite:

sudo python parking.py

Bet jums to nereikia daryti dabar, nes mes vis tiek turime viską suderinti …

7 žingsnis: laidai

Laidai
Laidai
Laidai
Laidai
Laidai
Laidai
Laidai
Laidai

Kaip minėta anksčiau, mes maitiname LED skydelį iš to paties maitinimo adapterio, kuris maitina pi. Norėdami tai padaryti, turėsite sujungti didelius raudonus ir juodus laidus prie išorinių kaiščių, kad juos būtų galima prijungti prie 2 ir 9 kaiščių iš 40 kontaktų pi jungties.

Dabar atjunkite maitinimą nuo pi ir prijunkite LED skydelį, kaip parodyta paveikslėlyje aukščiau. 2 kaištį kol kas laikykite atjungtą.

PASTABA: LED matricos skydelis kartais gali įjungti neįprastą būseną. Jei taip atsitiks, jis gali labai pakrauti jūsų maitinimo šaltinį, nepriklausomai nuo jo dabartinės galios. Tai pastebėjome kurdami savo suoliuką, kuris gali suteikti daugiau nei 4 amperus. Sprendimas yra pirmiausia paleisti pi kodą ir tada prijungti 2 kaištį, kad maitintumėte LED skydelį. Tokiu būdu skydelis turėtų veikti mažai energijos, nes jis išplauna atsitiktines šviesos diodų būsenas. Ramioji srovė (visi šviesos diodai išjungti) mūsų LED skydelyje buvo tik 50 mA esant 5 v įtampai.

CAT5

Mes naudojome 25 pėdų CAT5 eterneto kabelį ir modifikavome jį, kad viename gale prijungtume prie pi antvadų kaiščių, o kitoje pusėje priimtume GROVE jungties kaiščius, kad galėtume pratęsti atstumą, kad galėtume įdėti savo šoninį tinyLiDAR jutiklį. Aukščiau pateiktose nuotraukose parodytas šis kabelis prieš ir po modifikacijų. Neatsižvelkite į antraštės kaiščių laidų spalvas, nes jos nesusijusios su schemomis. Tiesiog įsitikinkite, kad prijungėte sistemą, kaip parodyta paveikslėlio prijungimo schemose, parodytose anksčiau 3 veiksme.

8 žingsnis: apšvieskite

Image
Image
Neprivalomas žingsnis ir naudingos komandos
Neprivalomas žingsnis ir naudingos komandos

Tinkama pradinė įjungimo seka turėtų būti prijungti „microUSB“įkroviklį prie „pi“ir palaukti, kol „tinyLiDAR“jutiklių mėlyni šviesos diodai greitai mirksės, parodydami, kad jie atlieka matavimus. Tai įrodo, kad kodas veikia tinkamai.

Tada galite lėtai, bet tvirtai prijungti LED kaiščio maitinimo kaištį 2. Tai darydami būkite atsargūs ir nesuklyskite! Jei šviesos diodų skydelyje rodomi keli užšalę ryškūs šviesos diodai, greičiausiai jis sugedo, todėl išimkite „microUSB“maitinimą iš „pi“ir palaukite kelias sekundes, kad vėl išbandytumėte įjungimo seką.

Norėdami paleisti kodą, įveskite:

cd/home/pi/parking/rpi-rgb-led-matrix/aprišimai/python/sample

sudo python parking.py

Jei viskas gerai, turėtumėte gauti panašų ekraną, kaip parodyta vaizdo įraše.

Greitai peržiūrėkite kodą parking.py, kad suprastumėte, kokias ribas mes naudojome. Pagal numatytuosius nustatymus priekinis jutiklis yra 200 mm. Kadangi jutiklio diapazonas yra nuo 11 mm iki 2 m, verta išlaikyti 200 mm ar didesnį atstumą nom_parked_Front. Šoninis jutiklis nom_parked_Side nustatytas į 600 mm. Žr. Aukščiau pateiktą paveikslėlį, kuriame pateikiamas „Python“kodas, rodantis šias konfigūracijos parinktis.

Jei viskas veikia, galite tęsti ir sumontuoti sistemą savo garaže ir prireikus koreguoti aukščiau nurodytus parametrus. Kadangi „Pi“yra prijungtas prie „WiFi“, visada galite patekti ir redaguoti atstumo nustatymus, kaip to reikia jūsų garažo sąrankai, kol jis vis dar sumontuotas.

Tai dabar?

Kodėl taip, taip yra! - laikas šokti linksmus šokius:)

Dėkojame, kad skaitote, ir mėgaukitės nauju parkavimo asistentu!

9 veiksmas: pasirenkamas žingsnis ir naudingos komandos

Pasirenkamas žingsnis - FTP priedas, skirtas „Sublime Text“

Norėdami redaguoti „Python“scenarijaus failus tiesiai pi, galime įdiegti „Wbond“FTP priedą, pavadintą „Sublime SFTP“. Šį priedą galite atsisiųsti vadovaudamiesi čia pateiktomis instrukcijomis

Norėdami nustatyti šį priedą, turime sukonfigūruoti FTP kredencialus faile | SFTP/FTP | Sąrankos serveris… puslapis.

Savo sąrankai mes naudojome:

"type": "sftp", "sync_down_on_open": tiesa, "sync_same_age": tiesa, "host": "192.168.0.200", "user": "pi", "password": "YOUR_RPI_PASSWORD_HERE", "port": "22", "remote_path": "/home/pi/", "file_permissions": "664", "dir_permissions": "775", Naudokite Ctrl+S arba Failas | Išsaugoti, kad išsaugotumėte šią informaciją. Būsite paraginti įvesti pavadinimą, kad galėtumėte skambinti šiai konfigūracijai. Mes jį tiesiog pavadinome „rpizw_0_200“

Dabar, norėdami prisijungti prie „Pi“iš „SublimeText“, eikite į Failas | SFTP/FTP | Naršyti serverį…

Pasirinkite iš iššokančių parinkčių sąrašo. Norėsite pasirinkti profilį aukščiau nurodytu pavadinimu;) Vykdydami nurodymus naršykite aplankus ir redaguokite norimą failą.

Naudingi priedai

Naudingos „Linux“komandos, naudojamos „pi“.

Prieš atjungdami „pi“, VISADA būtinai jį išjunkite, kad „microSD“kortelėje nebūtų sugadintų failų. Įveskite šią komandą:

sudo dabar išjungti

ir palaukite, kol žalia lemputė išsijungs, prieš atjungdami maitinimą. Norėdami jį paleisti iš naujo, galite įvesti:

sudo dabar paleiskite iš naujo

Norėdami išvardyti katalogo failus, naudokite tai:

ls

Čia galite rasti kitų naudingų „Linux“komandų

Rekomenduojamas: