Spisu treści:

ROADRUNNER: 5 kroków
ROADRUNNER: 5 kroków

Wideo: ROADRUNNER: 5 kroków

Wideo: ROADRUNNER: 5 kroków
Wideo: 560 whp 1968 Plymouth Road Runner 2024, Czerwiec
Anonim
RUNNER
RUNNER

Roadrunner to mały zautomatyzowany pojazd, który ma funkcję transportu puszek po napojach do spragnionych użytkowników.

Jak to działa? Puszka jest umieszczana na górnej podstawie pojazdu, a ciężar puszki uruchamia mały przycisk, który informuje transport, że jest gotowy do pracy. Roadrunner, aby się poprowadzić, podąża ścieżką na ziemi w postaci czarnej linii, która wskazuje, gdzie powinien się udać, a dzięki zastosowaniu fotoczujników jest w stanie wykryć, kiedy zboczy z drogi, korygując swój kierunek, aby w ten sposób pozostać, zawsze wewnątrz toru. Gdy pojazd dotrze do użytkownika, odbiera puszkę z napojem, dzięki czemu mały transport zatrzymuje się w tym samym miejscu. Nie wznowi marszu, dopóki użytkownik nie odłoży na nią puszki, aby powrócić do punktu wyjścia i zakończyć pracę.

Krok 1: Narzędzia i materiały

Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały
Narzędzia i materiały

Krok 2: Montaż sprzętu

Montaż sprzętu
Montaż sprzętu
Montaż sprzętu
Montaż sprzętu
Montaż sprzętu
Montaż sprzętu

1. CIAŁO

Do korpusu użyliśmy aluminiowej płyty, którą wycięliśmy i wygięliśmy do pożądanego kształtu. Wykonaliśmy również wszystkie otwory, które będą potrzebne na śruby.

2. KOŁA

Wykorzystaliśmy 2 koła z gry Mecano, które idealnie pasują do naszego robota. Serwa przechodzą pod płytę skręcaną śrubami. Do przedniego koła użyliśmy koła „wolnego”, dzięki czemu można je łatwo poruszać w dowolnym kierunku.

3. FOTOCZUJNIKI

Dla fotoczujników RDL użyliśmy płytki drukowanej i przyspawaliśmy do niej obwód, zawiera on rezystancję, LDR, dodatni, ujemny i sygnał.

4. TABLICA ARDUINO

Płytkę Arduino przykręciliśmy do płytki za pomocą śrub. Potem po prostu podłączyliśmy do niego cały obwód. Do zasilania płytki użyliśmy 2 baterii 9V, które połączyliśmy i wpięliśmy do Arduino.

5. GÓRNA PŁYTA

Do płyty górnej wykorzystaliśmy wycinaną laserowo maszynę do cięcia PMMA. Zaprojektowaliśmy ten kształt za pomocą programu AutoCad. Składa się z dużego talerza, 3 okrągłych pierścieni i okrągłego elementu pasującego do pierścieni. Daliśmy miejsce na talerz, żeby zmieścić guzik.

Krok 3: Połączenia elektryczne

Połączenia elektryczne
Połączenia elektryczne

1. Podłączanie serwomotorów:

Serwomotory składają się z trzech kabli; jeden żółty lub pomarańczowy dla sygnału, czerwony dla zasilania (Vcc) i czarny lub brązowy dla masy (GND). Czerwony i brązowy są podłączone do odpowiednich pinów w Arduino (5V i GND). Jedno serwo jest podłączone do pinu 10 PWM, a drugie do pinu PWM 11.

2. Przycisk łączący:

Przyciski elektroniczne działają w nieco osobliwy sposób; pozwalają na przepuszczenie napięcia przez piny po przekątnej, czyli jeśli mamy cztery piny to musimy połączyć wejście i wyjście tylko w dwa piny, 1-4 lub 2-3 aby działały. Np. jeśli wybierzemy piny 1-4, masę (GND) połączymy z pinem 4, a wyjście połączymy z pinem 9 PWM i z kolei razem z rezystancją 1kOhm podłączymy do 5V (Vcc).

3. Podłączanie fotosensorów:

Aby podłączyć fotosensory musimy jedną z nóżek podłożyć bezpośrednio do zasilania Vcc, a drugą podłączyć jednocześnie do pinu analogowego (w tym przypadku do pinów A0 i A1) oraz do masy GND razem z rezystancja 1kOhm.

Notatka:

Możesz przylutować małe złącza do przewodów, jeśli przewody nie pasują bezpośrednio do Arduino, lub użyć płytki prototypowej, aby ułatwić różne połączenia. W tym projekcie zastosowaliśmy listwy łączące do różnych połączeń.

Krok 4: Programowanie Arduino

Programowanie Arduino
Programowanie Arduino
Programowanie Arduino
Programowanie Arduino

KOD

#include Servo myservoL;

serwo myservoR;

int wPin = 7;

int przyciskVal = 1;

pusta konfiguracja () {

//SERWOSILNIKI

myservoL.attach(10);

myservoR.attach(11);

Serial.początek(9600); }

pusta pętla () {

int LDR_L = odczyt analogowy(A2);

int LDR_R = odczyt analogowy(A1);

buttonVal = digitalRead(inPin);

//OPAKOWANIE POZOSTAWIONE

if (LDR_L > 590 && buttonVal == 0) {

myservoL.write(180);

//Serial.println(LDR_L); }

w przeciwnym razie {

myservoL.write (92);

//Serial.println(LDR_L);

}

//PAKUJ PRAWO

if (LDR_R > 750 && buttonVal == 0) {

myservoR.write(-270);

//Serial.println(LDR_R); }

w przeciwnym razie {

myservoR.write (92);

//Serial.println(LDR_R); }

}

Zalecana: