Mundarija:
- 1 -qadam: uskunalar
- 2 -qadam: O'chirish diagrammasi tasvir fayli
- 3 -qadam: O'chirish diagrammasi
- 4 -qadam: uzatuvchi kodi
- 5 -qadam: qabul qiluvchining kodi
- 6 -qadam: INO fayllari
- 7 -qadam: Kutubxonalar havolasi
Video: Imo -ishora bilan boshqariladigan simsiz avtomobil: 7 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:25
Bu darslikda biz imo -ishorali boshqariladigan mashina yoki boshqa robotni yasashni o'rganamiz. Loyihaning ikki qismi bor, bir qismi uzatuvchi, ikkinchisi qabul qiluvchi. Transmitter birligi aslida qo'lqoplarga o'rnatiladi va qabul qilgich mashina yoki boshqa robotning ichiga joylashtiriladi. Endi chiroyli mashina yasash vaqti keldi. Qani ketdik!
1 -qadam: uskunalar
Transmitter birligi
1. Arduino Nano.
2. MPU6050 sensori moduli.
3. RF 433 MGts chastotali uzatuvchi.
4. Har qanday turdagi 3 uyali, 11,1 voltli batareya (Bu erda men tanga xujayrasini ishlatganman).
5. Vero-Board.
6. Qo'l qo'lqoplari.
Qabul qiluvchilar birligi
1. Arduino Nano yoki Arduino Uno.
2. L298N dvigatel haydovchi moduli.
3. Dvigatellarni o'z ichiga olgan 4 g'ildirakli robot ramkasi.
4. RF 433 RF qabul qiluvchisi.
5. 3 uyali, 11,1 voltli Li-po batareyasi.
6. Vero-taxta.
Boshqalar
1. Yelim tayoqchalari va qurol.
2. Jumper simlari.
3. Vintli haydovchilar
4. Lehim to'plami.
va boshqalar.
2 -qadam: O'chirish diagrammasi tasvir fayli
3 -qadam: O'chirish diagrammasi
4 -qadam: uzatuvchi kodi
#qo'shing
#qo'shing
#qo'shing
MPU6050 mpu6050 (simli);
uzoq taymer = 0;
char *nazorat qiluvchi;
bo'sh o'rnatish ()
{Serial.begin (9600); Wire.begin (); mpu6050.begin (); mpu6050.calcGyroOffsets (haqiqiy); vw_set_ptt_inverted (rost); // vw_set_tx_pin (10); vw_setup (4000); // ma'lumotlarni uzatish tezligi Kbps
}
bo'sh halqa ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050. yangilash ();
if (millis () - taymer> 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 "); taymer = millis (); }
/////////////////////////////////////////////////////////////////////////////////////
agar (mpu6050.getAccAngleX () 30) {tekshiruvchi = "X2"; vw_send ((uint8_t *) boshqaruvchi, strlen (nazoratchi)); vw_wait_tx (); // Butun xabar ketguncha kutib turing Serial.println ("FORWARD"); } if if (mpu6050.getAccAngleY ()> 40) {tekshiruvchi = "Y1"; vw_send ((uint8_t *) boshqaruvchi, strlen (nazoratchi)); vw_wait_tx (); // Butun xabar yo'qolguncha kuting Serial.println ("LEFT"); } boshqa if (mpu6050.getAccAngleY () <-40) {tekshiruvchi = "Y2"; vw_send ((uint8_t *) boshqaruvchi, strlen (nazoratchi)); vw_wait_tx (); // Butun xabar yo'qolguncha kuting Serial.println ("O'ng"); } boshqa if (mpu6050.getAccAngleX ()-10 && mpu6050.getAccAngleY ()-10) {tekshiruvchi = "A1"; vw_send ((uint8_t *) boshqaruvchi, strlen (nazoratchi)); vw_wait_tx (); // Butun xabar yo'qolguncha kuting Serial.println ("STOP"); }}
5 -qadam: qabul qiluvchining kodi
#qo'shing
int LA = 3;
int LB = 11; int RA = 5; int RB = 6; void setup () {Serial.begin (9600); vw_set_ptt_inverted (rost); // DR3100 vw_set_rx_pin uchun talab qilinadi (12); vw_setup (4000); // Bit soniya pinMode (13, OUTPUT); pinMode (LA, OUTPUT); pinMode (LB, OUTPUT); pinMode (RA, OUTPUT); pinMode (RB, OUTPUT); vw_rx_start (); // Serial.println ("Hammasi OK") ishlaydigan PLL qabul qilgichini ishga tushiring;
}
void loop () {uint8_t buf [VW_MAX_MESSAGE_LEN]; uint8_t buflen = VW_MAX_MESSAGE_LEN;
if (vw_get_message (buf, & buflen)) // Bloklanmagan
{if ((buf [0] == 'X') && (buf [1] == '1')) {Serial.println ("BACKWARD"); orqaga (); kechikish (100); // o'chirilgan (); } if if ((buf [0] == 'X') && (buf [1] == '2')) {Serial.println ("OLGA"); oldinga (); kechikish (100); // o'chirilgan (); }
aks holda ((buf [0] == 'Y') && (buf [1] == '1'))
{Serial.println ("SOL"); chap (); kechikish (100); // o'chirilgan (); }
aks holda ((buf [0] == 'Y') && (buf [1] == '2'))
{Serial.println ("O'ng"); o'ng (); kechikish (100); // o'chirilgan (); } if if ((buf [0] == 'A') && (buf [1] == '1')) {Serial.println ("STOP"); o'chirish (); kechikish (100); }} boshqa {Serial.println ("Signal qabul qilinmadi"); }}
oldinga bo'sh ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 70); analogWrite (RB, 0); }
orqaga bo'sh joy ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 0); analogWrite (RB, 70); }
chap bo'sh ()
{analogWrite (LA, 0); analogWrite (LB, 70); analogWrite (RA, 70); analogWrite (RB, 0); }
o'ng bo'sh ()
{analogWrite (LA, 70); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 70); }
bekor qilish ()
{analogWrite (LA, 0); analogWrite (LB, 0); analogWrite (RA, 0); analogWrite (RB, 0); }
6 -qadam: INO fayllari
7 -qadam: Kutubxonalar havolasi
Virtual simlar kutubxonasi:
MPU6050_tockn Libraby:
Simlar kutubxonasi:
Tavsiya:
Arduino yordamida imo -ishorali boshqariladigan robot: 7 qadam
Arduino yordamida imo-ishorali boshqariladigan robot: Robotlar qurilish, harbiy, ishlab chiqarish, yig'ish va hokazo kabi ko'plab sohalarda qo'llaniladi. Robotlar avtonom yoki yarim avtonom bo'lishi mumkin. Avtonom robotlar hech qanday odam aralashuvini talab qilmaydi va vaziyatga qarab o'z -o'zidan harakat qila oladi. Se
Boshqariladigan imo -ishorali Roverni qanday qilish kerak: 4 qadam
Qanday qilib imo -ishorali boshqariladigan haydovchi yasash mumkin: Bu erda imo -ishorali boshqariladigan roverni yaratish bo'yicha ko'rsatmalar (tele bilan boshqariladigan rover). U bortda to'qnashuvni oldini olish sensori o'rnatilgan rover qurilmasidan iborat. Uzoq masofadan boshqarish pulti o'rniga uzatuvchi - bu qo'lqop kiyish mumkin bo'lgan salqin qo'lqop
Tezlik o'lchagich va chastotali uzatuvchi-qabul qiluvchi jufti yordamida imo-ishorali boshqariladigan Rover: 4 qadam
Tezlik o'lchagich va RF uzatuvchi-qabul qilgich jufti yordamida imo-ishorali boshqariladigan Rover: Salom, siz hech qachon oddiy qo'l harakatlari bilan boshqariladigan, lekin hech qachon jasorat topa olmaydigan tasvirni qayta ishlash va veb-kamerangiz bilan aloqa o'rnatishga jur'at qila olmagan. mikrokontroller, tepalik haqida gapirmasa ham bo'ladi
Arduino -ga Bluetooth orqali imo -ishorali boshqariladigan robot qo'l: 4 qadam
Arduino -ga Bluetooth orqali imo -ishorali boshqariladigan robot qo'l: Qo'lda ikkita rejim mavjud. Birinchisi - qo'lda bluetooth yordamida qo'lni mobil slayderni ilova orqali siljitish. Shu bilan birga, siz o'z pozitsiyalaringizni saqlab qolishingiz va o'ynashingiz mumkin … Ikkinchidan, sizning imo -ishoralaringizni ishlatadigan imo -ishoralar rejimi
DTMF va imo -ishorali boshqariladigan nogironlar aravachasi: 7 qadam (rasmlar bilan)
DTMF va imo -ishorali boshqariladigan nogironlar aravachasi: Bu dunyoda ko'p odamlar nogiron. Ularning hayoti g'ildiraklar atrofida o'tadi. Ushbu loyihada qo'l ishorasini tanib olish va smartfonning DTMF yordamida nogironlar aravachasi harakatini boshqarish yondashuvi keltirilgan