Satura rādītājs:

ROADRUNNER: 5 soļi
ROADRUNNER: 5 soļi

Video: ROADRUNNER: 5 soļi

Video: ROADRUNNER: 5 soļi
Video: Jeff waters solo roadrunner united 2024, Novembris
Anonim
Ceļu skrējējs
Ceļu skrējējs

Roadrunner ir mazs automatizēts transportlīdzeklis, kura funkcija ir nogādāt dzērienu kannas izslāpušajiem lietotājiem.

Kā tas strādā? Transportlīdzekļa augšējā pamatnē ir novietota kārba, un tās svars iedarbina nelielu pogu, kas transportam paziņo, ka tā ir gatava darbam. Lai vadītu sevi, Roadrunner iet pa zemes ceļu melnas līnijas veidā, kas norāda, kur viņam jādodas, un, pateicoties fotosensoru izmantošanai, viņš spēj noteikt, kad viņš aiziet no ceļa, labojot savu virzienu, lai paliktu šādā veidā, vienmēr trases iekšpusē. Kad transportlīdzeklis ir nonācis pie lietotāja, tas paņem dzēriena bundžu, padarot nelielu transporta pieturu tajā pašā vietā. Viņš neatkārtos savu gājienu, kamēr lietotājs nenoliks atpakaļ kārbu, lai atgrieztos sākuma punktā un pabeigtu darbu.

1. darbība: rīki un materiāli

Instrumenti un materiāli
Instrumenti un materiāli
Instrumenti un materiāli
Instrumenti un materiāli

2. solis: Aparatūras montāža

Aparatūras montāža
Aparatūras montāža
Aparatūras montāža
Aparatūras montāža
Aparatūras montāža
Aparatūras montāža

1. ĶERMENIS

Ķermenim mēs izmantojām alumīnija plāksni, kuru mēs sagriezām un saliekām ar vēlamo formu. Mēs arī izveidojām visus caurumus, kas būs nepieciešami skrūvēm.

2. RITEŅI

Mēs izmantojām divus Mecano spēles riteņus, kas lieliski iederas mūsu robotā. Servo iet zem plāksnes, kas savienota ar skrūvju palīdzību. Priekšējam ritenim mēs izmantojām "brīvu" riteni, tāpēc tas var viegli iet jebkurā virzienā.

3. FOTOSENSORI

RDL fotosensoriem mēs izmantojām shēmas plati un pie tās sametinājām ķēdi, tajā ir ietverta pretestība, LDR, pozitīvs, negatīvs un signāls.

4. ARDUINO VALDE

Mēs piestiprinājām Arduino plāksni pie plāksnes, izmantojot skrūves. Tad mēs vienkārši pievienojām tam visu ķēdi. Plātnes piegādei mēs izmantojām 2 9 V baterijas, kuras mēs esam apvienojuši un pievienojuši Arduino.

5. Augšējā plāksne

Augšējai plāksnei mēs izmantojām lāzera griešanas mašīnu, lai sagrieztu PMMA. Mēs veidojām šo formu ar AutoCad. Tas sastāv no lielas plāksnes, 3 apaļiem gredzeniem un apļveida gabala, kas iekļaujas gredzenos. Mēs devām vietu šķīvim, lai varētu ievietot pogu.

3. darbība: elektriskie savienojumi

Elektriskie savienojumi
Elektriskie savienojumi

1. Servomotoru savienošana:

Servomotori sastāv no trim kabeļiem; viens dzeltens vai oranžs signālam, sarkans jaudai (Vcc) un melns vai brūns zemei (GND). Sarkanais un brūnais ir piestiprināts pie attiecīgajām Arduino tapām (5V un GND). Viens servo ir pievienots PWM tapai 10, bet otrs - PWM tapai 11.

2. Savienojuma poga:

Elektroniskās pogas darbojas nedaudz savdabīgi; ļaujiet spriegumam šķērsot tapas pa diagonāli, tas ir, ja mums ir četras tapas, mums ir jāsavieno ieeja un izeja tikai divās tapās, 1-4 vai 2-3, lai strādātu. Piemēram, ja izvēlamies tapas 1-4, mēs pieslēgsim zemi (GND) pie tapas 4, un izeja tiks savienota ar PWM 9 tapu un, savukārt, kopā ar pretestību 1kOhm, pievienosim to 5V (Vcc).

3. Fotosensoru pievienošana:

Lai savienotu fotosensorus, viena no kājām ir jānovieto tieši pie Vcc barošanas avota, bet otra - vienlaicīgi, ar analogo tapu (šajā gadījumā uz tapām A0 un A1) un pie zemes GND kopā ar pretestība 1 kOhm.

Piezīme:

Jūs varat pielodēt mazus savienotājus pie vadiem, ja vadi neietilpst tieši Arduino, vai izmantojiet protoboard, lai atvieglotu dažādus savienojumus. Šajā projektā mēs esam izmantojuši savienojošās sloksnes dažādiem savienojumiem.

4. solis: Arduino programmēšana

Arduino programmēšana
Arduino programmēšana
Arduino programmēšana
Arduino programmēšana

KODS

#include Servo myservoL;

Servo myservoR;

int inPin = 7;

int pogaVal = 1;

void setup () {

// SERVOMOTORI

myservoL.attach (10);

myservoR.attach (11);

Sērijas sākums (9600); }

void loop () {

int LDR_L = analogRead (A2);

int LDR_R = analogRead (A1);

buttonVal = digitalRead (inPin);

// IEPAKOJUMS KREISI

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

myservoL.write (180);

//Serial.println(LDR_L); }

cits {

myservoL.write (92);

//Serial.println(LDR_L);

}

// IEPAKOJIET LABI

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

myservoR.write (-270);

//Serial.println(LDR_R); }

cits {

myservoR.write (92);

//Serial.println(LDR_R); }

}

Ieteicams: