Arduino Marble Maze Labyrinth
Componenten en benodigdheden
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Benodigde gereedschappen en machines
| ||||
|
Apps en online services
|
Over dit project
Ik laat je zien hoe je een Arduino-gestuurd Marble Maze Labyrinth-bordspel maakt dat supergemakkelijk en leuk is om te maken. En het beste is dat het van karton is gemaakt.
Het idee van het spel is om de knikker door het doolhof te navigeren om aan het einde het portaal te bereiken om het spel te winnen.
Natuurlijk zijn er veel ideeën om dit spel te verbeteren en leuker te maken, zoals pudding wat sensoren aan het einde, zoemer om een toon te spelen tijdens het spelen of zelfs wat gaten in het doolhof zelf te knijpen.
Het idee
Ik verveelde me van elektronische spellen en ik zei dat ik moest zoeken naar de fysieke behendigheidsspellen, dus ik heb het labyrint gevonden en ik vond het leuk.
Wat is het Labyrinth ?
Labyrinth is een fysiek behendigheidsspel dat bestaat uit een doos met een doolhof met gaten en een stalen knikker. Het doel van het spel is om te proberen het speelveld te kantelen om de knikker naar het einde van het doolhof te leiden, zonder hem in een van de gaten te laten vallen. Sommige versies van het spel hebben een zwevend doolhofoppervlak dat rond twee assen draait, die elk worden bestuurd door een knop. Er worden kleine handheld-versies van het spel verkocht, waarbij de doos volledig wordt gesloten met een transparante hoes bovenop. Het spel is ontwikkeld door BRIO in Zweden en daar voor het eerst uitgebracht in 1946.
Ontwerp
Ik begon mijn eigen labyrint-doolhof te ontwerpen met Sketch Up Pro om me voor te stellen hoe dit spel eruit zal zien. En ik was voorzichtig om het de juiste maat te geven en het vrij gemakkelijk te maken, omdat kinderen misschien ook hun eigen doolhof begonnen te bouwen.
De ontwerpbestanden kunnen worden gedownload om in slechts 1 uur je eigen spel van karton te maken.
Gereedschappen en materialen
· Karton 3mm
· Hete lijm
· Scherp mes
· Liniaal
· Potlood
Onderdelen
Arduino (elk type bord)
Mini broodplank
Doorverbindingsdraden
2X servomotor 9g
Joystickmodule
2 schroeven en moeren 12 mm bij 3 mm
Knip de vorm uit
Druk het bijgevoegde bestand af en volg de volgende instructies om het karton uit te knippen:
1. Knip een vierkant van 20 cm bij 20 cm uit voor de basis van het labyrint.
2. Knip twee gelijkbenige trapeziums van 14 cm bij 16 cm uit voor de zijkanten van het labyrint.
3. Maak een rechthoekig gat in een van deze twee stukken voor de servomotor (X-as).
4. Boor een gat van 3 mm in het andere stuk in het exacte midden om tegen de servo-as aan de andere kant (X-as) te komen.
5. Vervolgens moet je vier rechthoeken van 14 cm bij 4 cm uitknippen voor de ondersteuning in het binnenste van het labyrint.
6. Boor een gat van 3 mm in het andere stuk in het exacte midden om tegen de servo-as aan de andere kant (Y-as) te komen.
7. Maak een rechthoekig gat in het midden zoals getoond in een van deze vier stukken voor de servomotor (Y-as).
8. Kies je eigen doolhof uit de bijgevoegde bestanden in het artikel en knip vervolgens 12 cm bij 12 cm vierkant uit voor het doolhof.
9. Tip*Lijm het papieren doolhof als richtlijn voor je.
10. Je moet minimaal acht rechthoeken van 1,5 cm bij 12 cm uitsnijden voor de muren in je labyrint. Vervolgens moet je ze knippen zodat ze de juiste maat hebben en in je labyrint passen.
11. Volg de richtlijnen en lijm de stukken op hun plaats om de muur van het doolhof te worden.
12. Lijm de servomotoren op hun plaats zoals afgebeeld.
13. Lijm de servomotorhoorn in de rechthoekige stukken.
Bedrading
Sluit de draden van de servo's en joystick aan zoals weergegeven
Arduino Pin 8 naar gele draad in servo 1 (X-as)
Arduino Pin 9 naar gele draad in servo 1 (Y-as)
Rode en bruine draden naar breadboard.
Arduino Pin A0 naar Joystick pin VRx
Arduino Pin A1 naar Joystick pin VRy
Joystick VCC en GND naar breadboard.
Arduino 5V en GND naar breadboard.
Code
Verbind je Arduino-bord met de pc via de USB-kabel.
Arduino IED openen
Kopieer de en plak de code in een nieuwe schets
Controleer de naam van de seriële poort door te klikken op het menu Extra> bord> kies de actieve seriële poort
Klik op de bovenste ronde knop om de code te uploaden.
Zodra je het bericht hebt ontvangen, ben je klaar om te gaan.
Code
- controle doolhof met joystick
controle doolhof met joystickArduino
#includeServo myServoX; // definieer servomotor voor X-as Servo myServoY; // definieer servomotor voor Y-as int ServoXPin =8; // definieer X-as pinint ServoYPin =9; // definieer Y-as pinint ServoXHomePos =90; // stel startpositie in voor servosint ServoYHomePos =90; int ServoXPos =103;int ServoYPos =135; int XAxlePin =A0; // definieer X-as pin-besturing voor joystick A0int YAxlePin =A1; // definieer de Y-as-pinbesturing voor joystick A1int XAxleValue =0; // stel opstartwaarde in voor joystickint YAxleValue =0;int Direction =0;int range =12; // uitvoerbereik van X- of Y-beweging in het midden =bereik / 2; // rustpositiewaardeint drempel =bereik/4; // rustdrempelwaarde setup () {myServoX.attach (ServoXPin); // bevestigen van servo X myServoY.attach (ServoYPin); // servo YServoXPos =ServoXHomePos bevestigen; // update ServoXPos met startpositie als startupServoYPos =ServoYHomePos; // update ServoYPos met startpositie als startupmyServoX.write(ServoXPos);myServoY.write(ServoYPos);Serial.begin(9600);}void loop(){XAxleValue =readAxis(XAxlePin);YAxleValue =readAxis(YAxlePin);Serial.begin(9600);}void loop(){XAxleValue =readAxis(XAxlePin);YAxleValue =readAxis(YAxlePin); .print(XAxleValue,DEC);Serial.print(" - ");Serial.println(YAxleValue,DEC);// controleer de waarden van de joystick en beweeg de servo's soepel met een vertraging van 100 milliseconden (XAxleValue>0) { ServoXPos++; myServoX.write(ServoXPos); vertraging(100*(7-XAxleValue)); }if (XAxleValue<0) { ServoXPos--; myServoX.write(ServoXPos); vertraging (100*(7+XAxleValue)); }if (YAxleValue>0) { ServoYPos++; mijnServoY.write(ServoYPos); vertraging (100*(7-YAxleValue)); }if (YAxleValue<0) { ServoYPos--; mijnServoY.write(ServoYPos); vertraging (100*(7+YAxleValue)); }if (ServoXPos>ServoXHomePos+20) { ServoXPos=ServoXHomePos+20; }if (ServoXPos ServoYHomePos+20) { ServoYPos=ServoYHomePos+20; }if (ServoYPos Aangepaste onderdelen en behuizingen
Schema's
Productieproces
- TinyML-taaldetector-gebaseerd op Edge Impulse &Arduino
- Arduino-gyroscoopspel met MPU-6050
- Arduino digitale dobbelstenen
- Iron Man
- Vind mij
- Arduino-luchtbevochtigerbediening
- Sonar met arduino en weergave op verwerkings-IDE
- MobBob:doe-het-zelf Arduino-robot bestuurd door Android-smartphone
- Arduino Audio Reactive Desk Light
- NeoMatrix Arduino Pong
- Arduino-joystick