Jak zaprogramować robota. Zastosowanie Raspberry Pi i Pythona w tworzeniu autonomicznych robotów. Wydanie II (ebook) Katowice

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 …

od 49,50 Najbliżej: 26 km

Liczba ofert: 1

Oferta sklepu

Opis

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 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 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 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 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 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 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 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? 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 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 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 O autorze: Danny Staple jest inżynierem programowania. Zawodowo programuje w Pythonie, zajmuje się też metodyką DevOps i automatyzacją. Zdobył duże doświadczenie w pracy z systemami wbudowanymi. Hobbystycznie buduje roboty i różne gadżety, jest też mentorem CoderDojo Ham, a jakiś czas temu prowadził kluby LEGO Robotics.

Specyfikacja

Podstawowe informacje

Autor
  • Danny Staple
Rok wydania
  • 2022
Format
  • PDF
  • MOBI
  • EPUB
Ilość stron
  • 520
Kategorie
  • Programowanie
Wybrane wydawnictwa
  • Helion