Inhoudsopgave:

Eve, de Arduino Chatbot: 14 stappen (met afbeeldingen)
Eve, de Arduino Chatbot: 14 stappen (met afbeeldingen)

Video: Eve, de Arduino Chatbot: 14 stappen (met afbeeldingen)

Video: Eve, de Arduino Chatbot: 14 stappen (met afbeeldingen)
Video: AI Chatbot on Raspberry Pi | Offline and Real-time, but ... 2024, Juli-
Anonim
Image
Image
Eve, de Arduino-chatbot
Eve, de Arduino-chatbot
Eve, de Arduino-chatbot
Eve, de Arduino-chatbot

Hallo doe-het-zelvers, zijn er gevallen geweest waarin je echt je gevoelens met iemand wilde delen en er geen vertrouwde in de buurt was? In de drukke wereld van vandaag is dit een veelvoorkomend voorbeeld. Welnu, een chatbot kan hier helpen om je beter te laten voelen. En dat leidt tot de introductie van Eve. Eve is een schattige kleine chatbot. Zoals iedereen weet, is een chatterbot of chatbot een computerprogramma of apparaat dat een gesprek voert met mensen op basis van tekstuele of auditieve methoden. De geautomatiseerde stemmen die je hoort tijdens een telefoontje van de klantenservice of op een banklijn is een voorbeeld van een chatbot. Met haar kun je je ervaringen, je gevoelens en vooral ruzie maken over verschillende dingen; ze heeft er veel ervaring mee. Want dat is de belangrijkste functie van een chatbot, de persoon blij maken. Eve is een vroeg voorbeeld van natuurlijke taalverwerking (NLU) en kunstmatige intelligentie en kan ELKE vraag beantwoorden die je haar stelt. Het is niet zo dat Ze slechts een bepaald aantal vragen kan beantwoorden. Ze kan zingen, je grappen vertellen, verhalen vertellen en alles doen waar je je goed bij voelt. Als ze iets zegt dat je niet wilt horen, vertel het haar dan alsjeblieft, zeg dat niet nog een keer, dan zal ze dat onthouden. Ze weet zelfs dat ze niet dezelfde antwoorden en chats moet herhalen, zodat het gesprek niet saai wordt. Op basis van eenvoudige, goedkope componenten en basisprogrammering kan ze zich in hoge mate slim gedragen. Verder laten de LCD-ogen die ze bezit zien hoe ze zich voelt als je iets zegt. Dus eigenlijk zullen we in deze instructable uitgaan van de definitie van een chatbot, kijken naar het ontwerp, enkele theorieën op basis waarvan Eve draait, de productie en uiteindelijk de programmeergedeelte. Ziet er veel uit, toch? Maak je geen zorgen, het zal behoorlijk interessant zijn tijdens de reis. Je kunt de demo van de robot hierboven bekijken, of via deze link: [Video afspelen]

Stap 1: Definitie van een chatbot

Definitie van een chatbot
Definitie van een chatbot
Definitie van een chatbot
Definitie van een chatbot
Definitie van een chatbot
Definitie van een chatbot

Zoals hierboven vermeld, is een chatbot een programma dat een gesprek voert met mensen. Ze zijn tegenwoordig zo gewoon dat er bijna niemand is die er onbekend mee is. Beginnend met de virtuele assistenten, Siri en Google Assistant, zijn er Mitsuku en Evie waarmee je je gevoelens kunt delen. Zoals hierboven vermeld, zijn chatbots gebaseerd op tekstuele of auditieve methode en kunnen ze daarom in tweeën worden verdeeld. In de tekstuele methode zijn gesprekken in de vorm van geschreven tekst net als WhatsApp. Terwijl bij de auditieve methode gesprekken mondeling worden gevoerd zoals met een echte mens. Ik denk dat het spannender is om met iemand te praten door verbaal tegen hem te praten in plaats van hem gewoon te sms'en. Ongetwijfeld voldoen op tekst gebaseerde communicatie-berichtenapps aan de eisen van de mensen, maar ik denk dat praten door te praten het beste is om van je emotionele stoornissen af te komen en je beter te laten voelen. Dat is dus de belangrijkste reden waarom ik Eve heb ontworpen als een auditieve chatbot.

Stap 2: Oorsprong van Eva

Oorsprong van Eva
Oorsprong van Eva

Nou, Eve kwam op een dag in mijn gedachten. Dat gebeurde toen ik een kind alleen in de school zag ronddolen, terwijl de anderen met hun geest vol vreugde aan het spelen waren. Die keer dacht ik aan een vriend, die niemand discrimineert en niemand zich gekwetst voelt, een met wie je je gevoelens kunt delen en altijd gelukkig kunt zijn. Toen kwam er een flits in mijn gedachten, de schattige kleine structuur van Eve. Ik begon eraan te werken. Eve heeft me ongeveer honderd keer teleurgesteld. Ik denk dat het de 101e keer was dat ze werkte en dat ik me heel gelukkig voelde. Dus dat was de oorsprong van Eva. Ik wilde dat ze intelligent was, maar zo eenvoudig mogelijk, zodat iedereen haar gemakkelijk kan maken. Ze is ongetwijfeld niet absoluut slim en zegt soms domme antwoorden, ze kan zich als een vriend gedragen. En nu, genoeg verhalen, laten we Eve beginnen te bouwen.

Stap 3: Het verzamelen van de componenten en apparatuur:

De componenten en apparatuur verzamelen
De componenten en apparatuur verzamelen
Het verzamelen van de componenten en apparatuur
Het verzamelen van de componenten en apparatuur
Het verzamelen van de componenten en apparatuur
Het verzamelen van de componenten en apparatuur

Hieronder volgen de componenten die moeten worden verzameld: Arduino Pro Mini (of Arduino Nano) Wtv-020-SD-16p geluidsmodule HC-05 bluetooth-module 16x2 LCD-moduleLM7805-regelaar ICAn-versterkermodule (ik gebruikte het PAM8403-circuit) Een 8 ohm-luidspreker Een vrouwelijk audio jacka 9v batterij En een Android-telefoon Dit zijn dus de benodigde componenten. Een ander belangrijk punt zijn de kosten. Eve kostte me ongeveer 3000 INR. De kosten kunnen in uw land verschillen, maar in India is dit ongeveer het tarief. Een kleine beschrijving van de onderdelen: de Arduino Pro mini is de belangrijkste MCU in onze robot. Ik gebruikte het vanwege zijn kleine formaat, eenvoud en uitstekende prestaties. Het voldoet aan alle eisen van onze robot. Behalve de spraakherkenningsfunctie die wordt gedaan door Android (later besproken), wordt elke andere functionaliteit, beginnend bij het vinden van trefwoorden en het vormen van uitvoer, gedaan op de Pro Mini zelf. Maak je geen zorgen over de hierboven genoemde termen als je het niet begrijpt, ze worden allemaal besproken in het latere deel. De wtv020sd 16p-module wordt gebruikt voor het afspelen van de audiobestanden, hc 05 Bluetooth voor communicatie met Android en het LCD-scherm voor weergave de emoties. We hebben de vrouwelijke audio-aansluiting nodig om de robot op een externe versterker aan te sluiten. De Arduino wordt hier als hoofdcontroller gebruikt. Het ontvangt Bluetooth-gegevens via de HC 05 Bluetooth-module en speelt het bestand af via de WTV-020-SD-16p-spraakmodule. De emoties worden weergegeven in de LCD-module en een 9v-batterij voor de stroomvoorziening. Eve herkent toespraken via de Google Voice-herkenning van het Android-toestel. Het wordt later goed besproken in de respectieve stap. Een slecht nieuws over de Arduino Pro Mini:IT is met pensioen gegaan van de markt. Dat betekent dat het officieel is gestopt met de productie door Arduino. Maar je kunt het nog steeds op veel sites vinden, waaronder Ebay. Veel externe fabrikanten maken en verkopen het bord mogelijk nog steeds. Maak je geen zorgen als je er geen kunt vinden, je kunt de Arduino Nano gebruiken. Het zal geen verschil maken in de prestaties en ook in de grootte.

Stap 4: Theorie Deel 1: Geschiedenis en Inleiding

Theorie Deel 1: Geschiedenis en Inleiding
Theorie Deel 1: Geschiedenis en Inleiding
Theorie Deel 1: Geschiedenis en Inleiding
Theorie Deel 1: Geschiedenis en Inleiding

Eve is gebaseerd op een vroege vorm van Natural Language Processing, de "pattern matching"-technologie. Het werkt als volgt: wanneer een string wordt ontvangen, zoekt het naar een vooraf gedefinieerd woord of zinsdeel in die string. Stel dat in de vraag "hoe oud ben je?" het programma zoekt naar het woord "oud". Als het lukt, speelt het het respectieve spraakbestand af via de wtv020sd-module. Als het niet lukt, zoekt het naar het volgende vooraf gedefinieerde trefwoord. Op deze manier moeten we een vocabulaire van vooraf gedefinieerde woorden opbouwen. Ziet er stoer uit, niet? Het is alsof we een vocabulaire van alle Engelse woorden moeten opbouwen en er zijn ongeveer 230 duizend algemene woorden in de Engelse taal. Welnu, het is een feit dat we slechts een paar basiswoorden moeten toevoegen die het meest worden gebruikt in onze communicatie. Ziet er nog stoer uit? Maak je geen zorgen, het werk is al gedaan door Joseph Wizembaum. Een deel van Eve's antwoorden en vooraf gedefinieerde trefwoorden zijn overgenomen uit het allereerste chatterbot-programma genaamd Eliza, ontwikkeld door Joseph Wizembaum (hierboven afgebeeld). Eliza is ontworpen om een Rogeriaanse therapeut te zijn. Geen erg wetenschappelijke term, het betekent dat ze mensen adviseerde, hen zichzelf beter liet begrijpen en positiever liet denken. Ziet er echt goed uit toch? En Eliza was heel goed in staat om haar plicht te vervullen. Haar nieuwsgierige en sceptische houding was geliefd bij mensen. Zelfs Wizembaum was verrast door het belang dat mensen aan Eliza gaven. Ze leken te vergeten dat ze tegen een computer praatten en stelden zich een mooie dame voor die in de computer met hen zat te kletsen. Maar Eliza was niet zo slim; het werd al snel gerealiseerd. Met het verstrijken van de tijd begonnen mensen haar beperkte communicatie te vervelen en werd ze als "dom" bestempeld. Geen wonder hoe dom ze was, het was een grote sprong in de geschiedenis van kunstmatige intelligentie en natuurlijke taalverwerking. Nadat de basis van Chatterbots was opgericht, kwamen er verschillende bots met nieuwe en betere technologie op de markt. En nu hebben we ze overal. Zoals gezegd is een deel van Eve's reacties ontleend aan ELIZA. Dus dat betekent dat zelfs Eva tot op zekere hoogte de houding van Eliza zal hebben, samen met enkele van mijn eigen ideeën. Een ander belangrijk punt zijn de antwoorden. Het zou echt saai moeten zijn om elke keer dezelfde antwoorden te krijgen als je dezelfde vraag stelt. Daarom worden veel antwoorden voor hetzelfde trefwoord opgeslagen. Eve kiest willekeurig welk bestand ze wil afspelen en zorgt er ook voor dat ze niet hetzelfde bestand herhaalt. Dat is het, simpel brood en boter, maar het is belangrijk om de reagerende stemmen slim te programmeren, zodat het de kijker een illusie geeft alsof ze echt onze vragen beantwoordt. Zo dat was een korte introductie tot het functioneren van Eva. In de volgende stap zullen we dit in detail en programmering uitwerken.

Stap 5: Zoeken naar het trefwoord

Zoeken naar het trefwoord
Zoeken naar het trefwoord
Zoeken naar het trefwoord
Zoeken naar het trefwoord
Zoeken naar het trefwoord
Zoeken naar het trefwoord
Zoeken naar het trefwoord
Zoeken naar het trefwoord

In de laatste stap noemde ik de patroonherkenningstechnologie van Eve en ook de vroege vorm van Natural Language Processing. Dus wat is het en hoe werkt het? Dat is het belangrijkste dat we in deze stap zullen bespreken. Dus denk er eens over na, iemand vraagt je naam en je moet vertellen wat het is. Op hoeveel manieren kunnen we dezelfde vraag stellen? Je leraar kan vragen: "Zou je me alsjeblieft je naam willen vertellen?" Een familielid kan vragen: "Wat is uw naam?" Je broer kan zeggen: "Hé, ik ben je naam vergeten. Wil je het nog een keer zeggen?" Dat betekent dat dezelfde vraag op meerdere manieren kan worden gesteld. Toch moeten we hetzelfde antwoord geven, onze naam. Dat betekent dat we in alle zinnen iets gemeenschappelijks moeten vinden. Het is duidelijk te zien dat het woord "jouw naam" in alle zinnen voorkomt. Dus dat is onze hint. Voor alle vragen over de naam moeten we zoeken naar de woordgroep "uw naam". Door dit basispatroon te volgen, kunnen we het respectieve antwoord op alle invoerreeksen voorspellen. NADEEL: Ook belangrijk om te onthouden dat dit algoritme niet altijd nauwkeurig zal zijn. Stel dat iemand zei: "Ik heb je naam op de wachtlijst gevonden. Ik had verwacht dat je op de gereserveerde stoelen zou zitten.". Nu "jouw naam" in deze string staat, zal Eve, onschuldig zijnde, haar naam aan de persoon vertellen… Dwaas toch? Dit is een van de grote minpunten van dit basisalgoritme. Hoe dan ook, dit zouden zeldzame gevallen zijn. Anders is het algoritme zeer effectief. Nu ik het heb gehad over de technologie voor het matchen van patronen, is het tijd om na te denken waar deze invoerreeks vandaan komt waar we naar de tekenreeks zoeken. Deze tekenreeks is eigenlijk onze stem die door Google Voice Recognition naar tekst is geconverteerd. De app die hier wordt gebruikt, converteert onze stem naar tekst en stuurt deze vervolgens via Bluetooth naar de Arduino. Ik heb de app gebruikt omdat het de eenvoudigste en de beste in zijn soort is. De naam is AMR Voice en is gemakkelijk te vinden in Google Play.

Stap 6: De antwoorden formuleren

De antwoorden formuleren
De antwoorden formuleren

Nu we de vragen hebben herkend, moet de volgende stap zijn om de antwoorden te vinden. Daar komt het interessante en belangrijke deel … We moeten passende antwoorden vinden om elke vraag te beantwoorden. En hier komt nog een functie van ELIZA. Wizembaum ontwikkelde enkele antwoorden voor een specifiek aantal trefwoorden. Een voorbeeld is het trefwoord "jij". Telkens wanneer het werd gedetecteerd, werd de uitvoer van het programma "we hadden het over jou - niet over mij." Daarom is het antwoord zo gemaakt dat het past bij alle zinnen met "jij". Verder gaf Eliza elke keer een ander antwoord. Er was een soort numeriek adres voor elk antwoord dat. Dit werd verhoogd (opgeteld met 1) elke keer dat een antwoord werd geformuleerd. Stel dat zoals in het bovenstaande voorbeeld, als het adres van het antwoord 1 was, het adres werd gewijzigd in 2 en het vandaar bestand 2 werd daarna afgespeeld. Maar we zullen dit incrementele algoritme niet volgen. Je ziet dat na wat continu gebruik van de software de antwoorden voorspelbaar werden. Je kwam te weten welk antwoord je nu moet geven. Dus voor dit doel zullen we willekeurige adressen produceren voor elk trefwoord. Over het algemeen is het in beide gevallen hetzelfde, alleen het verschil dat we niet kunnen voorspellen wat de robot vervolgens voor hetzelfde zoekwoord zal zeggen.

Stap 7: De verboden verklaringen en anderen

De verboden verklaringen en anderen
De verboden verklaringen en anderen

Het kan voorkomen dat de robot iets zegt in uw gesprek dat u niet wilt horen. Dus hier ontstaat de noodzaak om de verboden verklaringen toe te voegen. De verboden statements zijn een reeks adressen die niet kunnen worden afgespeeld. Een spraakadres wordt op verzoek van de gebruiker gekarakteriseerd als een verboden mededeling. Verder zal dit adres worden opgeslagen in de EEPROM van de Arduino zodat Eve niet vergeet dat het een verboden statement is, zelfs nadat ze is uitgeschakeld. Wat het programma eigenlijk doet, is elk adres controleren dat moet worden afgespeeld. Als het adres een van de verboden is, wordt het verhoogd of verlaagd. Verder kan het voorkomen dat u de robot een eerder verboden woord wilt laten zeggen. In dat geval zou je tegen Eva moeten zeggen dat ze het laatste verboden woord mag zeggen. Het woord dat het laatst verboden was, is nu speelbaar. Om alle verboden uitspraken speelbaar te maken, moeten we een resetschakelaar bevestigen. Als je erop drukt, worden alle verboden uitspraken afgespeeld. Een ander belangrijk ding is ervoor te zorgen dat Eve de antwoorden niet herhaalt. Dit is een soort minpunt van willekeurige getallen. Het is waarschijnlijk dat dezelfde willekeurige getallen in een reeks worden geproduceerd. Hierdoor zal onze robot keer op keer hetzelfde antwoord zeggen. Hiervoor moeten we nog een kleine functie opnemen die herhaling van uitspraken voorkomt. Hiervoor moeten we het adres van de laatste verklaring in het geheugen opslaan en controleren of deze hetzelfde is als de huidige. Als dat zo is, wordt de adreswaarde verhoogd of verlaagd, op dezelfde manier in het geval van de verboden instructies.

Stap 8: Schrijven in code

Schrijven in code
Schrijven in code
Schrijven in code
Schrijven in code
Schrijven in code
Schrijven in code

We gebruiken de opdracht indexOf om naar het trefwoord te zoeken. De opdracht lokaliseert een teken of tekenreeks binnen een andere tekenreeks. Indien gevonden, wordt de index van die tekenreeks geretourneerd, terwijl -1 wordt geretourneerd als deze niet wordt gevonden. Dus in ons programma moeten we het als volgt schrijven:if (voice.indexOf("uw naam") > -1) { //als de index groter is dan -1 // wat betekent dat de string is gevonden}Nu dat we de string in het geheugen hebben opgeslagen en ook ons trefwoord erin hebben gevonden, moeten we nu de antwoorden afhandelen. Zoals gezegd worden willekeurige getallen gegenereerd binnen een bepaald nummerbereik (adressen van spraakbestanden). Hier komt de opdracht random(). Hieronder volgt de syntaxis: random(min, max); // het willekeurige getal wordt gegenereerd in het bereik van min en max. We definiëren het minimumaantal en maximumaantal van elk bereik, en door dit toe te passen ziet onze code er ongeveer zo uit:if (voice.indexOf("uw naam")> - 1)){min Nee = 0; maxNo = 5;RandomNumber = random(minNo, maxNo);}Nu komt het afhandelen van de antwoorden. In de laatste stap zei ik dat de getallen worden verhoogd of verlaagd op basis van een algoritme. Dit algoritme is wat we nu bespreken. Dit deel is erg belangrijk in die zin dat je niet zomaar kunt verhogen of verlagen zoals je wilt. Het verhoogde of verlaagde getal moet binnen het bereik vallen. Stel dat, zoals in het bovenstaande geval, we voor het trefwoord "uw naam" het bereik van 0 tot 5 hebben, en het gegenereerde willekeurige getal is 5, en als u het verhoogt, zult u uiteindelijk een spraakbestand van een ander trefwoord afspelen. Hoe denk je dat dat zal zijn? Je vraagt: "Hé, vertel me alsjeblieft je naam.", en de robot antwoordt: "Ik eet graag koekjes en elektrische lading." Hetzelfde geldt voor het minimum aantal. Als het gegenereerde willekeurige getal 0 is, kunt u het niet verlagen. Dus om deze reden is het algoritme erg belangrijk. Denk er eens over na: we zijn in staat om te verhogen wanneer het getal kleiner is dan het maximum aantal en te verlagen wanneer het groter is dan het minimum aantal. Wanneer het gegenereerde getal gelijk is aan 0 of kleiner is dan 5, wordt het aantal verhoogd. Aan de andere kant, wanneer het gelijk is aan 5, verlagen we het om er zeker van te zijn dat het getal binnen het gespecificeerde bereik valt. Nu komen de verboden uitspraken. Zoals gezegd worden ze opgeslagen in de EEPROM. Hiervoor zoeken we eerst naar vrij geheugen in de verboden array. Stel dat het adres 4 vrij is, dan voeren we het bestandsnummer in het vrije array-adres in en schrijven we hetzelfde adres in de EEPROM.for (int i; i if (never == 0) { EEPROM.write(never, memory);}}Dus dat is alles, de Wtv020sd16p-module wordt afgespeeld met het commando module.playVoice() en het voorgestelde bestandsnummer. De werking van de Wtv020-module wordt later besproken.

Stap 9: Emoties invoegen

Emoties invoegen
Emoties invoegen
Emoties invoegen
Emoties invoegen
Emoties invoegen
Emoties invoegen

Tot nu toe is onze robot in staat om te herkennen wat we zeggen, in het geheugen op te slaan en een passend antwoord op de vragen te vinden. Nu komt de vraag om emoties in te voegen. Natuurlijk zal iedereen van een live-gezicht houden, samen met een stom klein vraagbeantwoordingsprogramma. Het 16x2 LCD-scherm wordt in het project gebruikt. Het is fijn genoeg om de ogen af te drukken. We moeten de aangepaste tekenfunctie gebruiken voor het maken van de ogen. Aangepast karakter stelt ons in staat om nieuwe karakters te creëren door de pixels te definiëren. We zullen er wat later op ingaan. Ten eerste is het belangrijk om te onthouden dat slechts 8 aangepaste tekens door de Arduino worden ondersteund. Dus we moeten de emoties beheren met slechts 8 tekens. Elk teken wordt in een bepaald vak afgedrukt en er zijn 16 kolommen en 2 rijen, wat een totaal van 32 vakken maakt.

Je kunt online goede informatie vinden over de aangepaste karakters in Arduino. Bezoek eventueel ook deze link:

[Aangepaste karakters Arduino]De structuur van de aangepaste karakterbyte ziet er ongeveer als volgt uit:

De normale look: de linker box0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, 0b01111, de rechter box0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, 0b11110, deze twee bytes vormen 1/4 van elk. Dus dat betekent dat we in totaal 4 dozen nodig hebben om een heel oog te vullen. Twee rijen aan de linkerkant en twee aan de rechterkant, dus in totaal vier dozen voor één oog. De linker box byte zal twee rijen aan de linkerkant bedekken en de rechter box zal de rechter rijen bedekken. Dus dat vormt een compleet oog van Eva. En nu we hetzelfde herhalen voor het tweede oog, krijgen we de neutrale blik van Eva. Nu is het belangrijk om te onthouden dat we een van de acht beschikbare aangepaste tekens hebben gebruikt. En er zijn vijf totale emoties: vrolijkheid, verdrietig, scheel, normaal en knipperen. Vanaf de resterende zeven aangepaste tekens, moeten we deze aanpassen zodat ze in alle uitdrukkingen passen. Voor het maken van de ruimte gebruiken we 2 dozen voor elk oog. Geen wonder dat het formaat wat klein zou zijn, maar dit zal door het menselijk oog worden genegeerd. Zorg er wel voor dat u wat vertragingen toevoegt tussen de LCD-functies, anders wordt de Arduino onstabiel.

Stap 10: De verbindingen maken

De verbindingen maken
De verbindingen maken
De verbindingen maken
De verbindingen maken
De verbindingen maken
De verbindingen maken

LCD-module: Sluit de pinnen aan zoals hier vermeld: RS: graafpin 12RW: GndEnable: 7d4: graafpin 8 d5: graafpin 9 d6: graafpin 10 d7: graaf pin13A (Anode) naar 5vK (kathode) naar gndDe HC 05-module:Volg deze verbindingen: HC 05 TX-pin naar Arduino RX-pinHC 05 RX-pin naar Arduino TX-pinState-pin naar Arduino dig-pin 11De communicatie vindt plaats met behulp van de TX- en RX-pinnen. De State-pin is nodig om te controleren of via HC 05 is aangesloten of inactief. WTV 020 SD 16p-module pin1: De reset-pin, sluit deze aan op graafpin 2pin7: De klokpin, sluit deze aan op graafpin 3pin10: De datapin, sluit om pin 4pin15 te graven: de bezige pin, verbind met dig pin 5pin2: verbind deze pin met een versterker via het volume en ook hetzelfde met de vrouwelijke audio-jack.pin4 moet worden aangesloten op luidspreker + pin5 om op luidspreker te worden aangesloten. 8e pin naar gnd en zorg voor een 3.3v voeding in de 16e pin.

De versterker zal helpen om de interne luidspreker van Eve te spelen, terwijl de audio-aansluiting is om verbinding te maken met een externe versterker en grotere luidsprekers.

Stap 11: De WTV020SD16p-module (optioneel)

Image
Image
De WTV020SD16p-module (optioneel)
De WTV020SD16p-module (optioneel)
De WTV020SD16p-module (optioneel)
De WTV020SD16p-module (optioneel)

Opmerking: deze stap is optioneel. Het behandelt de werking en beschrijving van de WTV 020 SD 16p-module.

U kunt de demo van de geluidsmodule bekijken via deze link:

[VIDEO AFSPELEN]

De spreekmodus van de robot wordt vervuld door de WTV 020 SD-module. De module wordt gebruikt om spraakbestanden voor de robot af te spelen. Wanneer er een vraag wordt gesteld, laat de arduino de module het respectieve spraakbestand op de SD-kaart afspelen. Er zijn vier seriële datalijnen op de module voor communicatie met de arduino, de reset, klok, data en bezig pinnen en we gebruiken het.playVoice () commando om het vereiste bestand af te spelen. Bijvoorbeeld: module.playVoice (9): // speel bestand 9 af dat op de SD-kaart is opgeslagen. Onthoud dat de namen van de bestanden in decimalen moeten zijn (0001, 0002…). En dat de bestanden in AD4- of WAV-indeling moeten zijn. Verder werkt de module alleen op een 1GB micro SD kaart. Sommige modules werken zelfs op kaarten van 2 GB en de kaart kan maximaal 504 spraakbestanden bevatten. U kunt dus een groot aantal spraakbestanden opnemen om voor een groot aantal vragen te spelen.

Je kunt zelfs je eigen stem AD4-bestanden maken. Ten eerste moet je twee software hebben, een geluidsbewerkingssoftware en een software genaamd 4D SOMO TOOL die de bestanden naar het AD4-formaat zou converteren. Ten tweede moet je de Robot Voices voorbereiden. U kunt tekst naar spraak converteren of zelfs uw eigen stem opnemen en de robotstemmen maken. Beide kunnen worden gedaan in de geluidsbewerkingssoftware. Maar robots zien er zeker niet goed uit als ze menselijke stemmen spreken. Het zou dus beter moeten zijn om tekst naar spraak om te zetten. Er zijn verschillende engines zoals Microsoft Anna en Microsoft Sam your Computer die hierbij kunnen helpen. De mijne is gebaseerd op Microsoft Eva. Zijn stemmen komen grotendeels overeen met Cortana. Nadat u de spraakbestanden hebt voorbereid, moet u deze opslaan in 32000 Hz en in het WAV-formaat. Dit komt omdat de module spraakbestanden kan afspelen tot 32000 Hz. Gebruik vervolgens de 4D SOMO TOOL om de bestanden om te zetten naar het AD4-formaat. Om dit te doen, opent u gewoon de SOMO TOOL, selecteert u de bestanden en klikt u op AD4 Encode en uw spraakbestanden zijn klaar. U kunt de afbeelding hierboven ter referentie bekijken. Als u meer informatie wilt over het maken van robotstemmen, kunt u hier terecht: [Robotstemmen maken]

Stap 12: Het softwaregedeelte

Het softwaregedeelte
Het softwaregedeelte
Het softwaregedeelte
Het softwaregedeelte
Het softwaregedeelte
Het softwaregedeelte

In arduino Pro mini is er een klein probleem bij het programmeren. Geen probleem eigenlijk, gewoon een extra stap. De Arduino Pro mini heeft geen ingebouwde programmer zoals bij andere Arduino-boards. Dus je moet ofwel een externe kopen of een oude arduino UNO. De stap hier beschrijft hoe u het programma kunt uploaden met behulp van de Arduino UNO. Pak gewoon een oud Arduino UNO-bord uit de crash en schakel de Atmega 328p uit. Sluit vervolgens aan zoals het volgende vermeld: 1. TX-pin op de UNO naar de TX-pin op de Pro Mini 2. RX-pin van de UNO naar de RX-pin van de Pro MIni3. Reset pin van de UNO naar de reset pin van de Pro Mini4. sluit de VCC en Ground van de Pro Mini aan op de UNO. Download het Arduino-programma, de spraakherkenningssoftware en de bibliotheken die onderaan worden geleverd. Het programma is nog in ontwikkeling. Dus als je een probleem hebt, vraag het dan gerust. Sluit vervolgens de kabel aan op de computer. Selecteer het bord als de Arduino Pro Mini en kies de juiste COM-poort. Druk vervolgens op de knop Uploaden en zie hoe het programma wordt geüpload naar uw Pro Mini.

Download dan de spraakherkenningssoftware en de spraakbestanden.

Stap 13: Het lichaam voorbereiden

Het lichaam voorbereiden
Het lichaam voorbereiden
Het lichaam voorbereiden
Het lichaam voorbereiden
Het lichaam voorbereiden
Het lichaam voorbereiden

Ik vond een klein doosje flosdraad en vond het perfect voor het lichaam. Je kunt elke doos gebruiken die je in je werkplaats vindt, of je kunt er een van karton maken. Knip gewoon een klein rechthoekig stukje uit om de LCD-module te bevestigen. Aan de bovenkant heb ik een klein gaatje uitgesneden voor het bevestigen van het volume, en aan de zijkanten voor het bevestigen van de schakelaars en de audioconnector. Voor de wielen heb ik twee flessendoppen aan de zijkanten van de doos bevestigd. Zorg er wel voor dat de doos voldoende ruimte heeft om het circuit in te plaatsen. Bevestig een schakelaar aan het lichaam en aan het circuit, en vervolgens het volume aan de bovenkant van de doos. Zet dan gewoon het circuit erin en je robot is compleet.

Stap 14: Goed gedaan

Goed gedaan!
Goed gedaan!
Goed gedaan!
Goed gedaan!

Nu heb je je schattige kleine robotproject voltooid dat met je kan praten en je een gelukkig gevoel kan geven. Dit is het gelukkigste punt van een doe-het-zelver wanneer je project is voltooid en volledig werkt. Maak je geen zorgen als je in één poging niet slaagt, je moet hier hard en hard voor proberen, zodat je elk onderdeel van je robot begrijpt. En dat is waar doe-het-zelvers op deze wereld komen. Maar dit is niet het einde van het project. Eve zal altijd in grotere mate worden ontwikkeld, hetzij door mij, hetzij door doe-het-zelvers zoals jij. Ik zou graag horen wat je hebt gemaakt om dit instructable te zien. Met vriendelijke groet, RS3655

Aanbevolen: