Съдържание:
- Стъпка 1: Оборудване
- Стъпка 2: Файл с изображение на електрическа схема
- Стъпка 3: Презареждане на файл на електрическа схема
- Стъпка 4: Код на предавателя
- Стъпка 5: Код на приемника
- Стъпка 6: INO файлове
- Стъпка 7: Връзка на библиотеки
Видео: Безжична кола с контролиран жест: 7 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:52
В този урок ще научим как да направим автомобил, управляван с жестове, или какъвто и да е робот. Този проект има две части, едната част е предавател, а другата част е приемник. Предавателният блок всъщност е монтиран на ръкавици, а приемникът е поставен в автомобил или друг робот. Сега е време да направим хубава кола. Да тръгваме!
Стъпка 1: Оборудване
Предавател
1. Arduino Nano.
2. Сензорен модул MPU6050.
3. RF 433 MHz предавател.
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. Веро-борд.
Други
1. Лепилни пръчки и пистолет.
2. Кабелни проводници.
3. Винтоверти
4. Комплект за запояване.
и т.н.
Стъпка 2: Файл с изображение на електрическа схема
Стъпка 3: Презареждане на файл на електрическа схема
Стъпка 4: Код на предавателя
#включва
#включва
#включва
MPU6050 mpu6050 (Тел);
дълъг таймер = 0;
char *контролер;
void setup ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (вярно); vw_set_ptt_inverted (вярно); // vw_set_tx_pin (10); vw_setup (4000); // скорост на предаване на данни Kbps
}
void loop ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
if (millis () - таймер> 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 "); таймер = милис (); }
/////////////////////////////////////////////////////////////////////////////////////
if (mpu6050.getAccAngleX () 30) {контролер = "X2"; vw_send ((uint8_t *) контролер, strlen (контролер)); vw_wait_tx (); // Изчакайте, докато цялото съобщение изчезне Serial.println ("НАПРЕД"); } иначе ако (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) контролер, strlen (контролер)); vw_wait_tx (); // Изчакайте, докато цялото съобщение изчезне Serial.println ("LEFT"); } иначе ако (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) контролер, strlen (контролер)); vw_wait_tx (); // Изчакайте, докато цялото съобщение изчезне Serial.println ("RIGHT"); } иначе ако (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {controller = "A1"; vw_send ((uint8_t *) контролер, strlen (контролер)); vw_wait_tx (); // Изчакайте, докато цялото съобщение изчезне Serial.println ("STOP"); }}
Стъпка 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 (); // Стартирайте PLL на приемника, изпълнявайки Serial.println ("Всичко е наред");
}
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 ("НАЗАД"); назад (); забавяне (100); // изключено (); } else if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("FORWARD"); напред (); забавяне (100); // изключено (); }
иначе ако ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("НАЛЯВО"); наляво(); забавяне (100); // изключено (); }
иначе ако ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("RIGHT"); надясно (); забавяне (100); // изключено (); } else if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); off (); забавяне (100); }} else {Serial.println ("Няма получен сигнал"); }}
празно напред ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
void назад ()
{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); }
void off ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
Стъпка 6: INO файлове
Стъпка 7: Връзка на библиотеки
Виртуална кабелна библиотека:
MPU6050_tockn Libraby:
Wire Library:
Препоръчано:
Притурка за Chrome динозавър с контролиран жест с ръка / Как да направите това / #smartcreativity: 14 стъпки
Chrome Dinosaur Gadget с контролиран жест с ръка / Как да направите това / #smartcreativity: Здравейте приятели, В този урок ще ви покажа един изключително изключителен проект. много лесно. Ако ще използвате тази технология за контрол на хром DINO, тогава ще паднете
Робот с контролиран жест - Spinel Crux: 4 стъпки
Робот, управляван с жестове - Spinel Crux: Spinel Crux Робот с контролиран жест, за проект за безжично наблюдение. В тази серия ще изградим робот, който може да пътува през неравен терен и да контролира с помощта на жестове с ръце. За да управляваме робота, ще използваме контролна ръкавица, която
Как да направите роувър с контролиран жест: 4 стъпки
Как да си направим роувър с контролиран жест Състои се от марсоход, който има на борда сензор за избягване на сблъсък. Предавателят, вместо да е тромаво дистанционно, е готина ръкавица, която може да се носи на
Направете своя жест с дрон контролиран в $ 10: 4 стъпки
Направете своя жест с дрон контролиран в $ 10: Тази инструкция е ръководство за превръщането на вашия R/C Drone в Drone с жестове с контрол под $ 10! Аз съм човек, който е много вдъхновен от научнофантастичните филми и се опитва да направи технологията показана във филма в реалния живот. Този проект е вдъхновяващ
RC автомобил с контролиран жест с ръце: 15 стъпки
RC кола с ръчен контрол с жестове: Здравей, свят! Това е първият ми инструктаж Ако имате въпроси - моля не се колебайте да попитате. Целева аудитория: Този проект е приложим за всеки, който има страст по отношение на технологиите. Независимо дали сте експерт или абсолютно начинаещ