Spisu treści:
- Krok 1: Co to jest rozciąganie zegara?
- Krok 2: Mała pomoc od latających świń
- Krok 3: TL; Wersja DR
- Krok 4: Instalacja
- Krok 5: Zainstaluj Pigpio
- Krok 6: Opcjonalnie: Konfiguracja systemu deweloperskiego
- Krok 7: Konfiguracja WinSCP
- Krok 8: (w)uzyskanie kodu
- Krok 9: Uwaga dla przyszłych hakerów
Wideo: TinyLiDAR na Pi?: 9 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:32
Witam ponownie!
Cóż, teraz, gdy spędziłeś trochę czasu z tinyLiDARem i Arduino - Twoje Raspberry Pi może czuć się trochę samotne;)
Pi ma port I2C, prawda? Dlaczego więc nie podłączyć go i wypróbować tam?! Dobry plan, ale jeśli już próbowałeś - być może zauważyłeś, że dane wyglądają trochę dziwnie.
Tak, pi ma już wbudowane podciąganie 1.8K, więc będziesz musiał przeciąć pady I2C na tinyLiDAR, aby wyłączyć podciąganie 4.7K z obwodu - zobacz instrukcję obsługi, aby uzyskać szczegółowe informacje. Ale to nie jest powód dziwnych danych.
Dzieje się tak, ponieważ magistrala pi I2C nie jest dokładnie zgodna ze specyfikacją. Tak było, odkąd po raz pierwszy wprowadzono pi dzięki zestawowi chipsetów Broadcom. Od samego początku nie wspierali właściwie funkcji I2C zwanej "rozciąganiem zegara".
Możesz przeczytać więcej o tym błędzie h/w tutaj.
Krok 1: Co to jest rozciąganie zegara?
Jak być może wiesz, magistrala I2C składa się z 3 przewodów. Są to zegar (SCL), dane (SDA) i wspólna masa. Linie zegara i danych są typu otwarty kolektor/otwarty dren, co oznacza, że potrzebują rezystorów podciągających podłączonych do dodatniej szyny zasilającej, aby zapewnić im wysoki poziom logiczny. Aby uzyskać niski stan logiczny, każde urządzenie w magistrali może przeciągnąć linię do wspólnej masy.
Zgodnie ze standardem I2C, urządzenie Master jest tym, które dostarcza sygnał zegara na linii SCL, ale jeśli ta szybkość jest zbyt duża, urządzenie Slave może go spowolnić, po prostu przytrzymując linię zegara, aż będzie gotowe do pracy z informacjami. To właśnie nazywamy „rozciąganiem zegara”.
Oficjalnie rozciąganie zegara zostało wymienione jako opcjonalna funkcja w standardzie I2C, ale jest to bardzo powszechna funkcja, która jest niezbędna dla większości „inteligentnych” urządzeń podrzędnych, które potrzebują dodatkowego czasu na dostarczenie danych z czujników itp.
Krok 2: Mała pomoc od latających świń
Aby poradzić sobie z tym błędem I2C h/w, znaleźliśmy ładną małą darmową bibliotekę o nazwie "pigpio". Jest to bardzo popularna, szybka i lekka biblioteka napisana w C. Działa jako demon działający w tle dla Raspberry Pi i pozwala nam łatwo kontrolować I2C, a także dowolne GPIO z Pythona. Biblioteka traktuje porty I2C bardziej jak GPIO i tym samym ominęła błąd rozciągania zegara I2C. Podobnie jak wszystkie programy na pi, biblioteka pigpio jest tylko prostym "include", więc chodźmy!
Krok 3: TL; Wersja DR
Skonfiguruj PiEnable SSH, aby zalogować się za pomocą PuttyZainstaluj bibliotekę pigpioPobierz plik zip tinyLiDARRozpakuj i uruchom z Putty
Opcjonalny:
Skonfiguruj SublimeText z WinSCP
Krok 4: Instalacja
W przypadku naszego Raspberry Pi 3 użyliśmy standardowego systemu operacyjnego New Out Of the Box Software (NOOBS Lite v2.4). Zawiera domyślną wersję Pythona już zainstalowaną dla nas, gotową do programowania. System operacyjny można pobrać stąd.
Po zainstalowaniu na karcie micro SD musisz podłączyć klawiaturę i monitor, aby móc zalogować się do pi po raz pierwszy:
Nazwa użytkownika: pi Hasło: malina
Następnie możesz uruchomić bezpieczny serwer powłoki (SSH) za pomocą tych poleceń:
sudo systemctl włącz sshsudo systemctl start ssh
Następnie będziemy potrzebować adresu IP pi w Twojej sieci, abyśmy mogli zalogować się za pomocą PuTTY. Aby to uzyskać, po prostu wpisz:
nazwa hosta -I
I poszukaj adresu w formacie IPv4 (dla naszej konfiguracji był to: 192.168.0.27)
Powyższe kroki pozwolą pi działać „bezgłowo”, co oznacza, że nie będziesz musiał ponownie pisać na tej klawiaturze i nie ma już potrzeby korzystania z monitora wideo. W przyszłości będziemy logować się przez sieć za pomocą bezpiecznego połączenia SSH. Powyższe polecenie powoduje, że serwer SSH uruchamia się automatycznie przy każdym włączeniu pi. Jest to dla nas wygodne podczas kodowania, ale może to później stanowić zagrożenie dla bezpieczeństwa (bycie paranoikiem jest dobre), więc kiedy będziesz gotowy, możesz wyłączyć tę funkcję automatycznego uruchamiania SSH za pomocą tego polecenia:
sudo systemctl wyłącz ssh
Polecenie to należy oczywiście wpisać na klawiaturze podłączonej do pi.
PuTTY to program terminalowy, który jest wymagany do wydawania poleceń z komputera do pi, więc powinieneś pobrać najnowszą kopię stąd.
Zainstaluj i uruchom PuTTY. Będziesz musiał wpisać adres IP z góry we wpisie Nazwa hosta i użyć domyślnych ustawień SSH. Nadaj sesji dowolną nazwę i naciśnij Zapisz. Następnie naciśnij load i kliknij OPEN, aby rozpocząć sesję.
Powinno to doprowadzić Cię do ekranu logowania do pi. Użyj tej samej nazwy użytkownika i hasła, których używałeś wcześniej.
Krok 5: Zainstaluj Pigpio
Teraz jedyną rzeczą, którą musimy zainstalować po tym, będzie biblioteka pigpio i możemy to zrobić za pomocą następujących poleceń.
Wskazówka: możesz po prostu skopiować [ctrl + c] i wkleić [kliknij prawym przyciskiem myszy] te i inne polecenia do terminala PuTTY
aktualizacja sudo apt-get
sudo apt-get zainstaluj pigpio python-pigpio python3-pigpio
Krok 6: Opcjonalnie: Konfiguracja systemu deweloperskiego
Oto wskazówka, która może pomóc zaoszczędzić trochę czasu w świecie programowania kodu. Naprawdę nienawidzimy edytorów tekstu opartych na systemie Unix. Interfejs użytkownika jest zwykle niezgrabny, a czcionki są do niczego. GNU nano jest prawie do zniesienia, ale żaden nie jest tak wyrafinowany jak SublimeText, który można pobrać stąd
Mamy środowisko programistyczne oparte na systemie Windows i uwielbiamy używać tego edytora tekstu, gdy tylko jest to możliwe. Tak więc wskazówka dotyczy konfiguracji systemu, aby móc korzystać z tego profesjonalnego edytora tekstu natywnie na pulpicie systemu Windows, aby bezpośrednio kodować na bezgłowym pi.
Jak? Korzystanie z bezpłatnej aplikacji o nazwie WinSCP, którą można pobrać stąd
Krok 7: Konfiguracja WinSCP
WinSCP to bezpieczny program do przesyłania plików, który daje graficzną reprezentację plików obecnych na twoim rpi, podobnie jak to, co widzisz w menedżerze plików na komputerze z systemem Windows.
Więc śmiało zainstaluj również powyższe dwa programy.
Następnie będziesz musiał dokonać kilku poprawek, aby wszystkie działały poprawnie.
W przypadku WinSCP możesz kliknąć NOWA Witryna. Użyjemy domyślnych ustawień SFTP i wystarczy wpisać adres IP (nazwę hosta) swojego pi i nazwę logowania (nazwę użytkownika). Jeśli chcesz, możesz pozostawić hasło puste - będzie prosić o podanie hasła przy każdym logowaniu.
Następnie kliknij przycisk Zaawansowane, a następnie kliknij po lewej stronie, aby wyświetlić ustawienia powłoki środowiska. Po prawej stronie zmień menu rozwijane „Domyślne” na opcję „sudo su -”. Umożliwi to zapisywanie zmian w twoim pi bez błędów uprawnień po naciśnięciu przycisku Zapisz z SublimeText.
Ustaw SublimeText jako domyślny edytor w WinSCP
Aby to zrobić, kliknij przycisk Narzędzia na ekranie ustawień logowania WinSCP, w którym uruchomiłeś okno dialogowe NewSite. Dwa zrzuty ekranu pokazują, jak to jest skonfigurowane, ale w zasadzie klikniesz, aby skonfigurować preferencje edytorów i dodać edytor, który będzie edytorem zewnętrznym. Następnie możesz wyszukać plik.exe, w którym znajduje się ten edytor na komputerze.
Krok 8: (w)uzyskanie kodu
Po zakończeniu zaloguj się za pomocą WinSCP i PuTTY.
Teraz wszystko gotowe, możemy uruchomić nasz kod tinyLiDAR.
Utwórz katalog o nazwie tinyLiDAR w swoim katalogu home/pi.
Możesz to zrobić, klikając prawym przyciskiem myszy po prawej stronie ekranu WinSCP i wybierając Nowy / Katalog.
Teraz w terminalu PuTTY możesz pisać
cd t
i naciśnij klawisz Tab, aby automatycznie uzupełnić polecenie, aby przejść do katalogu tinyLiDAR.
W tym miejscu wpisz następujące polecenie:
wget
aby pobrać pliki bezpośrednio z naszego serwera. Następnie możemy je rozpakować, wpisując
rozpakuj r
i naciśnij tab, aby ponownie uzupełnić nazwę
Aby go uruchomić, po prostu wpisz
python tlgui.py
A twój tinyLiDAR będzie reagował na każde twoje polecenie na pi:)
Krok 9: Uwaga dla przyszłych hakerów
Śmiało i spójrz pod maskę, klikając dwukrotnie dowolny plik kodu z WinSCP. To te z rozszerzeniem.py. Pliki powinny otwierać się w SublimeText bezpośrednio na twoim komputerze. Zmień, co chcesz, a następnie naciśnij Zapisz. Twoje zmiany zostaną zapisane bezpośrednio w twoim pi.
Gdy będziesz gotowy, uruchom go ponownie, używając klawisza strzałki w górę dla ostatniego wpisanego polecenia lub po prostu wpisz go ponownie i naciśnij enter:
python tlgui.py
Być może zauważyłeś, że układ Terminala GUI wygląda nieco ładniej niż wersja Arduino. Dzieje się tak dlatego, że PuTTY obsługuje znaki Unicode, więc mogliśmy użyć dodatkowych znaków sterujących kursorem, aby wyglądał bardziej wyrafinowany.
Jest tu również dodane polecenie (w porównaniu do wersji Arduino), które jest „dc” dla funkcji ciągłego odczytu. Wypróbuj i zobacz, co myślisz.
To wszystko!
Dzięki za przeczytanie i miłego hackowania na pi:)
Zalecana:
Licznik kroków - Micro:Bit: 12 kroków (ze zdjęciami)
Licznik kroków - Micro:Bit: Ten projekt będzie licznikiem kroków. Do pomiaru kroków użyjemy czujnika przyspieszenia wbudowanego w Micro:Bit. Za każdym razem, gdy Micro:Bit się trzęsie, dodamy 2 do licznika i wyświetlimy go na ekranie
CircuitPython i TinyLiDAR: Prosty przykład: 3 kroki
CircuitPython i TinyLiDAR: Prosty przykład: MicroElectronicDesign tinyLiDAR to oparty na ST VL53L0X moduł pomiaru czasu przelotu (ToF) z połączeniem magistrali i2c. Płytki mikrokontrolera Adafruit można łatwo podłączyć do tego czujnika, ponieważ mogą one wypowiadać protokół i2c przez ich pin danych
TinyLiDAR w Twoim garażu!: 10 kroków
TinyLiDAR w Twoim garażu!: Projekt otwierania drzwi garażowych DIY WiFi Świat IoT właśnie zaczyna eksplodować – każda firma technologiczna na całym świecie próbuje dowiedzieć się, jak zmieści się w tym nowym świecie. To po prostu wielka szansa! Więc dla tej instrukcji, ja
TinyLiDAR dla IoT: 3 kroki
TinyLiDAR dla IoT: Jeśli się rozejrzysz, zauważysz, że w życiu codziennym używa się wielu inteligentnych małych urządzeń. Zazwyczaj są zasilane bateryjnie i zazwyczaj są w jakiś sposób połączone z Internetem (czyli z „chmurą”). To wszystko, co nazywamy urządzeniami „IoT” i
Czy mogę używać TinyLiDAR w Scratch?: 3 kroki
Czy mogę używać TinyLiDAR w… Scratch?: Od czasu do czasu otrzymujemy prośby z zapytaniem, czy tinyLiDAR będzie działać na ich konkretnej platformie obliczeniowej. Chociaż tinyLiDAR został zaprojektowany jako prosty w użyciu czujnik LiDAR dla Arduino UNO, nic nie stoi na przeszkodzie, aby był używany na innych platformach