Spisu treści:

TinyLiDAR na Pi?: 9 kroków (ze zdjęciami)
TinyLiDAR na Pi?: 9 kroków (ze zdjęciami)

Wideo: TinyLiDAR na Pi?: 9 kroków (ze zdjęciami)

Wideo: TinyLiDAR na Pi?: 9 kroków (ze zdjęciami)
Wideo: Как использовать 2 или более лазерных датчиков расстояния VL53L0X 2024, Listopad
Anonim
TinyLiDAR na Pi?
TinyLiDAR na Pi?

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?

Co to jest rozciąganie zegara?
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

Instalacja
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

Opcjonalnie: Konfiguracja systemu deweloperskiego
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

Konfiguracja WinSCP
Konfiguracja WinSCP
Konfiguracja WinSCP
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

(w) uzyskanie Kodeksu
(w) uzyskanie Kodeksu

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: