Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
1 žingsnis: medžiagos
1- Robotas Mio
2- L298N įtampos reguliatorius Dviejų variklių vairuotojo lenta
3- „Arduino Nano“
4- HC06 „Bluetooth“serijos modulio plokštė
5- (2x) 9 V akumuliatoriaus galvutė
2 žingsnis: dalių surinkimas
Pirmiausia pradėkime nuo variklio tvarkyklės jungčių Lituokime trumpiklius po variklio tvarkyklės kaiščiais in1, in2, in3, in4. (kaip 1 pav.) Tada prijunkite kabelį nuo 1 prie nano d6 kaiščio, nuo 2 iki d10 kištuko, nuo 3 iki d5 kaiščio ir galiausiai įkiškite kabelį į in4 iki d9 kaištį. (kaip 2 paveiksle) Dabar prijunkime savo HC06 modulį, prijunkime RXD kaištį prie nano TXD kaiščio, TXD kaištį prie RXD kaiščio, VCC ir GND kaiščius prie bet kokių 5 n ir GND kaiščių. (kaip 3 pav.) Galiausiai sujunkime variklio jungtis. Kai „Mio“atsigręžia į mus, prijunkime tinkamus variklio kabelius prie variklio tvarkyklės 3, 4 kaiščių ir kairiuosius variklio kabelius prie 1, 2 kaiščių. Prijunkime raudoną 9 V akumuliatoriaus dangtelio kabelį prie VIN kaiščio nano ir juodas kabelis prie GND kaiščio. (kaip 4 pav.) Ir perpjaukime trumpiklį per vidurį, nuimkite galą ir prijunkite jį prie nano GND kaiščio, prie variklio tvarkyklės GND kaiščio. (kaip parodyta 5, 6 pav.) Prijunkime raudoną kitos 9 V akumuliatoriaus galvutės kabelį prie 12 V kaiščio, o juodą - prie GD kaiščio, esančio variklio vairuotojo maitinimo kaiščiuose. (kaip 7 paveiksle)
3 žingsnis: Nano kodavimas
const int variklisA1 = 5; // L298N'in IN3 Girişi
const int variklisA2 = 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 (motorA2, OUTPUT); pinMode (variklisB1, OUTPUT); pinMode (variklisB2, OUTPUT); // 9600 baud 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 'state' değişkenine kaydet if (Serial.available ()> 0) {state = Serial.read (); } // Uygulamadan ayarlanabilen 4 hız seviyesi. (Değerler 0-255 arasında olmalı) if (state == '0') {vSpeed = 0;} else if (state == '1') {vSpeed = 100;} else if (būsena == '2') {vSpeed = 180;} else if (state == '3') {vSpeed = 200;} else if (state == '4') {vSpeed = 255;} /*** ******************** İleri ***************************/ // Gelen veri 'F' ise araba ileri gider. if (state == 'F') {analogWrite (motorA1, vSpeed); analogWrite (variklisA2, 0); analogWrite (variklisB1, vSpeed); analogWrite (variklisB2, 0); } /********************* İleri Sol ************************ /// Gelen veri 'G' ise araba ileri sol (çapraz) gider. else if (state == 'G') {analogWrite (motorA1, vSpeed); analogWrite (variklisA2, 0); analogWrite (variklisB1, 100); analogWrite (variklisB2, 0); } /********************** İleri Sağ ************************ /// Gelen veri 'I' ise araba ileri sağ (çapraz) gider. else if (state == 'I') {analogWrite (motorA1, 100); analogWrite (variklisA2, 0); analogWrite (variklisB1, vSpeed); analogWrite (variklisB2, 0); } /*********************** Geri *********************** ****/// Gelen veri 'B' ise araba geri gider. else if (state == 'B') {analogWrite (motorA1, 0); analogWrite (motorA2, vSpeed); analogWrite (variklisB1, 0); analogWrite (variklisB2, 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 (state == ') J ') {analogWrite (variklisA1, 0); analogWrite (motorA2, vSpeed); analogWrite (variklisB1, 0); analogWrite (variklisB2, 100); } /*********************************************** *********/// Gelen veri 'L' ise araba sola gider. else if (state == 'L') {analogWrite (motorA1, vSpeed); analogWrite (variklisA2, 150); analogWrite (variklisB1, 0); analogWrite (variklisB2, 0); } /********************************************** *********/// Gelen veri 'R' ise araba sağa gider else if (state == 'R') {analogWrite (motorA1, 0); analogWrite (variklisA2, 0); analogWrite (variklisB1, vSpeed); analogWrite (variklisB2, 150); } /************************Sustabdyti*********************** ******/// Gelen veri 'S' arabayı durdur. else if (state == 'S') {analogWrite (motorA1, 0); analogWrite (variklisA2, 0); analogWrite (variklisB1, 0); analogWrite (variklisB2, 0); }} analogWrite (motorA1, 0); analogWrite (variklisA2, 100); analogWrite (variklisB1, 0); analogWrite (variklisB2, vSpeed);
4 žingsnis: dalių montavimas „Mio“
Dabar mes esame paskutiniame roboto mio sujungimo etape