Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Krok 1: Materiały
1- Robot Mio
2-L298N Płytka sterownika podwójnego silnika regulatora napięcia
3-Arduino Nano
4-HC06 Moduł szeregowy Bluetooth
5- (2x) 9 V głowica akumulatorowa
Krok 2: Montaż części
Zacznijmy od połączeń sterownika silnika. Przylutujmy kable zworki pod pinami in1, in2, in3, in4 sterownika silnika. (jak na zdjęciu 1) Następnie podłączmy kabel w in1 do pinu nano d6, in2 do pinu d10, in3 do pinu d5, a na końcu kabel w pinzie in4 do d9. (jak na zdjęciu 2) Teraz wykonajmy połączenia naszego modułu HC06, podłączmy pin RXD do pinu TXD nano, pin TXD do pinu RXD, piny VCC i GND do dowolnych pinów 5V i GND nano. (jak pic3) I na koniec wykonajmy połączenia silnika. Kiedy Mio jest skierowany do nas, podłączmy prawe kable silnika do wyjścia 3, 4 piny sterownika silnika, a lewe kable silnika do wyjścia 1, 2 piny. Podłączmy czerwony kabel nasadki akumulatora 9 V do pinu VIN nano i czarny kabel do pinu GND. (jak na zdjęciu 4) I przetnijmy przewód połączeniowy w środku, zdejmijmy koniec i podłączmy go do pinu GND nano, do pinu GND sterownika silnika. (jak pic5, 6) Podłączmy czerwony kabel innej głowicy akumulatora 9 V do pinu 12 V, a czarny kabel do pinu GND na pinach zasilania sterownika silnika. (jak na zdjęciu7)
Krok 3: Kodowanie Nano
const int motorA1 = 5; // L298N'in IN3 Girişi
const int motorA2 = 6; // L298N'in IN1 Girişi const int motorB1 = 10; // L298N'in IN2 Girişi const int motorB2 = 9; // L298N'in IN4 Girişi
int i=0; //Döngüler için atanan rastgele bir değişken int j=0; //Döngüler için atanan rastgele bir değişken int state; //Bluetooth cihazından gelecek sinyalin değişkeni int vSpeed=255; // Standart Hız, 0-255 arası bir değer alabilir
void setup() { // Pinlerimizi belirleyelim pinMode(motorA1, OUTPUT); pinMode (silnik A2, WYJŚCIE); pinMode (silnikB1, WYJŚCIE); pinMode (silnikB2, WYJŚCIE); // 9600 bodów hızında bir seri port açalım Serial.begin(9600); } void loop() { //Bluetooth bağlantısı koptuğunda veya kesildiğinde arabayı durdur. //(Aktif etmek için alt satırın "//" larını kaldırın.) // if(digitalRead(BTState)==LOW) { state='S'; }
//Gelen veriyi 'stan' değişkenine kaydet if(Serial.available() > 0){ stan = Serial.read(); } // Uygulamadan ayarlanabilen 4 hız seviyesi.(Değerler 0-255 arasında olmalı) if (stan == '0'){ vSpeed=0;} else if (stan == '1'){ vSpeed=100;} else if (stan == '2'){ vSpeed=180;} else if (stan == '3'){ vSpeed=200;} else if (stan == '4'){ vSpeed=255;} /*** ********************İleri******************************/ //Gelen veri 'F' ise araba ileri gider. if (stan == 'F') { analogWrite(motorA1, vSpeed); analogZapis(silnikA2, 0); zapis analogowy (silnikB1, vSpeed); analogZapis(silnikB2, 0); } /*************************İleri Sol************************ / //Gelen veri 'G' ise araba ileri sol(çapraz) gider. else if (stan == 'G') { analogWrite(motorA1, vSpeed); analogZapis(silnikA2, 0); analogZapis(silnikB1, 100); analogZapis(silnikB2, 0); } /*************************İLeri Sağ************************* / //Gelen veri 'I' ise araba ileri sağ(çapraz) gider. else if (stan == 'I') { analogWrite(motorA1, 100); analogZapis(silnikA2, 0); zapis analogowy (silnikB1, vSpeed); analogZapis(silnikB2, 0); } /***********************Geri************************ ****/ //Gelen veri 'B' ise araba geri gider. else if (stan == 'B') { analogWrite(motorA1, 0); zapis analogowy (silnikA2, vSpeed); analogZapis(silnikB1, 0); zapis analogowy (silnik B2, vSpeed); } /***********************Geri Sol************************ / //Gelen veri 'H' ise araba geri sol(çapraz) gider else if (state == 'H') { } /********************* *Geri Sağ************************/ //Gelen veri 'J' ise araba geri sağ(çapraz) gider else if (stan == ' J') { analogWrite(silnikA1, 0); zapis analogowy (silnikA2, vSpeed); analogZapis(silnikB1, 0); analogowyZapis(silnikB2, 100); } /****************************Sol******************** *********/ //Gelen veri 'L' ise araba sola gider. else if (stan == 'L') { analogWrite(motorA1, vSpeed); analogowyZapis(silnik A2, 150); analogZapis(silnikB1, 0); analogZapis(silnikB2, 0); } /****************************Sağ******************** *********/ //Gelen veri 'R' ise araba sağa gider else if (state == 'R') { analogWrite(motorA1, 0); analogZapis(silnikA2, 0); zapis analogowy (silnikB1, vSpeed); analogowyZapis(silnikB2, 150); } /************************Zatrzymać*********************** ******/ //Gelen veri 'S' ise arabayı durdur. inaczej if (stan == 'S'){ analogWrite(motorA1, 0); analogZapis(silnikA2, 0); analogZapis(silnikB1, 0); analogZapis(silnikB2, 0); } } analogWrite(silnikA1, 0); analogowyZapis(silnikA2, 100); analogZapis(silnikB1, 0); zapis analogowy (silnik B2, vSpeed);
Krok 4: Instalowanie części w Mio
Teraz jesteśmy na ostatnim etapie łączenia robota mio