Სარჩევი:
- ნაბიჯი 1: აღჭურვილობა
- ნაბიჯი 2: სქემის დიაგრამის გამოსახულების ფაილი
- ნაბიჯი 3: წრიული დიაგრამის ფაილის გაყინვა
- ნაბიჯი 4: გადამცემის კოდი
- ნაბიჯი 5: მიმღების კოდი
- ნაბიჯი 6: INO ფაილები
- ნაბიჯი 7: ბიბლიოთეკების კავშირი
ვიდეო: ჟესტით კონტროლირებადი უკაბელო მანქანა: 7 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ამ გაკვეთილში ჩვენ ვაპირებთ ვისწავლოთ, როგორ გავაკეთოთ ჟესტით კონტროლირებადი მანქანა ან ნებისმიერი რობოტი. ამ პროექტს აქვს ორი ნაწილი, ერთი ნაწილი არის გადამცემი ერთეული და მეორე ნაწილი არის მიმღები. გადამცემი მოწყობილობა ფაქტიურად დამონტაჟებულია ხელთათმანებზე და მიმღები არის მოთავსებული მანქანის ან რობოტის შიგნით. ახლა დროა გავაკეთოთ ლამაზი მანქანა. Წავედით!
ნაბიჯი 1: აღჭურვილობა
გადამცემი განყოფილება
1. არდუინო ნანო.
2. MPU6050 სენსორის მოდული.
3. RF 433 MHz გადამცემი.
4. ნებისმიერი ტიპის 3 უჯრედიანი, 11.1 ვოლტიანი ბატარეა (აქ მე მონეტის უჯრედი გამოვიყენე).
5. ვერო-დაფა.
6. ხელთათმანები.
მიმღების აპარატი
1. არდუინო ნანო ან არდუინო უნო.
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 *კონტროლერი;
ბათილად დაყენება ()
{Serial.begin (9600); Wire.begin (); mpu6050. დასაწყისი (); mpu6050.calcGyroOffsets (ჭეშმარიტი); vw_set_ptt_inverted (ჭეშმარიტი); // vw_set_tx_pin (10); vw_setup (4000); // მონაცემთა გადაცემის სიჩქარე Kbps
}
ბათილი მარყუჟი ()
{ ////////////////////////////////////////////////////////////////////////////////////////////////
mpu6050. განახლება ();
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) {controller = "X2"; vw_send ((uint8_t *) კონტროლერი, strlen (კონტროლერი)); vw_wait_tx (); // დაელოდეთ სანამ მთელი შეტყობინება გაქრება Serial.println ("FORWARD"); } else if (mpu6050.getAccAngleY ()> 40) {controller = "Y1"; vw_send ((uint8_t *) კონტროლერი, strlen (კონტროლერი)); vw_wait_tx (); // დაელოდეთ სანამ მთელი შეტყობინება გაქრება Serial.println ("მარცხნივ"); } else if (mpu6050.getAccAngleY () <-40) {controller = "Y2"; vw_send ((uint8_t *) კონტროლერი, strlen (კონტროლერი)); vw_wait_tx (); // დაელოდეთ სანამ მთელი შეტყობინება გაქრება Serial.println ("RIGHT"); } else if (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 ("BACKWARD"); უკან (); დაგვიანება (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"); გამორთული (); დაგვიანება (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:
მავთულის ბიბლიოთეკა:
გირჩევთ:
ჟესტით კონტროლირებადი რობოტი არდუინოს გამოყენებით: 7 ნაბიჯი
ჟესტით კონტროლირებადი რობოტი Arduino– ს გამოყენებით: რობოტები გამოიყენება ბევრ სექტორში, როგორიცაა მშენებლობა, სამხედრო, წარმოება, შეკრება და სხვა. რობოტები შეიძლება იყოს ავტონომიური ან ნახევრად ავტონომიური. ავტონომიურ რობოტებს არ სჭირდებათ ადამიანის ჩარევა და შეუძლიათ დამოუკიდებლად იმოქმედონ სიტუაციის შესაბამისად. Se
ხელის ჟესტით კონტროლირებადი Chrome დინოზავრის გაჯეტი / როგორ გავაკეთოთ ეს / #martcreativity: 14 ნაბიჯი
Hand Gesture Controlled Chrome Dinosaur Gadget / How To Make This / #smartcreativity: გამარჯობა მეგობრებო, ამ გაკვეთილში მე ვაპირებ გაჩვენოთ ძალიან ექსკლუზიური პროექტი. ასე რომ, დღეს მე გაჩვენებთ როგორ აკონტროლოთ Chrome დინოზავრის თამაში თქვენი ხელის ჟესტით ძალიან ადვილად. თუ თქვენ გამოიყენებთ ამ ტექნოლოგიას ქრომის DINO- ს გასაკონტროლებლად, თქვენ დაეცემა
ხელით ჟესტით კონტროლირებადი RC მანქანა: 15 ნაბიჯი
Hand Gesture Controlled RC Car: Hello World! ეს არის ჩემი პირველი ინსტრუქცია თუ თქვენ გაქვთ რაიმე შეკითხვები - გთხოვთ ნუ დააყოვნებთ კითხვას. სამიზნე აუდიტორია: ეს პროექტი ეხება ყველას, ვისაც აქვს გატაცება ტექნოლოგიასთან დაკავშირებით. ხართ ექსპერტი თუ აბსოლუტური დამწყები
ჟესტით კონტროლირებადი მანქანა: 5 ნაბიჯი (სურათებით)
ჟესტებით კონტროლირებადი მანქანა: რობოტები მნიშვნელოვან როლს ასრულებენ ავტომატიზაციაში ყველა სექტორში, როგორიცაა მშენებლობა, სამხედრო, სამედიცინო, წარმოება და ა.შ. რამდენიმე ძირითადი რობოტის შექმნის შემდეგ, როგორიცაა კონტროლირებადი მანქანა Bluetooth– ის გამოყენებით, მე შევიმუშავე ეს აქსელერომეტრზე დაფუძნებული
როგორ გააკეთოთ დისტანციური მართვის მანქანა სახლში მარტივი გზით - წვრილმანი უკაბელო RC მანქანა: 7 ნაბიჯი
როგორ გააკეთოთ დისტანციური მართვის მანქანა სახლში მარტივად - წვრილმანი უკაბელო RC CAR: გამარჯობა მეგობრებო ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ თუ როგორ უნდა გააკეთოთ დისტანციური მართვის rc მანქანა მარტივი გზით გთხოვთ განაგრძოთ კითხვა …… ეს მართლაც მაგარი პროექტია, ასე რომ გთხოვთ სცადოთ მისი აშენება