E-book details

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

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

Danny Staple

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!

  • 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
  • Title: Jak zaprogramować robota. Zastosowanie Raspberry Pi i Pythona w tworzeniu autonomicznych robotów. Wydanie II
  • Author: Danny Staple
  • Original title: Learn Robotics Programming: Build and control AI-enabled autonomous robots using the Raspberry Pi and Python, 2nd Edition
  • Translation: Anna Mizerska
  • ISBN: 978-83-283-8168-1, 9788328381681
  • Date of issue: 2022-01-11
  • Format: Ebook
  • Item ID: jazar2
  • Publisher: Helion