This is an old revision of the document!
Ruletă electronică
Introducere
Aceasta este o ruletă electronică menită să simuleze o ruletă de cazino. Are tot ce ar avea o ruletă normală de cazino, cu excepția roții care se rotește, și a bilei – motiv pentru care ruleta aceasta este electronică. Include o modalitate de a selecta pe ce pariezi, un acceptor și un dispensor de monezi, ”ruleta” și ”bila” (reprezentată printr-un strip circular de led-uri prin care se va simula traseul bilei cum se rotește), o modalitate de a vedea rezultatul pariului (LCD + difuzor), și o manetă minusculă pentru a lansa bila. Jocul este făcut pentru a fi jucat de maxim o persoană odată.
Scopul ruletei este de a putea juca acest joc și fără acțiunea mecanică în sine, și asta este și ideea de la care am pornit. Cred că este utilă deoarece acest set-up permite jucarea acestui joc fără să fie nevoie de un dealer care să se ocupe de el (pe scurt, se poate automatiza).
Descriere generală
Componente pentru functionalitatile principale: sursă de alimentare, acceptor de monezi, dispensor de monezi, difuzor, microcontroller, strip de Smart LEDs, senzor de îndoire, sticlă cu touch, LCD.
Acceptorul, dispensorul și microcontrollerul sunt conectate fiecare la sursa de alimentare.
Flow al interacțiunii componentelor: touch glass-ul (folosit pentru alegerea pariurilor) comunică prin UART cu microcontrollerul. Senzorul de îndoire (maneta de acțiune a “bilei”) transmite datele prin ADC. Microcontrollerul controlează ledurile folosind SPI (pentru a imita mișcarea bilei), și comunică cu difuzorul (PWM) și LCD-ul (I2C) pentru a arăta feedback-ul corespunzător (rezultatele jocului și pariului). Pentru tranzacțiile cu monezi, unitatea de control comunică cu acceptorul (UART) și dispensorul (GPIO) de monezi.
Schema bloc:
Hardware Design
Schema electrică:
Listă a pieselor:
| Nr. Crt. | Piesă | Descriere |
| 1 | Alberici AL66S | acceptor de monezi |
| 2 | Cube Hopper MKII | dispensor de monezi |
| 3 | AT-1124-TWT-5V-2-R | difuzor |
| 4 | Arduino Mega 2560 | bazat pe ATmega2560 |
| 5 | Strip de Smart LEDs | RGB |
| 6 | FS-L-0055 | senzor de îndoire |
| 7 | EETI eGalaxTouch | sticlă cu touch |
| 8 | LCD | - |
| 9 | Releu | utilizat pentru Coin Hopper |
| 10 | Modul (MAX232) convertor de nivel TTL RS232 | pentru sticla cu touch |
| 11 | Convertor DC-DC | 12V → 5V/3A |
| 12 | Sursă de alimentare | 12V |
Conexiuni pini + detalii hardware:
Acceptorul: conectat la 12V (sursa de alimentare), ground si pinii RX1/TX1 (ATmega2560: PD2/PD3, care au capabilitatea de a fi folosiți pentru RXD1/TXD1) (UART);
Comunică prin protocolul ccTalk, care folosește pinii RX și TX uniți pentru a realiza comunicarea pe un singur fir. Așadar, acceptorul are un pin comun care este conectat atât la RX-ul plăcuței, cât și la TX printr-o diodă și o rezistență de pull-up pentru a realiza configurația de multidrop cerută de protocolul ccTalk. Bus-ul multidrop suportă mai multe device-uri, dar în acest proiect voi folosi doar acceptorul de fise (pentru că nu am hooper cu ccTalk)
Dispensorul: conectat la 12V, prin releu; ground; conectat la pinul D9 al plăcuței (ATmega2560: PH6), prin care transmite câte un impuls pentru fiecare monedă pe care o scoate (GPIO).
Este conectat prin releu pentru a putea fi comandat de ieșirea din procesorul ATmega2560, care are capabilitate mică de curent (motorul dispensorului necesită un vârf de curent de 2A).
Este un model paralel foarte comun în industria de vending alături de ccTalk și MDB; functionarea lui se bazează pe antrenarea monedelor către ieșire cu ajutorul unui motor, numărarea acestora cu ajutorul unui senzor optic plasat pe calea de ieșire a monedelor și oprirea motorului în momentul în care suma de plată e atinsă; cât timp este alimentat, el scoate automat monede încontinuu.
Releu: conectat la convertorul DC-DC (5V); ground; primește semnalul de on/off de la microcontroller prin pinul D8 al plăcuței (Atmega2560: PH5) pentru motorul dispensorului;
Difuzor: conectat la ground și pinul D12 al plăcuței (ATmega2560: PB6, care are capabilitatea de a fi folosit pentru PWM), prin care este controlat (PWM);
LCD: conectat la 5V de la plăcuță, ground și pinii SDA/SCL (ATmega2560: PD1/PD0, care au capabilitatea de a fi folositi pentru SDA/SCL) (I2C);
Smart LEDs (neopixeli): alimentați cu 5V de la convertorul DC-DC; ground; primește date (MOSI) de la pinul D51 al plăcuței (ATmega2560: PB2, care are capabilitatea de a fi folosit și pentru MOSI); restul pinilor nu există și nu sunt în uz (SPI);
Consumul de curent este foarte ridicat. La putere maximă poate consuma 60mA de fiecare LED RGB; folosim 40 de LED-uri, așadar se poate ajunge la 2.4A, așa că a fost necesară folosirea unui convertor DC-DC cu randament ridicat pentru a alimenta strip-ul de LED-uri.
Sticlă cu touch controller: conectată la 5V la LDO-ul intern al plăcuței, ground și RX2/TX2 al plăcuței (ATmega2560: PH0/PH1, care au capabilitatea de a fi folosiți pentru RXD2/TXD2) (UART)
Deoarece senzorul tactil folosește nivele true RS232 (+/-12V), pentru Rx și TX, este necesar un modulul convertor de nivel pentru semnalele UART care sunt la nivele TTL. Acesta folosește un circuit comun în acest scop, MAX232. Intrările care nu sunt folosite au fost conectate la masă.
Folosește un protocol proprietar.
Senzor de îndoire: conectat la ground și la pinul A1 al plăcuței (ATmega2560: PF1, care are capabilitatea de a fi folosit pentru ADC1) (ADC), și împreună cu un rezistor de pull-up de 50kOhmi formează un divizor de tensiune cu raport variabil. Divizorul de tensiune a fost conectat la 3.3V întrucât referința internă a ADC-ului este de maxim 3.3V și acesta nu poate citi valori mai mari.
Imagini cu hardware-ul:
Dovadă funcționare:
Se poate vedea că LCD-ul este pornit și afișează textul dorit, ceea ce arată că microcontrollerul comunică corect cu acesta.
Software Design
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
librării şi surse 3rd-party (e.g. Procyon AVRlib)
algoritmi şi structuri pe care plănuiţi să le implementaţi
(etapa 3) surse şi funcţii implementate
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF