Den känslomässiga hindret som undviks roboten: 11 steg
Den känslomässiga hindret som undviks roboten: 11 steg

Video: Den känslomässiga hindret som undviks roboten: 11 steg

Video: Den känslomässiga hindret som undviks roboten: 11 steg
Video: Kom igång med Rugged Robot 2025, Januari
Anonim
Den känslomässiga hindret som undviker robot
Den känslomässiga hindret som undviker robot

Den emotionella roboten. Denna robot visar känslor med neopixlar (RGB LED) som sorg, lycka, arg och rädd, den kan också undvika hinder och göra vissa rörelser under sina vissa känslor. Hjärnan hos den här roboten är en Arduino -mega. kom ihåg att det här är min första programmerade robot jag någonsin byggt, och det fick mig att bli kär i programmering, själva koden är mycket nybörjare och kan troligen förenklas.

Steg 1: DELAR

DELAR
DELAR

-3,2 fot av en neopixelremsa

-HC-SR04 Ultraljudssensor (eller någon annan ultraljudssensor)

-vippströmbrytare

-3 3,7v litiumjonbatteri (18650)

-förstärkare (förklaras i effektsteg)

-fotomotstånd (valfritt värde)

-analog ljudsensor

-2 dc motorer 6v

-l293d (motorförare)

-plast

-kartong

-hjul

Steg 2: Neopixels

Neopixels
Neopixels
Neopixels
Neopixels

På grund av hur jag hade en stram budget är det enklaste och billigaste sättet att få mina robotar känslor till liv neopixlar, allt de har är 3 ingångar och utgångar. de tre stiften på ingången är märkta 5v, DIN (data in) och GND (jord); utmatningen är märkt samma som inmatning men istället för data i dess DO (data ut). Sättet du ansluter dessa lysdioder är att ansluta dem parallellt med varandra, så 5v ansluter till 5v på den andra lysdioden och GND är ansluten till den andra lysdioden GND, DO för den första lysdioden är ansluten till DIN på den andra lysdioden och sedan denna process fortsätter tills du träffar önskad ledremslängd. En hel remsa neopixlar kräver bara en digital utgångsstift från ingången, detta beror på att DO och DIN är anslutna i en lång kedja, så att de alla delar data med varandra. Detta är nödvändigt eftersom vi måste slå på och stänga av specifika lysdioder vid specifika tider. En användbar instruktion om detta är NEOPIXEL HJÄLP

Steg 3: Schemat

Den schematiska
Den schematiska

Kretsen är mycket enkel eftersom det mesta av roboten just är programmerad, motorerna går på nära 7v med en l293d -motorförare för att styra motorerna för att gå framåt bakåt. De andra anslutningarna är sensorerna till Arduino. Och det är allt!

Steg 4: Koden

Det första jag gjorde var att ladda ner de nödvändiga biblioteken för att göra kodningen lite enklare, biblioteken jag använde är "FastLED.h" och "NewPing.h". Den snabba ledningen är för lysdioderna och den nya pingen är för ultraljudssensorerna. Nästa sak jag gjorde var att göra alla definitioner för stiften som jag använde, efter att det var ogiltig installation var det här jag ställde in stiftlägena och neostripen "FastLED.addLeds (leds, NUM_LEDS);" jag definierade NUM_LEDS som 56, eftersom jag använde 56 lysdioder kommer konfigurationerna för lysdioderna att förklaras i ansiktssteget. Jag skapade sedan ett gäng funktioner för min robot för att gå framåt och bakåt och har också sin vissa känsla, efter det kommer jag till tomrumsslingan, det är här jag kallar alla mina funktioner i en viss sekvens som jag vill ha, till exempel, om jag ville att min robot skulle le så skulle jag sätta smile ();. Om jag ville att en viss LED skulle slå på skulle jag sätta, leds [45] = CRGB:: Green;, detta kommer att leda 45 till grönt. När jag sätter färgen till svart betyder det bara att den är avstängd. Tänk nu på att detta är ett av mina första program så det är uppenbarligen inte perfekt, men det fungerade fortfarande.

KODEN

Steg 5: Ansiktet

Ansiktet
Ansiktet

Till ansiktet använde jag 56 lysdioder vilket är nästan en full 3,2 fot neopixelremsa. Jag skar remsan i 7 remsor med 8 lysdioder, jag använde de tre första remsorna för ögonen och de sista 4 för munnen. Jag kopplade remsorna i en form av koppling, du förstår bättre med diagrammet förhoppningsvis. När jag avslutade ansiktet la jag sedan ett tunt plastark (ungefär 2 mm tjockt) över ledremsorna.

Steg 6: Happy Function

Lycklig funktion
Lycklig funktion

Den här funktionen är den enklaste av dem alla eftersom den inte använder några sensorer, istället så snart du slår på boten, ler den omedelbart mot dig. Men det ler inte bara; när det ler är det också i hinder för att undvika läge. Hinder -undvikande läge representeras i min kod som funktionen roam. Hindret för att undvika läge eller vandra fungerar genom att använda två ultraljudssensorer på robotsidan, när sensorn kommer 30 cm till allt som den skulle säkerhetskopiera och antingen gå åt höger eller vänster beroende på sensorn som är närmast föremålet.

Steg 7: Trist funktion

Trist funktion
Trist funktion
Trist funktion
Trist funktion

För att roboten skulle bli ledsen måste jag tänka på ett personlighetsdrag för den här roboten, så jag bestämde mig för att göra honom ledsen när han är i en mörk miljö. För att göra detta använde jag ett fotomotstånd för att känna ljus. Ju mörkare miljö desto högre motstånd och desto ljusare miljö desto lägre är motståndet. Kretsen fungerar som en spänningsdelare som är en krets med två motstånd kopplade i serie till +5v och GND, vid mittpunkten för motståndsanslutningen ligger en spänning som kan bestämmas av denna ekvation: ingångsspänning*(R2/R1 +R2). när Arduino Analog Pin läser detta värde omvandlar den spänningen till ett intervall från 0 till 1023.

Steg 8: Arg funktion

Arg funktion
Arg funktion
Arg funktion
Arg funktion

För att göra roboten arg bestämde jag mig för att vända/välta den. Detta fungerar genom att använda en lutningsomkopplare, och en lutningsomkopplare är i grunden en vanlig strömbrytare men istället för att ha en knapp eller vippare har du en kvicksilverboll som om den lutas i en viss vinkel kommer att ansluta de två kontakterna och slå på; så värdet från detta är antingen 0 eller 1, 0 för av och 1 för på. När roboten är arg ignorerar den också hindret för att undvika läge och stöter på allt som är i sikte i riktning framåt, på grund av dess ilska.

Steg 9: Rädd funktion

Rädd funktion
Rädd funktion
Rädd funktion
Rädd funktion

För robotens slutliga funktion är den skrämda funktionen, som använder en ljudsensor som är placerad precis ovanpå roboten. Närhelst roboten hör ett lastljud blir den rädd och skakar när den går bakåt. Ljudsensorn fungerar genom att använda en kondensatormikrofon som är en mikrofon, när den känner av ljud eller vibrationer kommer den att skapa en liten spänning, vanligtvis cirka 100mv, denna spänning förstärks sedan och läses genom den analoga stiftet på Arduino, desto högre spänning eller högre ljudet desto högre är det analoga värdet, och vice versa.

Steg 10: Ström

Kraft
Kraft
Kraft
Kraft

Nu när du byggde allt du behöver för att driva det, försökte jag ursprungligen driva detta med 8 AA -batterier, men var bara för skrymmande och opraktiskt. Jag använde sedan 3 litiumjonbatterier som var och en rymmer ca 3,5v, jag kopplade ett batteri till en boost -omvandlare som är en spänningsförstärkare, detta ökade mina 3,5v till 5v för att driva Arduino, jag använde sedan två av batterierna och direktanslutna det till motorerna och lysdioderna, det här är inte en bra idé eftersom spänningen inte reglerades, men jag hade inte en spänningsregulator som låg runt, om du försöker bygga detta rekommenderar jag att du använder en spänningsregulator än vad som kan göra 5v vid cirka 2-3 ampere, ett exempel på detta är LM78S05. Eller så kan du använda LM7805 för att driva Arduino och istället få en steg ner -omvandlare eller buck -omvandlare för att sänka spänningen och driva lysdioderna och motorerna.

Steg 11: Ha kul !!

Jag hoppas att du bygger den här roboten och har det roligt, jag hoppas också att du kommer att sätta din egen snurr på den här roboten och skapa dina egna känslor för att få den att leva !!!