Table of Contents

True Random Number Generator

Introducere

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]

Descriere generală

Modul de functionare:

Hardware Design

Lista de piese:

Schema electrica:

Software Design

Mediu de dezvoltare: Arduino IDE Librarii: Servo.h Descriere functii:

Rezultate Obţinute

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.

Concluzii

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.

Download

true_random_number_generator.zip

Jurnal

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)

Legenda pentru Bibliografie/Resurse

[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

Bibliografie/Resurse

[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

Export to PDF