Სარჩევი:

მარტივი რადარული სისტემა Magicbit– დან: 6 ნაბიჯი
მარტივი რადარული სისტემა Magicbit– დან: 6 ნაბიჯი

ვიდეო: მარტივი რადარული სისტემა Magicbit– დან: 6 ნაბიჯი

ვიდეო: მარტივი რადარული სისტემა Magicbit– დან: 6 ნაბიჯი
ვიდეო: #მარტივილოგიკა გიორგი ქორიძე და ვაჟა გოგუა / თორნიკე ჭყონია და გიორგი ჭყონია 2024, ივლისი
Anonim

ეს სახელმძღვანელო გვიჩვენებს, თუ როგორ უნდა გავაკეთოთ მარტივი სარადარო სისტემა HC-SR04 სენსორის და Microbit dev დაფის დამუშავებით და Arduino IDE– ს გამოყენებით.

მასალები:

  • SG90 მიკრო სერვო ძრავა
  • ჯუმბერის მავთულები (ზოგადი)
  • პურის დაფა (ზოგადი)
  • მეჯიბბიტი
  • USB-A მიკრო USB კაბელი
  • ულტრაბგერითი სენსორი - HC -SR04 (ზოგადი)

ნაბიჯი 1: ისტორია

ამ გაკვეთილში ჩვენ ვისწავლით თუ როგორ უნდა გავაკეთოთ მარტივი სარადარო სისტემა Magicbit core dev დაფის გამოყენებით. ამ მიზნით ჩვენ ვიყენებთ HC-SR04 ულტრაბგერითი სენსორს და მონაცემების საჩვენებლად ვიყენებთ დამუშავების გარემოს. დავიწყოთ.

ნაბიჯი 2: თეორია და მეთოდოლოგია

პირველ რიგში, მოდით განვიხილოთ, თუ როგორ მუშაობს ეს. პრინციპი ძალიან მარტივია. პირველი ჩვენ ვტრიალებთ ჩვენს სენსორს ვერტიკალური ღერძის გარშემო 180 გრადუსიან დიაპაზონში განუწყვეტლივ. ამ მოძრაობის დროს ჩვენ ვიღებთ მონაცემებს ულტრაბგერითი სენსორიდან უახლოეს ობიექტამდე მანძილის შესახებ ყოველ კუთხეში. ამ პროცესისთვის ჩვენ ვიყენებთ Magicbit ბორტს. ამის შემდეგ, ჩვენ უნდა დავამყაროთ კავშირი დამუშავების გარემოსთან ჩვენი მონაცემების საჩვენებლად. ამრიგად, ჩვენ ვიყენებთ სერიული საკომუნიკაციო პროტოკოლს შესაბამისი სიჩქარით. შემდეგ ჩვენ ვამზადებთ ჩვენს სარადარო სისტემის ინტერფეისს IDE დამუშავების გამოყენებით. ამ IDE– ში ჩვენ ვაყენებთ ჩვენს სერიულ კომუნიკაციას რეალურ დროში მონაცემების სერიის საშუალებით მისაღებად. ასე რომ, ჩვენ ვაწარმოებთ რეალურ დროში კომუნიკაციას Magicbit– თან და ვაჩვენებთ მონაცემებს, რომლებიც Magicbit– დან იგზავნება დამუშავების IDE– ში.

ნაბიჯი 3: აპარატურის დაყენება

აპარატურის დაყენება
აპარატურის დაყენება
აპარატურის დაყენება
აპარატურის დაყენება

ამ პროექტისთვის ჩვენ ძირითადად გამოვიყენეთ სამი ტექნიკური კომპონენტი. ესენია Magicbit, servo motor და ულტრაბგერითი სენსორი. ყველა ამ ნაწილს შორის კავშირი ნაჩვენებია ზემოთ მოცემულ ფიგურაში.

ულტრაბგერითი სენსორი იყენებს 3.3 ვ ენერგიას. ამიტომ ჩვენ ვიყენეთ Magicbit დაფის მარჯვენა ქვედა პორტი ულტრაბგერითი სენსორის Magicbit– თან დასაკავშირებლად. მაგრამ სერვო ძრავა გამოიყენება 5V სწორი მუშაობისთვის, ამიტომ ჩვენ გამოვიყენეთ ქვედა მარცხენა პორტი სერვო ძრავის Magicbit– თან დასაკავშირებლად. ამ შემთხვევაში, ჩვენ ვიყენებთ Magic bit servo connector მოდულს. მაგრამ თუ თქვენ არ გაქვთ ეს მოდული, შეგიძლიათ გამოიყენოთ სამი ჯამპერის მავთული 5V 5V- თან, Gnd Gnd- თან და სიგნალის pin 26 magin Magbit– ზე.

წრის აშენების შემდეგ ჩვენ გვაქვს მცირე მექანიკური ნაწილის ასაშენებლად. დააყენეთ ცალმხრივი servo კონექტორი სერვო ძრავაზე პატარა თხილის გამოყენებით. შემდეგ დააფიქსირეთ სენსორი ამ კონექტორზე L ფორმის სამაგრის ან სათანადო გზით. მთელი სისტემის შემდეგ ჩვენ დავაფიქსირეთ პურის დაფაზე. მაგრამ თქვენ შეგიძლიათ გამოიყენოთ სხვა ზედაპირი სერვოსა და Magicbit– ის დასაყენებლად.

ნაბიჯი 4: პროგრამული უზრუნველყოფის დაყენება

პროგრამული უზრუნველყოფის დაყენება
პროგრამული უზრუნველყოფის დაყენება
პროგრამული უზრუნველყოფის დაყენება
პროგრამული უზრუნველყოფის დაყენება

პროგრამული მხარე არის პატარა კომპლექსური. სათანადო გაგებისთვის შეგიძლიათ მიმართოთ შემდეგ ბმულებს, სანამ შემდეგ ნაწილზე გადახვალთ.

magicbit-arduino.readthedocs.io/ka/latest/

hello.processing.org/editor/

მოდით შევხედოთ Arduino IDE კოდს და როგორ მუშაობს ეს კოდი.

სერვოს მართვისთვის ჩვენ ვიყენებთ ESP32 სერვო ბიბლიოთეკას. ეს ბიბლიოთეკა თითქმის შეიცავს ჯადოსნურ ბიტ დაფის მენეჯერს Arduino IDE– ში. ულტრაბგერითი სენსორის დასაძლევად ჩვენ ვიყენებთ newPing ბიბლიოთეკას. ამის გადმოწერა შესაძლებელია შემდეგი ბმულიდან.

bitbucket.org/teckel12/arduino-new-ping/do…

ჩამოტვირთეთ zip ფაილი და გადადით ინსტრუმენტებში> ჩართეთ ბიბლიოთეკა> დაამატეთ ZIP ბიბლიოთეკა Arduino– ში. ახლა შეარჩიეთ ახალი pin ბიბლიოთეკის გადმოწერილი zip ფაილი. დამუშავებასთან კომუნიკაციისთვის ჩვენ გამოვიყენეთ სერიული კომუნიკაცია 115200 ბადის სიჩქარით. ეს არის ყველაზე შესაფერისი სიხშირე ESP32– ისთვის. ყველა კუთხით ჩვენ ვგზავნით ჩვენს მონაცემებს კომპიუტერში ამ პროტოკოლის გამოყენებით. ამ მონაცემებში მოცემულია მანძილი სენსორიდან უახლოეს წინა ობიექტთან, ბრუნვის მიმართულებით და ბრუნვის კუთხეზე. ორი მარყუჟის გამოყენებით ჩვენ ვტრიალებთ ჩვენს სერვოს ორი მიმართულებით. ერთი გრადუსიანი ბრუნვისას ჩვენ სერიულ მონაცემებს ვგზავნით 4 ჯერ. ამის მიზეზი შეგიძლიათ გაიგოთ ნაწილის ახსნის დამუშავებისას.

ახლა დროა შევხედოთ დამუშავების გარემოს. ეს არის Java პროგრამირების პროგრამული უზრუნველყოფა. ჩვენ შეგვიძლია დავწეროთ ჩვენი პროგრამის ესკიზი ამ ესკიზში IDE დამუშავებისას. ჩვენ ასევე შეგვიძლია ვიზუალური გამომუშავება ჩვენი პროგრამის გაშვებიდან. ასევე შეგიძლიათ მიიღოთ გამომავალი როგორც 2D და 3D ობიექტები. არა მხოლოდ ეს, ის შეიძლება გამოყენებულ იქნას სურათის დამუშავებისთვის და მრავალი სხვა რამისთვის.

დამუშავების ესკიზში ჩვენ პირველად ვამუშავებთ ჩვენი მონაცემების ჩვენების ინტერფეისს მარტივი გრაფიკული ფუნქციების გამოყენებით. კოდის დასაწყისში ჩვენ ვამყარებთ ჩვენს სერიულ კომუნიკაციას სერიული ბიბლიოთეკების ჩათვლით. დაყენების ფუნქციაში თქვენ უნდა შეცვალოთ რომელი USB პორტი გამოიყენეთ Magicbit კომპიუტერთან დასაკავშირებლად. თქვენ შეგიძლიათ შეამოწმოთ თქვენი პორტი Arduino IDE გამოყენებით, როდესაც თქვენ აყენებთ Arduino IDE კოდის ატვირთვას. შემდეგ შეცვალეთ com პორტის სახელი დაყენების ნაწილში დამუშავების ესკიზში. როდესაც სერიული მონაცემები ხელმისაწვდომია, Serialevent ფუნქცია ავტომატურად იწყებს მუშაობას. ამრიგად, კოდის ძირითადი ლოგიკა შედის სერიულ ღონისძიებაში, კუთხეების და მონაცემების დაკარგვის თავიდან ასაცილებლად. როდესაც ახალი მონაცემები ხელმისაწვდომია, ჩვენ ეკრანზე ვხატავთ ხაზს ჩვენი კუთხის მიხედვით. იმ დროს, თუ ობიექტი არ არის გამოვლენილი, მაშინ სრული ხაზი მწვანეა. თუ არა, მაშინ ხაზის გარკვეული ნაწილი იქნება წითელი, სენსორიდან ობიექტამდე მანძილის მიხედვით. ასევე ბრუნვის მიმართულებით ჩვენ ვხატავთ კიდევ 200 ხაზს ამ ხაზთან ახლოს მწვანე ფერის შემცირებით. თითოეულ მაგისტრალს შორის ჩვენ გვაქვს 0.25 გრადუსიანი სხვაობა. ამრიგად, ჩვენ ვიღებთ ერთდროულად 4 კითხვას Magicbit– დან თითოეული ხარისხის ბრუნვაში. ამის გამო ჩვენ შეგვიძლია შევქმნათ ლამაზი საძიებელი ხელი ეკრანზე.

მას შემდეგ რაც კოდის წარმატებით ატვირთვა ჯადოქრობაზე და აპარატურის ნაწილზე წარმატებით გახსენით დამუშავების IDE და გაუშვით კოდი გაშვების ღილაკზე დაჭერით. ახლა თქვენ გაქვთ ძალიან მარტივი სარადარო სისტემა.

თქვენ შეგიძლიათ დააკონფიგურიროთ კოდები, როგორც გსურთ, რისი ჩვენებაც გსურთ.

ნაბიჯი 5: პრობლემების მოგვარება

დამუშავების ესკიზი არ მუშაობს.

  • დაელოდე ცოტა ხანს. დაწყების დრო დამოკიდებულია კომპიუტერისა და გრაფიკული პროცესორის მუშაობაზე.
  • შეამოწმეთ სერიული პორტის ნომერი სწორია ესკიზის დამუშავებისას.
  • შეამოწმეთ USB კავშირი სწორად არის დაფიქსირებული.
  • შეამოწმეთ კავშირი ულტრაბგერითი სენსორსა და Magicbit– ს შორის.
  • გახსენით სერიული მონიტორი და შეამოწმეთ მონაცემები Arduino– დან. თუ არა, მაშინ პრობლემა არის თქვენი Arduino კოდი ან თქვენი USB კავშირი.

სერვო არ მუშაობს.

  • შეამოწმეთ USB კავშირი სწორად არის დაფიქსირებული.
  • შეამოწმეთ გაყვანილობა.
  • შეამოწმეთ სერვო არის კარგ მდგომარეობაში.

ნაბიჯი 6: Arduino კოდი

#ჩართეთ

#განსაზღვრეთ TRIGGER_PIN 21 #განსაზღვრეთ ECHO_PIN 22 #განსაზღვრეთ MAX_DISTANCE 200 NewPing სონარი (TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); #მოიცავს // მოიცავს სერვო ბიბლიოთეკას int მანძილზე; Servo RadarServo; void setup () {Serial.begin (115200); RadarServo.attach (26); // განსაზღვრავს რომელ პინზეა სერვო ძრავაზე მიმაგრებული დაყოვნება (3000); } void loop () {// ბრუნავს სერვო ძრავას 15 -დან 165 გრადუსამდე (int i = 0; i <= 180; i ++) {RadarServo.write (i); დაგვიანება (50); მანძილი = sonar.ping_cm (); // იძახებს ფუნქციას ულტრაბგერითი სენსორით გაზომული მანძილის გამოსათვლელად თითოეული ხარისხისათვის (int j = 0; j0) {შესვენებისათვის; } Serial.print (i); // აგზავნის მიმდინარე ხარისხს სერიულ პორტში Serial.print (","); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა მოგვიანებით დამუშავების IDE– ში Serial.print (j) ინდექსირებისთვის; // აგზავნის მიმდინარე ხარისხს სერიულ პორტში Serial.print ("*"); სერიული. ბეჭდვა (1); // აგზავნის მანძილის მნიშვნელობას სერიულ პორტში Serial.print ("/"); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა შემდგომი დამუშავების IDE– ში Serial.print– ის ინდექსირებისთვის (მანძილი); // აგზავნის მანძილის მნიშვნელობას სერიულ პორტში Serial.print ("."); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა მოგვიანებით ინდექსირებისთვის IDE}} // იმეორებს წინა სტრიქონებს 165-დან 15 გრადუსამდე (int i = 180; i> = 0; i-) {RadarServo. დაწერე (ი); დაგვიანება (50); მანძილი = sonar.ping_cm (); for (int j = 75; j> = 0; j- = 25) {if (i == 180 && (j == 75 || j == 50 || j == 25)) {გაგრძელება; } Serial.print (i); // აგზავნის მიმდინარე ხარისხს სერიულ პორტში Serial.print (","); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა მოგვიანებით დამუშავების IDE– ში Serial.print (j) ინდექსირებისთვის; // აგზავნის მიმდინარე ხარისხს სერიულ პორტში Serial.print ("*"); Serial.print (-1); // აგზავნის მანძილის მნიშვნელობას სერიულ პორტში Serial.print ("/"); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა შემდგომი დამუშავების IDE– ში Serial.print– ის ინდექსირებისთვის (მანძილი); // აგზავნის მანძილის მნიშვნელობას სერიულ პორტში Serial.print ("."); // აგზავნის დამატებით სიმბოლოს წინა მნიშვნელობის გვერდით, რომელიც საჭიროა მოგვიანებით დამუშავების IDE ინდექსირებისთვის}}

}

გირჩევთ: