Spisu treści:
- Krok 1: Utwórz obwód do zasilania silników i zdalnego
- Krok 2: Utwórz bazę dla dwóch silników
- Krok 3: Dodaj serwo do dolnej części silników
- Krok 4: Wytnij otwory w dużym pojemniku
- Krok 5: Fajka
- Krok 6: Zasobnik
- Krok 7: Umieszczanie zasobnika, rury i silników
- Krok 8: Ostateczne Servo
- Krok 9: Dodaj kod, aby przetestować części robocze
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Potrzebne materiały
1 x czujnik/pilot RFID
1 x Arduino
2 x silniki prądu stałego
1x180 serwo
1x360 serwo
wiele przewodów
Pudełko/pojemnik do zbudowania projektu
rura do podawania piłki
Krok 1: Utwórz obwód do zasilania silników i zdalnego
Budowanie obwodu
zbuduj obwód powyżej i podłącz do tych samych pinów, aby użyć dokładnie tego samego kodu;
Krok 2: Utwórz bazę dla dwóch silników
będziesz musiał użyć płyty piankowej, aby wyciąć prostokąty o wymiarach 4, 5 cala na 2 cale na boki. następnie wytnij kwadraty o wymiarach 2, 5 na 5 cali, aby wykorzystać je jako górną i dolną część. następnie silniki będą potrzebowały miejsca do siedzenia, więc wytnij 2 otwory o średnicy 23 mm i oddalone od siebie o 39 mm, aby zrobić miejsce na wystrzelenie piłki. następnie zrób miejsce lub kilka otworów na dolnym kwadracie, aby umożliwić podłączenie przewodów z silników do obwodu.
Krok 3: Dodaj serwo do dolnej części silników
ostrożnie przyklej serwo 180 lub 360 na dole (w środku) kwadratu. robimy to, aby zmienić kierunek ręcznie za pomocą pilota lub losowo, aby piłka wystrzeliła w różnych kierunkach
Krok 4: Wytnij otwory w dużym pojemniku
weź duży pojemnik i wytnij dziurę z przodu iz tyłu, nie musi to być dokładne, ale z przodu powinien być dość duży, jak widać na zdjęciu, aby piłka mogła wystrzelić w różnych kierunkach z poruszającym się serwomechanizmem. a tył pojemnika wyciąć mniejszy otwór, aby umożliwić wyjście przewodów i umieszczenie części obwodu lub zmianę obwodu w razie potrzeby. z przodu przyklej serwo do pokrywy jednego z pojemników, a następnie do podstawy pojemnika w celu podparcia, patrz drugie zdjęcie jako odniesienie
Krok 5: Fajka
zrób lub kup rurę pcv o długości 1 stopy, najlepiej z krzywizną, aby piłka mogła się toczyć, a następnie odetnij kawałek 1,5 , aby piłka weszła
Krok 6: Zasobnik
wyciąć 4 równe trapezy, mogą być do wyboru, ale moje miały 5 cali wysokości i były nieco pochylone po nałożeniu na rurę, a następnie kawałek płyty piankowej na dole wyciąć otwór wystarczająco duży, aby mogła przejść piłka do ping ponga. następnie sklej je ze sobą tworząc podskok, w którym wszystkie kulki się usiądą. później przykleimy to do górnej części rury, w której wycinany jest otwór
Krok 7: Umieszczanie zasobnika, rury i silników
będziesz chciał umieścić rurę w pojemniku, siedząc tuż na krawędzi białego pudełka wykonanego dla silników, aby kulka wyszła i była popychana przez koła. możesz teraz przykleić lej do górnej części rury
Krok 8: Ostateczne Servo
to serwo jest przyklejone na dnie leja zasypowego / gdzie rura, którą wyciąłem, aby wystawała na tyle, aby kulki pingujące nie wpadły, dopóki nie klikniesz przycisku i serwo się poruszy
Krok 9: Dodaj kod, aby przetestować części robocze
//Naprawiacz kotów
//importuj biblioteki, aby używać poleceń w całym kodzie, na przykład deklarowanie pinów jako serwomechanizmów i konfigurowanie pilota na podczerwień #include #include
//ustawianie zmiennych do ustawiania prędkości dla silników prądu stałego int onspeed = 255; int niska prędkość = 100; int offspeed = 0;
//konfigurowanie pinu odbiornika podczerwonego i dwóch pinów silnika int IR_Recv = 2; int motor1 = 10; int motor2 = 11;
//deklarowanie zmiennych jako serw, aby program wiedział, że jest to serwo do użycia określonych poleceń Servo flap; Kąt serwa;
//deklarowanie pinu IR do odbierania danych wejściowych z pilotów //pobieranie wyników z pilota IRrecv irrecv(IR_Recv); decode_results wyniki;
pusta konfiguracja () {
Serial.początek(9600); //rozpoczyna komunikację szeregową irrecv.enableIRIn(); // Uruchamia odbiornik
zaczep.klap(7); //przyczepia klapkę serwomechanizmu do pinu 7, dzięki czemu możemy jej później użyć w programie angle.attach(4); //dołącza kąt serwomechanizmu do pinu 4, dzięki czemu możemy go później użyć w programie pinMode(motor1, OUTPUT); //ustaw motor1 na wyjście, abyśmy mogli wysyłać prędkości do in po naciśnięciu przycisku pinMode(motor2, OUTPUT); //ustaw motor2 na wyjście, abyśmy mogli wysyłać prędkości do in po naciśnięciu przycisku
}
pusta pętla () {
klapa.zapis(0); //ustaw serwo sterujące podajnikiem piłek na 0 stopni, aby nie przepuszczały piłek
if (irrecv.decode(&results)){ long int decCode = results.value; Serial.println(kod dec); nieodzysk.wznowienie();
switch(wyniki.wartość) {
case 0xFFA25D: //power analogWrite(motor1, onspeed); zapis analogowy (silnik2, onspeed); opóźnienie(7000); klapa.zapis(90); opóźnienie (500); klapa.zapis(0); opóźnienie (2000); zapis analogowy(silnik1, obniżona prędkość); zapis analogowy (silnik2, offspeed); przerwa;
przypadek 0xFFE01F: //EQ
zapis analogowy(silnik1, onspeed); zapis analogowy (silnik2, niska prędkość); opóźnienie(7000); klapa.zapis(90); opóźnienie (500); klapa.zapis(0); opóźnienie (2000); zapis analogowy(silnik1, obniżona prędkość); zapis analogowy (silnik2, offspeed);
przerwa;
przypadek 0xFF629D: //tryb
zapis analogowy (silnik1, niska prędkość); zapis analogowy (silnik2, onspeed); opóźnienie(7000); klapa.zapis(90); opóźnienie (500); klapa.zapis(0); opóźnienie (2000); zapis analogowy(silnik1, obniżona prędkość); zapis analogowy (silnik2, offspeed);
przerwa;
przypadek 0xFF30CF: //ustawienie 1, 90 stopni
kąt.zapisu(30);
przerwa;
przypadek 0xFF18E7: //ustawienie 2, 0 stopni
kąt.zapisu(90);
przerwa;
przypadek 0xFF7A85: //ustawienie 3, 180 stopni
kąt.zapisu(150);
przerwa;
} } }