Мазмуну:

ROADRUNNER: 5 кадам
ROADRUNNER: 5 кадам

Video: ROADRUNNER: 5 кадам

Video: ROADRUNNER: 5 кадам
Video: Plymouth Roadrunner полная реставрация Адмирала Корнилова вл1 2024, Ноябрь
Anonim
ROADRUNNER
ROADRUNNER

Roadrunner - суусаган колдонуучуларга суусундуктар үчүн банкаларды ташуу функциясы бар кичинекей автоматташтырылган унаа.

Бул кантип иштейт? Контейнер машинанын үстүңкү базасына жайгаштырылган жана идиштин салмагы транспортко иштөөгө даяр экенин билдирген кичинекей баскычты иштетет. Өзүн жетектөө үчүн Roadrunner жердеги кара сызык түрүндөгү жолду карманат, ал кайда баруу керек экенин көрсөтөт жана фотосенсорлордун жардамы менен жолдон чыгып кеткенде, багытын оңдоп алат., ушул жол менен калуу үчүн, дайыма тректин ичинде. Унаа колдонуучуга келгенде, ал ошол эле жерде чакан транспорттук аялдаманы түзгөн суусундукту алат. Колдонуучу банканы кайра салып коймойунча, ал өзүнүн жүрүшүн кайра карап чыкпайт, баштоо пунктуна кайтып келип, ишин аягына чыгарат.

1 -кадам: Куралдар жана материалдар

Куралдар жана материалдар
Куралдар жана материалдар
Куралдар жана материалдар
Куралдар жана материалдар

2 -кадам: Аппараттык жыйын

Аппараттык жыйын
Аппараттык жыйын
Аппараттык жыйын
Аппараттык жыйын
Аппараттык жыйын
Аппараттык жыйын

1. BODY

Дене үчүн алюминий пластинкасын колдондук, аны биз каалаган формада кесип, ийип койдук. Биз ошондой эле бурамалар үчүн керектүү болгон бардык тешиктерди жасадык.

2. Дөңгөлөктөр

Биз роботубузга толук дал келген Mecano оюнунун 2 дөңгөлөгүн колдондук. Сервалар бурамалардын жардамы менен бириккен табактын астына кирет. Алдыңкы дөңгөлөк үчүн биз "бекер" дөңгөлөктү колдонгонбуз, ошондуктан ал каалаган тарапка оңой кете алат.

3. ФОТОСЕНСОРЛОР

RDL фотосенсорлору үчүн биз схеманы колдонуп, ага схеманы ширеткенбиз, ага каршылык, LDR, оң, терс жана сигнал кирет.

4. ARDUINO ТАКТА

Ардуино тактасын бурамалар аркылуу табакка бекиттик. Андан кийин биз ага бардык схеманы туташтырдык. Такта менен камсыз кылуу үчүн биз 2 9V батареяны колдондук, аны биз бириктирип, Arduinoго туташтырдык.

5. ЧОҢ ПЛАСТА

Үстүнкү табак үчүн биз PMMA кесүү үчүн лазердик кесүүчү машинаны колдондук. Биз бул форманы AutoCad менен иштеп чыктык. Бул чоң табактан, 3 тегерек шакектен жана шакектерге бата турган тегерек бөлүктөн турат. Биз табакка орун бердик, ошондо биз бир баскычка батышыбыз үчүн.

3 -кадам: Электр байланыштары

Электр байланыштары
Электр байланыштары

1. Сервомоторлорду туташтыруу:

Сервомоторлор үч кабелден турат; сигнал үчүн бир сары же кызгылт сары, бийлик үчүн кызыл (Vcc) жана жер үчүн кара же күрөң (GND). Кызыл жана күрөң түстөр Arduino (5V жана GND) боюнча төөнөгүчтөргө бекитилет. Бир серво PWM пин 10го, экинчиси PWM пин 11ге туташтырылган.

2. Туташтыруу баскычы:

Электрондук баскычтар бир аз өзгөчө иштейт; казыктардагы чыңалууну диагональ боюнча өткөрүүгө уруксат бериңиз, башкача айтканда, эгер бизде төрт казык бар болсо, анда биз кириш менен чыгууну 1-4 же 2-3 болгон эки казыкка туташтырышыбыз керек. Мисалы, эгер биз 1-4 пинтерин тандап алсак, анда биз жерди (GND) 4-пинге туташтырабыз, жана чыгаруу PWM 9-пинге туташат жана өз кезегинде 1kOhm каршылыгы менен 5Vга туташтырабыз (Vcc).

3. Фотосенсорлорду туташтыруу:

Фотосенсорлорду туташтыруу үчүн, биз бир бутубузду Vcc менен камсыздоого, экинчиси аны ошол эле учурда аналогдук пинге (бул учурда A0 жана A1 төөнөгүчтөргө) жана жерге GND менен бирге туташтырышыбыз керек. 1kOhm каршылык

Эскертүү:

Зымдар кичинекей туташтыргычтарды зымдарга ширете аласыз, эгер зымдар Arduino түздөн -түз туура келбесе же ар кандай байланыштарды жеңилдетүү үчүн протоборд колдонсоңуз болот. Бул долбоордо биз ар кандай муундар үчүн бириктирүүчү тилкелерди колдондук.

4 -кадам: Arduino программалоо

Arduino программалоо
Arduino программалоо
Arduino программалоо
Arduino программалоо

КОД

#кошуу Servo myservoL;

Servo myservoR;

int inPin = 7;

int buttonVal = 1;

жараксыз орнотуу () {

// КЫЗМАТКЕРЛЕР

myservoL.attach (10);

myservoR.attach (11);

Serial.begin (9600); }

void loop () {

int LDR_L = analogRead (A2);

int LDR_R = analogRead (A1);

buttonVal = digitalRead (inPin);

// PACK SOL

эгер (LDR_L> 590 && buttonVal == 0) {

myservoL.write (180);

//Serial.println(LDR_L); }

башка {

myservoL.write (92);

//Serial.println(LDR_L);

}

// PACK RIGHT

эгер (LDR_R> 750 && buttonVal == 0) {

myservoR.write (-270);

//Serial.println(LDR_R); }

башка {

myservoR.write (92);

//Serial.println(LDR_R); }

}

Сунушталууда: