ROADRUNNER: 5 kroków
ROADRUNNER: 5 kroków
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); }

}