INHOUDSOPGAWE:

Cat Ball Shooter: 9 stappe (met foto's)
Cat Ball Shooter: 9 stappe (met foto's)

Video: Cat Ball Shooter: 9 stappe (met foto's)

Video: Cat Ball Shooter: 9 stappe (met foto's)
Video: How to trick a cat😂 #cat #cats 2024, November
Anonim
Cat Ball Shooter
Cat Ball Shooter

Materiaal benodig

1 x RFID -sensor/ afstandsbediening

1 x Arduino uno

2x DC -motors

1 x 180 servo

1 x 360 servo

verskeie drade

Boks/houer om 'n projek te bou

pyp om bal deur te voer

Stap 1: Skep die stroombaan om die motors en afstandsbediening aan te skakel

Skep die stroombaan om die motors en afstandsbediening aan te dryf
Skep die stroombaan om die motors en afstandsbediening aan te dryf
Skep die stroombaan om die motors en afstandsbediening aan te dryf
Skep die stroombaan om die motors en afstandsbediening aan te dryf

Bou die kring

bou die stroombaan hierbo en koppel aan dieselfde penne om presies dieselfde kode te gebruik

Stap 2: Skep basis vir die twee motors

Skep basis vir die twee motors
Skep basis vir die twee motors

jy sal die skuimplank moet gebruik om vierkante, 5 duim by 2 duim reghoeke vir die sye te sny. Sny dan vierkante van 5,5 x 5 cm uit om as bo- en onderkant te gebruik. Vervolgens benodig die motors 'n plek om op te sit; sny 2 gate met 'n deursnee van 23 mm en 39 mm van mekaar af om ruimte vir die bal te gee. Maak dan 'n kol of 'n paar gate op die onderste vierkant sodat die drade van die motors in die kring kan aansluit.

Stap 3: Voeg die servo onderaan die motors

Voeg die servo onderaan die motors
Voeg die servo onderaan die motors

plak die 180 of 360 servo versigtig aan die onderkant (in die middel) van die vierkant vas. ons doen dit sodat ons die rigting handmatig kan verander met die afstandsbediening of lukraak sodat die bal in verskillende rigtings skiet

Stap 4: Sny gate in die groot houer

Sny gate in die groot houer
Sny gate in die groot houer
Sny gate in die groot houer
Sny gate in die groot houer
Sny gate in die groot houer
Sny gate in die groot houer

Neem die groot houer en sny 'n gat voor en agter, dit hoef nie presies te wees nie, maar aan die voorkant moet ons redelik groot wees, soos op die foto, sodat die bal in verskillende rigtings geskiet kan word terwyl die servo beweeg. en die agterkant van die houer sny 'n kleiner gat sodat die drade kan uitkom en die kringonderdele kan plaas of die kring kan verander indien nodig. plak die servo aan die voorkant vas aan die deksel van een van die houers en dan op die basis van die houer vir ondersteuning, sien die tweede prentjie vir verwysing

Stap 5: Die pyp

Die Pyp
Die Pyp

maak of koop 'n PVC pyp wat 1 voet lank is, verkieslik met 'n kromme om die bal in te laat rol, sny dan 'n stuk 1,5 in sodat die bal kan binnedring

Stap 6: The Hopper

Die Hopper
Die Hopper
Die Hopper
Die Hopper
Die Hopper
Die Hopper

Sny 4 gelyke trapezoïede uit, kan van keuse wees, maar myne was 5 lank en skuins 'n bietjie toe dit op die pyp aangebring word, en dan sny die skuimplank onderaan 'n gat groot genoeg om 'n tafeltennisbal deur te gaan. plak dit dan aanmekaar en vorm 'n huppel vir al die balle om in te sit. later plak ons dit bo -op die pyp waar die gat gesny word

Stap 7: Plaas die vullis, pyp en motors

Plaas die vullis, pyp en motors
Plaas die vullis, pyp en motors

jy sal die pyp in die houer wil plaas net op die rand van die wit boks wat vir die motors gemaak is, sodat die bal uitkom en deur die wiele gestoot word. jy kan nou die houer aan die bokant van die pyp plak

Stap 8: Die finale servo

Die finale servo
Die finale servo
Die finale servo
Die finale servo

hierdie servo word aan die onderkant van die houer vasgeplak/ waar die pyp wat ek sny om dit net genoeg uit te steek tot waar die pingballetjies nie sal val nie, totdat op die knoppie geklik word en die servo beweeg

Stap 9: Voeg kode by om die werkende onderdele te toets

Voeg kode by om die werkende onderdele te toets
Voeg kode by om die werkende onderdele te toets

// Katoplosser

// voer biblioteke in om opdragte regdeur die kode te gebruik, byvoorbeeld om penne as servo's te verklaar en die IR -afstandsbediening op te stel #include #include

// stel veranderlikes op om snelhede vir die GS -motors int onspeed = 255 in te stel; int lae snelheid = 100; int offspeed = 0;

// die opstel van die infared ontvangerpen en die twee motorpenne int IR_Recv = 2; int motor1 = 10; int motor2 = 11;

// die veranderlikes as servo's verklaar sodat die program weet dat dit 'n servo is om spesifieke opdragte te gebruik Servo flap; Servo hoek;

// verklaring van IR -pen om insette van afstandbeheer te ontvang // kry die resultate van die afstandsbediening IRrecv irrecv (IR_Recv); resultate van dekode_resultate;

ongeldige opstelling () {

Serial.begin (9600); // begin seriële kommunikasie irrecv.enableIRIn (); // Begin die ontvanger

flap.aanheg (7); // sit die servoklep aan pen 7 vas sodat ons dit later in die programhoek kan gebruik.heg (4); // heg die servohoek aan pen 4 sodat ons dit later in die program pinMode (motor1, OUTPUT) kan gebruik; // stel motor1 op 'n uitset, sodat ons die snelhede na binne kan stuur as die knoppie op pinMode (motor2, OUTPUT) gedruk word; // stel motor2 op 'n uitset in, sodat ons die snelheid na binne kan stuur as die knoppie gedruk word

}

leemte -lus () {

flap.write (0); // stel die servo wat die balvoerder beheer, op 0 grade om geen balle deur te laat nie

if (irrecv.decode (& resultate)) {long int decCode = results.value; Serial.println (decCode); irrecv.resume ();

skakelaar (result.value) {

geval 0xFFA25D: // krag analogWrite (motor1, onspeed); analogWrite (motor2, onspeed); vertraging (7000); flap.skryf (90); vertraging (500); flap.write (0); vertraging (2000); analogWrite (motor1, offspeed); analogWrite (motor2, offspeed); breek;

saak 0xFFE01F: // EQ

analogWrite (motor1, onspeed); analogWrite (motor2, lae spoed); vertraging (7000); flap.skryf (90); vertraging (500); flap.write (0); vertraging (2000); analogWrite (motor1, offspeed); analogWrite (motor2, offspeed);

breek;

saak 0xFF629D: // modus

analogWrite (motor1, lae spoed); analogWrite (motor2, onspeed); vertraging (7000); flap.skryf (90); vertraging (500); flap.write (0); vertraging (2000); analogWrite (motor1, offspeed); analogWrite (motor2, offspeed);

breek;

geval 0xFF30CF: // stel 1, 90 grade

hoek.skryf (30);

breek;

geval 0xFF18E7: // instelling 2, 0 grade

hoek.skryf (90);

breek;

geval 0xFF7A85: // instelling 3, 180 grade

hoek.skryf (150);

breek;

} } }

Aanbeveel: