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)
-
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:
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
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
Download
Bibliografie/Resurse