Мазмуну:
- 1 -кадам: жабдуулар
- 2 -кадам: Райондук диаграмманын сүрөт файлы
- 3 -кадам: Райондук диаграмманын фризинг файлы
- 4 -кадам: өткөргүч коду
- 5 -кадам: Алуучунун коду
- 6 -кадам: INO Files
- 7 -кадам: Китепканалардын шилтемеси
Video: Жест менен башкарылган зымсыз унаа: 7 кадам
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:40
Бул үйрөткүчтө биз жаңсоолор менен башкарылган машинаны же роботту кантип жасоону үйрөнөбүз. Бул долбоор эки бөлүктөн турат, бир бөлүгү өткөргүч, экинчиси кабыл алуучу блок. Бергич бирдиги чындыгында кол мээлейлерге орнотулган жана алуучу бирдиги машинанын же кандайдыр бир роботтун ичине жайгаштырылган. Эми жакшы машина жасоого убакыт келди. Кеттик!
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 (true); // vw_set_tx_pin (10); vw_setup (4000); // маалыматтарды берүүнүн ылдамдыгы Kbps
}
боштук цикл ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050.update ();
эгер (миллис () - таймер> 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 ("ОҢ"); } башка if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {контролер = "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 (true); // 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 ("АЛГА"); алдыга (); кечиктирүү (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 Files
7 -кадам: Китепканалардын шилтемеси
Виртуалдык зым китепканасы:
MPU6050_tockn Libraby:
Зым китепканасы:
Сунушталууда:
Жаңсоолор менен башкарылган унаа: 5 кадам (сүрөттөр менен)
Жаңсоолор менен башкарылган унаа: Роботтор курулуш, аскердик, медициналык, өндүрүш ж.б сыяктуу бардык тармактарда автоматташтырууда маанилүү роль ойнойт. Башкарылган унаа сыяктуу Bluetooth аркылуу кээ бир негизги роботторду жасагандан кийин, мен бул акселерометрге негизделген гештерди иштеп чыктым
FinduCar: Акылдуу унаа ачкычы Элди унаа токтоп турган жерге жетелейт: 11 кадам (Сүрөттөр менен)
FinduCar: Акылдуу унаа ачкычы Элди унаа токтоп турган жерге жетелейт: Жогорудагы көйгөйлөрдү чечүү үчүн бул долбоор адамдарды машинаны токтоткон жерге багыттоочу акылдуу унаа ачкычын иштеп чыгууну сунуштайт. Ал эми менин планым - GPS ачкычын машинанын ачкычына киргизүү. Смартфондун колдонмосун колдонуунун кажети жок
Зымсыз колкап менен башкарылган робот кол - NRF24L01+ - Arduino: 7 кадам (сүрөттөр менен)
Зымсыз колкап менен башкарылган робот кол | NRF24L01+ | Ардуино: Бул видеодо; 3D робот кол чогултуу, servo башкаруу, ийкемдүү сенсор башкаруу, nRF24L01 менен зымсыз башкаруу, Arduino алуучу жана өткөргүч булак коду бар. Кыскача айтканда, бул долбоордо биз робот колун зымдар менен башкарууну үйрөнөбүз
Bluetooth менен башкарылган Arduino кагылышууга каршы унаа: 3 кадам (сүрөттөр менен)
Bluetooth менен башкарылган Arduino кагылышууга каршы унаа: Бул жерде Bluetooth менен башкарылган Arduino кагылышууга каршы машинаны кантип жасоо керек
Жаңсоо жана үн менен башкарылган зымсыз робот колу: 7 кадам (сүрөттөр менен)
Жаңсоо жана үн менен башкарылган зымсыз робот колу: Негизи бул биздин колледждин долбоору болчу жана бул долбоорду тапшырууга убакыттын тардыгынан улам кээ бир кадамдарды сүрөткө тартууну унутуп калдык. Биз дагы кодду иштеп чыктык, анын жардамы менен бул робот колун бир убакта жаңсоону жана үндү башкарууга болот, бирок улам