Mündəricat:
- Addım 1: Saat uzanması nədir?
- Addım 2: Uçan Donuzlardan Biraz Kömək
- Addım 3: TL; DR Versiyası
- Addım 4: Quraşdırma
- Addım 5: Pigpio quraşdırın
- Addım 6: İsteğe bağlı: Dev Sistem Quraşdırması
- Addım 7: WinSCP qurmaq
- Addım 8: (w) Kodu əldə edin
- Addım 9: Tezliklə Hackerlar üçün qeyd
Video: Pi üzərində TinyLiDAR ?: 9 addım (şəkillərlə)
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:48
Yenə salam!
İndi tinyLiDAR və Arduino ilə keyfiyyətli bir vaxt keçirdiyiniz üçün - Raspberry Pi'iniz bəlkə də bir az tənhalıq hiss edir;)
Pi'nin I2C portu var, elə deyilmi? Bəs niyə onu bağlayıb orada sınamasınız ?! Yaxşı bir plan, amma artıq sınamısınızsa - məlumatların bir az qəribə göründüyünü hiss edə bilərsiniz.
Bəli, pi artıq 1.8K çəkmələr qurdu, buna görə də 4.7K çəkmələri dövrədən çıxarmaq üçün tinyLiDAR üzərindəki I2C yastıqlarını kəsmək məcburiyyətində qalacaqsınız-ətraflı məlumat üçün istinad kitabçasına baxın. Ancaq qəribə məlumatların səbəbi bu deyil.
Pi'nin I2C avtobusu spesifikasiyalara tam uyğun gəlməməsidir. Pi, Broadcom çip dəsti səbəbiylə ilk dəfə təqdim edildiyi gündən bəri belədir. Əvvəldən "saat uzanması" adlı bir I2C xüsusiyyətini düzgün dəstəkləmədilər.
Bu h/w xətası haqqında daha çox məlumatı burada oxuya bilərsiniz.
Addım 1: Saat uzanması nədir?
Bildiyiniz kimi, I2C avtobusu 3 teldən ibarətdir. Bunlar saat (SCL), məlumat (SDA) və ümumi yer üçündür. Saat və məlumat xətləri açıq bir kollektor/açıq drenaj tipinə malikdir, bu da onlara yüksək məntiq vermək üçün müsbət bir təchizat relsinə qoşulan çəkmə rezistorlarına ehtiyac duyduqlarını bildirir. Məntiqi aşağı salmaq üçün avtobusdakı hər hansı bir cihaz xətti ortaq nöqtəyə çəkə bilər.
I2C standartına görə, Master cihazı SCL xəttində saat siqnalını verən cihazdır, lakin bu sürət çox yüksəkdirsə, Slave cihazının saat xəttini işlətməyə hazır olana qədər basıb yavaşlatmasına icazə verilir. məlumatlarla. Buna "saat uzanması" deyirik.
Rəsmi olaraq, saat uzanması I2C standartında əlavə bir xüsusiyyət olaraq siyahıya alındı, lakin sensor məlumatlarını təmin etmək üçün əlavə vaxta ehtiyacı olan əksər "ağıllı" qullar üçün lazım olan çox yaygın bir xüsusiyyətdir.
Addım 2: Uçan Donuzlardan Biraz Kömək
Bu I2C h/w səhvini həll etmək üçün "pigpio" adlı gözəl bir pulsuz pulsuz kitabxana tapdıq. C dilində yazılmış çox populyar, sürətli və yüngül kitabxanadır. Raspberry Pi üçün arxa fonda işləyir və I2C -ni, eləcə də hər hansı bir GPIO -nu pythondan asanlıqla idarə etməyə imkan verir. Kitabxana, I2C portlarına GPIO kimi daha çox baxır və bununla da I2C saat uzanan səhvini aşdı. Pi'deki bütün proqramlar kimi, pigpio kitabxanası da sadəcə "daxil etmək" üçün uzaqdır, gedək!
Addım 3: TL; DR Versiyası
Putty ilə SSH -ni daxil edin, donuz kitabxanasını yükləyin tinyLiDAR zip faylını əldə edin və Putty -dən işləyin.
İsteğe bağlı:
WinSCP ilə SublimeText qurun
Addım 4: Quraşdırma
Raspberry Pi 3 üçün standart New Out of the Box Software (NOOBS Lite v2.4) əməliyyat sistemindən istifadə etdik. Kodlamağa hazır olduğumuz üçün artıq quraşdırılmış Python -un standart bir versiyasını ehtiva edir. OS -ni buradan yükləyə bilərsiniz.
Bir mikro SD karta quraşdırıldıqdan sonra ilk dəfə pi -yə daxil olmaq üçün bir klaviatura və monitor bağlamalısınız:
İstifadəçi adı: pi Şifrə: moruq
Sonra bu əmrlərlə təhlükəsiz bir qabıq serverinə (SSH) başlaya bilərsiniz:
sudo systemctl sshsudo systemctl start ssh imkan verir
Sonra PuTTY ilə daxil ola biləcəyimiz üçün şəbəkənizdəki pi -nin IP ünvanına ehtiyacımız olacaq. Bunu əldə etmək üçün sadəcə yazın:
ev sahibi -I
Və IPv4 formatlı bir ünvan axtarın (Quraşdırmamız üçün belə idi: 192.168.0.27)
Yuxarıdakı addımlar pi -nin "başsız" işləməsinə imkan verəcək, yəni bu klaviaturada yenidən yazmağa ehtiyac qalmayacaq və artıq video monitora ehtiyac yoxdur. Gələcəkdə etibarlı bir SSH bağlantısı vasitəsilə şəbəkəyə daxil olacağıq. Yuxarıdakı əmr, SSH serverinin pi hər açıldıqda avtomatik olaraq başlamasına səbəb olur. Kodlaşdırarkən bu bizim üçün əlverişlidir, lakin sonradan təhlükəsizlik riski ola bilər (paranoid olmaq yaxşıdır), buna görə hazır olduğunuzda bu əmrdən istifadə edərək SSH -in avtomatik başlamasını söndürə bilərsiniz:
sudo systemctl ssh -i deaktiv edin
Bu əmr, əlbəttə ki, pi -yə bağlı olan klaviaturada yazılmalıdır.
PuTTY, kompüterdən pi -yə əmr vermək üçün lazım olan bir terminal proqramıdır, buna görə ən son nüsxəni buradan götürməlisiniz.
PuTTY qurun və işə salın. Host Adı girişində yuxarıdan IP ünvanını yazmalı və standart SSH parametrlərindən istifadə etməlisiniz. Sessiyaya istədiyiniz ad verin və Saxla düyməsini vurun. Sonra yükləmə düyməsini vurun və sessiyaya başlamaq üçün AÇIN düyməsini basın.
Sizi pi üçün giriş ekranına gətirməlidir. Daha əvvəl istifadə etdiyiniz eyni istifadəçi adınızı və şifrənizi istifadə edin.
Addım 5: Pigpio quraşdırın
İndi bundan sonra quraşdırmağımız lazım olan tək şey pigpio kitabxanası olacaq və bunu aşağıdakı əmrlərdən istifadə edərək edə bilərik.
İpucu: Bu və digər əmrləri PuTTY terminalına [ctrl+c] kopyalayıb [siçan sağ klikləyib] yapışdıra bilərsiniz.
sudo apt-get yeniləməsi
sudo apt-get pigpio python-pigpio python3-pigpio qurun
Addım 6: İsteğe bağlı: Dev Sistem Quraşdırması
Beləliklə, kod hazırlama dünyanızda bir az vaxta qənaət etməyə kömək edə biləcək bir ipucu. Unix əsaslı mətn redaktorlarından nifrət edirik. İstifadəçi interfeysi normaldır və şriftlər pisdir. GNU nano demək olar ki, dözülür, lakin heç biri buradan yükləyə biləcəyiniz SublimeText qədər zərif deyil
Pəncərələrə əsaslanan bir inkişaf mühitimiz var və bu mətn redaktorunu mümkün qədər istifadə etməyi sevirik. Buradakı ipucu, bu peşəkar mətn redaktorunu yerli olaraq Windows masaüstünüzdə birbaşa başsız pi üzərində kodlaşdırmaq üçün istifadə etmək üçün sisteminizi qurmaqdır.
Necə? Buradan yükləyə biləcəyiniz WinSCP adlı pulsuz bir tətbiqdən istifadə edin
Addım 7: WinSCP qurmaq
WinSCP, Windows PC -də fayl menecerində gördükləriniz kimi rpi -də olan faylların qrafik təsvirini verən etibarlı bir fayl köçürmə proqramıdır.
Beləliklə, davam edin və yuxarıdakı iki proqramı indi də quraşdırın.
Sonra hamısının düzgün işləməsi üçün bir neçə düzəliş etməlisiniz.
WinSCP üçün YENİ Saytı vura bilərsiniz. Varsayılan SFTP parametrlərindən istifadə edəcəyik və yalnız pi -nin IP ünvanını (Host adı üçün) və giriş adını (İstifadəçi adı üçün) daxil etməlisiniz. İstəsəniz, şifrəni boş buraxmağı seçə bilərsiniz - bu, hər dəfə daxil olduğunuzda sizdən parol istəyəcək.
Sonra, Ətraflı düyməni basın və sonra Environment Shell parametrləri üçün sol tərəfi vurun. Sağ tərəfdəki "Varsayılan" ı aşağı çəkərək "sudo su -" seçiminə keçirin. Bu, SublimeText -dən qənaət vurduqda dəyişikliklərinizin icazəsiz səhvlər olmadan pi -yə yazılmasına imkan verəcəkdir.
SublimeText'i WinSCP -də Default Redaktor olaraq təyin edin
Bunu etmək üçün, NewSite dialoqunuzu başladığınız WinSCP Giriş parametrləri ekranında Alətlər düyməsini basın. İki ekran görüntüsü bunun necə qurulduğunu göstərir, amma əsasən Redaktorların seçimini konfiqurasiya etmək və Xarici redaktor olacaq Redaktor əlavə etmək üçün tıklayacaqsınız. Daha sonra bu redaktorun kompüterinizdə yerləşdiyi.exe faylına baxa bilərsiniz.
Addım 8: (w) Kodu əldə edin
Bitirdikdən sonra davam edin və WinSCP və PuTTY ilə daxil olun.
İndi hər şey hazırdır, tinyLiDAR kodumuza başlaya bilərik.
Ev/pi kataloqunuzun altında tinyLiDAR adlı bir kataloq yaradın.
WinSCP ekranının sağ tərəfində sağ tıklayarak və Yeni / Kataloqu seçərək bunu edə bilərsiniz.
İndi PuTTY terminalında yaza bilərsiniz
cd t
və tinyLiDAR qovluğuna daxil olmaq üçün əmrinizi avtomatik tamamlamasına icazə vermək üçün nişanı basın.
Burada bir dəfə aşağıdakıları yazın:
wget
faylları birbaşa serverimizdən əldə etmək üçün. Sonra yazaraq onları aça bilərik
açmaq r
və adı yenidən avtomatik tamamlamaq üçün sekmeye basın
İşlətmək üçün sadəcə yazın
python tlgui.py
Və tinyLiDAR, pi üzərindəki hər əmrinizə cavab verəcək:)
Addım 9: Tezliklə Hackerlar üçün qeyd
Davam edin və WinSCP -dən hər hansı bir kod faylına iki dəfə tıklayaraq başlıq altına baxın.. Py uzantısı olanlardır. Fayllar birbaşa PC -də SublimeText -də açılmalıdır. İstədiyinizi dəyişdirin və sonra Saxla düyməsini vurun. Dəyişikliklər birbaşa pi -də saxlanılacaq.
Hazır olduqda, son yazılan əmr üçün yuxarı ox düyməsini istifadə edərək yenidən işə salırsınız və ya yenidən daxil edin və enter düyməsini basın:
python tlgui.py
Terminal GUI layoutunun Arduino versiyasından bir az daha gözəl göründüyünü görə bilərsiniz. PuTTY unicode simvollarını dəstəklədiyi üçün daha zərif görünməsi üçün bəzi əlavə kursor nəzarət simvollarından istifadə edə bildik.
Burada da (Arduino versiyası ilə müqayisədə) Davamlı oxu funksiyası üçün "dc" olan əlavə bir əmr var. Bunu sınayın və nə düşündüyünüzə baxın.
Hamısı budur!
Oxuduğunuz üçün təşəkkür edirəm və pi -də hack etməkdən zövq alın:)
Tövsiyə:
Ayaqqabının üzərində Proqram Təminli Radio: 9 Addım (Şəkillərlə birlikdə)
Ayaqqabının üzərində Proqram Təminli Radio: Başlanğıcda ilk praktik radio qəbuledicisi olan kristal dəsti vardı. Ancaq uzun bir havaya ehtiyac var idi və yalnız yerli stansiyaları qəbul edə bilərdi. Vanalar gəldikdə (borular, amerikalı dostlarımız üçün) daha çox şey qurmağı mümkün etdi
Açıq havada və ya içəridə Raspberry Pi üzərində qurulmuş Avtomatlaşdırılmış Bağ Sistemi - MudPi: 16 Addım (Şəkillərlə birlikdə)
Açıq və ya qapalı üçün Raspberry Pi üzərində qurulmuş Avtomatlaşdırılmış Bağ Sistemi - MudPi: Bağçılıqdan xoşunuz gəlir, amma onu saxlamağa vaxt tapa bilmirsiniz? Bəlkə bir az susamış və ya hidroponikinizi avtomatlaşdırmaq üçün bir yol axtaran ev bitkiləriniz varmı? Bu layihədə bu problemləri həll edəcəyik və əsaslarını öyrənəcəyik
Scratch üzərində Platformer Necə Hazırlanır: 6 Addım (Şəkillərlə)
Scratch -da Platformer Necə Hazırlanır: Scratch, insanların iş sahəsinə sürükləyib atdığınız hazır bloklardan istifadə edərək oyun və digər proqramlar yaratdıqları bir veb saytdır. Bu gün sizə sıfırdan bir platforminq oyunu necə edəcəyinizi göstərəcəyəm
Şüşə üzərində PCB: 11 addım (şəkillərlə)
GLASS -da PCB: salam uşaqlar !!, Öz xüsusi PCB -ni çap etmək təcrübəniz ola bilər və ya olmaya bilər. Bir PCB etmək üçün bir çox yolu izləmək lazımdır. Bir dövrə çap etməyin adi yolu, nümunəni (dövrəni) mis örtüklü bir lövhəyə tətbiq etmək və
Fırlanma Eksenli Obyekt İzləmə Kamerası Sürgüsü. RoboClaw DC Motor Controller və Arduino üzərində 3D Çap və Quraşdırma: 5 Addım (Şəkillərlə birlikdə)
Fırlanma Eksenli Obyekt İzləmə Kamerası Sürgüsü. RoboClaw DC Motor Controller və Arduino üzərində 3D Çap və Quraşdırma: Video çəkmə marağımı DIY ilə birləşdirməli olduğumdan bəri bu layihə ən çox sevdiyim layihələrdən biridir. Həmişə baxdım və izləmək üçün ekranı sürüşdürərkən bir kameranın ekranda hərəkət etdiyi filmlərdə o kinematik kadrları təqlid etmək istədim