Spisu treści:
- Krok 1: Części wymagane dla Ewon
- Krok 2: Zrozumienie Ewona i programowania
- Krok 3: Drukowanie ciała
- Krok 4: Łączenie Ewona
- Krok 5: Podłączanie Ewona
- Krok 6: Hej Ewon! Czy mnie słyszysz?
- Krok 7: Co dalej?
Wideo: EWON Zasilany robot domowy Raspberry Pi: 7 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
By sharathnaikSharathnaik.comObserwuj Więcej autora:
O: Inżynieria i projektowanie Więcej o sharathnaik »
Ostatnio ze względu na obecną sytuację oglądałem wiele seriali Netflixa. Mam nadzieję, że wszyscy jesteście bezpieczni, i widziałem, że wyszedł 5 sezon Black Mirror. Seria antologii, która koncentruje się na życiu osobistym grupy ludzi i tym, jak technologia manipuluje ich zachowaniem.
A jednym z odcinków, które przykuły moją uwagę, była Rachel, Jack i Ashley Too. Jedną z głównych postaci tej serii jest robot domowy o imieniu Ashley O i ten robot ma wokół siebie wiele charakteru i pomyślałem, że powinienem taki zbudować, to dobry projekt na rozpoczęcie programowania, jeśli nie to, to przynajmniej Mogę to zaprogramować, żeby śmiać się z moich żartów.!
Co/Kim jest Ewon? Co może zrobić?
Więc zanim zacząłem pracować nad tym projektem, ustaliłem kilka podstawowych zasad, których należy przestrzegać. Ten projekt musiał być
- Łatwy do wypróbowania dla wszystkich
- Nie tylko po to, by być słodkim, ale także przydatnym, aby nie wylądował na półce
- Modułowy, dzięki czemu możesz dodawać nowe funkcje.
Po ustaleniu tej reguły postanowiłem skorzystać z pakietu SDK Asystenta Google. Ten pakiet SDK zapewnia wiele funkcji, których szukałem, a jeśli znudzi Ci się Ewon, zawsze używaj go jako urządzenia Google Home i rób to, co robi Google Home.
To, co będzie robił Ewon, to dodanie postaci do asystenta Google. To pokazywanie emocji i reagowanie na to, co mówi użytkownik. Teraz nie tylko słyszysz głos, ale także widzisz, jak zareagujesz.
UWAGA: Ta instrukcja jest w trakcie opracowywania. Wkrótce prześlę wszystkie odpowiednie pliki. Dziękuję Ci
Krok 1: Części wymagane dla Ewon
ELEKTRONIKA
- Malina PI
- Serwo SG90 (x4)
- Serwo MG995 – standardowe (x2)
- PCA9685 16-kanałowy sterownik serwo
- Karta dźwiękowa USB
- Mikrofon
- Głośniki (zrobi każdy mały głośnik, coś takiego)
- Złącza męskie i żeńskie szpilkowe
- Deska do krojenia chleba
- Wyświetlacz Nextion
ŁĄCZNIKI I ŁOŻYSKA
- M3*10mm (x10)
- M3*8mm (x10)
- Nakrętki M3 (x20)
-
Łożysko
- OD: 15mm ID: 6mm Szerokość: 5mm (x2)
- OD: 22mm ID: 8mm Szerokość: 7mm (x2)
INNE MATERIAŁY
-
Odsunięcie
- 40mm (x4)
- 30mm (x4)
NARZĘDZIA
drukarka 3d
Krok 2: Zrozumienie Ewona i programowania
Zanim zacznę od aspektu programowania pokrótce wyjaśnię schemat blokowy obwodu Ewona.
RPI (Raspberry pi) to mózg systemu. Serwonapęd sterowany przez RPI napędza serwo. Wyświetlacz sterowany przez RPI z komunikacją szeregową do pokazywania emocji i wreszcie mikrofon i głośniki służące do komunikacji z Ewonem. Teraz, gdy wiemy, co robi sprzęt, zacznijmy programować Ewona.
Instalowanie pakietu SDK Asystenta Google
Pozwolę sobie wyjaśnić dwa powody, dla których planowałem skorzystać z Asystenta Google:
- Chciałem, aby Ewon był nie tylko zabawnym robotem, ale także użytecznym. Google Assistant SDK ma już mnóstwo zasobów, których możesz użyć, aby zwiększyć funkcjonalność Ewon.
- Możesz także użyć akcji w Google i przepływie dialogu, aby dać Ewonowi możliwość czatowania z predefiniowanymi odpowiedziami. Na razie skoncentrujemy się tylko na podstawowym SDK.
Zacznijmy od zainstalowania pakietu SDK asystenta Google. Nie powinno to być trudne, ponieważ istnieje mnóstwo zasobów, które pomogą Ci skonfigurować Google Assistant SDK na RPI. Możesz śledzić ten samouczek wzdłuż:
Samouczek:
Po zakończeniu powyższego procesu powinieneś być w stanie kliknąć Enter na klawiaturze i porozmawiać z asystentem. To wszystko o instalacji pakietu SDK Asystenta Google.
Jak mam to nazwać? Ewona?
Hej Google! To jest to, co jest używane, aby zacząć rozmawiać z asystentem Google i niestety Google nie pozwala na użycie żadnego innego niestandardowego słowa budzenia. Zobaczmy więc, jak możemy to zmienić, aby asystent Google był uruchamiany, gdy ktoś dzwoni do Ewona.
Snowboy: wysoce konfigurowalny silnik wykrywania gorących słów, który jest osadzony w czasie rzeczywistym, kompatybilny z Raspberry Pi, (Ubuntu) Linux i Mac OS X.
Gorące słowo (znane również jako słowo budzące lub słowo wyzwalające) to słowo kluczowe lub fraza, których komputer nieustannie nasłuchuje, jako sygnał uruchamiający inne działania.
Zacznijmy od zainstalowania Snowboya na RPI. Pamiętaj, aby aktywować środowisko wirtualne, aby zainstalować Snowboy, tak jak w przypadku instalacji Assistant SDK. Wszystko, co odtąd zainstalujemy, musi być zainstalowane w środowisku wirtualnym. Instalacja Snowboya może być trochę trudna, ale ten link powinien pomóc ci zainstalować go bez żadnych problemów. Link:
Oto podsumowanie procesu instalacji, jeśli powyższy link stanie się mylący lub instalacja się nie powiedzie.
$ [sudo] apt-get install libatlas-base-dev swig$ [sudo] pip install pyaudio $ git clone https://github.com/Kitt-AI/snowboy $ cd snowboy/swig/Python3 $ make $ cd.. /.. $ python3 setup.py build $ [sudo] python setup.py install
Po zainstalowaniu uruchom plik demo [znajdujący się w folderze - snowboy/examples/Python3/], aby sprawdzić, czy wszystko działa idealnie.
Uwaga: możesz łatwo zmienić nazwę swojego robota na inną. Wszystko, co musisz zrobić, to wejść na https://snowboy.kitt.ai/ i wytrenować niestandardowe słowo-klucz, a następnie umieścić je w tym samym folderze co ewon.pmdl.
Czy Ewon potrafi zrozumieć emocje?
Teraz, gdy Ewon ma imię, będę używał Ewona, zamiast nazywać go robotem. Okej, więc emocje, krótkie odpowiedzi nie, Ewon nie może zrozumieć emocji, więc zrobimy tutaj, aby Ewon wykrywał emocje w naszej mowie za pomocą słów kluczowych, a następnie odtwarzał odpowiadający im wyraz twarzy.
Aby to osiągnąć, zrobiłem prosty skrypt analizy sentymentu. Istnieje 6 różnych klas emocji.
Radość, smutek, gniew, strach, wstręt i niespodzianka. Są to główne klasy emocji, a każda z nich posiada listę słów kluczowych powiązanych z emocją. (na przykład dobry, miły, podekscytowany, wszyscy wchodzą w radosne emocje).
Tak więc za każdym razem, gdy mówimy którekolwiek ze słów kluczowych w klasie emocji, wyzwalana jest odpowiednia emocja. Więc kiedy mówisz „Hej Ewon!” i czekam, aż Ewon się odezwie, a ja nadal mówię „Dzisiaj jest miły dzień!”, chwyta słowo kluczowe „Nice” i wywołuje odpowiednią emocję „Happy”, która wyzwala mimikę Happy.
Czy te uszy są na Ewonie?
Następnym krokiem byłoby użycie wywołanej emocji do uruchomienia odpowiedniego wyrazu twarzy. W przypadku Ewona wyraz twarzy zwraca uwagę, ale porusza się uchem i szyją za pomocą serwomechanizmów i zmienia wyświetlacz, aby zmienić ruchy oczu.
Po pierwsze, serwa, uruchomienie tego jest dość łatwe, możesz skorzystać z tego samouczka, aby skonfigurować bibliotekę serwo Adafruit. Link:
Następnie przypisujemy maksymalną i minimalną wartość wszystkim serwom. Odbywa się to poprzez ręczne przesuwanie każdego serwa i sprawdzanie jego limitów. Możesz to zrobić po zebraniu Ewona.
Oczy dla Ewona
Dla oczu używam wyświetlacza Nextion, który ma kilka zdjęć jak poniżej.
To sekwencja obrazów, które zaprojektowałem w Photoshopie, które odtwarzane w sekwencji tworzą animację. Podobna sekwencja została stworzona dla wszystkich emocji. Teraz, aby wyświetlić jakąkolwiek emocję, wystarczy wywołać określoną sekwencję obrazów, która tworzy animację. Pliki znajdują się w folderze „Wyświetl pliki”, link do pobrania poniżej.
Wreszcie
Łącząc to wszystko w całość, gdy skrypt wywołuje emocję happy, wywoływana jest funkcja happy, serwo przesuwa się do już ustawionych kątów, a wyświetlacz odtwarza animację happy eye. W ten sposób osiągamy „zrozumienie” ludzkich emocji. Ta metoda nie jest najlepsza i zdarza się, że słowa kluczowe nie pasują do tej samej emocji, co predefiniowane, ale na razie działa to wystarczająco dobrze i zawsze możesz dodać więcej słów kluczowych, aby zwiększyć dokładność wykrywania. Co więcej, można to zastąpić znacznie bardziej wyszkolonym modelem analizy emocji, takim jak model analizy emocji Paralleldots, aby uzyskać lepsze wyniki. Ale kiedy próbowałem, było dużo opóźnień, które powodowały, że Ewon reagował wolniej. Może Ewon w wersji 2.0 będzie miał coś takiego.
To jest LINK do wszystkich plików potrzebnych do uruchomienia EWON. Pobierz plik i wykonaj poniższe czynności:
- Rozpakuj plik umieść ten folder (Ewon) w home/pi/
- Dodaj identyfikator urządzenia i identyfikator modelu w pliku main.py. Identyfikator jest uzyskiwany podczas instalacji pakietu SDK asystenta Google.
- Otwórz wiersz polecenia i uruchom źródło następujących poleceń:
źródło env/bin/activatepython main.py models/Ewon.pmdl
Krok 3: Drukowanie ciała
Pliki 3d można znaleźć tutaj:
Teraz, gdy wszyscy mamy już mózg Ewona, nadszedł czas, aby wydrukować jego ciało. Do wydrukowania jest 18 unikalnych części, większość z nich jest dość mała, a łączny czas drukowania wynosi około 15-20 godzin. (z wyłączeniem przypadków).
Użyłem białego PLA z wypełnieniem 50% i wysokością warstwy 2mm. Możesz zmienić te wartości, jeśli to konieczne, powinno działać dobrze, ale upewnij się, że małe części mają wypełnienie w 100%, aby zapewnić wytrzymałość.
Po wydrukowaniu plików możesz użyć papieru ściernego lub pilnika ręcznego i wyczyścić drukowane części, zwłaszcza łącza, w których części prześlizgują się przez siebie. Wygładzenie stawów sprawi, że mechanizm będzie płynny i zapewni mniejszy opór serwo. Ten proces może potrwać tak długo, jak chcesz, ponieważ można się zgubić, próbując sprawić, by drukowane części wyglądały idealnie.
Dodatkowe uwagi: Możesz ponownie wywiercić otwory w wydrukowanych częściach 3D za pomocą wiertła 3 mm. Wszystkie otwory mają te same wymiary. Ułatwi to późniejsze wkręcanie nakrętek podczas montażu.
Krok 4: Łączenie Ewona
Zanim przystąpimy do montażu, należy dokonać kilku modyfikacji części drukowanych. Pliki o nazwie link serwo muszą być wyposażone w łącza serwo, które są dostarczane z serwomechanizmem, dzięki czemu drukowane łącza 3D dobrze łączą się z serwomechanizmem.
Montaż Ewona powinien być prosty. Załączam zdjęcia, które możesz śledzić.
Dodatkowe uwagi: Upewnij się, że nie dokręcasz zbyt mocno żadnej śruby ani śruby, ponieważ może to spowodować pęknięcie i zużycie części drukowanych.
Krok 5: Podłączanie Ewona
Jesteśmy na ostatnim etapie, aby Ewon ożył. Oto schemat okablowania komponentów wraz z obrazami przedstawiającymi połączenie.
- Serwonapęd jest podłączony do pinów I2C, które są SDA i SCL RPI.
- Wyświetlacz jest podłączony do pinów RX i TX RPI
- Mikrofon i głośniki są podłączone do karty dźwiękowej USB, która jest podłączona do RPI przez port USB.
Ostrzeżenie: Uważaj na zwarcie RPI. Sprawdź dwukrotnie wszystkie połączenia i upewnij się, że nie popełniłeś żadnych błędów. Wszystkie akcesoria, które są głośnikiem, sterownikiem serwomechanizmu i wyświetlaczem, są zasilane osobną baterią 5V i nie korzystają z linii Raspberry Pi 5v. Raspberry pi służy tylko do wysyłania danych do akcesoriów, ale nie do ich zasilania.
Krok 6: Hej Ewon! Czy mnie słyszysz?
Dołączyliśmy więc wszystkie nasze akcesoria i zainstalowaliśmy wszystkie niezbędne biblioteki. Możesz uruchomić Ewon, uruchamiając skrypt powłoki za pomocą./run Ewon.shAle co to za skrypt.sh? Ewon korzysta z wielu różnych bibliotek z różnymi skryptami (SDK asystenta Google, Snowboy, Adafruit itp.). Wszystkie skrypty są umieszczane w odpowiednich folderach. (Możemy przenieść wszystkie pliki w tej samej ścieżce i uporządkować wszystkie skrypty, ale obecnie niektóre biblioteki nie pozwalają na przenoszenie plików źródłowych, więc na razie zachowamy je w odpowiednich lokalizacjach).sh to skrypty powłoki, które uruchamiają wszystkie te skrypty jeden po drugim z każdej lokalizacji, więc nie musisz ręcznie przechodzić do każdej lokalizacji i uruchamiać skryptów. Ułatwia to obsługę wszystkich poleceń.
Po uruchomieniu skryptu powłoki po prostu powiedz „Hej Ewon!” i powinieneś zobaczyć, jak Ewon zaczyna cię słuchać. Teraz możesz używać Ewona jako asystenta Google i mówić do niego, a zobaczysz, jak Ewon zmienia wyrażenia z tego, co mówisz. Spróbuj czegoś w stylu „Hej Ewon! Jestem dzisiaj smutny” i widać, że Ewon jest z tobą smutny. Poproś Ewona o żart i zobacz, jak śmieje się z żartu.
Krok 7: Co dalej?
Ewon nie poprzestaje na tym. Ewon ma teraz sposób na wykrywanie i pokazywanie emocji, ale możemy zrobić o wiele więcej. To dopiero początek.
W nadchodzącej aktualizacji będziemy pracować nad tym, jak zrobić
- Ewon wykrywa twarze, śledzi twoją twarz i porusza się wraz z twoją twarzą.
- Dodamy efekty dźwiękowe, aby nadać postaci dodatkowej głębi.
- Dodaj mobilność, aby Ewon mógł poruszać się razem z tobą.
Uwaga: Ze względu na obecną sytuację bardzo trudno jest pozyskać części do projektu. To sprawiło, że zmieniłem projekt i funkcjonalność, biorąc pod uwagę myśli, które miałem w swoim ekwipunku. Ale jak tylko dostanę w swoje ręce wszystkie części, zaktualizuję powyższy projekt.
Aktualizacje:
- Wprowadzono kilka zmian w kodzie, usunięto skrypt powłoki.
- Dodano prostokątny korpus dla EWON.
Zalecana:
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero: 11 kroków (ze zdjęciami)
Drewniany wyświetlacz LED do gier zasilany przez Raspberry Pi Zero: Ten projekt obejmuje wyświetlacz LED oparty na 20x10 pikseli WS2812 o wymiarach 78x35 cm, który można łatwo zainstalować w salonie, aby grać w gry retro. Pierwsza wersja tej matrycy została zbudowana w 2016 roku i przebudowana przez wiele innych osób. Ten exp
Robot zasilany ultrakondensatorem: 15 kroków (ze zdjęciami)
Robot zasilany ultrakondensatorem: Little Flash to wydrukowany w 3D robot zasilany przez ultrakondensatory. Aby zapobiec utknięciu, używa przełącznika wypukłości i losowych zmian ścieżki. Działa przez 25 minut i można ją naładować w około 40 sekund przy użyciu zasilacza prądu stałego 10 A
Robot zasilany energią słoneczną: 17 kroków (ze zdjęciami)
Robot zasilany energią słoneczną: Jakiś czas temu stworzyłem dziesiątki robotów, które były w dużej mierze inspirowane przez BEAM Robotics. Dla tych, którzy nie są zaznajomieni, BEAM jest w zasadzie specjalną metodą budowania robotów z naciskiem na biologię, elektronikę, estetykę i mechanikę (stąd skrót
Dowiedz się, jak zrobić przenośny monitor zasilany bateryjnie, który może również zasilać Raspberry Pi: 8 kroków (ze zdjęciami)
Dowiedz się, jak zrobić przenośny monitor zasilany bateryjnie, który może również zasilać Raspberry Pi: Czy kiedykolwiek chciałeś kodować pythona lub mieć wyjście wyświetlacza dla robota Raspberry Pi, w podróży lub potrzebujesz przenośnego dodatkowego wyświetlacza do laptopa czy aparat? W tym projekcie będziemy konstruować przenośny monitor zasilany bateryjnie i
IRobot Utwórz osobisty robot domowy: 16 kroków (ze zdjęciami)
IRobot Create Personal Home Robot: Przedstawiamy osobistego robota domowego zbudowanego na platformie iRobot Create i systemie komputerowym mini-itx. Projektowanie i budowanie robotów nigdy nie było prostsze i bardziej przystępne cenowo dzięki wykorzystaniu ekonomii skali z oprogramowania, komputera, zabawki i innych