Turinys:

ROADRUNNER: 5 žingsniai
ROADRUNNER: 5 žingsniai
Anonim
KELIONĖS
KELIONĖS

„Roadrunner“yra maža automatizuota transporto priemonė, kurios funkcija yra gabenti gėrimų skardines ištroškusiems vartotojams.

Kaip tai veikia? Skardinė dedama ant viršutinio transporto priemonės pagrindo, o skardinės svoris paspaudžia mažą mygtuką, kuris nurodo transportui, kad jis yra paruoštas darbui. Norėdamas save vadovauti, „Roadrunner“eina keliu žemėje juodos linijos pavidalu, kuris nurodo, kur jis turėtų eiti, ir naudodamasis fotosensoriais, jis gali nustatyti, kada jis eina iš kelio ir pataiso savo kryptį, likti tokiu būdu, visada trasos viduje. Kai transporto priemonė atvyksta pas vartotoją, ji pasiima gėrimų skardinę, todėl nedidelis transporto sustojimas vyksta toje pačioje vietoje. Jis nekartos savo žygio, kol vartotojas nepadės skardinės atgal, kad galėtų grįžti į pradinį tašką ir užbaigti savo darbą.

1 žingsnis: įrankiai ir medžiagos

Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos
Įrankiai ir medžiagos

2 žingsnis: Aparatūros surinkimas

Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas
Techninės įrangos surinkimas

1. KŪNAS

Kėbului naudojome aliuminio plokštę, kurią supjaustėme ir sulenkėme norima forma. Mes taip pat padarėme visas skyles, kurių reikės varžtams.

2. RATAI

Mes panaudojome 2 ratus iš „Mecano“žaidimo, kurie puikiai tinka mūsų robotui. Servos eina po plokšte, sujungta varžtais. Priekiniam ratui naudojome „laisvą“ratą, todėl jis gali lengvai judėti bet kuria kryptimi.

3. FOTOSENSORIAI

RDL fotosensoriams naudojome plokštę ir prie jos suvirinome grandinę, ji apima varžą, LDR, teigiamą, neigiamą ir signalą.

4. ARDUINO LENDA

Mes pritvirtinome „Arduino“plokštę prie plokštės varžtais. Tada mes tiesiog prijungėme prie jo visą grandinę. Norėdami tiekti plokštę, naudojome 2 9V baterijas, kurias sujungėme ir prijungėme prie „Arduino“.

5. Viršutinė plokštė

Viršutinei plokštei PMMA pjaustyti naudojome lazeriu pjaustytą mašiną. Mes sukūrėme šią formą naudodami „AutoCad“. Jį sudaro didelė plokštė, 3 apskriti žiedai ir apskritas gabalas, tinkantis žiedams. Suteikėme vietos lėkštutei, kad tilptume mygtuką.

3 žingsnis: elektros jungtys

Elektros jungtys
Elektros jungtys

1. Servomotorių prijungimas:

Servomotorius susideda iš trijų kabelių; vienas geltonas arba oranžinis signalas, raudonas maitinimas (Vcc) ir juodas arba rudas įžeminimas (GND). Raudona ir ruda spalvos yra pritvirtintos prie atitinkamų „Arduino“kaiščių (5V ir GND). Vienas servo yra prijungtas prie PWM kaiščio 10, o kitas - prie PWM kaiščio 11.

2. Prijungimo mygtukas:

Elektroniniai mygtukai veikia kiek savotiškai; leisti įtampą per kaiščius įstrižai, tai yra, jei turime keturis kaiščius, norėdami dirbti, įvestį ir išvestį turime sujungti tik dviem kaiščiais, 1-4 arba 2-3. Pvz., Jei pasirinksime 1-4 kaiščius, mes prijungsime įžeminimą (GND) prie 4 kaiščio, o išvestis bus prijungta prie PWM 9 kaiščio ir, savo ruožtu, kartu su 1 kOhm atsparumu, prijunkite jį prie 5 V (Vcc).

3. Fotosensorių prijungimas:

Norėdami prijungti fotosensorius, vieną iš kojų turime įdėti tiesiai į „Vcc“maitinimo šaltinį, o kitą - tuo pačiu metu prijungti prie analoginio kaiščio (šiuo atveju prie kaiščių A0 ir A1) ir įžemintą GND kartu su atsparumas 1 kOhm.

Pastaba:

Prie laidų galite lituoti mažas jungtis, jei laidai netelpa tiesiai į „Arduino“, arba naudokite protoboardą, kad palengvintumėte įvairias jungtis. Šiame projekte mes naudojome jungiamąsias juostas skirtingoms jungtims.

4 žingsnis: „Arduino“programavimas

Arduino programavimas
Arduino programavimas
Arduino programavimas
Arduino programavimas

KODAS

#include Servo myservoL;

Servo myservoR;

int inPin = 7;

int mygtukasVal = 1;

void setup () {

// SERVOMOTORIAI

myservoL.attach (10);

myservoR.attach (11);

Serial.begin (9600); }

void loop () {

int LDR_L = analogRead (A2);

int LDR_R = analogRead (A1);

buttonVal = digitalRead (inPin);

// PAKUOTĖ KAIRĖ

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

myservoL.write (180);

//Serial.println(LDR_L); }

Kitas {

myservoL.write (92);

//Serial.println(LDR_L);

}

// PAKUOTĖ TEISINGAI

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

myservoR.write (-270);

// Serijinis.println (LDR_R); }

Kitas {

myservoR.write (92);

// Serija.println (LDR_R); }

}

Rekomenduojamas: