DIY 37 LED Roulette Game
Componenten en benodigdheden
| × | 1 | ||||
| × | 5 | ||||
| × | 37 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Benodigde gereedschappen en machines
|
Apps en online services
|
Over dit project
Roulette is een casinospel vernoemd naar het Franse woord dat wieltje betekent. In het spel kunnen spelers ervoor kiezen om in te zetten op een enkel nummer, verschillende groeperingen van nummers, de kleuren rood of zwart, of het nummer even of oneven is, of dat de nummers hoog (19-36) of laag zijn (1 –18).
Meestal kun je een project van een roulettespel met 10 LED's vinden, dus ik besloot het met 37 LED's te doen zoals in het originele wiel. Volgens het principe van het originele roulettespel simuleert de beweging van de LED een bal waarvan de snelheid geleidelijk afneemt tot hij stopt bij een willekeurig gegenereerd getal. De constructie wordt sterk vereenvoudigd door het gebruik van een Arduino-microcontroller. Apparaat is relatief eenvoudig te bouwen en bestaat uit weinig componenten:
- Arduino Nano-microcontroller
- 74HC595 schuifregister 5 vissen
- 37 leds
- NPN-transistor
- 2 Weerstanden
- en zoemer
Dit is de lay-out in Europese stijl en bestaat uit een enkele nul en 36 andere cijfers. Door op de knop te drukken gooien we daadwerkelijk de virtuele bal, waarbij de rotatie wordt gesimuleerd door de daaropvolgende verlichting van de LED's. De rotatie van de LED's gaat gepaard met een passend geluidseffect, wat een realistisch gevoel aan het spel geeft. Zowel rotatiesnelheid als tijd kunnen eenvoudig in de code worden aangepast.
Ten slotte wordt het apparaat in een geschikte doos van PVC-plastic geplaatst en bedekt met gekleurd behang.
Code
- Code
CodeC/C++
int SER_Pin =8; //pin 14 op de 75HC595int RCLK_Pin =9; //pin 12 op de 75HC595int SRCLK_Pin =10; //pin 11 op de 75HC595//Hoeveel van de schuifregisters - verander dit#define number_of_74hc595s 5//do not touch#define numOfRegisterPins number_of_74hc595s * 8boolean registers[numOfRegisterPins];int Randomwaarde;int del =5;void setup() { pinMode (SER_Pin, OUTPUT); pinMode (RCLK_Pin, UITGANG); pinMode (SRCLK_Pin, OUTPUT); // reset alle registerpinnen clearRegisters (); schrijfRegisters(); randomSeed(analogRead (3)); Willekeurige waarde =willekeurig(190, 210); Serial.println (Randomwaarde);} // zet alle registerpinnen op LOWvoid clearRegisters(){ for(int i =numOfRegisterPins - 1; i>=0; i--){ registers[i] =LOW; }}//Registers instellen en weergeven//Alleen bellen NADAT alle waarden zijn ingesteld zoals u wilt (anders langzaam) nietig schrijvenRegisters(){ digitalWrite(RCLK_Pin, LOW); for(int i =numOfRegisterPins - 1; i>=0; i--){digitalWrite(SRCLK_Pin, LOW); int val =registers[i]; digitalWrite(SER_Pin, waarde); digitalWrite (SRCLK_Pin, HOOG); } digitalWrite(RCLK_Pin, HIGH);}//stel een individuele pin HIGH of LOW invoid setRegisterPin(int index, int value){ registers[index] =value;}void loop(){ for (int x=0; x<=36; x++) {if (del <=Randomwaarde) { setRegisterPin(x, HIGH); schrijfRegisters(); vertraging (del); setRegisterPin(x, LAAG); schrijfRegisters(); del =del +1; } else { setRegisterPin(x, HOOG); schrijfRegisters(); vertraging (10000); setRegisterPin(x, LAAG); schrijfRegisters(); del =5; } }}
Schema's
Productieproces
- DIY LUMAZOID Arduino Music Visualiser
- Arduino-gyroscoopspel met MPU-6050
- Arduino digitale dobbelstenen
- Arduino-gamecontroller
- Joystick-spel
- Draagbare afstandsdetector
- MobBob:doe-het-zelf Arduino-robot bestuurd door Android-smartphone
- Pixel Chaser-game
- galvaniseren met koper
- NeoMatrix Arduino Pong
- DIY Arduino 1D Pong-spel met WS2812 LED-strip