Jak zaprogramować robota. Zastosowanie Raspberry Pi i Pythona w tworzeniu autonomicznych robotów - ebook
Jak zaprogramować robota. Zastosowanie Raspberry Pi i Pythona w tworzeniu autonomicznych robotów - ebook
Coraz więcej złożonych, powtarzalnych zadań powierzamy automatom. Inteligentny robot nigdy się nie znudzi, nie zmęczy i będzie cały czas pracował z zadaną prędkością. Zapewnia nam to odpowiednią wydajność i bardzo dużą dokładność wykonywanych czynności. Oczywiście aby osiągnąć te korzyści, najpierw trzeba robota zbudować i zaprogramować. Warto spróbować własnych sił w tej materii. Wiedza o programowaniu autonomicznych robotów jest coraz cenniejsza na rynku pracy, a samo budowanie robotów i ich programowanie może być niesamowicie interesującym hobby!
Ta książka stanowi przystępne wprowadzenie do świata projektantów i budowniczych robotów. Dzięki niej dowiesz się, jak wybrać potrzebne podzespoły, jak je ze sobą połączyć i jak wykorzystywać poszczególne urządzenia wejścia i wyjścia. Posłużysz się w tym celu płytką Raspberry Pi i kompatybilnymi z nią podzespołami. Następnie napiszesz w Pythonie kod, dzięki któremu wzbogacisz swojego robota o sztuczną inteligencję i połączysz się z nim przez Wi-Fi za pomocą smartfonu. Zdobędziesz również wiedzę, w jaki sposób realizować bardziej złożone projekty z zakresu robotyki, a także przygotujesz się, aby zwizualizować, zaprojektować, zbudować i zaprogramować robota według własnego pomysłu.
Z tą książką:
- skonfigurujesz Raspberry Pi pod kątem zbudowania robota ze sztuczną inteligencją
- podłączysz silniki i czujniki do Raspberry Pi
- zaprogramujesz inteligentnego robota
- wykorzystasz technologie rozpoznawania mowy i przetwarzania obrazu
- nauczysz się sterowania robotem ze sztuczną inteligencją przez Wi-Fi za pomocą smartfonu
- zaczniesz samodzielnie projektować i budować roboty
Zbuduj i zaprogramuj inteligentnego robota!
Spis treści
- O autorze
- O korektorach
- Wstęp
- Dla kogo jest ta książka?
- O czym jest ta książka?
- Co trzeba wiedzieć?
- Pobieranie przykładów do książki
- Kod w akcji
- Pobieranie kolorowych rysunków
- Konwencje typograficzne przyjęte w tej książce
- Część I Podstawy robotyki
- Rozdział 1. Wprowadzenie do robotyki
- Co oznacza słowo robot?
- Przykłady zaawansowanych i imponujących robotów
- Łaziki marsjańskie
- Roboty w domu
- Pralka
- Inne roboty w domu
- Roboty w przemyśle
- Robotyczne ramiona
- Roboty magazynowe
- Roboty edukacyjne, hobbystyczne i biorące udział w zawodach
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 2. Odkrywanie elementów robota kod i elektronika
- Wymagania techniczne
- Z czego zbudowany jest robot?
- Rodzaje części robota
- Rodzaje silników
- Inne elementy wykonawcze
- Wskaźniki stanu wyświetlacze, światła i dźwięki
- Rodzaje czujników
- Kontrolery oraz wejścia i wyjścia
- Piny wejścia/wyjścia
- Kontrolery
- Wybór Raspberry Pi
- Projekt z uwzględnieniem części i struktury kodu
- Projekt fizycznej budowy robota
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 3. Odkrywanie Raspberry Pi
- Wymagania techniczne
- Odkrywanie możliwości Raspberry Pi
- Prędkość i moc
- Złącza i praca w sieci
- Wybór Raspberry Pi 3A+
- Wybór złączy
- Piny zasilania
- Magistrale danych
- Ogólne wejścia/wyjścia
- Nakładki Hat do Raspberry Pi
- Czym jest Raspberry Pi OS?
- Przygotowanie karty SD za pomocą Raspberry Pi Imager
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 4. Przygotowanie Raspberry Pi pod robota
- Wymagania techniczne
- Czym jest system bez głowy i dlaczego jest praktycznym rozwiązaniem dla robota?
- Konfiguracja Wi-Fi na Raspberry Pi i włączenie dostępu do SSH
- Znalezienie swojego Raspberry Pi w sieci
- Instalacja programu Bonjour w systemie Windows
- Test programu Bonjour
- Wykrywanie i rozwiązywanie problemów
- Łączenie się z Raspberry Pi za pomocą PuTTY lub SSH
- Konfiguracja Raspberry Pi OS
- Zmiana nazwy Raspberry Pi
- Zabezpieczenie Raspberry Pi (choć w małym stopniu)
- Ponowne uruchomienie Raspberry Pi i połączenie się z nim
- Aktualizacja oprogramowania Raspberry Pi
- Wyłączanie Raspberry Pi
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 5. Tworzenie kopii zapasowej kodu za pomocą Gita i karty pamięci SD
- Wymagania techniczne
- Jak kod może zostać uszkodzony lub utracony?
- Utrata lub uszkodzenie danych na karcie SD
- Zmiany w kodzie i ustawieniach
- Strategia 1. Zapisywanie kodu na PC i przesyłanie go do Pi
- Strategia 2. Użycie Gita do cofania się w czasie
- Strategia 3. Tworzenie kopii zapasowych na karcie SD
- Windows
- Mac
- Linux
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Część II Budowanie autonomicznego robota podłączanie czujników i silników do Raspberry Pi
- Rozdział 6. Podstawy budowania robota koła, zasilanie i połączenia
- Wymagania techniczne
- Wybór podwozia robota
- Rozmiar
- Liczba kół
- Koła i silniki
- Prostota
- Cena
- Wnioski
- Wybór sterownika silników
- Stopień integracji
- Wykorzystanie pinów
- Rozmiar
- Lutowanie
- Zasilanie
- Złącza
- Wnioski
- Zasilanie robota
- Testowe dopasowanie elementów robota
- Składanie podstawy robota
- Montaż płytek enkodera
- Montaż wsporników
- Montaż plastikowych wsporników
- Montaż metalowych wsporników
- Montaż kółka samonastawnego
- Zakładanie kół
- Przygotowanie przewodów
- Montaż Raspberry Pi
- Dodanie baterii
- Montaż banku energii
- Montaż koszyka na baterie
- Gotowa podstawa robota
- Podłączanie silników do Raspberry Pi
- Podłączanie sterownika do silników i baterii
- Niezależne zasilanie
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 7. Jazda do przodu i skręcanie wprawianie silników w ruch za pomocą Pythona
- Wymagania techniczne
- Testowy kod dla silników
- Przygotowanie bibliotek
- Test wyszukanie nakładki sterownika silników
- Test pokazanie, że silniki się kręcą
- Rozwiązywanie problemów
- Omówienie kodu
- Sterowanie robotem
- Rodzaje sterowania
- Koła skrętne
- Koła stałe
- Inne systemy kierowania
- Kierowanie budowanym przez nas robotem
- Rodzaje sterowania
- Obiekt Robot kod do eksperymentów związanych z komunikacją z robotem
- Dlaczego warto utworzyć ten obiekt?
- Z czego się składa obiekt Robot?
- Skrypt pokonania z góry określonej ścieżki
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 8. Programowanie czujników odległości za pomocą Pythona
- Wymagania techniczne
- Wybór między czujnikami optycznymi a ultradźwiękowymi
- Optyczne czujniki odległości
- Ultradźwiękowe czujniki odległości
- Stany logiczne i przesuwanie poziomów napięcia
- Dlaczego dwa czujniki?
- Podłączanie czujnika ultradźwiękowego i odczytywanie z niego danych
- Montaż czujników
- Dodawanie przełącznika zasilania
- Podłączanie czujników odległości
- Instalacja bibliotek Pythona do komunikacji z czujnikiem
- Odczytywanie odległości z czujnika ultradźwiękowego
- Wykrywanie i rozwiązywanie problemów
- Unikanie ścian skrypt omijania przeszkód
- Dodawanie czujników do klasy Robot
- Zachowania polegające na omijaniu przeszkód
- Pierwsza próba omijania przeszkód
- Bardziej zaawansowane omijanie przeszkód
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 9. Programowanie pasków LED RGB za pomocą Pythona
- Wymagania techniczne
- Czym jest pasek LED RGB?
- Porównanie technologii stosowanych w paskach świetlnych
- Wartości RGB
- Podłączanie pasków LED RGB do Raspberry Pi
- Podłączanie paska LED
- Pisanie kodu dla diod LED
- Tworzenie interfejsu LED
- Dodawanie klasy Leds do klasy Robot
- Test jednej diody LED
- Wykrywanie i rozwiązywanie problemów
- Test wszystkich diod LED
- Wyświetlanie tęczy za pomocą diod LED
- Modele przestrzeni barw
- Odcień
- Nasycenie
- Wartość
- Zamiana HSV na RGB
- Wyświetlanie tęczy na pasku LED
- Modele przestrzeni barw
- Wykorzystanie paska LED RGB do rozwiązywania problemów z unikaniem przeszkód
- Dodawanie diod LED do zachowania unikania przeszkód
- Dodawanie kolorów tęczy
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 10. Sterowanie serwomotorami za pomocą Pythona
- Wymagania techniczne
- Czym są serwomotory?
- Budowa serwomotoru
- Wysyłanie pozycji do serwomotorów
- Ustawianie serwomotoru za pomocą Raspberry Pi
- Kod obracający serwomotorem
- Wykrywanie i rozwiązywanie problemów
- Sterowanie silnikami prądu stałego i serwomotorami
- Kalibracja serwomotorów
- Dodawanie mechanizmu uchylno-obrotowego
- Budowa mechanizmu uchylno-obrotowego
- Montaż mechanizmu uchylno-obrotowego na robocie
- Kod dla mechanizmu uchylno-obrotowego
- Obiekt serwomotoru
- Dodawanie serwomotoru do klasy robota
- Kręcenie mechanizmem uchylno-obrotowym
- Uruchamianie mechanizmu uchylno-obrotowego
- Wykrywanie i rozwiązywanie problemów
- Budowanie sonaru
- Montaż czujnika
- Instalacja bibliotek
- Kod zachowania
- Wykrywanie i rozwiązywanie problemów
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 11. Programowanie enkoderów za pomocą Pythona
- Wymagania techniczne
- Pomiar przejechanego dystansu za pomocą enkoderów
- Zastosowanie enkoderów
- Rodzaje enkoderów
- Określanie położenia bezwzględnego i względnego
- Określanie kierunku i prędkości
- Enkodery w naszym robocie
- Montaż enkoderów
- Przygotowanie enkoderów
- Podnoszenie Raspberry Pi
- Przymocowanie enkoderów do podwozia
- Podłączanie enkoderów do Raspberry Pi
- Wykrywanie pokonanej odległości za pomocą Pythona
- Zapisywanie informacji w logu
- Proste zliczanie
- Wykrywanie i rozwiązywanie problemów
- Dodawanie enkoderów do obiektu robota
- Wykorzystanie klasy enkoderów
- Dodawanie urządzenia do obiektu robota
- Przeliczanie tyknięć na milimetry
- Jazda po linii prostej
- Korygowanie toru jazdy za pomocą regulatora PID
- Obiekt regulatora PID w Pythonie
- Kod jazdy po linii prostej
- Wykrywanie i rozwiązywanie problemów dotyczących tego zachowania
- Pokonanie zadanego dystansu
- Refaktoryzacja zamiany jednostek w klasie EncoderCounter
- Inicjalizacja stałych
- Zachowanie polegające na pokonywaniu zadanej odległości
- Skręcanie w określony sposób
- Funkcja jazdy po łuku
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 12. Programowanie IMU za pomocą Pythona
- Wymagania techniczne
- Urządzenia nawigacji inercyjnej
- Polecane modele IMU
- Lutowanie dodawanie złączy do IMU
- Połączenia lutowane
- Montaż IMU na robocie
- Umiejscowienie czujnika na robocie
- Podłączanie IMU do Raspberry Pi
- Pomiar temperatury
- Instalacja oprogramowania
- Wykrywanie i rozwiązywanie problemów
- Odczytywanie pomiarów temperatury
- Tworzenie interfejsu
- Czym jest VPython?
- Wykres temperatury
- Rysowanie wykresu temperatury
- Wykrywanie i rozwiązywanie problemów
- Uproszczenie linii poleceń systemu VPython
- Odczytywanie danych z żyroskopu za pomocą Pythona
- Zasada działania żyroskopu
- Układy współrzędnych i obrót
- Dodawanie żyroskopu do interfejsu
- Wykres danych z żyroskopu
- Zasada działania żyroskopu
- Odczytywanie danych z akcelerometru za pomocą Pythona
- Zasada działania akcelerometru
- Dodawanie akcelerometru do interfejsu
- Wyświetlanie danych z akcelerometru w postaci wektora
- Praca z magnetometrem
- Zasada działania magnetometru
- Dodawanie magnetometru do interfejsu
- Wyświetlanie danych z magnetometru
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Część III Słyszenie i widzenie wyposażenie robota w inteligentne czujniki
- Rozdział 13. System wizyjny robota z wykorzystaniem bibliotek PiCamera i OpenCV
- Wymagania techniczne
- Konfiguracja kamery dla Raspberry Pi
- Montaż kamery na mechanizmie uchylno-obrotowym
- Podłączanie kamery
- Konfiguracja oprogramowania do rozpoznawania obrazów
- Konfiguracja oprogramowania kamery Pi
- Zdjęcie z Raspberry Pi
- Instalacja OpenCV i bibliotek pomocniczych
- Tworzenie aplikacji dla Raspberry Pi do przesyłania obrazu
- Projektowanie serwera kamery OpenCV
- Obiekt CameraStream
- Tworzenie głównej aplikacji serwera do przesyłania obrazów
- Budowa szablonu
- Uruchamianie serwera
- Wykrywanie i rozwiązywanie problemów
- Wykonywanie zadań w tle w trakcie przesyłania obrazu
- Tworzenie trzonu aplikacji webowej
- Tworzenie sterowanego zachowania
- Tworzenie szablonu na potrzeby sterowania
- Uruchamianie sterowalnego serwera z obrazami
- Podążanie za kolorowymi obiektami za pomocą Pythona
- Zamiana obrazu na informacje
- Rozbudowa regulatora PID
- Dodawanie pozostałych elementów zachowania
- Stworzenie szablonu do sterowania
- Napisanie kodu zachowania
- Uruchamianie zachowania
- Dobieranie odpowiednich wartości dla regulatora PID
- Wykrywanie i usuwanie problemów
- Śledzenie twarzy za pomocą Pythona
- Szukanie obiektów na obrazie
- Całkowanie obrazów
- Wyszukiwanie podstawowych cech
- Projektowanie naszego zachowania
- Kod odpowiedzialny za śledzenie twarzy
- Uruchamianie zachowania polegającego na śledzeniu twarzy
- Wykrywanie i rozwiązywanie problemów
- Szukanie obiektów na obrazie
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 14. Śledzenie linii z wykorzystaniem kamery i Pythona
- Wymagania techniczne
- Śledzenie linii wprowadzenie
- Czym jest śledzenie linii?
- Zastosowanie w przemyśle
- Rodzaje technik śledzenia linii
- Tworzenie trasy testowej dla funkcji śledzenia linii
- Przygotowanie niezbędnych materiałów
- Wytyczanie linii
- Proces śledzenia linii z wykorzystaniem komputerowego rozpoznawania obrazów
- Algorytmy śledzenia linii za pomocą kamery
- Proces rozpoznawania linii
- Testowanie widzenia komputerowego za pomocą przykładowych obrazów
- Dlaczego należy używać obrazów testowych?
- Przygotowanie obrazów testowych
- Kod Pythona znajdujący krawędzie linii
- Określanie położenia linii na podstawie krawędzi
- Obrazy testowe z niewyraźną linią
- Śledzenie linii z wykorzystaniem algorytmu PID
- Tworzenie schematu zachowania
- Dodawanie czynnika czasu do regulatora PID
- Tworzenie wstępnej wersji zachowania
- Regulacja wartości PID
- Wykrywanie i rozwiązywanie problemów
- Ponowne odnajdowanie linii
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 15. Komunikacja głosowa z robotem za pomocą programu Mycroft
- Wymagania techniczne
- Wprowadzenie do programu Mycroft terminologia asystenta głosowego
- Zamiana mowy na tekst
- Słowa wybudzające
- Wypowiedzi
- Intencja
- Dialogi
- Słownictwo
- Umiejętności
- Ograniczenia nasłuchiwania mowy przez robota
- Dodawanie wejścia i wyjścia audio do Raspberry Pi
- Montaż nakładki
- Instalacja asystenta głosowego na Raspberry Pi
- Instalacja oprogramowania nakładki ReSpeaker Pi
- Wykrywanie i rozwiązywanie problemów
- Komunikacja programu Mycroft z kartą dźwiękową
- Pierwsze kroki w programie Mycroft
- Klient Mycroft
- Rozmowa z asystentem głosowym Mycroft
- Wykrywanie i rozwiązywanie problemów
- Programowanie API za pomocą modułu Flask
- Zarys sterowania robotem za pomocą Mycroftu
- Zdalne uruchamianie zachowania
- Zarządzanie trybami robota
- Programowanie interfejsu sterującego
- Wykrywanie i rozwiązywanie problemów
- Programowanie asystenta głosowego w programie Mycroft
- Tworzenie intencji
- Plik konfiguracyjny
- Plik z zależnościami
- Tworzenie plików ze słownictwem
- Pliki z odpowiedziami
- Obecna struktura folderu umiejętności
- Wykrywanie i rozwiązywanie problemów
- Dodawanie kolejnej intencji
- Słownictwo i dialog
- Dodawanie kodu
- Próba po dodaniu nowej intencji
- Tworzenie intencji
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 16. Więcej o IMU
- Wymagania techniczne
- Programowanie wirtualnego robota
- Tworzenie modelu w VPythonie
- Wykrywanie i rozwiązywanie problemów
- Tworzenie modelu w VPythonie
- Wykrywanie obrotu za pomocą żyroskopu
- Kalibracja żyroskopu
- Obracanie wirtualnym robotem za pomocą żyroskopu
- Wykrywanie i rozwiązywanie problemów
- Wykrywanie pochylenia i przechylenia za pomocą akcelerometru
- Odczyt pochylenia i przechylenia z wektora akcelerometru
- Wykrywanie i rozwiązywanie problemów
- Wygładzanie odczytów akcelerometrów
- Przyrost czasu
- Fuzja danych pomiarowych z akcelerometru i żyroskopu
- Wykrywanie i rozwiązywanie problemów
- Odczyt pochylenia i przechylenia z wektora akcelerometru
- Wykrywanie odchylenia za pomocą magnetometru
- Kalibracja magnetometru
- Wykrywanie i rozwiązywanie problemów
- Sprawdzanie danych uzyskanych podczas kalibracji
- Co, jeśli koła nie nakładają się na siebie?
- Kalibracja magnetometru
- Odczytywanie przybliżonej wartości odchylenia robota z magnetometru
- Zestawienie odczytów z czujników w celu ustalenia orientacji
- Rozwiązanie problemu 180 stopni
- Sterowanie robotem na podstawie danych z IMU
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Rozdział 17. Sterowanie robotem za pomocą telefonu i Pythona
- Wymagania techniczne
- Gdy nie działa sterowanie głosem dlaczego musimy mieć możliwość sterowania
- Menu wybieranie zachowań dla robota
- Zarządzanie trybami robota
- Wykrywanie i rozwiązywanie problemów
- Usługa sieciowa
- Szablon
- Uruchamianie aplikacji
- Wykrywanie i rozwiązywanie problemów
- Wybór kontrolera jak będziemy sterować robotem i dlaczego
- Projekt i ogólny zarys
- Przygotowanie Raspberry Pi do zdalnego sterowania przygotowanie podstawowego systemu sterowania
- Rozbudowa podstawowej aplikacji do obsługi obrazów
- Budowa systemu ręcznego sterowania
- Szablon (strona internetowa)
- Arkusz stylów
- Programowanie suwaków
- Uruchamianie ręcznego sterowania
- Wykrywanie i rozwiązywanie problemów
- Robot w pełni sterowany za pomocą telefonu
- Tryby menu kompatybilne z zachowaniami opartymi na module Flask
- Wgrywanie usług wideo
- Nadanie menu stylu
- Przekształcanie linków menu w przyciski
- Menu startowe dla Raspberry Pi
- Dodawanie diody do serwera menu
- Automatyczne uruchamianie robota za pomocą systemd
- Wykrywanie i rozwiązywanie problemów
- Podsumowanie
- Ćwiczenia
- Lektura uzupełniająca
- Część IV Kontynuacja przygody z robotyką
- Rozdział 18. Rozwijanie umiejętności z zakresu robotyki
- Społeczności konstruktorów robotów w sieci fora i media społecznościowe
- Kanały w serwisie YouTube, które warto znać
- Pytania natury technicznej gdzie szukać pomocy?
- Spotkania konstruktorów robotów zawody, miejsca dla twórców, spotkania
- Przestrzeń dla twórców
- Targi twórców, Raspberry Jams i Doja
- Zawody
- Propozycje nowych umiejętności do zdobycia druk 3D, lutowanie, PCB i CNC
- Projektowanie
- Projekty 2D i schematy
- 3D CAD
- Umiejętności związane z formowaniem i budowaniem
- Umiejętności obsługi maszyn i narzędzi
- Umiejętności manualne i narzędzia
- Umiejętności związane z elektroniką
- Zasady w elektronice
- Rozwijanie umiejętności lutowania
- Niestandardowe obwody
- Projektowanie
- Wzbogacanie wiedzy o rozpoznawaniu obrazów
- Książki
- Kursy internetowe
- Media społecznościowe
- Wzbogacanie swojej wiedzy o uczenie maszynowe
- Platforma programistyczna ROS
- Podsumowanie
- Lektura uzupełniająca
- Społeczności konstruktorów robotów w sieci fora i media społecznościowe
- Rozdział 19. Projekt kolejnego robota podsumowanie
- Wymagania techniczne
- Wizualizacja Twojego następnego robota
- Tworzenie schematu blokowego
- Wybór części
- Schemat testowego dopasowania elementów robota
- Zakup części
- Składanie robota
- Planowanie kodu dla robota
- Warstwy oprogramowania
- Schematy przepływu danych
- Ogólnie przyjęte formy schematów
- Programowanie robota
- Przedstawienie światu swojego projektu
- Podsumowanie
Kategoria: | Programowanie |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-8168-1 |
Rozmiar pliku: | 85 MB |