Turinys:

„Cat Ball Shooter“: 9 žingsniai (su nuotraukomis)
„Cat Ball Shooter“: 9 žingsniai (su nuotraukomis)

Video: „Cat Ball Shooter“: 9 žingsniai (su nuotraukomis)

Video: „Cat Ball Shooter“: 9 žingsniai (su nuotraukomis)
Video: Коты против Зомби 2024, Lapkritis
Anonim
Kačių rutulio šaulys
Kačių rutulio šaulys

Reikalingos medžiagos

1 x RFID jutiklis/ nuotolinio valdymo pultas

1 x „Arduino uno“

2 x nuolatinės srovės varikliai

1 x 180 servo

1 x 360 servo

kelis laidus

Dėžė/konteineris projektui sukurti

vamzdis, per kurį reikia paduoti rutulį

1 žingsnis: sukurkite grandinę, skirtą varikliams ir nuotolinio valdymo pultui maitinti

Sukurkite variklių ir nuotolinio valdymo grandinę
Sukurkite variklių ir nuotolinio valdymo grandinę
Sukurkite variklių ir nuotolinio valdymo grandinę
Sukurkite variklių ir nuotolinio valdymo grandinę

Grandinės kūrimas

sukurkite grandinę aukščiau ir prisijunkite prie tų pačių kaiščių, kad galėtumėte naudoti tą patį kodą

2 žingsnis: sukurkite dviejų variklių bazę

Sukurkite dviejų variklių bazę
Sukurkite dviejų variklių bazę

turėsite naudoti putplasčio plokštę, kad iškirptumėte 4, 5 colių ir 2 colių stačiakampius šonams. tada iškirpkite 2, 5 x 5 colių kvadratus, kad galėtumėte naudoti kaip viršutinę ir apatinę dalis. po to varikliams reikės vietos sėdėti, todėl išpjaukite 2 skyles, kurių skersmuo yra 23 mm ir 39 mm vienas nuo kito, kad būtų suteikta vietos rutuliui šaudyti. tada apatinėje aikštėje padarykite vietą arba keletą skylių, kad variklių laidai galėtų prisijungti prie grandinės.

3 žingsnis: pridėkite servo prie variklių apačios

Pridėkite servo prie variklių apačios
Pridėkite servo prie variklių apačios

atsargiai priklijuokite 180 arba 360 servo prie kvadrato apačios (viduryje). mes tai darome, kad galėtume rankiniu būdu pakeisti kryptį nuotolinio valdymo pultu arba atsitiktinai, kad kamuolys šaudytų skirtingomis kryptimis

4 žingsnis: išpjaukite skyles dideliame inde

Iškirpkite skyles dideliame inde
Iškirpkite skyles dideliame inde
Iškirpkite skyles dideliame inde
Iškirpkite skyles dideliame inde
Iškirpkite skyles dideliame inde
Iškirpkite skyles dideliame inde

Paimkite didelį konteinerį ir iškirpkite skylę priekyje ir gale, jis neturi būti tikslus, tačiau priekyje jis turėtų būti gana didelis, kaip parodyta paveikslėlyje, kad kamuoliuką būtų galima šaudyti į skirtingas puses judant servo varikliui. ir konteinerio galinė dalis išpjauna mažesnę skylę, kad laidai galėtų išeiti ir, jei reikia, įdėti grandinės dalis arba pakeisti grandinę. Priekyje priklijuokite servo prie vieno iš talpyklų dangčio ir tada ant talpyklos pagrindo, kad pamatytumėte, žr.

5 žingsnis: vamzdis

Vamzdis
Vamzdis

pagaminkite arba nusipirkite 1 pėdų ilgio PVC vamzdį, pageidautina, kad kreivė įsisuktų, tada supjaustykite 1,5 colio gabalėlį, kad kamuolys įeitų

6 žingsnis: bunkeris

Hoperis
Hoperis
Hoperis
Hoperis
Hoperis
Hoperis

iškirpti 4 vienodas trapecijas, gali būti pasirinktos, bet mano buvo 5 colių aukščio ir šiek tiek pasvirusios, kai buvo uždėtos prie vamzdžio, tada putplasčio plokštės gabalas apačioje išpjovė pakankamai didelę skylę, kad galėtų praeiti stalo teniso kamuolys. tada klijuokite juos kartu, sudarydami šuolį, kad visi rutuliai galėtų sėdėti.

7 žingsnis: surinktuvo, vamzdžio ir variklių įdėjimas

Bunkerio, vamzdžio ir variklių įdėjimas
Bunkerio, vamzdžio ir variklių įdėjimas

norėsite įdėti vamzdį į konteinerį, sėdintį tik ant variklių baltos dėžutės krašto, kad kamuolys išeitų ir būtų stumiamas ratų. dabar galite klijuoti bunkerį prie vamzdžio viršaus

8 žingsnis: paskutinis servo

Galutinis servo
Galutinis servo
Galutinis servo
Galutinis servo

ši servo servetėlė yra priklijuota prie bunkerio apačios/ ten, kur vamzdis, kurį nupjaučiau, kad jis būtų pakankamai išsikišęs, ten, kur ping rutuliai neiškris, kol nepaspaudžiamas mygtukas ir servo nejuda

9 veiksmas: pridėkite kodą, kad patikrintumėte darbo dalis

Pridėkite kodą, kad patikrintumėte darbo dalis
Pridėkite kodą, kad patikrintumėte darbo dalis

// Kačių fiksatorius

// importuokite bibliotekas, kad naudotų komandas visame kode, pavyzdžiui, paskelbdami kaiščius kaip servo ir nustatydami IR nuotolinio valdymo pultą #include #include

// kintamųjų nustatymas, norint nustatyti nuolatinės srovės variklių greitį int onspeed = 255; int žemas greitis = 100; int offspeed = 0;

// infraraudonųjų spindulių imtuvo kaiščio ir dviejų variklio kaiščių nustatymas int IR_Recv = 2; int variklis1 = 10; int variklis2 = 11;

// kintamųjų deklaravimas kaip servo, kad programa žinotų, jog yra servo naudoti konkrečias komandas Servo flap; Servo kampas;

// deklaruojant IR kaištį, norint gauti įvestis iš nuotolinio valdymo pultų // gaunami rezultatai iš nuotolinio IRrecv irrecv (IR_Recv); decode_results rezultatai;

void setup () {

Serial.begin (9600); // pradeda serijinį ryšį irrecv.enableIRIn (); // Paleidžia imtuvą

atvartas.pritvirtinimas (7); // pritvirtina servo atvartą prie 7 kaiščio, kad vėliau galėtume jį naudoti programos kampe.attach (4); // pritvirtina servo kampą prie 4 kaiščio, kad vėliau galėtume jį naudoti programoje pinMode (motor1, OUTPUT); // nustatyti motor1 į išvestį, kad galėtume nusiųsti greitį, kai mygtukas paspaudžiamas pinMode (motor2, OUTPUT); // nustatyti motor2 į išvestį, kad galėtume siųsti greitį, kai paspaudžiamas mygtukas

}

void loop () {

flap.write (0); // nustatykite servo, valdančio rutulio tiektuvą, padėtį 0 laipsnių, kad nepraleistų jokių rutulių

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

switch (results.value) {

atvejis 0xFFA25D: // galia analogWrite (variklis1, greitis); analogWrite (variklis2, greitis); vėlavimas (7000); atvartas.rašyti (90); vėlavimas (500); flap.write (0); vėlavimas (2000 m.); analogWrite (variklis1, poslinkis); analogWrite (variklis2, poslinkis); pertrauka;

atvejis 0xFFE01F: // EQ

analogWrite (variklis1, greitis); analogWrite (variklis2, žemas greitis); vėlavimas (7000); atvartas.rašyti (90); vėlavimas (500); flap.write (0); vėlavimas (2000 m.); analogWrite (variklis1, poslinkis); analogWrite (variklis2, poslinkis);

pertrauka;

atvejis 0xFF629D: // režimas

analogWrite (variklis1, žemas greitis); analogWrite (variklis2, greitis); vėlavimas (7000); atvartas.rašyti (90); vėlavimas (500); flap.write (0); vėlavimas (2000 m.); analogWrite (variklis1, poslinkis); analogWrite (variklis2, poslinkis);

pertrauka;

korpusas 0xFF30CF: // nustatymas 1, 90 laipsnių

kampas.rašyti (30);

pertrauka;

atvejis 0xFF18E7: // nustatymas 2, 0 laipsnių

kampas.rašyti (90);

pertrauka;

korpusas 0xFF7A85: // nustatymas 3, 180 laipsnių

kampas.rašyti (150);

pertrauka;

} } }

Rekomenduojamas: