Mini Claptrap

Introducere

Proiectul reprezinta o replica in miniatura a robotului Claptrap din Borderlands, care o sa zica niste replici ale personajului la anumite triggere. Acesta o sa fie activat de un buton, va functiona pe baterii si va raspunde la miscarea prin fata “ochiului” sau. Va avea un led care va sta aprins atata timp cat si el este pornit si va tremura daca acesta este bruscat.

Scopul proiectului este pur de entertainment, intrucat inspiratia vine dintr-un joc de care sunt pasionata.

Descriere generală

Schema Bloc

In primul rand, vom avea un buton care porneste robotul. Odata pornit, acestuia ii se va aprinde led-ul si va zice un voiceline din MP3 Player. Senzorul de miscare va fi folosit pentru a detecta miscarea prin fata robotului, la care acesta va reactiona cu un voiceline random din MP3 Player. Senzorul de vibratie va detecta daca robotul a fost miscat sau bruscat din exterior, ceea ce va trimite un semnal catre motor pentru a-l face sa tremure o perioada.

Hardware Design

Lista de componente

  • Arduino UNO
  • Led RGB
  • Switch
  • Caseta de baterii 18650 2 buc
  • Modul MP3 player DFPlayer Mini
  • Difuzor
  • Motor de curent continuu
  • L298N Punte H dubla
  • Card SD
  • Senzor de prezenta si miscare
  • Senzor de vibratie

Schema electrica

Scheme ale componentelor si Specificatii

Arduino UNO: Specificatii:

  • Microcontroler: ATmega328
  • Tensiune de lucru: 5V
  • Tensiune de intrare (recomandat): 7-12V
  • Tensiune de intrare (limita): 6-20V
  • Pini digitali: 14 (6 PWM output)
  • Pini analogici: 6
  • Curent per pin I/O: 40 mA
  • Curent 3.3V: 50 mA
  • Memorie Flash: 32 KB (ATmega328) 0.5 KB pentru bootloader
  • SRAM: 2 KB (ATmega328)
  • EEPROM: 1 KB (ATmega328)
  • Clock Speed: 16 MHz

Modul MP3 player DFPlayer Mini: Specificatii:

  • supported sampling rates (kHz): 8/11.025/12/16/22.05/24/32/44.1/48
  • 24 -bit DAC output, support for dynamic range 90dB , SNR support 85dB
  • fully supports FAT16 , FAT32 file system, maximum support 32G of the TF card, support 32G of U disk, 64M bytes NORFLASH
  • a variety of control modes, I/O control mode, serial mode, AD button control mode
  • advertising sound waiting function, the music can be suspended. when advertising is over in the music continue to play
  • audio data sorted by folder, supports up to 100 folders, every folder can hold up to 255 songs
  • 30 level adjustable volume, 6 -level EQ adjustable

L298N Punte H dubla: Specificatii:

  • Tensiune de operare: pana la 40V
  • Curent de operare: pana la 3A (25W in total)
  • Curent mic de saturatie
  • Protectie la supraincingere
  • Poate opera cu 2 motoare simultan
  • Imunitate mare la zgomot: Nivel logic “0” input pana la 1,5V
  • Incorporat regulator de tensiune 78M05. Pentru evitarea defectarii acestui integrat, folositi o sursa logica externa de 5 V, atunci cand tensiunea de alimentare depaseste 12 V

Senzor de prezenta si miscare: Specificatii:

  • Dimensiuni: 3.2cm x 2.4cm x 1.8cm
  • Senzor infrarosu cu placa cu circuit de control
  • Senzitivitatea si timpul de actiune pot fi ajustate
  • Tensiune de operare: DC 3V-5V
  • Curent consumat:< 60uA
  • Tensiune de iesire: High/Low level signal:3.3V TTL output
  • Distanta de detectie : 3 - 7m (ajustabil)
  • Unghi de detectie: < 140°
  • Timp de intarziere: 5-200S (poate fi ajustat. standard 5s +-3%)
  • Trigger: L: Non-repeatable trigger H: Repeat Trigger (default)
  • Temperatura de operare :-20-+80°C
  • Trigger Method: L unrepeatable trigger / H repeatable trigger

Motor de curent continuu:

Specificatii:

  • Temperatura de functionare: -10°C ~ +60°C
  • Tensiunea nominala: 6.0VDC
  • Forta nominala: 10 g*cm
  • Curent in gol: 70 mA max
  • Viteza in gol: 9100 ±1800 rpm
  • Curent in sarcina: 250 mA max
  • Viteza in sarcina: 4500 ±1500 rpm
  • Forta de pornire: 20 g*cm
  • Tensiune de pornire: 2.0
  • Curent in calare: 500mA max
  • Dimensiuni: 27.5mm x 20mm x 15mm
  • Dimensiuni ax: 8mm x 2mm diametru
  • Greutate: 17.5 grame

Senzor de vibratie: Specificatii:

  • Tensiune de alimentare: 3.3V - 5V
  • Curent: 15mA

Software Design

Diagrama de activitate

Explicatii

In setup initializez comunicarea seriala cu DFPlayerul si configurez valorile de baza pentru led, motor, respectiv sonorul de la DFPlayer si, desigur, pinii pe care ii voi folosi si pentru ce.

Pentru a masura valoarea obtinuta de senzorul de miscare am creat o functie TP_init care detecteaza pentru cat timp valoarea returnata de senzor este pe HIGH. Am ales abordarea aceasta pentru a evita ca robotul sa reactioneze la cea mai mica atingere.

Alta functie pe care o folosesc este playTrack pentru a da reda voiceline-urile cu ajutorul DFPlayerului. Functia se asigura in primul rand ca DFPlayerul nu s-a agatat si ca indexul track-ului pe care incearca sa il redea este acelasi cu cel dat, din moment ce am descoperit lucrand cu el ca aceasta agatare se poate intampla. In DFPlayer am 10 track-uri de lungumi diferite, de aceea, in functia playTrack am adaugat si delay-ul specific fiecarui track pentru a-l lasa sa se deruleze fara intreruperi.

In logica de baza, dupa ce setup-ul este facut, Claptrap va anunta ca traieste dupa care va astepta input de la mediul extern. In primul rand verific masuratoarea de la senzorul de vibratii, deoarece la o lovitura se sesizeaza si senzorul PIR. Daca masuratoarea este suficient de mare, atunci Claptrap va spune OW dupa care isi va stinge led-ul, motorul se porneste pentru o vreme dupa care se aprinde led-ul la loc. Am adaugat un mic delay pentru a-l lasa sa se linisteasca. Dupa aceea, se verifica daca senzorul PIR detecteaza miscare. Daca da, atunci va spune unul din cele 10 voice line-uri stocate pe cardul SD, in afara de cel dedicat reactiei la lovituri si cel in care anunta ca traieste. Din nou, am adaugat un delay pentru a-l lasa sa se linisteasca putin.

Biblioteci folosite

  • Arduino.h
  • SoftwareSerial.h
  • DFRobotDFPlayerMini.h

Rezultate Obţinute

Link to Playlist

Proof of work

Concluzii

  • Nu este o idee buna sa acopar senzorul PIR cu o lentila improvizata in casa
  • Senzorul PIR este foarte sensibil si nu ar fi o idee buna sa-l folosesc in spatii stramte pe unde se umbla des
  • Valorile obtinute de la senzorul de vibratie nu sunt cele mai exact deci nu garanteaza mereu reactia de OW de la Claptrap
  • Atata timp cat se respecta specificatiile si schemele electrice, totul merge conform planului
  • DFPlayerul are neaparat nevoie de o rezistenta la una din intrari pentru a evita poluarea cu zgomot
  • DFPlayerul este sensibil la felul in care sunt stocate track-urile pe cardul SD si trebuie sa ma asigur ca nu exista indexi extra care sa fie considerati alte track-uri
  • Am reusit sa creez un robotel foarte enervant
  • Am renuntat la partea cu butonul pentru ca am realizat tarziu ca as fi avut nevoie de un switch si nu am avut unul.

Download

Codul final poate fi gasit aici.

Export to PDF

Bibliografie/Resurse

pm/prj2021/abirlica/miniclaptrap.txt · Last modified: 2021/06/04 13:06 by cornelia.marculescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0