Სარჩევი:

Arduino Hot Wheels Speed Track ნაწილი #2 - კოდი: 5 ნაბიჯი
Arduino Hot Wheels Speed Track ნაწილი #2 - კოდი: 5 ნაბიჯი

ვიდეო: Arduino Hot Wheels Speed Track ნაწილი #2 - კოდი: 5 ნაბიჯი

ვიდეო: Arduino Hot Wheels Speed Track ნაწილი #2 - კოდი: 5 ნაბიჯი
ვიდეო: 35 видео со страшными призраками: мегасборник 2023 года [V1] 2024, ნოემბერი
Anonim
Image
Image

ამ პროექტის პირველ ნაწილში ჩვენ შევქმენით აპარატურა პროტოტიპისთვის 2 დაფაზე.

ამ ნაწილში ჩვენ გადავხედავთ კოდს, როგორ მუშაობს და შემდეგ გამოვცდით მას.

დარწმუნდით, რომ უყურეთ ზემოთ მოცემულ ვიდეოს მთელი კოდის მიმოხილვისა და სამუშაო კოდის ვიტრინისათვის.

ნაბიჯი 1: ორივე MASTER და SLAVE იმავე კოდში

კოდი არის 2 ნაწილად, მაგრამ ერთი და იგივე ფაილის შიგნით. მე ვიყენებ #define- ს და #ifdef- ს იმის დასადგენად, თუ რომელი კოდი იქნება შედგენილი ან იგნორირებული, ასე რომ მე შემიძლია გამოვყო ნებისმიერი კოდი, რომელიც არის მხოლოდ MASTER breadboard- ისთვის და კოდი, რომელიც მხოლოდ SLAVE breadboard- ისთვისაა.

ძირითადად, თუ განსაზღვრული MASTER მოიძებნება, მაშინ ნებისმიერი კოდი, რომელიც მდებარეობს MASTER კოდის ბლოკში, შედგენილი იქნება და ნებისმიერი კოდი ამ ბლოკის გარეთ წაიშლება შედგენის დროს.

#fdef MASTER

// სამაგისტრო კონკრეტული კოდი აქ არის

#სხვა

#განსაზღვრეთ მონა

// მონების კონკრეტული კოდი აქ არის

#დაასრულე თუ

მე ასევე ვიყენებ იმავე ტექნიკას #განვსაზღვრო SLAVE როდესაც MASTER შედგენილია, ასე რომ თქვენ მხოლოდ უნდა იდარდოთ MASTER- ის განსაზღვრის შესახებ თუ არა SLAVE- ის განსაზღვრისათვის.

ნაბიჯი 2: BLUETOOTH მოდულები საუბრობენ სერიული კითხვისა და წერის გზით

ამ პროექტში მხოლოდ SLAVE breadboard ესაუბრება MASTER breadboard- ს. MASTER არასოდეს ლაპარაკობს უკან, ის მხოლოდ უსმენს და შემდეგ მოქმედებს შემოსულ მონაცემებზე.

მოდულები საუბრობენ და უსმენენ Arduino კოდირების ეკოსისტემაში ჩაშენებული სერიული კლასის გამოყენებით.

Bluetooth მოდულები ურთიერთობენ 38400 baud– ით, ამიტომ ორივე კოდის ბილიკი ახდენს მათი სერიული კომუნიკაციის ინიციალიზაციას:

სერიული.დაწყება (38400);

და SLAVE იყენებს:

Serial.write (მონაცემები აქ);

მასტერთან სასაუბროდ და სამაგისტრო იყენებს:

მონაცემები = Serial.read ();

სერიული ნაკადის მოსასმენად და მისი შინაარსის წასაკითხად და შესანახად ცვლადში.

ნაბიჯი 3: რბოლის კონტროლი

SLAVE ეუბნება მასტერს, არის თუ არა იგი რბოლაში უფრო მეტად ან მზა რეჟიმში, მისი მწვანე მიკროკონტროლერთან დაკავშირებული მწვანე ღილაკის საშუალებით. მზა რეჟიმში, IR სენსორები არაფერს აკეთებენ და MASTER აჩვენებს ეკრანზე 8 ტირეს, რომ მიუთითოს, რომ ის მზა რეჟიმშია.

როდესაც SLAVE ეუბნება მასტერს, რომ რბოლა დაიწყება, SLAVE იწყებს IR სენსორების გამოკითხვას მის მხარეს (რბოლაზე დაწყება), რომ მანქანები გაიარონ ქვევით.

თითოეული მანქანა გადის თითოეული IR სენსორის ქვეშ, ის აგზავნის A (მანქანა 1) ან B (მანქანა 2) მასტერს.

როდესაც MASTER იღებს A ან B, ის აძლევს ტაიმერს კონკრეტული მანქანისთვის და შემდეგ ელოდება, რომ მანქანა გაივლის შესაბამისი IR სენსორის ქვეშ ფინიშის ხაზზე.

ეკრანი განახლდება ყოველ 50 ms– ში, რომ აჩვენოს თითოეული მანქანის ამჟამინდელი დრო წამებში 2 ათობითი ადგილით.

მას შემდეგ, რაც ორივე მანქანა ფინიშის ხაზზე მოხვდა, MASTER გადაწყვეტს რომელი მანქანა იყო ყველაზე სწრაფი და ეკრანზე ანათებს იმ დროს გამარჯვებულის დასახატად.

ნაბიჯი 4: დანარჩენი კოდი

დანარჩენი კოდი არის მხოლოდ სასარგებლო კოდი, რომელიც აკონტროლებს მონაცემების ჩვენებას 8 ნიშნა ეკრანზე, ან ამუშავებს ღილაკზე დაჭერის ლოგიკას და ა.

ამ პროექტის შესავალი ნაწილში ვიდეოს დასასრულს მე ვაჩვენებ კოდის მაგალითს, რომელიც მუშაობს 2 დაფაზე, ასე რომ დარწმუნდით, რომ შეამოწმეთ ეს!

თქვენ შეგიძლიათ აიღოთ ამ პროექტის კოდი ჩემი github repo– დან.

ნაბიჯი 5: რა არის შემდეგი?

ეს ჯერჯერობით ასეა … მე –3 ნაწილში ჩვენ შევხედავთ კომპონენტების გადატანას დაფაზე და რაღაც უფრო მუდმივზე … დაელოდეთ!

იმედი მაქვს მოგეწონებათ ეს პროექტი!

გამომყევი შემდეგზე:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

გირჩევთ: