Мазмұны:

Қимылмен басқарылатын сымсыз көлік: 7 қадам
Қимылмен басқарылатын сымсыз көлік: 7 қадам

Бейне: Қимылмен басқарылатын сымсыз көлік: 7 қадам

Бейне: Қимылмен басқарылатын сымсыз көлік: 7 қадам
Бейне: 😔ОСЫ 7 ҚАТЕ ҮШІН АДАМДАР СІЗДІ БАҒАЛАМАЙДЫ! 2024, Желтоқсан
Anonim
Қимылмен басқарылатын сымсыз көлік
Қимылмен басқарылатын сымсыз көлік

Бұл оқулықта біз қимылмен басқарылатын машинаны немесе кез келген роботты жасауды үйренеміз. Бұл жоба екі бөліктен тұрады, бір бөлігі таратқыш, ал екінші бөлігі қабылдағыш. Таратқыш қондырғы іс жүзінде қолғапқа орнатылған, ал қабылдағыш машинаға немесе кез келген роботқа салынған. Енді жақсы көлік жасаудың уақыты келді. Барайық!

1 -қадам: жабдықтар

Таратқыш қондырғы

1. Ардуино Нано.

2. MPU6050 сенсорлық модулі.

3. RF 433 МГц таратқыш.

4. Кез келген 3 ұялы, 11,1 вольтты батарея (мұнда мен монета ұяшығын қолдандым).

5. Vero-Board.

6. Қол қолғаптары.

Қабылдау блогы

1. Arduino Nano немесе Arduino Uno.

2. L298N мотор драйвер модулі.

3. Қозғалтқыштарды қосқанда 4 дөңгелекті робот қаңқасы.

4. RF 433 RF қабылдағышы.

5. 3 ұялы, 11,1 вольтты Li-po батареясы.

6. Vero-board.

Басқалар

1. Желім таяқшалар мен мылтық.

2. Өткізгіш сымдар.

3. Бұрандалы драйверлер

4. Дәнекерлеу жинағы.

т.б.

2 -қадам: схема кескінінің файлы

Схема кескінінің файлы
Схема кескінінің файлы

3 -қадам: схеманың фризинг файлы

4 -қадам: таратқыш коды

#қосу

#қосу

#қосу

MPU6050 mpu6050 (сым);

ұзақ таймер = 0;

char *контроллері;

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

{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (ақиқат); vw_set_ptt_inverted (ақиқат); // vw_set_tx_pin (10); vw_setup (4000); // деректерді беру жылдамдығы Kbps

}

бос цикл ()

{ ////////////////////////////////////////////////////////////////////////////////////////////////

mpu6050. жаңарту ();

егер (миллис () - таймер> 1000)

{Serial.println («========================================== =========== «); Serial.print («temp:»); Serial.println (mpu6050.getTemp ()); Serial.print («accX:»); Serial.print (mpu6050.getAccX ()); Serial.print («\ taccY:»); Serial.print (mpu6050.getAccY ()); Serial.print («\ taccZ:»); Serial.println (mpu6050.getAccZ ()); Serial.print («gyroX:»); Serial.print (mpu6050.getGyroX ()); Serial.print («\ tgyroY:»); Serial.print (mpu6050.getGyroY ()); Serial.print («\ tgyroZ:»); Serial.println (mpu6050.getGyroZ ()); Serial.print («accAngleX:»); Serial.print (mpu6050.getAccAngleX ()); Serial.print («\ taccAngleY:»); Serial.println (mpu6050.getAccAngleY ()); Serial.print («gyroAngleX:»); Serial.print (mpu6050.getGyroAngleX ()); Serial.print («\ tgyroAngleY:»); Serial.print (mpu6050.getGyroAngleY ()); Serial.print («\ tgyroAngleZ:»); Serial.println (mpu6050.getGyroAngleZ ()); Serial.print («angleX:»); Serial.print (mpu6050.getAngleX ()); Serial.print («\ tangleY:»); Serial.print (mpu6050.getAngleY ()); Serial.print («\ tangleZ:»); Serial.println (mpu6050.getAngleZ ()); Serial.println («=========================================== ========== / n «); таймер = миллис (); }

/////////////////////////////////////////////////////////////////////////////////////

егер (mpu6050.getAccAngleX () 30) {контроллер = «X2»; vw_send ((uint8_t *) контроллері, strlen (контроллер)); vw_wait_tx (); // Бүкіл хабар жоғалғанша күтіңіз Serial.println («АЛҒА»); } else if (mpu6050.getAccAngleY ()> 40) {контроллер = «Y1»; vw_send ((uint8_t *) контроллері, strlen (контроллер)); vw_wait_tx (); // Бүкіл хабар жоғалғанша күтіңіз Serial.println («LEFT»); } else if (mpu6050.getAccAngleY () <-40) {контроллер = «Y2»; vw_send ((uint8_t *) контроллері, strlen (контроллер)); vw_wait_tx (); // Бүкіл хабар жоғалғанша күтіңіз Serial.println («ОҢ»); } else if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {контроллер = «A1»; vw_send ((uint8_t *) контроллері, strlen (контроллер)); vw_wait_tx (); // Бүкіл хабар жоғалғанша күтіңіз Serial.println («ТОҚТА»); }}

5 -қадам: алушының коды

#қосу

int LA = 3;

int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (ақиқат); // DR3100 vw_set_rx_pin (12) үшін қажет; vw_setup (4000); // Бит секундына pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Serial.println («Бәрі жақсы») жұмыс істейтін PLL ресиверін іске қосыңыз;

}

void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;

if (vw_get_message (buf, & buflen)) // Блокталмайды

{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println («BACKWARD»); артқа (); кешіктіру (100); // өшіру (); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println («АЛҒА»); алға (); кешіктіру (100); // өшіру (); }

әйтпесе ((buf [0] == 'Y') && (buf [1] == '1'))

{Serial.println («СОЛҒА»); сол(); кешіктіру (100); // өшіру (); }

әйтпесе ((buf [0] == 'Y') && (buf [1] == '2'))

{Serial.println («ОҢ»); оң (); кешіктіру (100); // өшіру (); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println («STOP»); өшіру (); кешіктіру (100); }} else {Serial.println («Сигнал қабылданбады»); }}

алға бос ()

{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }

артқа бос орын ()

{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }

бос орын ()

{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }

жарамсыз құқық ()

{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }

жарамсыз ()

{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }

6 -қадам: INO файлдары

7 -қадам: Кітапханаларға сілтеме

Виртуалды сымдар кітапханасы:

MPU6050_tockn Libraby:

Сымдар кітапханасы:

Ұсынылған: