Inhoudsopgave:
- Stap 1: Creëer het circuit om de motoren en afstandsbediening van stroom te voorzien
- Stap 2: Creëer een basis voor de twee motoren
- Stap 3: Voeg de servo toe aan de onderkant van de motoren
- Stap 4: Snijd gaten in de grote container
- Stap 5: De pijp
- Stap 6: De hopper
- Stap 7: Het plaatsen van de trechter, pijp en motoren
- Stap 8: De laatste servo
- Stap 9: Code toevoegen om de werkende delen te testen
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Benodigde materialen
1 x RFID-sensor / afstandsbediening
1 x Arduino-uno
2 x DC-motoren
1 x 180 servo
1 x 360-servo
meerdere draden
Doos/container om project te bouwen
pijp om de bal door te voeren
Stap 1: Creëer het circuit om de motoren en afstandsbediening van stroom te voorzien
Het circuit bouwen
bouw het bovenstaande circuit en maak verbinding met dezelfde pinnen om exact dezelfde code te gebruiken
Stap 2: Creëer een basis voor de twee motoren
je moet het foamboard gebruiken om rechthoeken van 4, 5 inch bij 2 inch voor de zijkanten te snijden. knip vervolgens vierkanten van 2, 5 bij 5 inch uit om als boven- en onderkant te gebruiken. vervolgens hebben de motoren een plaats nodig om op te zitten, dus snijd 2 gaten met een diameter van 23 mm en een onderlinge afstand van 39 mm om ruimte te geven voor de bal die moet worden geschoten. maak vervolgens een plek of een paar gaten op het onderste vierkant zodat de draden van de motoren op het circuit kunnen worden aangesloten.
Stap 3: Voeg de servo toe aan de onderkant van de motoren
lijm de 180 of 360 servo voorzichtig op de onderkant (in het midden) van het vierkant. we doen dit zodat we de richting handmatig kunnen veranderen met de afstandsbediening of willekeurig zodat de bal in verschillende richtingen schiet
Stap 4: Snijd gaten in de grote container
neem de grote container en knip een gat aan de voor- en achterkant, het hoeft niet exact te zijn, maar aan de voorkant moeten we behoorlijk groot zijn zoals te zien op de foto om de bal in verschillende richtingen te laten schieten terwijl de servo beweegt. en de achterkant van de container snijdt een kleiner gat om de draden naar buiten te laten komen en om de circuitonderdelen erin te plaatsen of het circuit te veranderen indien nodig. aan de voorkant lijm de servo op het deksel van een van de containers en vervolgens op de bodem van de container voor ondersteuning, zie de tweede afbeelding voor referentie
Stap 5: De pijp
maak of koop een pvc-pijp die 1 voet lang is, bij voorkeur met een bocht om de bal naar binnen te laten rollen en knip dan een stuk van 1,5 inch in om de bal binnen te laten komen
Stap 6: De hopper
knip 4 gelijke trapezoïden uit, kan naar keuze zijn, maar de mijne waren 5 lang en liepen een beetje schuin toen ze op de pijp werden geplaatst, en toen sneed het stuk schuimplaat aan de onderkant een gat dat groot genoeg was voor een pingpongbal om er doorheen te gaan. lijm ze vervolgens aan elkaar en vorm een huppeltje zodat alle ballen erin kunnen zitten. later lijmen we dit aan de bovenkant van de pijp waar het gat wordt gesneden
Stap 7: Het plaatsen van de trechter, pijp en motoren
je wilt de pijp in de container plaatsen, net op de rand van de witte doos die voor de motoren is gemaakt, zodat de bal naar buiten komt en door de wielen wordt geduwd. je kunt nu de trechter op de bovenkant van de pijp lijmen
Stap 8: De laatste servo
deze servo is op de bodem van de trechter gelijmd / waar de pijp die ik heb gesneden om hem net genoeg uit te steken zodat de ping-ballen er niet doorheen vallen totdat de knop wordt ingedrukt en de servo beweegt
Stap 9: Code toevoegen om de werkende delen te testen
//Kattenreparateur
//importeer bibliotheken om opdrachten in de hele code te gebruiken, bijvoorbeeld pinnen als servo's declareren en de IR-afstandsbediening instellen #include #include
// variabelen instellen om snelheden in te stellen voor de DC-motoren int onspeed = 255; int lage snelheid = 100; int offspeed = 0;
// instellen van de infared-ontvangerpin en de twee motorpinnen int IR_Recv = 2; int motor1 = 10; int motor2 = 11;
// de variabelen declareren als servo's zodat het programma weet dat het een servo is om specifieke commando's te gebruiken Servo flap; Servohoek;
// IR-pin declareren om invoer van afstandsbedieningen te ontvangen // krijgt de resultaten van de externe IRrecv irrecv (IR_Recv); decode_results resultaten;
ongeldige setup() {
Serieel.begin(9600); //start seriële communicatie irrecv.enableIRIn(); // Start de ontvanger
flap.attach(7); // bevestigt de servoklep aan pin 7 zodat we deze later in het programma angle.attach (4) kunnen gebruiken; // hecht de servohoek aan pin 4 zodat we deze later in het programma pinMode (motor1, OUTPUT) kunnen gebruiken; // stel motor1 in op een uitgang zodat we snelheden kunnen sturen naar wanneer de knop wordt ingedrukt pinMode (motor2, OUTPUT); // stel motor2 in op een uitgang zodat we snelheden kunnen sturen naar binnen wanneer op de knop wordt gedrukt
}
lege lus() {
flap.schrijven(0); // zet de servo die de balaanvoer regelt op 0 graden om geen ballen door te laten
if (irrecv.decode(&results)){ long int decCode = results.value; Serial.println(decCode); irrev.resume();
switch(resultaten.waarde) {
case 0xFFA25D: // power analogWrite (motor1, onspeed); analogWrite(motor2, op snelheid); vertraging (7000); flap.write(90); vertraging (500); flap.schrijven(0); vertraging (2000); analogWrite(motor1, offspeed); analogWrite(motor2, offspeed); pauze;
geval 0xFFE01F: //EQ
analogWrite(motor1, op snelheid); analogWrite(motor2, lage snelheid); vertraging (7000); flap.write(90); vertraging (500); flap.schrijven(0); vertraging (2000); analogWrite(motor1, offspeed); analogWrite(motor2, offspeed);
pauze;
geval 0xFF629D: //modus
analogWrite(motor1, lage snelheid); analogWrite(motor2, op snelheid); vertraging (7000); flap.write(90); vertraging (500); flap.schrijven(0); vertraging (2000); analogWrite(motor1, offspeed); analogWrite(motor2, offspeed);
pauze;
geval 0xFF30CF: // instelling 1, 90 graden
hoek.schrijven(30);
pauze;
geval 0xFF18E7: // instelling 2, 0 graden
hoek.schrijven(90);
pauze;
geval 0xFF7A85: // instelling 3, 180 graden
hoek.schrijven(150);
pauze;
} } }