İçindekiler:
- Adım 1: Pi Zero W nedir?
- Adım 2: Scotty, Daha Fazla Güce İhtiyacımız Var
- Adım 3: Sensör Yerleştirme ve Yazılım
- Adım 4: Pi'yi Ayarlama
- Adım 5: WiFi Zamanı
- Adım 6: Oturum Açma
- Adım 7: Kablolar
- Adım 8: Aydınlatın
- 9. Adım: İsteğe Bağlı Adım ve Yardımcı Komutlar
Video: Pi Tabanlı Park Yardım Sistemi: 9 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:20
Selam! İşte tek bir öğleden sonra yapabileceğiniz ve ardından günlük olarak kullanabileceğiniz harika bir küçük proje. Raspberry Pi Zero W'yi temel alır ve arabanızı her zaman mükemmel bir şekilde park etmenize yardımcı olur.
İşte ihtiyacınız olacak parçaların tam listesi:
- Raspberry Pi Zero W (bu yazımızda buna 'rpi' veya 'pi' diyeceğiz)
- Pi OS için 4 GB veya daha büyük mikro SD kart
- İki tinyLiDAR Uçuş Süresi mesafe sensörü modülü
- 32x32 RGB LED Panel (bunun için farklı nokta aralıklarına sahip birçok üretici var, örneğin Adafruit 1484 veya benzerini kullanabilirsiniz, Google'da '32x32 LED Matrix' aramanız yeterli). Panelimiz 6 mm'lik bir adıma sahipti.
- 25 fit CAT5 kablosu
- yaklaşık 22 renkli erkekten erkeğe başlık pin atlama teli
- 5v 2Amp microUSB güç kaynağı (cep telefonu şarj cihazı)Her şey hazır mı? Hadi gidelim!
TL; DR Özeti
- Rpi için Raspbian Lite OS'yi indirin
- Statik bir IP ile WiFi üzerinden başsız çalışacak şekilde pi'yi yapılandırın
- PC geliştirme ortamınızı PuTTY, WinSCP ve isteğe bağlı olarak SublimeText w/ FTP eklentisi ile kurun
- LED panel sürücüsünü indirin, oluşturun ve bağlayın
- Pigpio'yu indirin ve yükleyin
- Python kodumuzu indirin
- 32x32 LED ekran panelini bağlayın
- Yan tinyLiDAR sensörü için CAT5 uzatma kablosunu yapın
- İsteğe bağlı adım (ancak yalnızca ileri düzey kullanıcılar için): Her şey çalışırken hızlı bir mutlu dans yapın;)
Adım 1: Pi Zero W nedir?
Ahududu Pi'yi şüphesiz duymuşsunuzdur ama pi 'Sıfır W' nedir?
Raspberry Pi Zero ve Zero W, Pi ailesine daha yeni eklenenler olup, IoT ve diğer düşük maliyetli gömülü uygulamalar için daha fazla anlam ifade ediyordu. Orijinal pi kartının soyulmuş versiyonlarıdır, ancak yine de güçlü bir 1GHz işlemciye sahiptirler. İşte tüm modellerin iyi bir karşılaştırması.
Burada diğer kontrolör kartlarına göre Pi Zero W'yi seçmemizin avantajı, hızlı C/C++ LED panel sürücülerini kullanırken onu daha üst seviye Python dilinde kolayca programlayabilmemizdir. Aynı zamanda sadece 10 USD'lik cazip bir fiyata sahip.
Bu pano, tam bir pi'nin soyulmuş bir versiyonu olduğu için bazı şeylerin değiştiğini unutmayın. Özellikle ethernet jakı ortadan kaldırıldı, HDMI konektörü mini boyuta değiştirildi ve dört USB bağlantı noktası tek bir mikro USB tipine indirgendi. Yerleşik başka bir mikro USB konektörü var, ancak bu yalnızca karta güç sağlamak için. Tüm tam boyutlu USB konektörlerinin ortadan kaldırılması bazı karmaşıklıkları beraberinde getirir. Yani, bir klavye ve fareyi nasıl bağlayabilirsiniz? Standart USB çevre birimleri ve hub'lar, mikro tür değil A Tipi konektörler kullanır.
Öyleyse ne yapabiliriz?
Başsız gidebiliriz!
Hayır, delirmek istemiyoruz, normal doğrudan kablolu kuruluma bir alternatif kullanmak istiyoruz. Headless, güvenli bir kabuk (SSH) ağ bağlantısı kullanarak uzaktan pi'ye "tünel açmak" anlamına gelir. Bu proje için WiFi üzerinden başsız yaklaşımı kullanacağız. Bu nedenle, daha da düşük maliyetli pi sıfır yerine pi sıfırın W versiyonunu seçmemizin nedeni budur.
Ayrıca, VNC adlı bir şey kullanarak pi'yi başsız modda çalıştırmanın başka bir yolu olduğunu unutmayın. PC'nizde tam bir sanal grafik masaüstü sağladığından, PC'nizde çalışan özel VNC yazılımına ihtiyaç duyar. Projemiz için masaüstüne ihtiyacımız yok (ve gerçekten istemiyoruz), bu yüzden daha basit SSH yöntemine bağlı kalacağız.
Adım 2: Scotty, Daha Fazla Güce İhtiyacımız Var
32x32 LED matrix panel tek başına birkaç amper akım alabilir. Şaka yapmıyorum! Bu yüzden bu panellerin çoğu, ona güç sağlamak için bazı ağır görünümlü güç kabloları içerir. Neyse ki bizim için bu proje için büyük bir güç kaynağına ihtiyacımız olmayacak. Tüm bu sisteme sadece ortalıkta yatan yedek bir 5v/2amp microUSB cep telefonu şarj cihazından güç verebildik. Daha düşük akımın nedeni, nispeten basit grafikler kullanmamız ve bu nedenle LED'lerin çoğunu açmamamızdır. Animasyon yapmayı veya video/parlak grafikler kullanmayı düşünüyorsanız, panele ayrı bir güç kaynağından güç vermeyi kesinlikle düşünmelisiniz.
Adım 3: Sensör Yerleştirme ve Yazılım
Bu sistemde sadece bir tane yerine iki minikLiDAR kullandığımızı fark ettiniz mi? Garaj kurulum şemasında gösterildiği gibi, biri arabanın önüne, diğeri ise arabanın bir yanına yerleştirilir.
Yan sensör, aracı park ettiğinizde merkezden saparsanız algılar ve elbette öndeki sensör size ne zaman duracağınızı söyler.
32x32 LED ekran, ileri, sola veya sağa hareket etmek için okları ve daha ne kadar sürmeniz gerektiğini gösteren renkli köşeleri olan bir geri sayım ekranı göstererek size yardımcı olacaktır. Tüm görüntü durumları için kısa videomuza bir göz atın.
Oyun planı
Özetle, LED sürücüsü için her zaman popüler olan hzeller C kitaplığını, kontrol kodu için Python'u ve sensörlerimizin uygun I2C kontrolü için pipgpio C kitaplığını kullanıyoruz.
Python, herhangi bir metin düzenleyicide kolayca düzenleyebileceğiniz, süper kolay, üst düzey bir dildir. Normalde SublimeText kullanıyoruz ve bu proje için komut dosyalarını doğrudan pi üzerinde düzenlememize izin veren çok kullanışlı bir FTP eklentisi de kullandık. Bu, yalnızca kodu düzenlemek istiyorsanız gerekli olduğundan isteğe bağlı bir adımdır. Daha fazla ayrıntı bu makalenin sonunda mevcuttur.
Tüm rpi kartları, bildiğiniz gibi, doğal olarak I2C saat genişletmeyi desteklemez. Bu proje için minikLiDAR sensörlerini kontrol etmek için pigpio kütüphanesini tekrar kullandık ama bu sefer hafif bir bükülme ile…
Birden çok tinyLiDAR
Bir tinyLiDAR satın aldığınızda, her zaman varsayılan bağımlı adres olan 0x10'a ayarlanır. Bu, tek bir sensör kullandığınızda iyidir, ancak otobüste birden fazla varsa, 0x10'a bir komut yazarsanız ve hepsi yanıt verirse sorun olabilir!
Yani burada 3 seçeneğimiz var:
İlk olarak (tinyLiDAR) "R" komutunu I2C bus'a bağlı bir sensöre yeni bir slave adresi yazmak için kullanabiliriz. Ardından bunu her sensör için tekrarlayın. Bu prosedür için her sensörün fiziksel olarak takılması, yazılması ve çıkarılması. tinyLiDAR, verilen adresi yerleşik kalıcı belleğinde saklayacaktır. Adres, siz RESET komutunu vererek temizleyene kadar güç açıldıktan sonra bile devam edecektir.
İkinci seçenek, IGG kampanyasında bir uzatma hedefi olarak oluşturduğumuz kullanışlı Otomatik Atama özelliğini kullanmaktır. Bu, "AR" komutunu göndermeyi ve ardından ilk seçeneğe benzer şekilde bireysel sensörlere otomatik olarak sıralı I2C adresleri atamak için parmağınızı her bir sensöre ayrı ayrı göstermeyi içerir, ancak bunu yapmak için her bir sensörün fiziksel olarak bağlantısını kesmeniz gerekmez.
Üçüncü seçenek, bu projede kullandığımız seçenek ve pigpio kitaplığı sayesinde mümkün. I2C standardını düzgün bir şekilde uygulamak için pigpio, GPIO'yu bit vurur. Bu nedenle, hemen hemen her çift yedek GPIO pininde kolayca ayrı I2C veriyolları oluşturabiliriz.
Bu nedenle, çoklu LiDAR sensörleri için bağımlı adresleri yeniden programlamaya gerek yoktur. Her biri için ayrı bir otobüs kullanabiliriz:)
100Kbps'de çalışan I2C veri yolunun aslında oldukça sağlam olduğunu unutmayın. I2C veri yolunu, herhangi bir aktif tekrarlayıcı bileşeni olmadan tam 25 fit uzaktaki yan tinyLiDAR sensörüne çalıştırmak için düz eski CAT5 ethernet kablosu kullanıyoruz! Sensör kablolama detayları yukarıda gösterilmiştir.
Pekala, yeterince saçmalama, hadi kodu indirmeye başlayalım!
Adım 4: Pi'yi Ayarlama
Dikkat: Pi, bir Linux dosya sistemi kullanır, bu nedenle aşağıdaki adımları Linux tabanlı bir sistemde gerçekleştirmek en iyisidir. Bunu Windows'ta yaparsanız SD kartınızı yeniden biçimlendirebilirsiniz. Windows 10 PC'de sanal bir ortamda çalışan harika ve ücretsiz Ubuntu 18.04 masaüstünü kullandık ancak benzer bir şey deneyebilirsiniz.
Önce işletim sistemini raspberrypi.org'dan indirmeniz ve ardından microSD kartınıza yazmanız gerekecek. Bu yüzden şu adımları izleyin:
(1) Ubuntu'da buraya gidin ve Raspbian Lite görüntüsünü alın. İndirilenler klasörünüze kaydedin.
(2) Ardından Etcher SD kart yazma yardımcı programını indirin. Bilginize - ana sayfalarındaki Linux sürümü için resmi Etcher indirme bağlantısı bizim için çalışmadı, bu yüzden burada açıklanan yöntemi kullandık:
Özetle, bağlantıda açıklanan adımlar şunlardı:
Etcher debian deposunu ekleyin:
echo "deb https://dl.bintray.com/resin-io/debian kararlı dağlayıcı" | sudo tee /etc/apt/sources.list.d/etcher.list
Bintray.com'un GPG anahtarına güvenin:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 379CE192D401AB61
Güncelleyin ve yükleyin:
sudo apt-get güncellemesi
sudo apt-get install etcher-elektron
Tamamlandığında, devam edip Etcher'ı Ubuntu masaüstünüzden başlatabilirsiniz. Sizden (indirilenler klasörüne koyduğunuz) kaynak dosyayı isteyecektir. Etcher'da bir sonraki adım doğru hedefi seçmektir. Etcher, mikro SD kartınızı tespit etme konusunda iyi bir iş çıkarıyor ancak burada paranoyak olmalısınız. Uygun hedefi bulduğunu doğrulamak için - Ubuntu dosya gezgini penceresinde çıkar'ı tıklayarak microSD kartı çıkarmayı deneyin ve Etcher'ın içindeki hedef seçenek olarak kaybolduğunu doğrulayın. Ardından tekrar takın ve dosyayı bu microSD karta yazmak olan son adıma geçin.
Tamamlanana kadar bir süre bekleyin ve ardından devam edin.
Adım 5: WiFi Zamanı
Tamam, şimdi WiFi ayrıntılarınızı girme zamanı.
İpucu: Komutları yazmak yerine bu makaledeki bilgileri her zaman kopyalayıp (Sağ Tıkla, Yapıştır) PuTTY terminal ekranına yapıştırabilirsiniz. Birkaç yardımcı Linux komutu için de bu makalenin sonuna bakın.
Etcher mikro SD karta yazmayı bitirdiğinde, yukarıda gösterildiği gibi 2 sürücü belirecektir. Biri boot, diğeri rootfs olarak adlandırılır.
Boot klasörüne girip wpa_supplicant.conf adında bir dosya oluşturmak için dosya yöneticisini kullanmamız gerekiyor.
Bu adımı yapmak için, sadece önyükleme yazan sol tarafa tıklayabilir ve ardından ekranın sağ tarafında beyaz arka plana sağ tıklayıp Terminalde Aç'ı seçebilirsiniz.
Bu, aşağıdakileri yazabileceğiniz bir terminal penceresi (Windows'taki CMD'ye benzer) açacaktır:
sudo nano wpa_supplicant.conf İpucu: Süper Kullanıcı olarak çalışabilmesi için Linux sistem parolanızı girmeniz gerekir. Bu gereklidir, yoksa düzenlemeyi tamamladığınızda dosyaları kaydedemezsiniz.
Yukarıdaki komut daha sonra aşağıdaki bilgileri girebileceğiniz "nano" metin düzenleyicisini başlatacaktır:
ülke = ABD
ctrl_interface = DIR = /var/run / wpa_supplicant GROUP = netdev update_config = 1 ağ = { ssid = "WiFi_SSID" scan_ssid = 1 psk = "WiFi_Password" key_mgmt = WPA - PSK }
Not: WiFi_SSID ve WiFi_Password'ü kendi WiFi ağ adınız ve parolanızla değiştirmeyi unutmayın.
İşiniz bittiğinde, çıkmak için Ctrl+X'i tıklamanız ve çıkışta dosyayı yazmak için Evet'i yanıtlamanız yeterlidir.
Bir sonraki adımımız ssh adında boş bir dosya oluşturmak. Bunu yapmak için terminal penceresine aşağıdakini yazmamız yeterlidir:
ssh'ye dokunun
Şimdi pi'mize statik bir IP adresi vermemiz gerekiyor, böylece ona her bağlanmak istediğimizde nerede olduğunu biliyoruz. Terminal penceresine şunu yazın:
sudo nano /etc/dhcpcd.conf
Bu, nano metin düzenleyiciyi tekrar açmalıdır ve bu metni dosyanın altına ekleyebiliriz:
arayüz wlan0
statik ip_adresi=192.168.0.statik yönlendiriciler=192.168.0.1 statik etki alanı_adı_sunucuları=192.168.0.1 8.8.8.8
Not: Bu, ağ önekinizin 192.168.0 olduğunu varsayar. 192.168.1 vb. varsa, bunun yerine ağınızı kullanın. Alan adı sunucusu 8.8.8.8 Google içindir ve burada isteğe bağlıdır.
Kapatmak için Terminal'e 'exit' yazın. Ardından, Dosya yöneticisi penceresinin sol tarafındaki önyükleme adını sağ tıklayın ve Çıkar'ı seçin.
Artık bu microSD kartı pi'nize takabilir ve pi'nize güç sağlamak için microUSB güç kablosunu takabilirsiniz.
Her şey yolunda giderse, yeşil LED, bir sabit disk sürücüsüne erişiyormuş gibi bir süre yanıp söner ve WiFi ağınıza giriş yapmanız gerekir. Yerleşmesi için yaklaşık bir dakika verin ve LED'in sabit yeşil olmasını bekleyin.
Her şeyin çalıştığını doğrulamak için ping atmayı deneyebiliriz.
Bu yüzden sadece aşağıdaki satırı yazın ve bir yanıt olup olmadığını kontrol edin.
192.168.0.200
Ubuntu'da buna benzer bir şey almalısınız:
192.168.0.200
PING 192.168.0.200 (192.168.0.20) 56(84) bayt veri. 192.168.0.200'den 64 bayt: icmp_seq=1 ttl=128 süre=752 ms 192.168.0.200'den 64 bayt: icmp_seq=2 ttl=128 süre=5.77 ms 192.168.0.200'den 64 bayt: icmp_seq=3 ttl=128 süre=7.33 ms ^C --- 192.168.0.200 ping istatistikleri --- 3 paket iletildi, 3 paket alındı, %0 paket kaybı, zaman 2001ms rtt min/ort/maks/mdev = 5.777/255.346/752.922/351.839 ms
Çıkmak için Ctrl+C'ye basana kadar ping'in çalışmaya devam ettiğini unutmayın.
Windows'ta şöyle bir şey almalısınız:
192.168.0.200
32 bayt veri ile 192.168.0.200'e ping atılıyor: 192.168.0.200'den yanıt: bayt=32 zaman=4ms TTL=64 192.168.0.200'den yanıt: bayt=32 zaman=5ms TTL=64 192.168.0.200'den yanıt: bayt=32 zaman =6ms TTL=64 192.168.0.200'den gelen yanıt: bayt=32 süre=5ms TTL=64 192.168.0.200 için Ping istatistikleri: Paketler: Gönderilen = 4, Alınan = 4, Kayıp = 0 (%0 kayıp), Yaklaşık gidiş dönüş süreleri milisaniye cinsinden: Minimum = 4ms, Maksimum = 6ms, Ortalama = 5ms
Hepsi iyi? İleri…
Adım 6: Oturum Açma
Artık pi ile bağlantımız olduğuna göre, ona komutlar göndermek istiyoruz. Ama nasıl? PuTTY elbette! PuTTY'yi buradan indirebilirsiniz PuTTY'yi Kurma PuTTY yazılımını indirdikten sonra aşağıdaki bilgilerle pi'niz için bir profil oluşturun:
Ana Bilgisayar Adı (veya IP adresi): 192.168.0.200 Bağlantı türü: SSHBu profile Kayıtlı Oturumlar altında bir ad verin ve Kaydet'e basın. İstediğiniz herhangi bir ismi kullanabilirsiniz, örneğin "rpizw_200"
Giriş yapmak için listeden seçin ve Yükle'ye basın. Ardından Aç'a basın. Oturum açmak için kullanıcı adını ve şifreyi girin:
oturum açma adı: pi
Varsayılan şifre: ahududu
Giriş yaptığınızda PuTTY'de gösterilen örnek bir oturum:
olarak giriş yapın: pi
[email protected]'ün parolası: Linux raspberrypi 4.14.34+ #1110 Pzt 16 Nisan 14:51:42 BST 2018 armv6l Debian GNU/Linux sistemine dahil olan programlar özgür yazılımlardır; her program için kesin dağıtım koşulları /usr/share/doc/*/copyright içindeki ayrı dosyalarda açıklanmıştır. Debian GNU/Linux, yürürlükteki yasaların izin verdiği ölçüde, KESİNLİKLE HİÇBİR GARANTİ ile birlikte gelir. Son oturum açma: [tarih ve saat] 192.168.0.[ip adresi] SSH etkindir ve 'pi' kullanıcısı için varsayılan parola değiştirilmemiştir. Bu bir güvenlik riskidir - lütfen 'pi' kullanıcısı olarak giriş yapın ve yeni bir şifre belirlemek için 'passwd' yazın.
İlk girişte, şifreyi henüz değiştirmediğiniz konusunda uyaracaktır. Bunu güçlü ancak hatırlanması kolay bir şeyle değiştirmelisiniz, bu yüzden devam edin ve passwd yazarak değiştirin ve komutları izleyin.
Daha sonra şunu yazarak pi üzerindeki yazılımı güncellemeliyiz:
sudo apt-get güncelleme && sudo apt-get yükseltme
Bu, ihtiyaç duyduğu güncellemeleri internet bağlantınızdan indirecektir. Devam etmesine izin vermeniz istenirse EVET yanıtını verin ve ardından güncellemesi için biraz zaman verin.
Şu anda, LED sürücü kitaplığı ile bazı kötü juju olduğu için muhtemelen pi'deki sesi de kapatmalıyız. Aşağıdaki satırları birer birer kopyalayıp yapıştırın ve her satırdan sonra enter tuşuna basın:
cd ~
kedi <<EOF | sudo tee /etc/modprobe.d/blacklist-rgb-matrix.conf kara listesi snd_bcm2835 EOF sudo güncelleme-initramfs -u
Çıktı şöyle bir şey olacaktır:
pi@raspberrypi:~ $ cd ~
pi@raspberrypi:~ $ cat < > kara liste snd_bcm2835 > > EOF kara listesi snd_bcm2835 pi@raspberrypi:~ $ sudo update-initramfs -u pi@raspberrypi:~ $
Ardından, değişikliklerin geçerli olması için pi'yi yeniden başlatmamız gerekiyor, bu nedenle aşağıdakini yazın:
sudo şimdi yeniden başlat
Pi yeniden başlatılırken bağlantı elbette kesilecektir, böylece PuTTY'yi kapatabilirsiniz. Bir dakika sonra tekrar oturum açmayı deneyin.
Şimdi WinSCP adında bir grafik FTP dosya yöneticisi edinme zamanı. WinSCP'yi buradan indirebilirsiniz
WinSCP, Windows ve Ubuntu'daki dosya yöneticisine çok benzer. Dosyaları pi'ye & pi'den kolayca sürükleyip bırakmamıza ve farenin sağ tıklamasıyla dizinler oluşturmamıza olanak tanır.
İndirdikten sonra, pi'niz için bir profil ayarlamanız gerekecektir.
WinSCP Kurulumu Giriş açılır penceresinde Yeni Site'yi seçin. Oturum için aşağıdaki ayarları kullanın:
Dosya protokolü: SFTP Ana bilgisayar adı: 192.168.0.200 Kullanıcı adı: pi Parola: {yukarıdaki PuTTY adımında varsayılanı değiştirdiğiniz parola ne olursa olsun}
Gelişmiş Site Ayarlarında Ortam | Dizinler ve Uzak dizin için /home/pi girin ve Yerel Dizin ayarı için istediğinizi girin.
Gelişmiş Site Ayarlarında Ortam | Shell ve Shell açılır listesinde sudo su - öğesini seçin.
Ardından Kaydet'e basın.
Aşağıdaki adımları gerçekleştirirken hem WinSCP hem de PuTTY'yi açık tutun
PuTTY terminaline gidin ve aşağıdakileri girin:
cd ~
Bu bizi pi'nin içindeki ana dizinimize götürecektir.
Artık LED sürücü kitaplığını github'dan alabiliriz. En son kodu kullanmak için repoyu çekmemiz gerekecek, böylece git yardımcı programını kurmamız gerekecek.
Bunu PuTTY'ye girin:
sudo apt-get kurulum git
devam etmek için Y'yi yanıtlayın ve bizim için git'i internetten yüklememiz birkaç saniye sürecektir.
Çıktı şöyle görünmelidir:
pi@raspberrypi:~ $ sudo apt-get kurulum git
Paket listelerini okuma… Bitti Bağımlılık ağacı oluşturma Durum bilgilerini okuma… Bitti Aşağıdaki ek paketler yüklenecek: git-man liberror-perl Önerilen paketler: 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ğıdaki YENİ paketler yüklenecek: git git-man liberror-perl 0 yükseltildi, 3 yeni yüklendi, 0 kaldırılacak ve 0 yükseltilmedi. 4, 848 kB arşiv almanız gerekiyor. Bu işlemden sonra 26,4 MB ek disk alanı kullanılacaktır. Devam etmek istiyor musun? [E/n] y Get:1 https://muug.ca/mirror/raspbian/raspbian streç/main armhf liberror-perl tümü 0.17024-1 [26.9 kB] Get:2 https://muug.ca/mirror/ raspbian/raspbian streç/main armhf git-man all 1:2.11.0-3+deb9u3 [1, 433 kB] Get:3 https://muug.ca/mirror/raspbian/raspbian streç/main armhf git armhf 1: 2.11.0-3+deb9u3 [3, 388 kB] 5 saniyede 4, 848 kB alındı (878 kB/s) Daha önce seçili olmayan liberror-perl paketi seçiliyor.(Veritabanı okunuyor … şu anda kurulu 34363 dosya ve dizin.) Paketi açmaya hazırlanıyor …/liberror-perl_0.17024-1_all.deb … liberror-perl paketini açma (0.17024-1) … Daha önce seçili olmayan git-man paketi seçiliyor. Paketi açmaya hazırlanıyor …/git-man_1%3a2.11.0-3+deb9u3_all.deb … git-man paketini açma (1:2.11.0-3+deb9u3) … Önceden seçilmemiş git paketi seçiliyor. Paketi açmaya hazırlanıyor …/git_1%3a2.11.0-3+deb9u3_armhf.deb … Paketi açma git (1:2.11.0-3+deb9u3) … git-man kurulumu (1:2.11.0-3+deb9u3) … Kurulum liberror-perl (0.17024-1) … Man-db (2.7.6.1-2) için tetikleyiciler işleniyor … Git kurulumu (1:2.11.0-3+deb9u3) …
Şimdi WinSCP'ye geri dönün ve /home/pi klasörüne gidin. Ardından bu WinScp penceresinin sağ tarafında, sağ tıklayın ve "park etme" adında Yeni bir Dizin oluşturmayı seçin.
PuTTY ekranına geri döndüğünüzde, pi'de yeni bir klasör oluşturduğunuzu onaylamak için ls yazabilirsiniz. Ardından şunu girin:
cd p[SEKME]İpucu: SEKME tuşuna basmak, kısmi adı sizin için otomatik olarak tamamlayacaktır.
Bu dizine girmek için enter tuşuna basın.
pi@raspberrypi:~ $ cd park yeri/
pi@raspberrypi:~/parking $ ls
Şimdi PuTTY'ye aşağıdakileri girerek sürücü dosyalarını alabiliriz:
git klonu
Çıktı şöyle bir şeye benzeyecektir:
pi@raspberrypi:~/parking $ git klonu
'rpi-rgb-led-matrix' içine klonlama… uzak: Nesneleri sayma: 3740, tamamlandı. uzak: Toplam 3740 (delta 0), yeniden kullanılmış 0 (delta 0), paket yeniden kullanılmış 3740 Nesne alma: %100 (3740/3740), 20.61 MiB | 1,32 MiB/s, tamamlandı. Deltaları çözümleme: %100 (2550/2550), tamamlandı.
Şimdi bu yeni 'rpi-rgb-led-matrix' dizinine gidip make komutunu yazarak LED sürücü dosyalarını derleyin:
cd r[SEKME]
Yapmak Ve tahtamızda böyle görünüyordu
pi@raspberrypi:~/parking $ 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' dizinine giriliyor g++ - I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-used-parameter -fno-exceptions -c -o gpio.o gpio.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-kullanılmayan-parametre -fno-istisnalar -c -o led-matrix.o led-matrix.cc g++ -I../include - Duvar -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-used-parameter -fno-exceptions -c -o options-initialize.o options-initialize.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-kullanılmayan-parametre -fno-istisnalar -c -o framebuffer.o framebuffer.cc g++ -I../include -Wall -O3 -g - fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-unsed-parameter -fno-exceptions -c -o thread.o thread.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE=' "normal"' -Wextra -Wno-kullanılmayan-parametre -fno-istisnalar -c -o bdf-font.o bdf-fon t.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-unused-parameter -fno-exceptions -c -o Graphics.o Graphics.cc g++ - I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-used-parameter -fno-exceptions -c -o trafo.o trafo.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-kullanılmayan-parametre -fno-istisnalar -c -o led-matrix-co led-matrix-c.cc cc -I../ include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-unused-parameter -c -o Hardware-mapping.o Hardware-mapping.c g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-kullanılmayan-parametre -fno-exceptions -c -o content-streamer.o content-streamer.cc g++ -I../include -Wall -O3 - g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-kullanılmayan-parametre -fno-istisnalar -c -o pixel-mapper.o pixel-mapper.cc g++ -I../include -Wall -O3 -g -fPIC -DDEFAULT_HARDWARE='"normal"' -Wextra -Wno-kullanılmayan-parametre -fno-hariç 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 grafik.o transformatör.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 seçenekleri-initialize.o framebuffer.o thread.o bdf-font.o grafikler.o transformatör.o led-matrix-co donanım-mapping.o içerik-streamer.o pixel-mapper.o multiplex-mappers. o -lpthread -lrt -lm -lpthread make[1]: '/home/pi/parking/rpi-rgb-led-matrix/lib' dizininden çıkılıyor make -C example-api-use make[1]: ' dizinine giriliyor /home/pi/parking/rpi-rgb-led-matrix/examples-api-use' g++ -I../include -Wall -O3 -g -Wextra -Wno-unsed-parameter -c -o demo ana. o demo-main.cc make -C../lib make[2]: '/home/pi/parking/rpi-rgb-led-matrix/lib' make[2] dizinine giriliyor: '/home/pi dizininden çıkılıyor /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-kullanılmayan-parametre -c -o minimal-example.o minimal-example.cc g++ minimal-example.o - o minimal-example -L../lib -lrgbmatrix -lrt -lm -lpthread cc -I../include -Wall -O3 -g -Wextra -Wno-unsed-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-kullanılmayan- parametre -c -o metin-örnek.o metin-örnek.cc g++ metin-örnek.o -o metin-örnek -L../lib -lrgbmatrix -lrt -lm -lpthread g++ -I../include -Wall - O3 -g -Wextra -Wno-kullanılmayan-parametre -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../include -Wall -O3 -g -Wextra -Wno-kullanılmayan-parametre -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-unsed-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/examples-api-use' dizininden çıkılıyor pi @raspberrypi:~/parking/rpi-rgb-led-matrix $
Bir sonraki adımımız RGB matrix kütüphanesini Python'a bağlamak olacaktır. Bu proje için varsayılan Python 2'yi kullandık. Bu bağlamayı yapmak için, daha önce olduğu gibi her seferinde aşağıdaki satırı giriyoruz:
sudo apt-get güncelleme && sudo apt-get kurulumu python2.7-dev python-pillow -y
build-python yap sudo make install-python
Not: İki make ifadesini çalıştırırken görünen '-Wstrict-prototype' ile ilgili bir uyarıyı güvenle yok sayabilirsiniz. make komutlarının çalışması birkaç dakika sürer ve meşgul olduklarında hiçbir şey söylemezler. Bu yüzden korkmayın - pi'niz yakında geri gelmeli;)
İşte ilk make ifadesinde kısmi çıktı:
'grafik' uzantısı oluşturma
arm-linux-gnueabihf-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-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: uyarı: komut satırı seçeneği '-Wstrict-prototypes' C/ObjC için geçerlidir ancak C++ arm-linux-gnueabihf-g++ -pthread -shared -Wl için geçerli değildir, -O1 -Wl, -Bsymbolic-functions -Wl, -z, relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix -harita=/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' dizininden çıkılıyor pi@raspberrypi:~/parking/rpi-rgb-led-matrix $
Daha sonra pigpio C kütüphanesini kuracağız. Bunu düzgün bir şekilde yapmak için onu kaynaktan yapmamız gerekiyor, bu yüzden aşağıdaki satırları girmeniz yeterli:
cd ~
sudo rm -rf PIGPIO wget abyz.me.uk/rpi/pigpio/pigpio.zip unzip pigpio.zip cd PIGPIO yapmak sudo make install rm pigpio.zip
Yukarıdaki kurulum yaklaşık 3 dakika sürer.
Şimdi Python proje dosyalarımızı alma zamanı. Aşağıdakileri girin:
cd ~
cd /home/pi/parking/rpi-rgb-led-matrix/bindings/python/samples wget https://s3.amazonaws.com/microedco/tinyLiDAR/Raspberry+Pi/tinyL_parking.zip unzip -j tinyL_parking.zip rm minikL_parking.zip
Ardından yürütmek için aşağıdakini yazın:
sudo python parking.py
Ama bunu şimdi yapmanıza gerek yok, çünkü hala hepsini bağlamamız gerekiyor…
Adım 7: Kablolar
Daha önce de belirtildiği gibi, LED panele pi'ye güç veren aynı güç adaptöründen güç verdik. Bunu yapmak için, 40pin pi konektörünün 2 ve 9 numaralı pinlerine takılabilmesi için kalın kırmızı ve siyah kabloları erkek başlık pinlerine eklemeniz gerekecektir.
Şimdi pi'ye giden gücü kesin ve LED panelini yukarıdaki resimli şemaya göre bağlayın. Pin 2'yi şimdilik devre dışı bırakın.
NOT: LED matris paneli bazen garip bir durumda açılabilir. Bu olursa, mevcut kapasitesi ne olursa olsun güç kaynağınızı ciddi şekilde yükleyebilir. Bunu, 4 amperden fazla sağlayabilen tezgah kaynağımızdaki geliştirme sırasında fark ettik. Bunun çözümü, önce pi kodunu çalıştırmak ve ardından LED panele güç sağlamak için pin 2'yi takmaktır. Bu şekilde panel, rastgele LED durumlarını boşalttığı için düşük güç durumuna gelmelidir. LED panelimiz için sessiz akım (tüm LED'ler kapalı) 5v'de sadece 50mA idi.
CAT5
25 fitlik bir CAT5 ethernet kablosu kullandık ve bir ucundaki pi başlık pinlerine takmak ve diğer taraftaki GROVE konektör pinlerini kabul etmek için değiştirdik, böylece yan tinyLiDAR sensörümüzü yerleştirmek için mesafeyi uzatabildik. Yukarıdaki fotoğraflar, bu kabloyu değişikliklerden önce ve sonra göstermektedir. Şemalarla ilişkili olmadığı için başlık pin kablolarının renklerini dikkate almayın. Sisteminizi 3. adımda daha önce gösterilen resimli bağlantı şemalarında gösterildiği gibi bağladığınızdan emin olun.
Adım 8: Aydınlatın
Doğru ilk çalıştırma sırası, microUSB şarj cihazını pi'ye takmak ve tinyLiDAR sensörlerindeki mavi LED'lerin ölçüm yaptıklarını göstermek için hızla yanıp sönmesini beklemek olmalıdır. Bu, kodun düzgün çalıştığını kanıtlar.
Ardından, LED panel kaynağı için pim 2'yi yavaş ama sıkı bir şekilde bağlayabilirsiniz. Bunu yaparken aksatmamaya dikkat edin! LED paneli birkaç donmuş parlak LED gösteriyorsa, muhtemelen arızalıdır, bu nedenle microUSB gücünü pi'den çıkarın ve güç açma sırasını tekrar denemek için birkaç saniye bekleyin.
Kodu çalıştırmak için aşağıdakileri girin:
cd /home/pi/park/rpi-rgb-led-matrix/bağlamalar/python/örnekler
sudo python parking.py
Her şey yolunda giderse, videoda gösterilene benzer bir görüntü elde etmelisiniz.
Hangi limitleri kullandığımızı anlamak için parking.py koduna hızlıca bir göz atın. Ön sensör için varsayılan değer 200 mm'dir. Sensör aralığı 11 mm ila 2 m olduğundan, nom_parked_Front mesafesini 200 mm veya daha yüksekte tutmak iyi bir fikirdir. Yan sensör nom_parked_Side 600 mm'ye ayarlanmıştır. Bu yapılandırma seçeneklerini gösteren Python kodu için yukarıdaki resme bakın.
Her şey yolundaysa, sistemi garajınıza monte edebilir ve yukarıdaki parametreleri gerektiği gibi ayarlayabilirsiniz. Pi'niz WiFi'nize bağlı olduğundan, garaj kurulumunuz hala monte edilmişken ihtiyaç duyduğunuz şekilde her zaman içeri girebilir ve mesafe ayarlarınızı düzenleyebilirsiniz.
Bu şimdi mi?
Neden evet, evet işte bu! -- mutlu dansını yapma zamanı:)
Okuduğunuz için teşekkürler ve yeni park asistanınızın keyfini çıkarın!
9. Adım: İsteğe Bağlı Adım ve Yardımcı Komutlar
İsteğe Bağlı Adım - Sublime Text için FTP eklentisi
Python komut dosyalarını doğrudan pi üzerinde düzenlemek için Sublime SFTP by Wbond adlı FTP eklentisini kurabiliriz. Buradaki talimatları izleyerek bu eklentiyi indirebilirsiniz.
Bu eklentiyi kurmak için Dosya | SFTP/FTP | Kurulum Sunucusu… sayfası.
Kurulumumuz için kullandık:
"type": "sftp", "sync_down_on_open": true, "sync_same_age": true, "host": "192.168.0.200", "user": "pi", "password": "SİZİN_RPI_PASSWORD_BURADA", "bağlantı noktası": "22", "remote_path": "/home/pi/", "file_permissions": "664", "dir_permissions": "775",
Ctrl+S veya Dosya | Bu bilgileri kaydetmek için kaydedin. Bu yapılandırmayı çağırmak için bir ad girmeniz istenecektir. Biz ona basitçe "rpizw_0_200" adını verdik.
Şimdi SublimeText'ten pi'ye giriş yapmak için Dosya | SFTP/FTP | Sunucuya Gözat…
Açılan seçenekler listesinden seçim yapın. Yukarıda belirttiğiniz ada sahip profili seçmek isteyeceksiniz;) Klasörlerde gezinmek ve istediğiniz dosyayı düzenlemek için komutları izleyin.
Faydalı Ekstralar
Pi'de kullanılacak faydalı Linux komutları.
Pi'yi çıkarmadan önce, microSD kartınızda dosya bozulması yaşamamak için DAİMA kapattığınızdan emin olun. Bu komutu girin:
sudo şimdi kapatma
ve gücü kesmeden önce yeşil ledin sönmesini bekleyin. Benzer şekilde, yeniden başlatmak için şunu girebilirsiniz:
sudo şimdi yeniden başlat
Bir dizindeki dosyaları listelemek için şunu kullanın:
ls
Diğer yardımcı Linux komutlarını burada bulabilirsiniz
Önerilen:
Arduino Araba Geri Geri Park Uyarı Sistemi - Adım Adım: 4 Adım
Arduino Araba Geri Geri Park Uyarı Sistemi | Adım Adım: Bu projede Arduino UNO ve HC-SR04 Ultrasonik Sensör kullanarak basit bir Arduino Araba Geri Park Sensörü Devresi tasarlayacağım. Bu Arduino tabanlı Araba Ters uyarı sistemi, Otonom Navigasyon, Robot Mesafesi ve diğer menzil r
NodeMCU ESP8266 Kullanan IoT Tabanlı Akıllı Park Sistemi: 5 Adım
NodeMCU ESP8266 Kullanan IoT Tabanlı Akıllı Park Sistemi: Günümüzde yoğun alanlarda park yeri bulmak çok zor ve park yeri müsaitlik ayrıntılarını çevrimiçi olarak alacak bir sistem yok. Telefonunuzdaki park yeri müsaitlik bilgisini alabildiğinizi ve kontrol etmek için etrafta dolaşmadığınızı hayal edin
Arduino Park Asistanı - Arabanızı Her Seferinde Doğru Yere Park Edin: 5 Adım (Resimlerle)
Arduino Park Asistanı - Arabanızı Her Zaman Doğru Yere Park Edin: Bu projede size bir Arudino kullanarak kendi park asistanınızı nasıl kuracağınızı göstereceğim. Bu park asistanı, aracınıza olan mesafeyi ölçer ve bir LCD ekran okuması ve bir LED kullanarak aracınızı doğru yere park etmeniz için size rehberlik eder
IOT Tabanlı Akıllı Park Etme: 7 Adım
IOT Tabanlı Akıllı Otopark: Tanmay Pathak ve Utkarsh Mishra tarafından. Öğrenciler @ International Institute of Information Technology, Hyderabad (IIITH)ÖZET IoT tabanlı bir akıllı park sistemini başarıyla hayata geçirdik. Bireysel düğümlerin (yakınlık sensörleri) yardımıyla her zaman
DIY - Arduino Tabanlı Park Asistanı V2: 6 Adım
DIY - Arduino Tabanlı Park Asistanı V2: Hayat size muz verdiğinde!!!!! Sadece onları ye. İhtiyaç icatların anasıdır ve bu gerçeği inkar etmeyeceğim. Açıkçası, bu yeni eve taşındığımızdan beri garaj duvarımıza 2. kez çarptım. İşte bu, hiçbir t