İçindekiler:

Arduino Hot Wheels Speed Track Bölüm #2 - Kod: 5 Adım
Arduino Hot Wheels Speed Track Bölüm #2 - Kod: 5 Adım

Video: Arduino Hot Wheels Speed Track Bölüm #2 - Kod: 5 Adım

Video: Arduino Hot Wheels Speed Track Bölüm #2 - Kod: 5 Adım
Video: Akıllı adamın hali başka❗️#kaza #crash 2024, Kasım
Anonim
Image
Image

Bu projenin ilk bölümünde prototipin donanımını 2 breadboard üzerinde kurduk.

Ve bu bölümde kodun nasıl çalıştığını inceleyeceğiz ve ardından test edeceğiz.

Tüm kod incelemesi ve çalışma kodunun gösterimi için yukarıdaki videoyu izlediğinizden emin olun.

Adım 1: Aynı Kodda Hem MASTER hem de SLAVE

Kod 2 parçadır, ancak aynı dosyanın içindedir. Hangi kodun derleneceğini veya yoksayılacağını belirlemek için #define ve #ifdef kullanıyorum, böylece yalnızca MASTER devre tahtası için olan herhangi bir kodu ve yalnızca KÖLE devre tahtası için olan kodu ayırabilirim.

Temel olarak, MASTER tanımı bulunursa, MASTER kod bloğunun içindeki herhangi bir kod derlenecek ve bu bloğun dışındaki herhangi bir kod derleme zamanında kaldırılacaktır.

#ifdef MASTER

//Ustaya özel kod burada

#Başka

#define KÖLE

// Köleye özel kod burada

#endif

Aynı tekniği, MASTER derlendiğinde #define SLAVE için de kullanıyorum, bu nedenle yalnızca MASTER'ı tanımlamanız veya SLAVE'in tanımlanmasını etkinleştirmeme konusunda endişelenmeniz gerekiyor.

Adım 2: BLUETOOTH Modülleri Seri Okuma ve Yazma Yoluyla Konuşur

Bu projede yalnızca SLAVE devre tahtası, MASTER devre tahtasıyla konuşur. MASTER asla geri konuşmaz, sadece dinler ve gelen verilere göre hareket eder.

Modüller, Arduino kodlama ekosistemindeki yerleşik Seri sınıfını kullanarak konuşur ve dinler.

Bluetooth modülleri 38400 baud'da iletişim kurar, böylece her iki kod yolu da Seri iletişimlerini aşağıdakileri kullanarak başlatır:

Seri.başla(38400);

Ve SLAVE şunları kullanır:

Serial.write(buradaki veriler);

MASTER ile konuşmak için MASTER şunları kullanır:

veri = Seri.read();

Seri akışı dinlemek ve içeriğini okumak ve bir değişken içinde saklamak.

Adım 3: Yarışı Kontrol Etmek

SLAVE, mikro denetleyicisine bağlı yeşil buton aracılığıyla MASTER'a yarış fazla mı yoksa hazır modda mı olduğunu söyler. Hazır modunda, IR sensörleri hiçbir şey yapmaz ve MASTER, hazır modunda olduğunu belirtmek için ekranda 8 çizgi gösterecektir.

SLAVE, MASTER'a bir yarışın başlayacağını söylediğinde, SLAVE, arabaların altından geçmesi için yanındaki IR sensörlerini (yarış pistinin başlangıcı) sorgulamaya başlar.

Her araba her bir IR sensörünün altından geçerken, MASTER'a bir A (araba 1) veya B (araba 2) gönderir.

MASTER bir A veya B aldığında, o belirli araba için zamanlayıcıyı etkinleştirir ve ardından arabanın bitiş çizgisinde karşılık gelen IR sensörünün altından geçmesini bekler.

Ekran her 50ms'de bir güncellenerek her arabanın o anki saatini 2 ondalık basamakla saniye cinsinden gösterir.

Her iki araba da bitiş çizgisine ulaştığında, MASTER hangi arabanın en hızlı olduğuna karar verir ve kazananı belirtmek için o zaman ekranda yanıp söner.

Adım 4: Kodun Geri Kalanı

Kodun geri kalanı, yalnızca 8 basamaklı ekranda verilerin görüntülenmesini kontrol eden veya düğmeye basma mantığını vb. yöneten yardımcı program kodudur.

Bu projenin giriş bölümündeki videonun sonunda, 2 breadboard üzerinde çalışan kodun bir örneğini gösteriyorum, bu yüzden kontrol ettiğinizden emin olun!

Bu projenin kodunu github depomdan alabilirsiniz.

Adım 5: Sırada Ne Var?

Şimdilik bu kadar… 3. bölümde bileşenleri devre tahtasından daha kalıcı bir şeye taşımaya bakacağız… bizi izlemeye devam edin!

Umarım bu projeden keyif alırsınız!

Beni takip et:

www.youtube.com/c/unexpectedmaker

twitter.com/unexpectedmaker

www.facebook.com/unexpectedmaker

www.instagram.com/unexpectedmaker

www.tindie.com/stores/seonr/

Önerilen: