Mündəricat:
- Addım 1: Pi Zero W nədir?
- Addım 2: Scotty, daha çox gücə ehtiyacımız var
- Addım 3: Sensorların Yerləşdirilməsi və Proqram təminatı
- Addım 4: Pi qurmaq
- Addım 5: WiFi vaxtı
- Addım 6: Giriş
- Addım 7: Tellər
- Addım 8: Yandırın
- Addım 9: İsteğe Bağlı Adım və Faydalı Əmrlər
Video: Pi əsaslı park yardım sistemi: 9 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:47
Salam! Budur, bir günortadan sonra edə biləcəyiniz və sonra gündəlik istifadə edə biləcəyiniz kiçik bir layihə. Raspberry Pi Zero W -ə əsaslanır və avtomobilinizi hər zaman mükəmməl park etməyinizə kömək edəcək.
İşdə sizə lazım olan hissələrin tam siyahısı:
- Raspberry Pi Zero W (bu məqalədə buna 'rpi' və ya 'pi' deyəcəyik)
- Pi OS üçün 4GB və ya daha böyük micro SD kart
- İki tinyLiDAR Uçuş məsafə sensoru modulu
- 32x32 RGB LED Panel (bunun üçün fərqli nöqtəli sahələri olan bir çox istehsalçı var, məsələn Adafruit 1484 və ya bənzərini istifadə edə bilərsiniz, sadəcə Google -da '32x32 LED Matrisi' axtarın). Panelimizdə 6 mm -lik bir meydança vardı.
- 25 fut CAT5 kabeli
- təxminən 22 rəngli kişidən kişiyə başlıq pinli keçid telləri
- 5v 2Amp microUSB enerji təchizatı (mobil telefon şarj cihazı) Hər şey hazırdır? Gedək!
TL; DR Xülasəsi
- Rpi üçün Raspbian Lite OS yükləyin
- Pi -ni statik bir IP ilə WiFi üzərində başsız işləyəcək şəkildə konfiqurasiya edin
- PuTTY, WinSCP və isteğe bağlı olaraq SublimeText w/ FTP əlavəsi ilə PC inkişaf mühitinizi qurun.
- LED panel sürücüsünü yükləyin, düzəldin və bağlayın
- Pigpio yükləyin və quraşdırın
- Python kodumuzu yükləyin
- 32x32 LED ekran panelini bağlayın
- Yan tinyLiDAR sensoru üçün CAT5 uzatma kabelini düzəldin
- İsteğe bağlı addım (ancaq qabaqcıl istifadəçilər üçün): hamısı işləyərkən xoşbəxt bir rəqs edin;)
Addım 1: Pi Zero W nədir?
Şübhəsiz ki, Raspberry Pi haqqında eşitmisiniz, amma "Zero W" pi nədir?
Raspberry Pi Zero və Zero W, IoT və digər aşağı qiymətli gömülü tətbiqlər üçün daha çox məna daşıyan Pi ailəsinə edilən son əlavələr idi. Orijinal pi lövhəsinin versiyaları silinir, lakin yenə də güclü 1GHz prosessoru var. Burada bütün modellərin yaxşı bir müqayisəsi var.
Burada Pi Zero W seçməyimizin digər idarəetmə lövhələrindən üstünlüyü, sürətli C/C ++ LED panel sürücülərindən istifadə edərkən onu daha yüksək səviyyəli Python dilində asanlıqla proqramlaşdıra bilməyimizdir. Həm də cəlbedici qiymətə yalnız 10 ABŞ dolları.
Unutmayın ki, bu lövhə tam bir pi -nin silinmiş bir versiyası olduğundan bəzi şeylər dəyişdi. Xüsusilə, ethernet jakı ləğv edildi, HDMI konnektoru mini ölçüyə keçdi və dörd USB portu yalnız bir mikro USB tipinə qədər sadələşdirildi. Gəmidə başqa bir mikro USB konnektoru var, ancaq lövhəni gücləndirmək üçündür. Tam ölçülü USB konnektorlarının aradan qaldırılması bəzi çətinliklər yaradır. Yəni klaviatura və siçanı necə bağlaya bilərsiniz? Standart USB periferik qurğular və hublar mikro tipli deyil, A tipli bağlayıcılardan istifadə edir.
Bəs nə edə bilərik?
Başsız gedə bilərik!
Xeyr, biz dəli olmaq fikrində deyilik, ancaq normal birbaşa simli quruluşa alternativ istifadə etmək. Başsız, təhlükəsiz bir qabıq (SSH) şəbəkə bağlantısı istifadə edərək uzaqdan pi -yə "tunel açmaq" deməkdir. Bu layihə üçün WiFi üzərindəki başsız yanaşmadan istifadə edəcəyik. Buna görə də pi sıfırının daha aşağı dəyəri olan pi sıfırının W versiyasını seçməyimizin səbəbi.
VNC adlı bir şeyi istifadə edərək pi -ni başsız rejimdə idarə etməyin başqa bir yolu olduğunu da unutmayın. Kompüterinizdə tam bir virtual qrafik masa üstü təmin etdiyi üçün PC -də çalışan xüsusi VNC proqramına ehtiyac var. Layihəmiz üçün masaüstünə ehtiyac duymuruq (və həqiqətən istəmirik), buna görə də daha sadə SSH metodundan istifadə edəcəyik.
Addım 2: Scotty, daha çox gücə ehtiyacımız var
32x32 LED matris paneli, tək başına bir neçə amper cərəyan ala bilər. Zarafat etmirəm! Bu səbəbdən bu panellərin əksəriyyətində onu gücləndirmək üçün çox güclü görünüşlü elektrik kabelləri var. Xoşbəxtlikdən bizim üçün bu layihə üçün böyük bir enerji təchizatı almağımıza ehtiyac olmayacaq. Ətrafda yatdığımız ehtiyat 5v/2amp microUSB cib telefonu şarj cihazından bütün sistemi gücləndirə bildik. Aşağı cərəyanın səbəbi, nisbətən sadə qrafiklərdən istifadə etməyimiz və buna görə də LED -lərin çoxunu açmamağımızdır. Animasiya və ya video/parlaq qrafika istifadə etməyi düşünürsünüzsə, mütləq ayrı bir enerji təchizatı ilə paneli gücləndirməyi düşünməlisiniz.
Addım 3: Sensorların Yerləşdirilməsi və Proqram təminatı
Bu sistemdə yalnız bir deyil, iki tinyLiDAR istifadə etdiyimizi fərq etdinizmi? Qarajın qurulması diaqramında göstərildiyi kimi, biri maşının qarşısına, digəri isə avtomobilin bir tərəfinə yerləşdirilir.
Yan sensor, avtomobili park edərkən mərkəzdən kənara çıxdığınızı aşkar edəcək və əlbəttə ki, ön tərəf sizə nə vaxt dayanacağınızı söyləyəcək.
32x32 LED displeyi, irəli, sola və ya sağa hərəkət etmək üçün oxları göstərməklə və hələ də nə qədər sürməli olduğunuzu göstərmək üçün rəngli küncləri olan geri sayma ekranı ilə sizə kömək edəcək. Bütün ekran vəziyyətləri üçün qısa videomuza baxın.
Oyun Planı
Bir sözlə, LED sürücüsü üçün hər zaman məşhur olan hzeller C kitabxanasından, idarəetmə kodu üçün Pythondan və sensorlarımızın düzgün I2C nəzarəti üçün pipgpio C kitabxanasından istifadə edirik.
Python, hər hansı bir mətn redaktorunda asanlıqla düzəldə biləcəyiniz çox asan bir yüksək səviyyəli dildir. Normalda SublimeText istifadə edirik və bu layihə üçün skript sənədlərini birbaşa pi üzərində düzəltməyə imkan verən çox faydalı bir FTP plaginindən istifadə etdik. Bu isteğe bağlı bir addımdır, çünki yalnız kodu redaktə etmək istəsəniz lazımdır. Daha ətraflı məlumat bu məqalənin sonunda mövcuddur.
Bütün rpi lövhələri, bildiyiniz kimi, yerli olaraq I2C saat uzanmasını dəstəkləmir. TinyLiDAR sensorlarını idarə etmək üçün bu layihə üçün yenidən pigpio kitabxanasından istifadə etdik, lakin bu dəfə kiçik bir bükülmə ilə …
Çoxlu tinyLiDAR
Bir tinyLiDAR satın aldığınızda, həmişə 0x10 standart qul ünvanına qurulur. Tək bir sensordan istifadə edərkən bu yaxşıdır, ancaq avtobusda birdən çoxunuz varsa 0x10 -a əmr yazsanız və hamısı cavab versə problem ola bilər!
Beləliklə, burada 3 seçimimiz var:
Birincisi, (tinyLiDAR) "R" əmrindən istifadə edərək I2C avtobusuna qoşulmuş bir sensora yeni bir qul ünvanı yaza bilərik. Sonra bunu hər bir sensor üçün təkrarlayın. Bu prosedur üçün hər bir sensoru fiziki olaraq bağlamaq, yazmaq və ayırmaq. tinyLiDAR verilmiş ünvanı yaddaşında saxlayacaq. Ünvan, RESET əmrini verərək təmizləyənə qədər, elektrik dövrəsindən sonra da davam edəcək.
İkinci seçim, IGG kampaniyasında bir uzanma hədəfi olaraq yaratdığımız rahat Auto Assign xüsusiyyətindən istifadə etməkdir. Bu, "AR" əmrini göndərməyi və sonra ilk seçimə bənzər fərdi sensorlar üçün ardıcıl I2C ünvanlarını avtomatik olaraq təyin etmək üçün barmağınızı hər bir sensora göstərməyi nəzərdə tutur, lakin bunu etmək üçün hər bir sensoru fiziki olaraq ayırmaq lazım deyil.
Üçüncü seçim, bu layihədə burada istifadə etdiyimiz və pigpio kitabxanası sayəsində mümkündür. I2C standartını düzgün tətbiq etmək üçün, pigpio GPIO -nu bitbang edir. Buna görə də, demək olar ki, hər hansı bir ehtiyat GPIO pinində ayrı -ayrı I2C avtobusları yarada bilərik.
Buna görə birdən çox LiDAR sensoru üçün kölə ünvanlarını yenidən proqramlaşdırmağa ehtiyac yoxdur. Hər biri üçün ayrı bir avtobusdan istifadə edə bilərik:)
Qeyd edək ki, 100Kbps sürətlə işləyən I2C avtobusu əslində olduqca möhkəmdir. I2C avtobusunu heç bir aktiv təkrarlayıcı komponenti olmayan, tam 25 fut uzaqlıqdakı yan tinyLiDAR sensoruna çıxarmaq üçün sadə köhnə CAT5 ethernet kabelindən istifadə edirik! Sensor tellərinin təfərrüatları yuxarıda göstərilmişdir.
Tamam, kifayət qədər jibber jabber, kodu yükləməyə başlayaq!
Addım 4: Pi qurmaq
Diqqət: pi bir Linux fayl sistemindən istifadə edir, buna görə Linux əsaslı bir sistemdə aşağıdakı addımları yerinə yetirmək daha yaxşıdır. Bunu Windows -da etsəniz SD kartınızı yenidən formatlaya bilərsiniz. Windows 10 PC -də virtual mühitdə işləyən zəhmli və pulsuz Ubuntu 18.04 masaüstündən istifadə etdik, ancaq buna bənzər bir şeyi sınaya bilərsiniz.
Əvvəlcə OS -ni raspberrypi.org saytından yükləməli və sonra microSD kartınıza yazmalısınız. Beləliklə, bu addımları izləyin:
(1) Ubuntuda bura gedin və Raspbian Lite şəklini çəkin. Yükləmələr qovluğunda saxlayın.
(2) Sonra Etcher SD kart yazma proqramını yükləyin. FYI - ana səhifəsindəki Linux versiyası üçün rəsmi Etcher yükləmə bağlantısı bizim üçün işləmədi, buna görə burada təsvir olunan metoddan istifadə etdik:
Xülasə olaraq linkdə təsvir olunan addımlar bunlar idi:
Etcher debian depo əlavə edin:
echo "deb https://dl.bintray.com/resin-io/debian stabil etcher" | sudo tee /etc/apt/sources.list.d/etcher.list
Bintray.com -un GPG açarına etibar edin:
sudo apt-key adv --keyserver keyserver.ubuntu.com-recv düymələri 379CE192D401AB61
Yeniləyin və quraşdırın:
sudo apt-get yeniləməsi
sudo apt-get etcher-electron qurun
Tamamlandıqdan sonra Ubuntu masaüstünüzdən Etcher -i işə sala bilərsiniz. Mənbə faylını (yükləmə qovluğuna qoyduğunuz) soruşacaq. Etcher -də növbəti addım düzgün hədəfi seçməkdir. Etcher mikro SD kartınızı aşkar etmək üçün yaxşı bir iş görür, ancaq burada paranoyak olmalısınız. Düzgün təyinat tapdığını yoxlamaq üçün - Ubuntu fayl araşdırma pəncərəsindəki çıxart düyməsini basaraq microSD kartını çıxarmağa çalışın və Etcher -in içərisində hədəf seçim olaraq yox olduğunu yoxlayın. Sonra yenidən daxil edin və faylı bu microSD kartına yazmaq üçün son mərhələyə davam edin.
Tamamlanana qədər bir müddət gözləyin və sonra davam edin.
Addım 5: WiFi vaxtı
Yaxşı, indi WiFi məlumatlarınızı daxil etməyin vaxtı gəldi.
İpucu: bu məqalədəki məlumatları əmrləri yazmaq əvəzinə hər zaman kopyalaya (Ctrl+C) və (Sağ Klik, Yapıştır) PuTTY terminal ekranına yapışdıra bilərsiniz. Bir çox faydalı Linux əmrləri üçün bu məqalənin sonunu yoxlayın.
Etcher mikro SD karta yazmağı bitirdikdə, yuxarıda göstərildiyi kimi görünən 2 sürücü olacaq. Birinə boot, digərinə rootfs deyilir
Yükləmə qovluğuna girmək və wpa_supplicant.conf adlı bir fayl yaratmaq üçün fayl menecerindən istifadə etməliyik.
Bu addımı atmaq üçün açılış yazıldığı sol tərəfə, sonra ekranın sağ tərəfinə ağ rəngli arxa örtüyə sağ vurub Terminalda Aç'ı seçə bilərsiniz.
Aşağıdakıları yaza biləcəyiniz bir terminal pəncərəsi açılacaq (Windows -da CMD -yə bənzər):
sudo nano wpa_supplicant.conf İpucu: Super İstifadəçi kimi işləyə bilməsi üçün Linux sistem parolunuzu daxil etməlisiniz. Bu tələb olunur, əks halda redaktə etdikdən sonra faylları saxlaya bilməyəcəksiniz
Yuxarıdakı əmr sonra aşağıdakı məlumatları daxil edə biləcəyiniz "nano" mətn redaktorunu işə salacaq:
ölkə = ABŞ
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}
Qeyd: WiFi_SSID və WiFi_Password -u öz WiFi şəbəkə adı və şifrənizlə əvəz etməyi unutmayın.
İşiniz bitdikdə, çıxmaq üçün Ctrl+X düymələrini basın və çıxdıqda fayl yazmaq üçün Bəli cavabını verin.
Növbəti addımımız ssh adlı boş bir fayl yaratmaqdır. Bunu etmək üçün terminal pəncərəsinə aşağıdakıları yazırıq:
ssh -ə toxunun
İndi pi -yə statik bir IP ünvanı verməliyik ki, hər dəfə qoşulmaq istədiyimiz zaman harada olduğunu bilək. Terminal pəncərəsinə aşağıdakıları yazın:
sudo nano /etc/dhcpcd.conf
Bu nano mətn redaktorunu yenidən açmalı və bu mətni faylın altına əlavə edə bilərik:
wlan0 interfeysi
statik ip_address = 192.168.0.statik yönləndiricilər = 192.168.0.1 statik domain_name_servers = 192.168.0.1 8.8.8.8
Qeyd: Bu, şəbəkə prefiksinizin 192.168.0.0 olduğunu ehtimal edir. 192.168.1 və s. Varsa, bunun əvəzinə şəbəkənizi istifadə edin. Domen adı serveri 8.8.8.8 Google üçündür və burada isteğe bağlıdır.
Bağlamaq üçün Terminala 'exit' yazın. Sonra Fayl meneceri pəncərəsinin sol tərəfindəki açılış adının üzərinə sağ vurun və Çıxar seçin.
İndi bu microSD kartını pi -yə qoşa bilərsiniz və pi -ni gücləndirmək üçün microUSB elektrik kabelini qoşa bilərsiniz.
Hər şey yaxşı olarsa, yaşıl LED sabit disk sürücüsünə daxil olduğu kimi bir müddət yanıb -sönəcək və sizi WiFi şəbəkənizə daxil etməlidir. Oturmaq üçün bir dəqiqə vaxt verin və LED -in yaşıl rəngdə olmasını gözləyin.
Hər şeyin işlədiyini yoxlamaq üçün ping etməyə çalışa bilərik.
Buna görə aşağıdakı sətri yazın və cavabı yoxlayın.
ping 192.168.0.200
Ubuntu -da buna bənzər bir şey almalısınız:
ping 192.168.0.200
PING 192.168.0.200 (192.168.0.200) 56 (84) bayt məlumat. 192.168.0.200 -dən 64 bayt: icmp_seq = 1 ttl = 128 zaman = 752 ms 192.168.0.200 -dən 64 bayt: icmp_seq = 2 ttl = 128 zaman = 5.77 ms 192.168.0.200 -dən 64 bayt: icmp_seq = 3 ttl = 128 zaman = 7.33 ms ^C --- 192.168.0.200 ping statistikası --- 3 paket ötürüldü, 3 alındı, 0% paket itkisi, vaxt 2001ms rtt min/avg/max/mdev = 5.777/255.346/752.922/351.839 ms
Nəzərə alın ki, çıxmaq üçün Ctrl+C düymələrini basana qədər ping işləməyə davam edir.
Windows -da belə bir şey almalısınız:
ping 192.168.0.200
192.168.0.200 -ə 32 bayt məlumat ilə ping vurun: 192.168.0.200 -dən cavab verin: bayt = 32 dəfə = 4ms TTL = 64 192.168.0.200 -dən cavab: bayt = 32 dəfə = 5ms TTL = 64 192.168.0.200 -dən cavab: bayt = 32 dəfə = 6ms TTL = 64 192.168.0.200 -dən cavab: bayt = 32 dəfə = 5ms TTL = 64 192.168.0.200 üçün Ping statistikası: Paketlər: Göndərildi = 4, Alındı = 4, İtirilmiş = 0 (0% zərər), Təxmini gediş -dönüş vaxtı milli saniyələrdə: Minimum = 4ms, Maksimum = 6ms, Orta = 5ms
Hamısı yaxşıdır? İrəli…
Addım 6: Giriş
İndi pi ilə əlaqə qurduğumuz üçün ona əmr göndərmək istəyirik. Amma necə? Əlbəttə PuTTY! PuTTY -ni buradan yükləyə bilərsiniz PuTTY -ni qurmaq PuTTY proqramını yüklədikdən sonra pi məlumatlarınız üçün aşağıdakı məlumatları daxil edin:
Host Adı (və ya IP ünvanı): 192.168.0.200 Bağlantı növü: SSHBu profilə Saxlanmış Sessiyaların altında bir ad verin və Saxla vurun. İstədiyiniz hər hansı bir addan istifadə edə bilərsiniz, məsələn "rpizw_200"
Daxil olmaq üçün siyahıdan seçin və Yüklə vurun. Sonra Aç düyməsini basın. Daxil olmaq üçün istifadəçi adını və şifrəni daxil edin:
giriş adı: pi
Defalt parol: moruq
Giriş edərkən PuTTY -də göstərilən bir nümunə sessiya:
kimi daxil olun: pi
[email protected] parol: Linux raspberrypi 4.14.34+ #1110 Mon Apr 16 14:51:42 BST 2018 armv6l Debian GNU/Linux sisteminə daxil olan proqramlar pulsuz proqramdır; hər bir proqram üçün dəqiq paylama şərtləri/usr/share/doc/*/copyright sənədlərində ayrı -ayrı fayllarda təsvir edilmişdir. Debian GNU/Linux, qüvvədə olan qanunun icazə verdiyi ölçüdə Qəti Zəmanət Yoxdur. Son giriş: [tarix və vaxt] 192.168.0 -dan. [İp ünvanı] SSH aktivdir və 'pi' istifadəçisi üçün standart parol dəyişdirilməmişdir. Bu bir təhlükəsizlik riskidir - lütfən 'pi' istifadəçisi olaraq daxil olun və yeni parol təyin etmək üçün 'passwd' yazın.
İlk girişdə, şifrənizi hələ dəyişmədiyiniz barədə xəbərdarlıq edəcək. Güclü, lakin yadda saxlamaq asan olan bir şeyə dəyişdirməlisiniz, buna görə də passwd yazaraq dəyişdirin və göstərişlərə əməl edin.
Bunu yazaraq pi proqramını yeniləməliyik:
sudo apt-get update && sudo apt-get upgrade
Bu, internet bağlantınızdan ehtiyac duyduğu hər hansı bir yeniləməni yükləyəcək. Davam etməsinə icazə verilməsi istənildikdə Bəli cavabını verin və sonra yeniləməyə bir az vaxt verin.
Bu anda, ehtimal ki, LED sürücü kitabxanası ilə pis bir juju olduğu üçün pi üzərindəki səsi də söndürməliyik. Kopyalayın, aşağıdakı sətirləri bir -bir yapışdırın və hər sətirdən sonra enter düyməsini basın:
cd ~
pişik << EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf qara siyahı snd_bcm2835 EOF sudo update-initramfs -u
Çıxış belə olacaq:
pi@moruq: ~ $ cd ~
pi@raspberrypi: ~ $ cat <> qara siyahı snd_bcm2835>> EOF qara siyahısı snd_bcm2835 pi@raspberrypi: ~ $ sudo update -initramfs -u pi@raspberrypi: ~ $
Dəyişikliklərin qüvvəyə minməsi üçün pi -ni yenidən başlatmalıyıq, buna görə aşağıdakıları yazın:
sudo indi yenidən başladın
Əlbəttə ki, pi yenidən başladıqdan sonra PuTTY -ni bağlaya bilərsiniz. Bir dəqiqə sonra yenidən daxil olmağa çalışın.
İndi WinSCP adlı bir qrafik FTP fayl meneceri əldə etməyin vaxtı gəldi. WinSCP -ni buradan yükləyə bilərsiniz
WinSCP, Windows və Ubuntu üzərindəki fayl idarəçisinə çox bənzəyir. Faylları pi -dən asanlıqla sürükləyib buraxa bilərik və siçanın sağ klikiylə direktoriyalar yarada bilərik.
Yüklədikdən sonra pi üçün bir profil qurmalısınız.
WinSCP Quraşdırması Giriş açılır pəncərəsində Yeni Sayt seçin. Sessiya üçün aşağıdakı parametrləri istifadə edin:
Fayl protokolu: SFTP Host adı: 192.168.0.200 İstifadəçi adı: pi Parol: {yuxarıdakı PuTTY addımında defoltu dəyişdiyiniz parol}
Ətraflı Sayt Ayarlarında Ətraf mühitə | keçin Uzaqdan qovluq və Yerli Kataloq ayarı üçün istədiyiniz hər şeyi əldə etmək üçün direktoriyalara /home /pi daxil edin.
Ətraflı Sayt Ayarlarında Ətraf mühitə | keçin Shell və sudo su seçin - Shell açılan siyahısında.
Sonra vurun Saxla.
Aşağıdakı addımları yerinə yetirərkən həm WinSCP, həm də PuTTY -ni açıq saxlayın
PuTTY terminalına gedin və aşağıdakıları daxil edin:
cd ~
Bu bizi pi içindəki ev kataloqumuza aparacaq.
İndi LED sürücü kitabxanasını github -dan tuta bilərik. Ən son kodu istifadə etmək üçün rep proqramını çəkməliyik, buna görə git yardım proqramını quraşdırmalıyıq.
Bunu PuTTY daxil edin:
sudo apt-get install git
Davam etmək üçün Y cavabını verin və internetdən bizim üçün git yükləmək bir neçə saniyə çəkəcək.
Çıxış belə bir şeyə bənzəməlidir:
pi@raspberrypi: ~ $ sudo apt-get install git
Paket siyahıları oxunur… Tamamlandı Bağımlılıq ağacı vəziyyət məlumatları oxundu… Bitti Aşağıdakı əlavə paketlər quraşdırılacaq: git-man liberror-perl Təklif olunan paketlər: git-daemon-run | git-daemon-sysvinit git-doc git-el git-email git-gui gitk gitweb git-arch git-cvs git-mediawiki git-svn Aşağıdakı YENİ paketlər quraşdırılacaq: git git-man liberror-perl 0 təkmilləşdirilmiş, 3 yeni quraşdırılmış, 0 çıxarmaq üçün və 0 təkmilləşdirilməmişdir. 4, 848 kB arxiv almaq lazımdır. Bu əməliyyatdan sonra 26.4 MB əlavə disk sahəsi istifadə ediləcək. Davam etmək istəyirsiniz? [Y/n] y Alın: 1 https://muug.ca/mirror/raspbian/raspbian streç/main armhf liberror-perl all 0.17024-1 [26.9 kB] Alın: 2 https://muug.ca/mirror/ raspbian/raspbian streç/main armhf git-man all 1: 2.11.0-3+deb9u3 [1, 433 kB] Alın: 3 https://muug.ca/mirror/raspbian/raspbian streç/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] 5s-də (878 kB/s) 4, 848 kB alındı Daha əvvəl seçilməmiş liberror-perl paketinin seçilməsi.(Verilənlər bazası oxunur… Hal-hazırda quraşdırılmış 34363 fayl və qovluq.) Açılmağa hazırlaşır…/liberror-perl_0.17024-1_all.deb… Libror-perl (0.17024-1) açılır… Daha əvvəl seçilməmiş git-man paketi seçilir. Açmağa hazırlaşırıq…/git-man_1%3a2.11.0-3+deb9u3_all.deb… git-man paketinin açılması (1: 2.11.0-3+deb9u3)… Daha əvvəl seçilməmiş paket git seçilir. Paketdən çıxarmağa hazırlaşırıq…/git_1%3a2.11.0-3+deb9u3_armhf.deb… Git paketdən çıxarılır (1: 2.11.0-3+deb9u3)… git-man qurulur (1: 2.11.0-3+deb9u3)… Quraşdırılır liberror-perl (0.17024-1)… man-db (2.7.6.1-2) üçün tətiklərin işlənməsi … git (1: 2.11.0-3+deb9u3) qurulması…
İndi WinSCP -ə qayıdın və /home /pi qovluğuna gedin. Sonra bu WinScp pəncərəsinin sağ tərəfində sağ vurun və "park" adlı yeni bir kataloq yaratmağı seçin.
PuTTY ekranında, pi -də yeni bir qovluq yaratdığınızı təsdiqləmək üçün ls yaza bilərsiniz. Sonra bunu daxil edin:
cd p [TAB]İpucu: TAB düyməsinə basmaq sizin üçün qismən adı avtomatik tamamlayacaq
Bu qovluğa daxil olmaq üçün enter düyməsini basın.
pi@raspberrypi: ~ $ cd dayanacaq/
pi@raspberrypi: ~/park $ ls
İndi PuTTY -də aşağıdakıları daxil edərək sürücü fayllarını əldə edə bilərik:
git klonu
Çıxış belə bir şeyə bənzəyəcək:
pi@raspberrypi: ~/park $ git clone
'Rpi-rgb-led-matrix' -ə klonlaşdırmaq… uzaqdan: Sayma obyektləri: 3740, tamamlandı. uzaq: Cəmi 3740 (delta 0), təkrar istifadə olunan 0 (delta 0), yenidən istifadə olunan 3740 Alınan obyektlər: 100% (3740/3740), 20.61 MiB | 1.32 MiB/s, tamamlandı. Deltaların həlli: 100% (2550/2550), tamamlandı.
İndi bu yeni 'rpi-rgb-led-matrix' qovluğuna girərək make əmrini yazaraq LED sürücü fayllarını tərtib edin:
cd r [TAB]
etmək Və lövhəmizdə belə göründü
pi@raspberrypi: ~/park $ cd rpi-rgb-led-matrix/
pi@raspberrypi: ~/parking/rpi-rgb-led-matrix $ make -C./lib make [1]: '/home/pi/parking/rpi-rgb-led-matrix/lib' g ++ qovluğuna daxil olun- I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular" -Wextra -Wno -unused un -parameter -fno -exceptions -c -o gpio.o gpio.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"müntəzəm" -Wextra -Wno -unused -parameter -fno -exceptions -c -o led -matrix.o led-matrix.cc g ++ -I../ include - Divar -O3 -g -fPIC -DDEFAULT_HARDWARE = '"müntəzəm' '-Wextra -Wno -unused -parameter -fno -exceptions -c -o options -initialize.o options-initialize.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"müntəzəm' '-Wextra -Wno -unused -parameter -fno -exceptions -c -o framebuffer.o framebuffer.cc g ++ -I../ include -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE = '"müntəzəm' '-Wextra -Wno -unused -parameter -fno -exceptions -c -o thread.o thread.cc g ++ -I../ include -W3 -g -fPIC -DDEFAULT_HARDWARE =' "müntəzəm" '-Wextra -No -istifadə edilməmiş -fno -istisnalar -c -o bdf -font.o bdf -fon t.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused -parameter -fno -istisnalar -c -o qrafik.o qrafik.cc g ++ - I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"regular"' -Wextra -Wno -unused un -parameter -fno -exceptions -c -o transformator.o transformer.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"müntəzəm' '-Wextra -Wno -unused -parameter -fno -istisnalar -c -o led -matrix -co led-matrix-c.cc cc -I../ -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"müntəzəm" -Wextra -Wno -unused -parameter -c -o hardware -mapping.o hardware -mapping.c g ++ -I../ include -Wall -O3 daxildir -g -fPIC -DDEFAULT_HARDWARE = '"müntəzəm' '-Wextra -Wno -unused -parameter -fno -exceptions -c -o content -streamer.o content-streamer.cc g ++ -I../ include -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE = '"müntəzəm' '-Wextra -Wno -unused -parameter -fno -exceptions -c -o pixel -mapper.o pixel-mapper.cc g ++ -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE = '"nizamlı' '-Wextra -Wno -unused -parameter -fno -excep tions -c -o multiplex-mappers.o multiplex-mappers.cc arcs librgbmatrix.a gpio.o led-matrix.o options-initialize.o framebuffer.o thread.o bdf-font.o qrafik.o transformator.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 variantları-initialize.o framebuffer.o thread.o bdf-font.o qrafika.o transformator.o led-matrix-co hardware-mapping.o məzmun-streamer.o pixel-mapper.o multiplex-mappers. o -lpthread -lrt -lm -lpthread etmək [1]: '/home/pi/parking/rpi -rgb -led -matrix/lib' qovluğundan çıxmaq -C nümunələri -api -istifadə etmək [1]: Kataloqa daxil olmaq ' /home/pi/parking/rpi -rgb -led -matrix/örnekler -api -use 'g ++ -I../include -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o demo -main. o demo-main.cc etmək -C../lib etmək [2]: '/home/pi/parking/rpi-rgb-led-matrix/lib' kataloquna daxil olmaq [2]: '/home/pi-dən çıxmaq /park/rpi-rgb-led-matrix/lib 'g ++ demo-main.o -o demo -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ daxildir -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o minimal -example.o minimal-example.cc g ++ minimal -example.o - o minimal -nümunə -L../ lib -lrgbmatrix -lrt -lm -lpthread cc -I../ daxildir -Wall -O3 -g -Wextra -Wno -unused -parameter -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 - parametri -c -o mətn -nümunə.o mətn -nümunəsi.cc g ++ mətn -nümunəsi.o -o mətn -nümunəsi -L../ lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ daxildir -Duvar - O3 -g -Wextra -When-unused-parameter -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../ daxildir -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o clock.o clock.cc g ++ clock.o -o clock -L.. /lib -lrgbmatrix -lrt -lm -lpthread g ++ -I../ daxil -Wall -O3 -g -Wextra -Wno -unused -parameter -c -o ledcat.o ledcat.cc g ++ le dcat.o -o ledcat -L../ lib -lrgbmatrix -lrt -lm -lpthread make [1]: '/home/pi/parking/rpi -rgb -led -matrix/örnekler -api -istifadə' pi qovluğundan çıxın @raspberrypi: ~/parking/rpi-rgb-led-matrix $
Növbəti addımımız RGB matris kitabxanasını Pythona bağlamaq olacaq. Bu layihə üçün standart Python 2 -dən istifadə etdik. Beləliklə, bu bağlamanı yerinə yetirmək üçün əvvəlki kimi bir dəfə aşağıdakı sətirləri daxil edirik:
sudo apt-get update && sudo apt-get install python2.7-dev python-yastıq -y
build-python sudo etmək install-python etmək
Qeyd: İkisi işləyərkən ortaya çıxan '-Qəti-prototip' ilə bağlı bir xəbərdarlığı etibarlı şəkildə göz ardı edə bilərsiniz. Yarat əmrlərinin işə salınması bir neçə dəqiqə çəkir və məşğul olduqları müddətdə heç nə demirlər. Buna görə qorxma - pi tezliklə qayıtmalıdır;)
İşdə ilk ifadənin qismən çıxışı:
'qrafik' uzantısı yaratmaq
arm -linux -gnueabihf -gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototipləri -fno -ciddi -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: xəbərdarlıq: '-Wstrict-prototypes' əmr xətti seçimi C/ObjC üçün keçərlidir, lakin C ++ üçün deyil arm-linux-gnueabihf-g ++ -pthread -shared -Wl, -O1 -Wl, -Bsymbolik -funksiyaları -Wl, -z, relro -fno -ciddi -aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict -prototipləri -Gün -vaxt -D_FORTIFY_SOURCE = 2 -g -fdebug -prefiksi -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 make [1]: '/home/pi/parking/rpi-rgb-led-matrix/bindings/python' pi@raspberrypi qovluğundan çıxırıq: ~/parking/rpi-rgb-led-matrix $
Sonra pigpio C kitabxanasını quraşdıracağıq. Bunu düzgün etmək üçün mənbədən hazırlamalıyıq, sadəcə aşağıdakı sətirləri daxil edin:
cd ~
sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip pigpio.zip cd PIGPIO -nu sudo etmək rm pigpio.zip qurmaq
Yuxarıdakı quraşdırma təxminən 3 dəqiqə çəkir.
İndi Python layihə sənədlərimizi əldə etməyin vaxtı gəldi. Aşağıdakıları daxil edin:
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
Sonra onu yerinə yetirmək üçün aşağıdakıları yazın:
sudo python parkı.py
Ancaq bunu indi etmək lazım deyil, çünki hələ də hamısını bağlamalıyıq …
Addım 7: Tellər
Daha əvvəl də qeyd etdiyimiz kimi, LED panelini pi -yə güc verən eyni güc adapterindən istifadə etdik. Bunu etmək üçün böyük qırmızı və qara telləri kişi başlıq sancaqlarına bağlamalı olacaqsınız ki, onlar 40pin pi konnektorunun 2 və 9 -cu pinlərinə bağlansın.
İndi gücünü pi -yə ayırın və yuxarıdakı şəkil diaqramına uyğun olaraq LED panelini bağlayın. 2 pinini indiyə qədər əlaqəsiz saxlayın.
Qeyd: LED matris paneli bəzən əyləncəli bir vəziyyətdə aça bilər. Bu baş verərsə, hansı gücə malik olmasından asılı olmayaraq enerji təchizatını ciddi şəkildə aşağı sala bilər. Bunu 4 amperdən artıq təmin edə bilən tezgah təchizatımızın inkişafı zamanı müşahidə etdik. Bunun həlli əvvəlcə pi kodunu işə salmaq və sonra LED panelini gücləndirmək üçün pin 2 -ni bağlamaqdır. Təsadüfi LED vəziyyətlərini boşaltdığı üçün bu şəkildə panel aşağı gücdə olmalıdır. LED panelimiz üçün sakit cərəyan (bütün LEDlər sönmüş) 5v -də yalnız 50mA idi.
CAT5
25 fut CAT5 ethernet kabeli istifadə etdik və bir ucunda pi başlıq pinlərinə taxmaq və digər tərəfdəki GROVE bağlayıcı pinlərini qəbul etmək üçün dəyişdirdik ki, yan tinyLiDAR sensorumuzu yerləşdirək. Yuxarıdakı fotoşəkillər bu kabeli dəyişikliklərdən əvvəl və sonra göstərir. Diaqramlarla əlaqəli olmadığı üçün başlıq pin tellərinin rənglərinə əhəmiyyət verməyin. Sadəcə 3 -cü addımda daha əvvəl göstərilən şəkilli əlaqə diaqramlarında göstərildiyi kimi sisteminizi bağladığınızdan əmin olun.
Addım 8: Yandırın
Müvafiq ilkin açılış ardıcıllığı, microUSB şarj cihazını pi -yə qoşmaq və ölçmə apardıqlarını göstərən tinyLiDAR sensorlardakı mavi LED -lərin sürətlə yanıb sönməsini gözləmək olmalıdır. Bu, kodun düzgün işlədiyini sübut edir.
Sonra LED panel təchizatı üçün pin 2 -ni yavaş -yavaş bağlaya bilərsiniz. Bunu edərkən səhv etməmək üçün diqqətli olun! LED panelində bir neçə donmuş parlaq LED göstərilirsə, ehtimal ki, parıldayır, buna görə microUSB gücünü pi -dən çıxarın və yenidən açma ardıcıllığını sınamaq üçün bir neçə saniyə gözləyin.
Kodu işə salmaq üçün aşağıdakıları daxil edin:
cd/home/pi/parking/rpi-rgb-led-matrix/bindings/python/nümunələri
sudo python parkı.py
Hər şey yaxşı gedirsə, videoda göstərilənə bənzər bir ekran almalısınız.
Hansı limitləri istifadə etdiyimizi başa düşmək üçün parking.py koduna tez baxın. Ön sensor üçün standart parametr 200 mm -dir. Sensor aralığı 11 mm -dən 2 m -ə qədər olduğu üçün nom_parked_Front məsafəsini 200 mm və ya daha yüksəkdə saxlamaq yaxşı bir fikirdir. Yan sensor nom_parked_Side 600 mm -ə təyin edilmişdir. Bu konfiqurasiya seçimlərini göstərən Python kodu üçün yuxarıdakı şəkilə baxın.
Hər şey işləyirsə, davam edə və sistemi qarajınıza quraşdıra və lazım olduqda yuxarıdakı parametrləri tənzimləyə bilərsiniz. Pi Wi -Fi -ya qoşulduğundan, hələ də quraşdırılarkən xüsusi qaraj quruluşunuz üçün ehtiyac duyduğunuz məsafəyə girə bilərsiniz.
Bu indi mi?
Niyə bəli, bəli belədir! - Xoşbəxt rəqs etmək vaxtıdır:)
Oxuduğunuz üçün təşəkkür edirik və yeni park köməkçinizdən zövq alın!
Addım 9: İsteğe Bağlı Adım və Faydalı Əmrlər
İsteğe bağlı addım - Yüksək Mətn üçün FTP əlavəsi
Python skript fayllarını birbaşa pi üzərində redaktə etmək üçün Wbond by Sublime SFTP adlı FTP addonunu quraşdıra bilərik. Buradakı təlimatları izləyərək bu addonu yükləyə bilərsiniz
Bu addonu qurmaq üçün Fayl | altında FTP etimadnaməsini konfiqurasiya etməliyik SFTP/FTP | Server qurma… səhifəsi.
Quraşdırma üçün istifadə etdik:
"type": "sftp", "sync_down_on_open": true, "sync_same_age": true, "host": "192.168.0.200", "user": "pi", "password": "YOUR_RPI_PASSWORD_HERE", "liman": "22", "remote_path": "/home/pi/", "file_permissions": "664", "dir_permissions": "775", Ctrl+S və ya Fayl | istifadə edin Bu məlumatı saxlamaq üçün saxla. Bu konfiqurasiyaya zəng etmək üçün bir ad istənəcək. Biz sadəcə "rpizw_0_200" adlandırdıq
İndi SublimeText -dən pi -yə daxil olmaq üçün Fayl | SFTP/FTP | Serverə baxın…
Açılan seçimlər siyahısından seçin. Yuxarıda göstərdiyiniz adla bir profil seçmək istəyəcəksiniz;) Qovluqlarda gəzmək və istədiyiniz faylı redaktə etmək üçün göstərişlərə əməl edin.
Faydalı Əlavələr
Pi -də istifadə etmək üçün faydalı Linux əmrləri.
Pi -ni çıxarmadan əvvəl, microSD kartınızda fayl zədələnməməsi üçün hər zaman onu bağladığınızdan əmin olun. Bu əmri daxil edin:
sudo indi bağlanır
və elektrik enerjisini çıxarmadan əvvəl yaşıllığın sönməsini gözləyin. Eyni şəkildə yenidən başlatmaq üçün daxil edə bilərsiniz:
sudo indi yenidən başladın
Bir qovluqdakı faylları siyahıya salmaq üçün bunu istifadə edin:
ls
Digər faydalı Linux əmrlərini burada tapa bilərsiniz
Tövsiyə:
Arduino Avtomobil Ters Park Diqqət Sistemi - Addım -addım: 4 addım
Arduino Avtomobil Ters Park Diqqət Sistemi | Addım-addım: Bu layihədə, Arduino UNO və HC-SR04 Ultrasonik Sensoru istifadə edərək sadə bir Arduino Car Reverse Park Sensor Dövrü dizayn edəcəyəm. Bu Arduino əsaslı Avtomobil Ters siqnal sistemi Avtonom Naviqasiya, Robot Aralığı və digər diapazonlarda istifadə edilə bilər
NodeMCU ESP8266 istifadə edərək IoT əsaslı Ağıllı Park Sistemi: 5 addım
NodeMCU ESP8266 istifadə edərək IoT əsaslı Ağıllı Park Sistemi: Hal -hazırda sıxlıq olan ərazilərdə dayanacaq tapmaq çox çətindir və onlayn olaraq park yerləri haqqında məlumat əldə etmək üçün heç bir sistem yoxdur. Telefonunuzda dayanacaq yerinin mövcudluğu haqqında məlumat əldə edə biləcəyinizi və yoxlamaq üçün ətrafında dolaşmadığınızı düşünün
Arduino Park köməkçisi - Maşınınızı hər dəfə düzgün yerdə park edin: 5 addım (şəkillərlə)
Arduino Park köməkçisi - Maşınınızı hər dəfə düzgün yerdə park edin: Bu layihədə sizə Arudino istifadə edərək öz park köməkçinizi necə quracağınızı göstərəcəyəm. Bu dayanacaq köməkçisi avtomobilinizə olan məsafəni ölçür və LCD ekranın oxunması və LED -dən istifadə edərək onu düzgün yerə park etməyinizə kömək edir
IOT əsaslı ağıllı park: 7 addım
IOT əsaslı ağıllı park: Tanmay Pathak və Utkarsh Mishra tərəfindən. Tələbələr @ Beynəlxalq İnformasiya Texnologiyaları İnstitutu, Haydarabad (IIITH) ÖZETİl IOT əsaslı ağıllı park sistemini uğurla tətbiq etdik. Fərdi qovşaqların (yaxınlıq sensorlarının) köməyi ilə heç vaxt
DIY - Arduino əsaslı park köməkçisi V2: 6 addım
DIY - Arduino əsaslı park köməkçisi V2: həyat sizə banan verəndə !!!!! Zərurət ixtiraların anasıdır və mən bu həqiqəti inkar etməyəcəyəm. Açığını deyim ki, bu yeni evə köçdüyümüzdən bəri qaraj divarımıza 2 -ci dəfə vurdum. Budur, heç bir şey olmayacaq