Vandaag is een zeer ernstig onderwerp: de geschiktheid van onze hond Yoshi.
Sinds we in onze winkel zijn Heerlijk voor Yoshi.Yoshi's calorie ën inname is onevenredig toegenomen.
Eigenlijk wilden we een geautomatiseerde deli donor bouwen voor Yoshi, die automatisch de gedoneerde traktaties geeft, maar dat zou onverantwoord zijn als we niet voorzien in de geschiktheid van de hond.
Daarom moeten we nadenken over een sportprogramma voor Yoshi, en hier is het idee met YoshiTrainer 2000!
Voordelen:
- Ik heb alle noodzakelijke onderdelen op mijn bureau.
- Programmeren is relatief eenvoudig omdat we volledig negeren mijn laatste blog post over willekeurige getallen, en gebruik random()
- Het apparaat is Y2K compatibel
We hebben het project nodig:
1x AZ-Delivery Microcontroller, compatibel met Arduino Uno R3
2x Servo Motor, bv.AZ-Delivery Servo MG996R
1x diode Laser
1x 5V Energievoorziening met voldoende vermogen voor servo's, lasers & Uno
Net als enkele rollen van VDE isolatie tape en dubbelzijdige plakband.
Laser waarschuwing:
De gebruikte laser diode is een klasse 1 laser.Volgens DIN EN 60825-1 betekent dit: "De toegankelijke laser straling is onschadelijk, of de laser is in een gesloten behuizing".
Toch beveel ik het gebruik van een bril aan.Lasers vereisen ook voldoende koeling tijdens continu gebruik.
Ik heb maar één MG 996R servo, dus nam ik onze SG90 voor de Y-as.Dit is veel kleiner, heeft plastic tandwielen en heeft veel minder vermogen.
We leggen de hele zaak zo op de kabel:
5V 10A Energievoorziening |
Bordboard |
+ |
+ |
- |
- |
Microcontroles compatibel met Arduino Uno R3 |
Bordboard |
Wijn |
+ |
GNI |
GNI |
Microcontroles compatibel met Arduino Uno R3 |
|
PWM 9 |
Servo 1 Oranje |
PWM 10 |
Servo 2 Orange |
PWM 3 |
Laser S |
Servo 1 en 2 rood |
Bordboard + |
Servo 1 en 2 bruin |
Bordboard |
Laser. |
Bordboard |
Hier is een foto waarop u de bekabeling kunt zien:
Alternatief hier hetzelfde als schakelbord:
Nu ontbreekt de programmering.
Ik gebruik de servo voorzien van de IDE.h
Met "Servo servox;" en "Servo servoy;" maak ik twee servo's met de namen ServoX en servoy.
In de setup definieer ik dan aan welke pin de regellijn van de servo is bevestigd, in ons geval bijvoorbeeld "servox.attach é(9);" voor servox.
Nu kunnen we de servox.read() en servox.writer() functies gebruiken om de positie van de servo te lezen of in te stellen.
Om Yoshi de kans te geven om ter zake te komen, heb ik alles in een tijdlus ingepakt, met kleine vertragingen.Met behulp van de variabele "spd" kan de snelheid ruwweg verneukt worden.
Voor de laser gebruiken we eerst de pin als output met behulp van "pinMode(laserPin, OUTPUT);" en dan schakelen we het aan met "analogWrite(laserPin, 40);".
Hier is de volledige broncode:
"35; omvat <Serveren.H> Serveren SeroX.; Serveren servo; u t tPosX = willekeurig(0,180); // Doelstelling Servo X u t cPosX = SeroX..lezen(); // Huidige positie Servo X u t tPOS = willekeurig(0,180); Doelstelling Servo Y u t cPosY = servo.lezen(); Doelstelling Servo Y u t spd = 1; // Snelheid int LaserPineName = 3; // PWM pin voor laser diode Leeg setup() { Zet je setup code hier, om een keer te draaien: SeroX..hechten(9); Servo X tot Pin 9 servo.hechten(10); Servo Y tot Pin 10 PinMode(LaserPineName, UITVOER); analoog(LaserPineName, 40); Let op laserlichting: warmteontwikkeling! } Leeg ren() { tPosX = willekeurig(45,135); Zo kunt u het bereik tussen 0 en 180 aanpassen cPosX = SeroX..lezen(); // Huidige positie lezen tPOS = willekeurig(120,170); cPosY = servo.lezen(); terwijl (tPosX > cPosX){ cPosX += spd; SeroX..schrijven(cPosX); vertraging(50); cPosX = SeroX..lezen(); } terwijl (tPosX < cPosX){ cPosX -= spd; SeroX..schrijven(cPosX); vertraging(50); cPosX = SeroX..lezen(); } terwijl (tPOS < cPosY){ cPosY -= spd; servo.schrijven(cPosY); vertraging(50); cPosX = servo.lezen(); } terwijl (tPOS > cPosY){ cPosY += spd; servo.schrijven(cPosY); vertraging(50); cPosX = servo.lezen(); } vertraging(500); Zodat Yoshi niet moe wordt. }
En we hebben een gedeeltelijk succes.Een laserpunt dat min of meer willekeurig door het gebied loopt.
Net zoals de eerste laser shows naar die tijd hebben gekeken.
We hopen dat je genoten hebt van de blog post van vandaag.Schrijf een korte opmerking over de vraag of u meer feitelijke bijdragen wilt of of dat u de bijdrage van vandaag leuk vindt.