Proiectul consta intr-un generator de numere random. Alegerea numarului random se face bazat pe sunetul si pe vibratiile mediului inconjurator. Proiectul include si un servomotor care produce zgomot si vibratii, pentru a intensifica efectul de random.
Ideea proiectului este faptul ca nu se pot genera numere random in adevaratul sens al cuvantului folosind doar informatiile ce se afla in calculator. In general, numerele random se genereaza folosind ora curenta, rezultatul fiind predictibil. Folosind factori externi, care sunt cu adevarat random, numarul generat nu mai este predictibil.
Aceasta tehnica de generat numere random, folosind factori externi, are ca rol obtinerea unei securitati sporite oferite de nepredictibilitatea numerelor generate. Spre exemplu, Cloudfare are un perete de “lava lamps” care au o miscare care nu poate fi prezisa. Folosindu-se de imaginea formata de aceste lampi, cloudfare genereaza numere random pentru a oferi un nivel inalt de securitate.[1]
Modul de functionare:
Lista de piese:
Schema electrica:
Mediu de dezvoltare: Arduino IDE Librarii: Servo.h Descriere functii:
https://youtube.com/shorts/TWNSeBUvwRE?feature=share
Puteti observa ca din filmare nu se intelege foarte bine ce se afiseaza pe display. In realitate se vede bine. Cifrele sunt afisate alternativ, cu un delay de 5 ms intre ele, deoarece display-ul este incapabil sa afiseze mai mult de o cifra la un moment dat. Astfel, se simuleaza afisarea continua a tuturor celor 4 cifre. Ochiul uman nu observa nicio anomalie, in schimb camera observa.
Mi-a placut super mult sa lucrez pe acest proiect. Mi s-a parut super interesant sa caut in datasheet diverse informatii despre intreruperi, pwm si am invatat multe despre lucrul cu arduino si despre conectarea hardware-ului folosind breadboard-ul.
20.04 - Alegere tema proiect
21.04 - Comandare componente
30.04-10.04 - Implementarea pe Tinkercad a proiectului in masura disponibilitatii componentelor
21.05-23.05 - Implementarea fizic a proiectului (cu tot cu scrierea de cod pentru componentele ce nu exista pe tinkercad)
[1] - lava lamps din introducere
[2] - pini si intreruperile specifice pinilor
[3] - pwm si intreruperi
[4] - pwm si intreruperi
[5] - conectare display
[6] - utilizarea display-ului
[7] - frecventa pwm si conectarea servomotorului
[8] - conectarea servomorotului
[1]https://www.cloudflare.com/learning/ssl/lava-lamp-encryption/
[2]https://ocw.cs.pub.ro/courses/_detail/pm/lab/uno.jpg?id=pm%3Alab%3Alab2-2022
[3]https://ocw.cs.pub.ro/courses/_media/pm/atmel-7810-automotive-microcontrollers-atmega328p_datasheet.pdf
[4]https://ocw.cs.pub.ro/courses/pm/lab/lab3-2022
[5]https://www.optimusdigital.ro/ro/optoelectronice-afisaje-led/646-afisaj-cu-led-rosu-de-4-cifre-cu-catod-comun-de-036-3641as.html
[6]https://create.arduino.cc/projecthub/SAnwandter1/programming-4-digit-7-segment-led-display-2d33f8
[7]https://www.optimusdigital.ro/ro/motoare-servomotoare/26-micro-servomotor-sg90.html
[8]https://components101.com/motors/servo-motor-basics-pinout-datasheet