Projektas #7: Code & Drive“ roboto mašinos valdymas per „Bluetooth“ naudojant program?

Sukurkite program?, skirt? valdyti „Code & Drive“ robot? mašin? j?s? „Android“ išmaniuoju telefonu arba planšetiniu kompiuteriu „Bluetooth“ ryšiu panaudojant program?.

SUD?TINGUMO LYGIS: Pažengusiems.

PRATIMO TRUKM?: 60 min.

MEDŽIAGOS:

  • 1 USB – Mikro USB kabelis
  • Kompiuteris
  • „Android“ išmanusis telefonas ar planšetinis kompiuteris su projektui reikalinga programa („Arduino Bluetooth RC Car“)

„Code & Drive“ robotas mašina tur?s b?ti sukonstruotas ir prijungtas pagal instrukcij? vadov?.

Kaip veikia „Code & Drive“ robote mašinoje esanti „Build & Code“ plokšt??

Šiam darbui naudosite skaitmeninius ir analoginius kontaktus, NS variklius ir „Code & Drive“ roboto mašinos „Bluetooth“ ryš?.

  1. Skaitmeniniai kontaktai:  Jie yra kair?je „Build & Code 4in1“ plokšt?s pus?je. Spalv? reikšm?s - juodas (GND ?žeminimas), raudonas (VCC) ir geltonas (skaitmeninis ?v./Išv. signalas). Rasite 12 jung?i?, sunumeruot? nuo 2 iki 13. 7 iš j? gali si?sti PPM išvesties signal?. Šios jungtys šalia numerio yra pažym?tos ~ simboliu.
  2. Analoginiai kontaktai: : Jie yra dešin?je „Build & Code 4in1“ plokšt?s pus?je. Spalv? reikšm?s - juodas (GND ?žeminimas), raudonas (VCC) ir m?lynas (analogin? ?vestis). Rasite 5 jungtis, sunumeruotas nuo A0 iki A5.
  3. Duomen? perdavimas iš kompiuterio ? „Build & Code 4in1“ plokšt? : Prijunkite plokšt? prie kompiuterio naudodami USB- Micro USB kabel?. ?sitikinkite, kad BLT / USB jungiklis yra perjungtas ? USB režim?.
  4. Duomen? perdavimas iš „Build & Code 4in1“ ? „Android“ išman?j? telefon?: nustatykite BLT / USB jungikl? ? BTL režim?, kad b?t? galima užmegzti ryš? tarp „Build & Code 4in1“ plokšt?s ir „Android“ ?renginio.
  5. „Bluetooth“ ryšio su „Android“ išmaniuoju telefonu ar planšetiniu kompiuteriu sukonfig?ravimas: ?statykite ir prijunkite „Build & Code 4in1“ plošt?. ?junkite „Bluetooth“ savo mobiliajame ?renginyje, ieškokite signalo pavadinto „HC-06“ ir j? pasirinkite. Jei j?s? ?renginys prašo ?vesti slaptažod?, ?veskite 1234 arba 0000.
  6. „Build & Code 4in1“ plokšt?s ?jungimas:  : „Build & Code 4in1“ plokšt? gali b?ti ?jungta kompiuteriu panaudojant USB kabel?. Kai j? prijungsite, matysite, kad jis ?sijungia automatiškai, o jutikliai ir "Bluetooth" jungtis bus ?jungti, bet ne ? nuolatin?s srov?s variklius. „Build & Code 4in1“ plokšt? taip pat galite ?jungti naudodami 5,5 mm lizdin? jungt?, panaudodami išorin? adapter?, prijungt? prie 12 VDC maksimalios elektros srov?s išvesties
  7. Nuolatin?s srov?s varikli? maitinimas: Tur?site naudoti element? laikiklio prie kurio prijungta lizdin? jungtis, ?vest?. J?s turite rankiniu b?du ?jungti „Build & Code 4in1“ plokšt?, naudodami ?J./ IŠJ. jungikl?, esant? plokšt?s viršuje.

Kaip veikia „Code & Drive“ roboto mašinos jutikliai?

  • M?lynos ir žalios spalvos diodai:  „LED“ yra tarptautin? švies? spinduliuojan?io diodo santrumpa. Tokiu atveju spalvos yra m?lyna ir žalia. Šio pratimo metu naudodami program? ?jungsite / išjungsite priekines ir galines „Code & Drive“ roboto mašinos šviesas. Šie komponentai gali b?ti prijungti prie bet kuri? „Build & Code 4in1“ plokšt?s skaitmenini? kontakt?, išskyrus pažym?tus Nr. 4, 5, 6 ir 7, kurie yra skirti varikliams. Nor?dami užprogramuoti šviesos diod? veikim?, turite sukonfig?ruoti skaitmeninius kontaktus kurie yra prijungti kaip išves?i? kontaktai.
  • Signalizatorius:  Tai elektrinis garso signalo ?taisas, skleidžiantis zvimbimo gars?. Šis komponentas gali b?ti prijungti prie bet kurio „Build & Code 4in1“ plokšt?s skaitmeninio kontakto, išskyrus pažym?tus Nr. 4, 5, 6 ir 7, kurie yra skirti varikliams. Nor?dami užprogramuoti jo veikim?, turite sukonfig?ruoti skaitmeninius kontaktus kurie yra prijungti kaip išvestys.
  • Nuolatin?s srov?s variklis:  : Tai yra ?renginiai, kurie paver?ia elektros energij? mechanine energija, sukelian?ia sukam?j? jud?jim?. Sukimosi kryptis bus valdoma naudojant programos žymekl?, o greitis bus valdomas slankikliu. Norint, kad varikliai veikt? tinkamai, „Build & Code 4in1“ plokštei maitinim? turi teikti element? laikiklis su ?statytais AA elementais. ?sitikinkite, kad DIP jungiklis (4 balti jungikliai) yra ?jungtas.

Tam, kad užprogramuotum?te NS variklius, naudokite skaitmeninius kontaktus Nr. 4, 5, 6 ir 7, ta?iau tai nereiškia, kad varikliai bus prijungti prie ši? kontakt?.

Kontaktai Nr. 4 ir 7 bus užprogramuoti kaip skaitmenin?s išvestys (aukštos ir žemos), kad b?t? galima valdyti varikli? sukimosi krypt?.

Kontaktai Nr. 5 ir 6 bus užprogramuoti kaip PPM signalo išvestys su vert?mis nuo 0 iki 255..

JUNGTYS:

  1. 1. Prijunkite nuolatin?s srov?s variklius prie skaitmenini? kontakt? kaip parodyta žemiau.
  2. Prijunkite NS variklius prie jung?i? kaip parodyta žemiau.

Valdykite naudodami „Code & Drive“ robot? mašin? naudodami „Arduino Bluetooth RC Car“ program?

TPrograma, kuri? rekomenduojame naudoti šiam pratumui, yra „Arduino Bluetooth RC CAR“. J? galite parsisi?sti iš „Google Play Store“..

Naudodami program? suporuokite savo išman?j? telefon? su „Code & Drive“ robotu mašina. Suraskite ir suporuokite su „HC-06 Bluetooth“ signalu. Tinkamai suporavus, raudona indikatoriaus spalva pasikeis ? žali?. Dabar galite valdyti „Code & Drive“ robot? mašin? naudodami program?.

PROGRAMOS KODAS 

Galite atlikti š? projekt? naudodami „Arduino“, „Bitbloq“ arba kit? suderinam? vaizdin? programavimo programin? ?rang?, naudojan?i? blokus. Toliau pateikiamas reikiamas kodas.

„Arduino“ kodas

  1. Parsisi?skite  ir ?diekite „Arduino IDE“ program?. Ji si?loma „Windows“, „Mac OS“ ir „Linux“.
  2. Paleiskite „Arduino“ program? ir nukopijuokite ? j? toliau pateikt? kod?:
    char data = 0;  //VARIABLE FOR STORING BLUETOOTH DATA
    int directionA = 4, speedA = 5, directionB = 7, speedB = 6, Speed ; // SPEED AND DIRECTION PINS TO MOTOR A AND B
    int LedV = 9, LedB = 10; // BLUE AND GREEN LED PINS
    int pinBuzzer = 8; // BUZZER PIN
    void setup()
    {
        Serial.begin(9600);   //Sets the baud for serial data transmission 
        // CONFIGURATION OF BUILD&CODE 4IN1 PINS 
        pinMode ( directionA, OUTPUT);
        pinMode ( speedA, OUTPUT);
        pinMode ( directionB, OUTPUT);
        pinMode ( speedB, OUTPUT);
        pinMode (LedV, OUTPUT);
        pinMode (LedB, OUTPUT);
    }
    void loop()
    {
       if(Serial.available() > 0)      // SEND DATA ONLY WHEN YOU RECEIVE DATA
    
       {
          data = Serial.read();        //READ THE INCOMING DATA AND STORE INTO DATA 
    
          // INTERPRETATION OF BLUETOOTH ENTRY DATA
    
          switch (data)
          {
            case 'F':   // FORWARD
            //MOTOR A
            analogWrite (speedA, Speed);
            digitalWrite ( directionA,LOW);
    
             //MOTOR B 
             analogWrite (speedB, Speed);
             digitalWrite ( directionB,HIGH);
             break;
    
             case 'B':  // BACK
             //MOTOR A
              analogWrite (speedA, Speed);
              digitalWrite ( directionA,HIGH);
    
              //MOTOR B
              analogWrite (speedB, Speed);
              digitalWrite ( directionB,LOW);
              break;
    
              case 'S':   // STOP
             //MOTOR A
              analogWrite (speedA, 0);
              digitalWrite ( directionA,LOW);
    
              //MOTOR B
              analogWrite (speedB, 0);
              digitalWrite ( directionB,HIGH);
              break;
    
              case 'L':   // LEFT
             //MOTOR A
              analogWrite (speedA, Speed);
              digitalWrite ( directionA,LOW);
    
         
    
              case 'R':   // RIGHT
    
              //MOTOR B
              analogWrite (speedB, Speed);
              digitalWrite ( directionB,HIGH);
              break;
    
              // CHANGE SPEED
              case '1':
              Speed = 25;
              break;
    
              case '2':
              Speed = 25*2;
              break;
    
              case '3':
              Speed = 25*3;
              break;
    
              case '4':
              Speed = 25*4;
              break;
    
              case '5':
              Speed = 25*5;
              break;
    
              case '6':
              Speed = 25*6;
              break;
    
              case '7':
              Speed = 25*7;
              break;
    
              case '8':
              Speed = 25*8;
              break;
    
              case '9':
              Speed = 25*9;
              break;
    
              case 'q':
              Speed = 255;
              break;
    
              // FORWARD LIGHT
              case'W':
              digitalWrite (LedV, HIGH);
              break;
    
              case'w':
              digitalWrite (LedV, LOW);
              break;
    
              // BACK LIGHT
              case'U':
              digitalWrite (LedB, HIGH);
              break;
    
              case'u':
              digitalWrite (LedB, LOW);
              break;
    
              // HORN
              case'V':
              tone(pinBuzzer,523.25,0);
              break;
    
              case'v':
              tone(pinBuzzer,0,100);
              break;       
          }
       }
    }
    
  3. Sukonfig?ruokite ir ?kelkite kod? vadovaudamiesi instrukcijomis pateiktomis Code & Drive“ roboto mašinos pirm?j? veiksm? vadove.
  4. Kad kod? ?keltum?te teisingai, ?sitikinkite, kad „Build & Code 4in1“ plokšt?s BTL/USB jungiklis yra teisingai nustatytas ? USB pad?t?.

PRATIMO REZULTATAS:

Naudodami ši? program?, gal?site valdyti „Code & Drive“ robot? mašin? savo išmaniuoju telefonu ar planšetiniu kompiuteriu naudodami ši? program?. Rodykl?mis gal?site valdyti krypt?, o slankikliu gal?site valdyti greit?, priekiniais / galiniais švies? mygtukais valdysite šviesos diodus, o signalo mygtuku gal?site signalizuoti.