DIE EMOSIONELE HINDERING WAT VERWYDER WORD: 11 stappe
DIE EMOSIONELE HINDERING WAT VERWYDER WORD: 11 stappe

Video: DIE EMOSIONELE HINDERING WAT VERWYDER WORD: 11 stappe

Video: DIE EMOSIONELE HINDERING WAT VERWYDER WORD: 11 stappe
Video: Шокирующая правда о нечеловеческих НЛО: Джон Гриневальд раскрывает все 2025, Januarie
Anonim
DIE EMOSIONELE HINDERING WAT VERWYDER WORD
DIE EMOSIONELE HINDERING WAT VERWYDER WORD

Die emosionele robot. Hierdie robot vertoon emosies met neopixels (RGB LED's) soos hartseer, geluk, kwaad en bang, dit kan ook hindernisse vermy en sekere bewegings tydens sy sekere emosie doen. Die brein van hierdie robot is 'n Arduino -mega. Hou in gedagte dat dit my eerste geprogrammeerde robot is wat ek ooit gebou het, en dit het my laat verlief raak op programmering. Die kode self is baie beginner en kan heel moontlik vereenvoudig word.

Stap 1: ONDERDELE

DELE
DELE

-3,2 voet van 'n neopixelstrook

-HC-SR04 Ultrasoniese sensor (of enige ander ultrasoniese sensor)

-kantel skakelaar

-3 3.7V litiumioonbattery (18650)

-versterkingsomskakelaar (verduidelik in kragstap)

-foto weerstand (enige waarde)

-analoog klanksensor

-2 dc motors 6v

-l293d (motorbestuurder)

-plastiek vel

-karton

-kuswiel

Stap 2: Neopixels

Neopixels
Neopixels
Neopixels
Neopixels

As gevolg van die beperkte begroting, is die eenvoudigste en goedkoopste manier om my robots se emosies lewendig te maak, neopixels; alles wat hulle het, is drie insette en uitsette. die drie penne op die ingang is gemerk 5v, DIN (data in) en GND (grond); die uitset is dieselfde as invoer, maar in plaas van data in sy DO (data uit). Die manier waarop u hierdie LED verbind, is om hulle parallel met mekaar aan te sluit, sodat 5v aan 5v aan die ander LED verbind word en GND gekoppel is aan die ander LED GND, DO van die eerste LED is gekoppel aan DIN van die tweede LED en dan hierdie proses duur voort totdat u die gewenste ledstrooklengte bereik het. 'N Hele strook neopixels benodig slegs een digitale uitvoerpen van die ingang, dit is omdat die DO en DIN in 'n lang ketting verbind is, sodat hulle almal data met mekaar deel. Dit is nodig omdat ons spesifieke LED's op spesifieke tye moet aan- en afskakel. 'N Nuttige instruksie hieroor is NEOPIXEL HELP

Stap 3: Die skematiese

Die skematiese
Die skematiese

Die kring is baie eenvoudig, aangesien die meeste van die robotte net geprogrammeer is. Die motors loop byna 7v met 'n l293d -motorbestuurder om die motors te beheer om agteruit te gaan. Die ander verbindings is die sensors na die Arduino. En dit is dit!

Stap 4: Die kode

Die eerste ding wat ek gedoen het, was om die nodige biblioteke af te laai om die kodering 'n bietjie makliker te maak; die biblioteke wat ek gebruik het, is "FastLED.h" en "NewPing.h". Die vinnige LED is vir die leds en die nuwe ping vir die ultrasoniese sensors. Die volgende ding wat ek gedoen het, was om al die definisies te maak vir die penne wat ek gebruik het, nadat dit 'n leemte opgestel het, is dit waar ek die penmodusse en die neostrip "FastLED.addLeds (leds, NUM_LEDS);" ek het die NUM_LEDS as 56 gedefinieer, aangesien ek 56 leds gebruik het, sal die konfigurasies van die leds in die voorkant verduidelik word. Ek skep toe 'n klomp funksies vir my robot om vorentoe en agtertoe te beweeg, en ek het ook sy sekere emosie. Daarna kom ek by die leemte -lus, dit is waar ek al my funksies in 'n sekere volgorde noem wat ek wil hê, byvoorbeeld, as ek wou hê my robot moet glimlag, dan sit ek smile ();. As ek wou hê dat 'n sekere LED sou aanskakel, sou ek sê: leds [45] = CRGB:: Green;, dit sal daartoe lei dat 45 groen is. As ek die kleur in swart sit, beteken dit net dat dit af is. Hou nou in gedagte dat dit een van my eerste programme is, dus dit is natuurlik nie perfek nie, maar dit het steeds gewerk.

DIE KODE

Stap 5: Die gesig

Die gesig
Die gesig

Vir die gesig het ek 56 leds gebruik, wat amper 'n volle 3.2ft neopixel strook is. Ek sny die strook in 7 stroke van 8 LED's, ek gebruik die eerste 3 stroke vir die oë en die laaste 4 vir die mond. Ek het die stroke in 'n slangvormige verbinding verbind, u sal hopelik beter verstaan met die diagram. Toe ek die gesig afgewerk het, het ek 'n dun plastiekvel (ongeveer 2 mm dik) oor die LED -stroke gesit.

Stap 6: Gelukkige funksie

Gelukkige funksie
Gelukkige funksie

Hierdie funksie is die maklikste van almal, aangesien dit geen sensors gebruik nie, maar sodra u die bot aanskakel, glimlag dit onmiddellik vir u. Maar dit glimlag nie net nie; As dit glimlag, is dit ook in 'n hindernis om die modus te vermy. Die modus om hindernis te vermy word in my kode voorgestel as die funksie. Die modus om die hindernis te vermy of te dwaal, werk deur twee ultrasoniese sensors aan die kant van die robot te gebruik. As die sensor 30 cm bereik van enigiets wat dit kan rugsteun en na regs of links gaan, afhangende van die sensor wat die naaste aan die voorwerp is.

Stap 7: Hartseer funksie

Hartseer funksie
Hartseer funksie
Hartseer funksie
Hartseer funksie

Om die robot hartseer te word, moes ek aan 'n persoonlikheidskenmerk van hierdie robot dink, so ek het besluit om hom hartseer te maak as hy in 'n donker omgewing is. Om dit te doen, het ek 'n fotoresistent gebruik om lig te voel. Hoe donkerder die omgewing, hoe hoër is die weerstand en hoe ligter die omgewing, hoe laer is die weerstand. Die stroombaan werk as 'n spanningsverdeler, 'n stroombaan met twee weerstande wat in serie gekoppel is aan +5v en GND, in die middel van die weerstandsverbinding lê 'n spanning wat deur hierdie vergelyking bepaal kan word: insetspanning*(R2/R1 +R2). As die Arduino Analog Pin hierdie waarde lees, skakel dit die spanning om in 'n reeks van 0 tot 1023.

Stap 8: Boosfunksie

Boos funksie
Boos funksie
Boos funksie
Boos funksie

Om die robot kwaad te maak, het ek besluit om dit om te draai/om te slaan. Dit werk deur 'n kantelskakelaar te gebruik, en 'n kantelskakelaar is basies 'n normale skakelaar, maar in plaas daarvan om 'n knoppie of tuimelaar te hê, het u 'n kwikbal wat die twee kontakte as dit teen 'n sekere hoek gekantel word, aanskakel en aanskakel; dus die waarde hiervan is óf 0 óf 1, 0 vir af en 1 vir aan. As die robot kwaad is, ignoreer hy ook die hindernis -vermydingsmodus en stamp alles wat in die voorwaartse rigting in sig is, weens sy woede.

Stap 9: Bang funksie

Bang funksie
Bang funksie
Bang funksie
Bang funksie

Vir die finale funksie van die robot is die bang -funksie, wat 'n klanksensor gebruik wat bo -op die robot geplaas word. Elke keer as die robot 'n vraggeluid hoor, word hy bang en sidder terwyl hy agteruit gaan. Die klanksensor werk deur 'n kondensormikrofoon, 'n mikrofoon, te gebruik. As dit geluide of trillings waarneem, sal dit 'n klein spanning veroorsaak, gewoonlik ongeveer 100mv. Hierdie spanning word dan versterk en gelees deur die analoog pen van die Arduino, hoe hoër die spanning of hoe harder die klank, hoe hoër is die analoogwaarde, en omgekeerd.

Stap 10: Krag

Krag
Krag
Krag
Krag

Noudat u alles gebou het wat u nodig het om dit aan te dryf, het ek oorspronklik probeer om dit met 8 AA -batterye aan te dryf, maar dit was net te groot en onprakties. Ek gebruik toe 3 litium -ioonbatterye wat elk ongeveer 3.5v hou, ek verbind een battery met 'n hupstoot -omskakelaar, wat 'n spanningsversterker is; dit versterk my 3.5v tot 5v om die Arduino aan te dryf, ek gebruik dan twee van die batterye en skakel direk vir die motors en LED's, dit is nie so 'n goeie idee nie, aangesien die spanning nie gereguleer is nie, maar ek het nie 'n spanningsreguleerder gehad nie; as u dit probeer bou, beveel ek aan dat u 'n spanningsreguleerder gebruik as wat 5v kan doen ongeveer 2-3 ampère, 'n voorbeeld hiervan is die LM78S05. Of u kan die LM7805 gebruik om die Arduino aan te dryf en in plaas daarvan 'n afwaartse omskakelaar of omskakelaar kry om die spanning te verlaag en die LED's en motors aan te dryf.

Stap 11: Om pret te hê !

Ek hoop dat u hierdie robot bou en dat u dit baie geniet, ek hoop ook dat u hierdie robot u eie draai sal maak en u eie emosies sal skep om dit LEEF !!!