Inhoudsopgave:

EWON Raspberry Pi Powered Home Robot - Ajarnpa
EWON Raspberry Pi Powered Home Robot - Ajarnpa

Video: EWON Raspberry Pi Powered Home Robot - Ajarnpa

Video: EWON Raspberry Pi Powered Home Robot - Ajarnpa
Video: Companion Robot: Overview - Raspberry Pi | Arduino | DIY Robotics 2024, Juli-
Anonim
EWON Raspberry Pi aangedreven huisrobot
EWON Raspberry Pi aangedreven huisrobot
EWON Raspberry Pi aangedreven huisrobot
EWON Raspberry Pi aangedreven huisrobot
EWON Raspberry Pi aangedreven huisrobot
EWON Raspberry Pi aangedreven huisrobot

Door sharathnaikSharathnaik.comVolg meer van de auteur:

Hart Visualizer | Zie je hartslag
Hart Visualizer | Zie je hartslag
Hart Visualizer | Zie je hartslag
Hart Visualizer | Zie je hartslag
DIY- Cool Denim Pocket Notebook (met afbeeldingen)
DIY- Cool Denim Pocket Notebook (met afbeeldingen)
DIY- Cool Denim Pocket Notebook (met afbeeldingen)
DIY- Cool Denim Pocket Notebook (met afbeeldingen)
PUPPI
PUPPI
PUPPI
PUPPI

Over: Engineering en Design Meer over sharatnaik »

Ik merkte onlangs dat ik veel Netflix-series aan het bingewatchen was vanwege de huidige situatie, ik hoop dat jullie allemaal veilig zijn, en ik zag dat seizoen 5 van de Black Mirror werd uitgebracht. Een anthologiereeks die draait om het persoonlijke leven van een groep mensen en hoe technologie hun gedrag manipuleert.

En een van de afleveringen die mijn aandacht trok, waren Rachel, Jack en Ashley Too. Een van de hoofdpersonen van deze serie is een huisrobot genaamd Ashley O en die robot heeft veel karakter eromheen en ik dacht voor mezelf dat ik er een moest bouwen, het is een goed project om te beginnen met programmeren, zo niet dan tenminste Ik kan het programmeren om te lachen om mijn grappen.!

Wat/Wie is Ewon? Wat kan het doen?

Dus voordat ik aan dit project begon te werken, heb ik een aantal basisregels opgesteld die moeten worden gevolgd. Dit project moest

  • Makkelijk voor iedereen om uit te proberen
  • Niet alleen om schattig te zijn, maar ook om nuttig te zijn, zodat het niet in een plank belandt
  • Modulair, zodat je steeds nieuwe features kunt toevoegen.

Na het instellen van deze regel besloot ik de Google Assistant SDK te gebruiken. Deze SDK biedt veel functies waar ik naar op zoek was en als je je verveelt met Ewon, kun je hem altijd gebruiken als een Google Home-apparaat en doen wat een Google-home doet.

Wat Ewon gaat doen, is een personage toevoegen aan de Google-assistent. Dat is emoties tonen en reageren op wat de gebruiker zegt. Nu is het niet alleen de stem die je hoort, maar je kunt ook zien hoe je moet reageren.

OPMERKING: Dit instructable is in ontwikkeling. Ik zal binnenkort alle relevante bestanden uploaden. Bedankt

Stap 1: Onderdelen die nodig zijn voor Ewon

ELEKTRONICA

  • Framboos PI
  • Servo SG90 (x4)
  • Servo MG995 – standaard (x2)
  • PCA9685 16-kanaals servostuurprogramma
  • USB-geluidskaart
  • Microfoon
  • Luidsprekers (elke kleine luidspreker is voldoende, zoiets als dit)
  • Mannelijke en vrouwelijke pin-headerconnectoren
  • Breadboard
  • Nextion-display

BEVESTIGINGSMIDDELEN EN LAGERS

  • M3*10mm (x10)
  • M3*8mm (x10)
  • M3 Moeren (x20)
  • Handelswijze

    • OD: 15 mm ID: 6 mm Breedte: 5 mm (x2)
    • OD: 22 mm ID: 8 mm Breedte: 7 mm (x2)

ANDERE MATERIALEN

  • Standoff

    • 40mm (x4)
    • 30mm (x4)

GEREEDSCHAP

3D-printer

Stap 2: Ewon en programmeren begrijpen

Ewon en programmeren begrijpen
Ewon en programmeren begrijpen
Ewon en programmeren begrijpen
Ewon en programmeren begrijpen
Ewon en programmeren begrijpen
Ewon en programmeren begrijpen

Voordat ik met het programmeeraspect begin, wil ik eerst kort het blokschema van de schakeling van Ewon uitleggen.

RPI (Raspberry pi) is het brein van het systeem. Servo driver bestuurd door RPI stuurt de servo aan. Display bestuurd door RPI met seriële communicatie om emoties te tonen en tot slot microfoon en luidsprekers die worden gebruikt om met Ewon te communiceren. Nu we weten welke hardware wat doet, gaan we Ewon programmeren.

Google Assistant SDK installeren

Laat me de twee redenen uitleggen waarom ik van plan was om Google Assistant te gebruiken:

  • Ik wilde dat Ewon niet alleen een leuke robot zou zijn, maar ook een nuttige. Google Assistant SDK heeft al een heleboel bronnen die u kunt gebruiken om de functionaliteit van Ewon te vergroten.
  • U kunt ook acties op Google en dialoogstroom gebruiken om Ewon de mogelijkheid te geven om te chatten met vooraf gedefinieerde antwoorden. Voor nu zullen we ons concentreren op alleen de basis-SDK.

Laten we beginnen door de Google Assistant SDK te installeren. Dit zou niet moeilijk moeten zijn, want er zijn een heleboel bronnen om u te helpen bij het instellen van Google Assistant SDK op RPI. Je kunt deze tutorial volgen:

Zelfstudie:

Na het einde van het bovenstaande proces zou u op enter op het toetsenbord moeten kunnen klikken en met de assistent kunnen praten. Dat is alles over het installeren van de Google Assistant SDK.

Hoe moet ik het noemen? Ewon?

Hé Google! Dat is wat wordt gebruikt om met Google Assistant te praten en helaas staat Google niet toe dat een ander aangepast wake-woord wordt gebruikt. Dus laten we eens kijken hoe we dit kunnen veranderen, zodat de Google Assistent wordt geactiveerd wanneer iemand Ewon belt.

Snowboy: een zeer aanpasbare hot-word-detectie-engine die is ingebed in realtime compatibel met Raspberry Pi, (Ubuntu) Linux en Mac OS X.

Een heet woord (ook bekend als wake-word of triggerwoord) is een trefwoord of zin waar de computer constant naar luistert als een signaal om andere acties te activeren.

Laten we beginnen met het installeren van Snowboy op RPI. Vergeet niet om de virtuele omgeving te activeren om Snowboy te installeren zoals u deed om Assistant SDK te installeren. Alles wat we vanaf hier installeren, moet in de virtuele omgeving worden geïnstalleerd. Het installeren van Snowboy kan een beetje lastig zijn, maar deze link zou je moeten helpen het zonder problemen te installeren. Link:

Hier is een samengevat installatieproces als de bovenstaande link verwarrend wordt of de installatie mislukt.

$ [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

Eenmaal geïnstalleerd, voer het demobestand uit [gevonden in de map - snowboy/examples/Python3/] om te zien of alles perfect werkt.

Let op: je kunt de naam van je robot ook gemakkelijk in iets anders veranderen. Het enige wat je hoeft te doen is naar https://snowboy.kitt.ai/ te gaan en een aangepast hotword te trainen en dat hotword vervolgens in dezelfde map als ewon.pmdl te plaatsen.

Kan Ewon emoties begrijpen?

Nu Ewon een naam heeft, zal ik Ewon gebruiken in plaats van het een robot te noemen. Oké, dus emoties, korte antwoorden nee, Ewon kan emoties niet begrijpen, dus wat we hier gaan doen, is ervoor zorgen dat Ewon emotie in onze spraak detecteert met behulp van trefwoorden en vervolgens de bijbehorende gezichtsuitdrukking afspeelt.

Om dit te bereiken heb ik een eenvoudig sentimentanalysescript gemaakt. Er zijn 6 verschillende emotieklassen.

Afbeelding
Afbeelding

Blij, verdrietig, boos, angst, walging en verrassing. Dit zijn de belangrijkste emotieklassen en elk van hen heeft een lijst met trefwoorden die bij de emotie horen. (bijvoorbeeld goed, aardig, opgewonden, vallen allemaal onder blije emotie).

Dus wanneer we een van de trefwoorden in de emotieklasse zeggen, wordt de bijbehorende emotie geactiveerd. Dus als je zegt "Hey Ewon!" en wacht tot Ewon spreekt en ik blijf zeggen: "Vandaag is een mooie dag!", hij pikt het trefwoord "Nice" op en activeert de bijbehorende emotie 'Happy' die de gezichtsuitdrukking voor Happy activeert.

Zitten die oren op Ewon?

De volgende stap zou zijn om de getriggerde emotie te gebruiken om de respectieve gezichtsuitdrukking uit te voeren. Met Ewon is de gezichtsuitdrukking het opmerken, maar het bewegen van zijn oor en nek met behulp van servo's en het veranderen van het display om de oogbewegingen te veranderen.

Ten eerste de servo's, om dit uit te voeren is het vrij eenvoudig, je kunt deze tutorial volgen om de Adafruit-servobibliotheek in te stellen. Link:

Afbeelding
Afbeelding

Vervolgens wijzen we de maximale en minimale waarde toe aan alle servo's. Dit wordt gedaan door elke servo handmatig te verplaatsen en de limieten te controleren. Dit kun je doen als je Ewon eenmaal hebt samengesteld.

Ogen voor Ewon

Voor de ogen gebruik ik een Nextion-display met een aantal afbeeldingen zoals hieronder.

Afbeelding
Afbeelding

Het is een reeks afbeeldingen die ik in Photoshop heb ontworpen en die, wanneer ze in volgorde worden afgespeeld, een animatie maakt. Voor alle emoties is een vergelijkbare volgorde gemaakt. Om nu enige emotie weer te geven, hoef je alleen maar de specifieke afbeeldingsreeks te noemen waaruit de animatie bestaat. De bestanden bevinden zich in de map 'Bestanden weergeven', downloadlink hieronder.

Eindelijk

Alles samenvoegend wanneer de gelukkige emotie wordt geactiveerd door het script, wordt de gelukkige functie aangeroepen en de servo beweegt naar de reeds ingestelde hoeken en het display speelt de vrolijke ooganimatie af. Dit is dus hoe we menselijke emoties 'begrijpen'. Deze methode is niet de beste en er zijn momenten waarop zoekwoorden niet in dezelfde emotie vallen als vooraf gedefinieerd, maar voor nu werkt dit goed genoeg en u kunt altijd meer zoekwoorden toevoegen om de nauwkeurigheid van detectie te vergroten. Verder kan dit worden vervangen door een veel beter getraind emotieanalysemodel zoals het Paralleldots emotieanalysemodel om betere resultaten te krijgen. Maar toen ik het probeerde, waren er veel vertragingen waardoor Ewon langzamer zou reageren. Misschien heeft Ewon versie 2.0 zoiets als dit.

Dit is de LINK naar alle bestanden die nodig zijn om EWON uit te voeren. Download het bestand en volg de onderstaande stappen:

  • Unzip het bestand plaats deze map (Ewon) thuis/pi/
  • Voeg apparaat-ID en model-ID toe aan het bestand main.py. De ID wordt verkregen tijdens het installeren van Google Assistant SDK.
  • Open de opdrachtprompt en voer de bron van de volgende opdrachten uit:

bron env/bin/activatepython main.py models/Ewon.pmdl

Stap 3: Het lichaam afdrukken

U kunt de 3D-bestanden hier vinden:

Nu we allemaal zijn ingesteld met de hersenen van Ewon, is het tijd om zijn lichaam af te drukken. Er zijn 18 unieke onderdelen om te printen, de meeste zijn vrij klein, met een totale printtijd van ongeveer 15-20 uur. (exclusief de gevallen).

Ik gebruikte wit PLA met 50% vulling en een laaghoogte van 2 mm. U kunt deze waarden indien nodig wijzigen. Het zou goed moeten werken, maar zorg ervoor dat de kleine onderdelen 100% vulling hebben, voor sterkte.

Nadat de bestanden zijn afgedrukt, kunt u schuurpapier of een handvijl gebruiken en de afgedrukte delen opruimen, vooral de schakels waar de delen door elkaar schuiven. Door de verbindingen glad te strijken, wordt het mechanisme soepel en wordt de servo minder weerstand geboden. Dit proces kan zo lang duren als u wilt, aangezien u kunt verdwalen bij het proberen om de afgedrukte onderdelen er perfect uit te laten zien.

Extra opmerkingen: U kunt de gaten in de 3D-geprinte delen opnieuw boren met een 3 mm-bit. Alle gaten hebben dezelfde afmetingen. Dit vergemakkelijkt het indraaien van de moeren later in de montage.

Stap 4: Ewon samenbrengen

Ewon samenbrengen
Ewon samenbrengen
Ewon samenbrengen
Ewon samenbrengen
Ewon samenbrengen
Ewon samenbrengen
Ewon samenbrengen
Ewon samenbrengen

Voordat we beginnen met de montage zijn er weinig aanpassingen nodig aan de geprinte onderdelen. De bestanden met de naam servolink moeten worden uitgerust met servolinks die bij de servo worden geleverd, dit zorgt ervoor dat de 3D-geprinte links goed aansluiten op de servo.

De montage van Ewon moet eenvoudig zijn. Ik heb afbeeldingen bijgevoegd die u kunt volgen.

Extra opmerkingen: Zorg ervoor dat u de bout of schroef niet te vast aandraait, omdat dit kan breken en de bedrukte delen kan slijten.

Stap 5: Bedrading van Ewon

Bedrading Ewon
Bedrading Ewon
Bedrading Ewon
Bedrading Ewon
Bedrading Ewon
Bedrading Ewon

We zijn bij de laatste stap om Ewon tot leven te laten komen. Hier is het bedradingsschema voor de componenten samen met afbeeldingen die de verbinding laten zien.

  • Servo-stuurprogramma is verbonden met de I2C-pinnen die SDA en SCL van RPI zijn.
  • Het display is verbonden met de RX- en TX-pinnen van RPI
  • Microfoon en luidsprekers zijn aangesloten op de USB-geluidskaart die via de USB-poort op RPI is aangesloten.

Waarschuwing: wees voorzichtig met het kortsluiten van uw RPI. Controleer al je verbindingen twee keer en zorg ervoor dat je geen fouten hebt gemaakt. Alle accessoires die luidspreker, servodriver en display zijn, worden gevoed door een aparte 5v-batterij en gebruiken de Raspberry Pi 5v-lijn niet. Raspberry pi wordt alleen gebruikt om gegevens naar de accessoires te sturen, maar niet om ze van stroom te voorzien.

Stap 6: Hey Ewon! Kan je me horen?

Hey Ewon! Kan je me horen?
Hey Ewon! Kan je me horen?

Daarom hebben we al onze accessoires aangesloten en alle benodigde bibliotheken geïnstalleerd. U kunt Ewon starten door het shellscript uit te voeren met./run Ewon.sh. Maar wat is dit.sh-script? Ewon gebruikt veel verschillende bibliotheken met verschillende scripts (Google-assistent SDK, Snowboy, Adafruit, enz.). Alle scripts worden in hun respectievelijke mappen geplaatst. (We kunnen alle bestanden in hetzelfde pad verplaatsen en alle scripts ordenen, maar momenteel staan sommige bibliotheken het verplaatsen van de bronbestanden niet toe, dus voorlopig houden we ze gewoon op hun respectieve locaties).sh is shellscripts die al deze scripts één voor één vanaf elke locatie uitvoeren, zodat u niet handmatig naar elke locatie hoeft te gaan en de scripts uitvoert. Dit maakt het gemakkelijker om alle opdrachten uit te voeren.

Zodra je het shellscript hebt uitgevoerd, zeg je gewoon "Hey Ewon!" en je zou moeten zien dat Ewon naar je begint te luisteren. Nu kun je Ewon gebruiken als Google-assistent en ermee praten en je kunt Ewon uitdrukkingen zien veranderen van wat je zegt. Probeer iets als "Hé Ewon! Ik ben verdrietig vandaag "en je kunt zien dat Ewon verdrietig met je is. Vraag Ewon om een grap en zie hem lachen om de grap.

Stap 7: wat nu?

Ewon stopt hier niet. Ewon heeft nu een manier om emoties te detecteren en te tonen, maar we kunnen er veel meer mee doen. Dit is slechts het begin.

In de komende update zullen we werken aan het maken van

  • Ewon detecteert gezichten en volgt je gezicht en beweegt mee met je gezicht.
  • We zullen geluidseffecten toevoegen om het personage extra diepte te geven.
  • Voeg mobiliteit toe zodat Ewon met je mee kan bewegen.

Opmerking: door de huidige situatie is het erg moeilijk geworden om onderdelen voor het project te vinden. Dit zorgde ervoor dat ik het ontwerp en de functionaliteit veranderde, rekening houdend met de gedachten die ik in mijn inventaris had. Maar zodra ik alle onderdelen in handen heb, werk ik het bovenstaande project bij.

updates:

  • Enkele wijzigingen aangebracht in de code, shellscript verwijderd.
  • Een rechthoekig lichaam toegevoegd voor EWON.

Aanbevolen: