Arduino releja vadība: skice. Vadība, izmantojot Bluetooth Vadība ligzdā, izmantojot Bluetooth un arduino

1 Apraksts Bluetooth modulis HC-06

Ir liels skaits Bluetooth moduļu ieviešanu. Katrai no tām ir savas īpašības, taču kopumā tās visas ir ļoti līdzīgas. Apskatīsim Bluetooth moduļu saimes pārstāvi HC-06, ko šajā vietnē var iegādāties par lielisku cenu.

Šis modulis darbojas ar frekvenci no 2,40 GHz līdz 2,48 GHz un atbalsta Bluetooth specifikācijas versiju 2.1+EDR: samazināts enerģijas patēriņš, paaugstināts datu aizsardzības līmenis un viegls Bluetooth ierīču savienojums. Stabila uztveršana ar moduli tiek garantēta 10 metru rādiusā.

Bluetooth moduļa tapu mērķis ir šāds:

Pēdējās divas tapas nedrīkst izmantot; Bieži vien jūs varat atrast moduļus bez šīm tapām.

2 Savienojuma shēma Bluetooth modulis priekš Arduino

Savienosim Bluetooth moduli ar Arduino saskaņā ar zemāk redzamo shēmu. Lūdzu, ņemiet vērā, ka Arduino raidītājs (Tx) ir savienots ar moduļa uztvērēju (Rx) un otrādi.


Uz izejas Statuss Augsts līmenis parādās, kad modulis ir savienots pārī ar citu Bluetooth ierīci, un zems līmenis, ja tas nav savienots pārī. Varat nolasīt tā vērtību, savienojot to ar Arduino tapu un piešķirot tam darbības režīmu pinMode(pinStatuss, INPUT) un tādējādi uzzināt moduļa statusu. Bet statusa indikators nedarbojas pareizi visos moduļos, tāpēc mēs to neizmantosim šajā piemērā.

Rezultātam vajadzētu izskatīties līdzīgi kā fotoattēlā.


3 Skice priekš Arduino darbam, izmantojot Bluetooth

Uzrakstīsim šādu skici un ielādējam to Arduino atmiņā:

Const int ledPin = 13; // iebūvētā LED char incomingbyte izvade; // mainīgais Bluetooth datiem anulēt iestatīšanu() ( pinMode(ledPin, OUTPUT); Serial.begin(9600); ) Void loop() ( if (Serial.available() > 0) ( // ja ports ir pieejams incomingbyte = Serial.read(); // nolasa datus no porta slēdža (incomingbyte) ( gadījums "1": // ja pienāk "1" digitalWrite(ledPin , HIGH ) }

Mēs ieslēdzam salikto shēmu ar Arduino un tam pievienoto Bluetooth moduli. Pareizi pieslēgts modulis nekavējoties pāriet savienojuma gaidstāves režīmā, par ko norāda ritmiski mirgojoša statusa gaismas diode.

4 Savienošana pārī ar Bluetooth ierīci

Tagad Bluetooth ierīce jāpievieno uzticamo ierīču sarakstam. Datorā ieslēdziet Bluetooth, dodieties uz Iestatījumi Bluetooth ierīces.

Ja paziņojumu apgabalā tiek parādīta Bluetooth ikona, kad datorā ieslēdzat Bluetooth, ar peles labo pogu noklikšķiniet uz tās un atlasiet:

Mēs pārliecināmies, ka mūsu Bluetooth modulis ir redzams datoram. Izvēlieties to sarakstā un nospiediet pogu Sasiet. Dialoglodziņā ievadiet noklusējuma paroli 1234 . Ja pievienošana ir veiksmīga, ierīce tiks parādīta sarakstā ar atzīmi Sapārots.


Noklusējuma parole konkrētam modulim var atšķirties no "1234". Šī informācija ir jāsniedz moduļa ražotājam (pārdevējam).

Ja vēlaties izveidot savienojumu ar savu Bluetooth moduli no viedtālruņa, tad procedūra ir līdzīga: ieslēdziet Bluetooth savā viedtālrunī, atrodiet moduli, kas savienots ar Arduino, un savienojiet ar to pārī.

5 Savienojuma izveide ar Bluetooth moduli izmantojot Bluetooth no datora

Lai izveidotu savienojumu ar Bluetooth moduli, varat izmantot dažādas programmas, kuras var izveidot savienojumu ar COM portu. Piemēram, piemēram, HyperTerminal, PuTTY, Tera Term, Termite un citi. Tie visi ir bezmaksas un brīvi izplatīti internetā.

Programmas ērtības TeraTerm Tas automātiski parāda jūsu datora Bluetooth modulim piešķirto COM portu sarakstu. Mēs palaižam programmu, atlasiet seriālo savienojumu, sarakstā atlasiet atbilstošo Bluetooth COM portu un noklikšķiniet uz Labi.


Programma PuTTY startēšanas laikā tas arī pieprasa porta numuru (COM4, ​​jums būs savs), savienojuma ātrumu (9600), savienojuma veidu (Serial). Pēc tam nospiediet pogu Savienot.


Ja savienojuma laikā rodas kļūda, programma parādīs atbilstošu paziņojumu. Ja savienojums starp datoru un Bluetooth moduli ir veiksmīgs, jūs redzēsit termināļa lauku priekšā. Ievadiet šajā laukā no tastatūras skaitli 1, un iedegsies gaismas diode uz Arduino tapas 0, un tas nodzisīs.

6 Savienojuma izveide no viedtālruņa izmantojot Bluetooth termināli

Līdzīgi varat izveidot savienojumu ar Bluetooth moduli no sava viedtālruņa. Lejupielādējiet lietojumprogrammu darbam ar Bluetooth, piemēram, izmantojot termināli Bluetooth terminālis. Izveidojiet savienojumu ar moduli un ievadiet komandas 0 vai 1.

Tādējādi mēs uzzinājām, kā izveidot savienojumu, izmantojot Bluetooth, ar Arduino un pārsūtīt datus uz to.

Šim rakstam būs “galīgais” raksturs, tas ir, tiks apkopoti mani sasniegumi darbā ar Arduino mikrokontrolleri, kas ir tik zemi. Lai vēlāk, ja nepieciešams, varētu atgriezties šajā platformā un ieviest tajā jebkuru ierīču ieslēgšanu un izslēgšanu.
Kā redzu, ar Bluetooth moduļa palīdzību var vadīt ierīces viedajai mājai vai pat veikt ierasto vārtu atvēršanu un aizvēršanu pagalmā vai garāžā. Tas ir, viņš piebrauca un atvēra to. Ja jūs dodaties prom, tas ir slēgts. Man principā vēl nav ne privātmājas, ne vārtu, bet es jau zinu, kā tos darbināt :)

Tātad, tagad es jums pastāstīšu arī par šo.

Slodzes ieslēgšanas un izslēgšanas princips, izmantojot Bluetooth, izmantojot Arduino

Patiesībā princips ir ļoti vienkāršs. Jums ir jābūt ierīcei ar iespēju Android sistēmā instalēt vadības programmatūru. Teiksim, tālrunis vai planšetdators. Tālāk mēs ņemam Arduino, kā arī Bluetooth vienību, savienojam to visu kopā un augšupielādējam programmu Arduino. Tas ir viss.

Savienojuma shēma Arduino ar Bluetooth moduli

Protams, mūsu gadījumā pirmais solis būs fiziskais savienojums un pēc tam programmatūra. Tātad, sāksim ar savienojumu. Ja jums ir Arduino UNO un Bluetooth modulis HC-06 vai 05, jums būs jāpievienojas šādi. Tomēr diagramma nekādā veidā neparāda vadības ķēžu savienojumu. Tas ir, tiek parādīts savienojums tieši starp Bluetooth HC-06 moduli un Arduino.

Protams, ja jums ir vadības izejas 11 un 13, kā tas ir mūsu gadījumā, skatiet rakstu zemāk, tad barošanas bloks vai vienkārši LED tiks pievienots tiem. Svarīgi ir tas, ka, pievienojot moduli, RX vienā ierīcē pāriet uz TX citā un otrādi. Ņem to vērā!

Skice priekš Arduino, lai tas darbotos ar Bluetooth moduli

Tagad runāsim šādi par skici, tas ir, par programmatūru, kas nodrošina mūsu aparatūras platformas darbību. Viss ir ļoti vienkārši. Paskatīsimies.

Int val; int LED = 13; int LED1 = 11; void setup() ( Serial.begin(9600); pinMode(LED, OUTPUT); digitalWrite(LED, HIGH); ) void loop() ( if (Serial.available()) ( val = Serial.read(); / / Pie simbola “1”, ieslēdziet LED 13 if (val == “1”) ( digitalWrite (LED, HIGH); ) // Pie simbola “0”, izslēdziet LED 13 if (val == “0” ) ( digitalWrite(LED , LOW); ) // Pie simbola "2" izslēdziet LED 11 if (val == "2") ( digitalWrite(LED1, HIGH); ) // Pie simbola "0" izslēdziet LED 11 if (val == "3 ") ( digitalWrite (LED1, LOW); ) ) )

Faktiski šeit ir mainīgo lielumu piešķiršana, mūsu gadījumā divas gaismas diodes 11. un 13. kājai. Pēc tam, izmantojot Serial.begin(9600), mēs savienojam savu Bluetooth. Nu, atliek tikai atrast programmu Bluetooth vadīšanai.

Programma planšetdatoram vai tālrunim (Android), lai kontrolētu slodzi, izmantojot Bluetooth

Jūs pats varat atrast jebkuru no programmām, kas atbalsta Bluetooth moduļa vadību no tālruņa, tas ir atkarīgs no jums. Es arī atradu un sakārtoju (lejupielādēju ArduinoRC) instalācijas programmu sev. Tas ir tas, ko es ievietoju savā telefonā.

Faktiski ar šīs programmas palīdzību skicē būs iespējams uzstādīt kritērijus-nosacījumus, kas nozīmē signāla saņemšanu uz izejas tapām 11 un 13. Mūsu gadījumā tiek izmantotas pogas 0,1,2,3. Viņi ir tie, kas ieslēdz un izslēdz gaismas diodes. Skatieties skici.
Pirmo reizi pievienojot ierīci, tai var būt nepieciešama parole, piemēram, 000 vai 1234.

Problēmas ar programmu augšupielādi Arduino

Pēdējais, par ko es gribēju runāt un ar ko es saskāros, tas ir, kāda problēma radās. Tātad, augšupielādējot programmu, bija jāatspējo Bluetooth modulis. Jo pretējā gadījumā, pieslēdzot moduli un ielādējot programmu, radās kļūda. Skice vienkārši netika augšupielādēta.

Apkopojot visu iepriekš minēto, varam secināt, ka, izmantojot Arduino un tam paredzēto Bluetooth moduli, tālrunī vai planšetdatorā varat kontrolēt vairāku kilovatu slodzes ar vienu pirksta klikšķi.

Tagad tas pats ir redzams video...

Vai jums ir nepieciešams attālināti vadīt savu Arduino plati un apmainīties ar datiem ar citām Bluetooth ierīcēm? Bluetooth moduļi HC-05, HC06 palīdzēs tikt galā ar šo uzdevumu.

Raksta pirmajā daļā mēs runāsim par to, kā izveidot bezvadu savienojumu starp Arduino un datoru, bet otrajā daļā - kā izveidot savienojumu starp Arduino un Android tālruni. .

Šis raksts būs neatņemama sastāvdaļa turpmākajā tālvadības automašīnas montāžā.

Komponenti atkārtošanai (pirkt Ķīnā):

HC-05/06 moduļi ir tukši Bluetooth ar papildu vadiem.

Proti: tie ir uzstādīti uz pamatnes, uz kuras ir stabilizators no 5 līdz 3,3 voltiem, LED, kas norāda moduļa statusu (vai savienojums ir izveidots vai nē), un kondensatori uz elektropārvades līnijām. Uz tāfeles ir uzstādīts arī mosfet tranzistors (Q1), kas vajadzības gadījumā var pārraut Bluetooth barošanas ķēdi, tādējādi to izslēdzot, taču tas mūsu pārskatā netiks izmantots.

No priekšpuses modulis izskatās šādi

Savienojuma izveide ar Arduino

Bluetooth HC-05/06 Arduino
VCC +5V
GND GND
TX RX
RX TX

Kad modulim tiek pieslēgta strāva, iebūvētā gaismas diode sāk mirgot.

1) Ar datoru (WIN7 operētājsistēma)

2) Ar tālruni (ANDROID OS)

Abos gadījumos mums būs jāizpilda 2 darbības: savienot pārī moduli un ierīci, vadīt caur kādu termināli.

1. daļa. Savienojuma izveide ar datoru (WIN7)

Ja jūsu datorā nav iebūvēta Bluetooth, varat to izmantot. To atrast sakaru veikalos vai radio tirgos nav grūti.

Pēc Bluetooth draiveru instalēšanas varat sākt strādāt.

. 1. darbība

Dodieties uz vadības paneli, noklikšķiniet uz Bluetooth ikonas un atlasiet "Rādīt Bluetooth ierīces"

Pēc kāda laika dators veiks meklēšanu, un jūs redzēsit savu moduli (Jūsu modulim var būt cits nosaukums).

Atlasiet otro opciju - “Ievadiet ierīces savienošanas pārī kodu”

HC-06 šis kods ir 1234

Ar šo attēlu viss beidzas.

Un pēc tam ir vēl viens

Pirmais iestatīšanas posms ir pabeigts

Ja aizmirstat, kuru COM portu esat identificējis kā Bluetooth, vienmēr varat to uzzināt, veicot šādas darbības:

Darbības

P.S. Vai arī skatieties ierīču pārvaldniekā

. 2. cēliens

Datu pārsūtīšanai var izmantot jebkuru termināli. Es izmantoju vienkāršo un bezmaksas "Termītu".

Piemēram, mēs mainīsim LED "LED 13" stāvokli, kas iebūvēts Arduino plāksnē. Tas ieslēgsies, saņemot simbolu “W”, un izslēgsies, kad tiek saņemts “S”. Tālāk redzamā skice ir jāaugšupielādē Arduino platē. Ielejot dēlī, jums ir jāatvieno strāvas padeve no Bluetooth moduļa, pēc uzpildīšanas pievienojiet vēlreiz.

programmas koda piemērs:

int val; int LED = 13; nederīgs uzstādīt () { Seriāls.begin(9600); pinMode(LED, OUTPUT); ) spēkā neesošs cilpa() ( ja ( Seriāls.available()) (val= Seriāls.lasīt(); // Kad simbols "W" iedegas LED if (val == "W") ( digitalWrite (LED, HIGH);) // Kad simbols "S" izslēdz LED if (val == "S" ) ( digitalWrite (LED, LOW ); ) ) ) Atveriet programmu " Termīts"

Iestatījumos atlasiet mūsu portu, ātrumu (9600).

Varat arī pārbaudīt moduli bez Arduino, vienkārši saīsinot TX un RX tapas. Termītu zīmes nosūtīja rakstzīmes zilā krāsā un saņemtās rakstzīmes zaļā krāsā. Tie. ja mēs nosūtījām ar īssavienojumu tapām un saņēmām to pašu, tas nozīmē, ka modulis darbojas pareizi. Tas ir parādīts zemāk esošajā fotoattēlā.

2. daļa. Savienojuma izveide ar tālruni (Android)

Testa objekts būs Samsung Galaxy Ace 2 tālrunis ar Android operētājsistēmu.

. 1. darbība

Savienojuma izveide ar tālruni

. 2. cēliens

Kā termināli atkal izvēlēsimies vienkāršu un bezmaksas, bet šoreiz “Bluetooth Terminal”

P.S. Ja nevarat izveidot savienojumu, atvienojiet strāvas padevi no Bluetooth un pievienojiet vēlreiz.

Bluetooth- Tas, iespējams, ir visizplatītākais saziņas veids nelielos attālumos, ko izmanto lielākā daļa mūsdienu elektronisko ierīču. Tālruņa austiņas, austiņas, tastatūras un peles, printeri un Dievs zina, kādi citi sīkrīki. Pirms kāda laika bluetooth tika popularizēts kā līdzeklis failu pārsūtīšanai starp tālruņiem. Galvenās BT priekšrocības ir laba izturība pret platjoslas traucējumiem un ieviešanas vienkāršība. Pirmais nozīmē, ka virkne ierīču, kas atrodas vienā vietā, var vienlaikus sazināties viena ar otru, netraucējot viena otrai. Otrais palīdzēja plaši izmantot Bluetooth DIY vidē un kopumā visās vidēs. Personīgi es izmantoju BT, lai vadītu robotus no sava viedtālruņa. Pakalpojumā Google Play jau ir vairākas lietojumprogrammas ar lietotājam draudzīgu interfeisu tieši šiem nolūkiem. Mūsu MakeItLab hackspace dalībnieki izmanto Bluetooth, lai attālināti vadītu gaismu un savāktu telemetrijas datus no kvadrokopteriem. Vislētākos Bluetooth moduļus mūsdienās var saukt par HC-05 un HC-06. Tie ir plaši pieejami Ķīnas tiešsaistes veikalos un ebay. Atšķirības starp tām ir tādas, ka pirmais var darboties gan pakārtotā, gan galvenajā režīmā. Otrā ir tīri vergu ierīce (bet to var labot!). Citiem vārdiem sakot, HC-06 pats nevar noteikt pārī savienotu ierīci un izveidot saziņu ar to, tas var tikai paklausīt kapteinim. Abu ierīču pamatā ir CSR BC417 mikroshēma, kas atbalsta Bluetooth versiju 2.0 ar ātrumu līdz 3 Mbit/s. Tieši šie moduļi tiks apspriesti tālāk.

1. Izpildes iespējas

Parasti moduļus pārdod kā divas kopā pielodētas plāksnes. Mazākais ir rūpnīcas modulis, ko plaši izmanto dažādās elektroniskās ierīcēs. Liels - īpaša dizaina šalle DIY. Šādi izskatās mazākā plate ar BC417 mikroshēmu:
Un šeit ir DIY moduļi HC-05 un HC-06:
Saviem viltīgajiem nolūkiem es parasti izmantoju HC-05, jo to cena daudz neatšķiras no HC-06 un ļauj bez problēmām savienot divas ierīces. Piemēram, jūs varat izgatavot robotu un tālvadības pulti tam. Parasti saņemu moduļus no Ķīnas, tieši tādus kā kreisajā bildē, bet dažreiz bez pogas. Ļoti izplatīta ir arī cita maketa šalles versija. Atšķirībā no iepriekš redzamajiem, tiem nav EN kājiņas, bet ir KEY kāja, kas ir nedaudz ērtāka.
Pinout Tātad, par ko ir atbildīgas kājas visās moduļa opcijās?
  • LV — ieslēgt/izslēgt moduli;
  • VCC - +5V barošana;
  • GND - zemējums;
  • TXD, RXD - UART interfeiss saziņai ar kontrolieri;
  • STATE - statusa indikators;
  • KEY - pēda, lai ieietu AT komandu režīmā.
Modulis ir konfigurēts AT komandu režīmā, kas tiek aktivizēts, izmantojot KEY kāju. Tāpēc daudziem laimīgiem moduļa īpašniekiem var rasties jautājums: kā rīkoties, ja esmu saskāries ar moduli bez ATSLĒGAS? Patiesībā, protams, šī kāja atrodas uz mazā dēļa, bet tā vienkārši nav novirzīta uz lielā dēļa. Dievs zina, kāpēc ķīnieši tā rīkojās, bet problēma ir viegli atrisināma. KEY kāja aug no šejienes:

2. Savienojums ar Arduino Uno

Kāju nav daudz, tāpēc neapjuksi. Mēs izveidojam savienojumu ar Bluetooth ar Arduino Uno saskaņā ar šādu shēmu:
Bluetooth GND VCC TXD RXD ATSLĒGA
Arduino Uno GND +5V 10 11
Mēs savienojam TX un RX ar GPIO 10. un 11. posmiem, jo ​​0. un 1. posma aparatūras UART būs aizņemta saziņai ar datoru. Darbības režīmā KEY nekur nav savienots, tāpēc tabulā es to nepievienoju Arduino GPIO kājām.

3. Sprieguma līmeņu savienošana pārī

Mazās Bluetooth moduļa plates loģiskais spriegums ir 3,3 volti. Tas nozīmē, ka Arduino Uno var vai nu sadedzināt savus portus, vai vienkārši pārraidīt signālus nepareizi. Par laimi, vairumā gadījumu lielam dēlim ir viss, lai no tā izvairītos. Iepriekš minētos moduļus var viegli savienot ar Arduino, bez liekām problēmām. Pat neskatoties uz to, ka paši ražotāji uz šalles uzrakstīja brīdinājumu par signāla līmeni 3,3 volti. Tomēr dažās situācijās var būt nepieciešams uzstādīt sprieguma dalītāju Arduino TX - BT RX līnijā, lai pazeminātu loģikas līmeni. Patiesībā, pat ja viss darbojas bez sadalītāja, kārtības labad labāk to ievietot. Dalītāja ķēde ir zemāka:

4. Arduino sagatavošana

Lai sāktu iestatīšanu, mums Arduino ir jāaugšupielādē papildu skice. Būtībā tā ir atkārtotāja programma, kas apmainīsies ar datiem starp datora termināli un Bluetooth moduli. Programma ir ārkārtīgi vienkārša: #include #iekļauts int gLedPin = 13; int gRxPin = 10; int gTxPin = 11; SoftwareSerial BTSerial (gRxPin, gTxPin); void setup() ( # 38400 - metodei Nr. 1, 9600 - metodei Nr. 2 BTSerial.begin(38400); Serial.begin(9600); delay(500); ) void loop() ( if (BTSerial. pieejams( )) ( Serial.write(BTSerial.read()); ) if (Serial.available()) ( BTSerial.write(Serial.read()); ) ) Augšupielādējiet skici Arduino un pārejiet uz nākamo solis.

5. Termināļa sagatavošana

Varat izmantot Arduino IDE iebūvēto porta monitoru kā termināli, vai arī varat izmantot jebkuru citu. Es izmantoju trešās puses termināli TeraTerm. Pirms savienojuma izveides ir jāveic divi svarīgi iestatījumi:
  • bodu ātrums: 9600;
  • rindas padeves rakstzīme: CR+LF.
Lūk, kā izskatās TeraTerm iestatījumi:
Kad viss ir pareizi konfigurēts, izveidojiet savienojumu ar COM portu un pārbaudiet savienojumu. Visas turpmākās manipulācijas ir racionāli sadalīt divās daļās: pakārtotajam modulim HC-06 un galvenajam HC-05.

6. HC-06 iestatīšana

Pārbauda savienojumu

Pēc tam, kad modulim tiek piegādāta strāva, gaismas diode sāks enerģiski mirgot:
Tagad dodieties uz termināli un ierakstiet komandu: AT Atbildot uz to, modulim mums ir jāpasaka: labi Mūsu nākamā komanda prasīs modulim tā versiju: AT+VERSIJA? Mēs iegūstam kaut ko līdzīgu: OKLinvor1.5 Vai notika? Ja nē, pārbaudiet:
  1. Savienojuma ātrums ar moduli, kas iestatīts tulkotāja programmā: saziņai ar vergu ātrumam jābūt 9600.
  2. Rindas plūsmas rakstzīmju iestatījumi: neaizmirstiet par CR+LF!
  3. Vai pēc katras komandas nospiežam Enter? Tu nekad nezini...

Noderīgas komandas

Bluetooth pakārtotajam modulim ir tikai trīs konfigurējami parametri:
  • komanda, lai mainītu ierīces paroli: AT+PIN<пароль>
  • ātruma maiņa: AT+BAUD<скорость>
  • mainīt ierīces nosaukumu: AT+NAME<имя>
Piemēram, lai mainītu paroli, ko mēs rakstām: AT+PIN4321 Kopumā tas ir gatavs! Tagad jūs varat izveidot savienojumu ar moduli, piemēram, no viedtālruņa. Tas tiks apspriests mana stāsta otrajā daļā.

7. HC-05 iestatīšana

Pārslēgšanās uz AT komandu režīmu

Lai piekļūtu galvenā moduļa iestatījumiem, tas ir jāpārslēdz uz AT komandu režīmu. Ir divas metodes, kuras varat izmantot, lai ievadītu šo režīmu (es vienmēr izmantoju pirmo). Pirmā metode:
  1. Atvienojiet moduli no barošanas avota.
  2. Kājai pieliekam +3.3V KEY signālu.
  3. Mēs ieslēdzam moduli.
Šajā opcijā valūtas maiņas kurss ar moduli ir iestatīts uz 38400. Otrā metode
  1. Mēs ieslēdzam moduli.
  2. Kājai pieliekam +3,3V KEY signālu;
Šajā gadījumā valūtas maiņas kurss ar moduli būs vienāds ar standarta iestatīto iestatījumu. Noklusējums ir 9600. Pēc veiksmīgas ievadīšanas AT komandu režīmā moduļa gaismas diode sāks mirgot reizi divās sekundēs.

HC savienojuma pārbaude

Pārbaudīsim HC-05 komandu režīmu tāpat kā vergu moduļa gadījumā: >>: AT <<: labi >>: AT+VERSIJA? <<: +VERSIJA:2.0-20100601

HC-05 iestatīšana kā vergu

Lai moduli pārvērstu par vergu, jums būs jāizpilda vairākas komandas: Atiestatīt iepriekšējos iestatījumus: AT+ORGL Pārī savienoto ierīču atiestatīšana: AT+RMAAD Paroles iestatīšana: AT+PSWD=1234 Vergu režīma iespējošana: AT+ROLE=0 Turklāt varat uzzināt ierīces adresi (nepieciešama pārī savienotā moduļa konfigurēšanai): AT+ADDR? Atbildot uz to, mēs saņemam pašu adresi: ADDR=12:6:143117 Pēc iestatīšanas atvienojiet KEY kāju no +3,3 V un restartējiet moduli. Gatavs!

HC-05 iestatīšana par galveno

Modulis nāk no rūpnīcas kā vergu, un, lai padarītu to par galveno, jums būs jāizpilda šādas komandas. Atiestatīt iepriekšējos iestatījumus: AT+ORGL Pārī savienoto ierīču atiestatīšana: AT+RMAAD Galvenā režīma iespējošana: AT+ROLE=1 Restartēt pēc lomas maiņas: AT+RESET Ja mēs vēlamies savienot vergu un galveno, mēs rakstām šādas komandas: Slave paroles iestatīšana: AT+PSWD=1234 Norādiet pārī savienoto ierīci: AT+PAIR=<адрес>,<таймаут> (piemērs: AT+PAIR=12,6,143117,5) Mēs saistām ar konkrētu adresi: AT+BIND=<адрес> (piemērs: AT+BIND=12,6,143117) Mēs aizliedzam izveidot savienojumu ar citām adresēm: AT+CMODE=0 Gatavs! Modulis tagad ir saistīts ar vergu un mēģinās ar to izveidot savienojumu katru reizi, kad tas tiks ieslēgts.

Un strādāt ar viņu.

Motora vairoga jauninājums

Izrādījās, ka Motor Shield moduļa ražotāji saviem klientiem atņēma iespēju savam produktam uzstādīt vēl vienu moduli. Acīmredzot viņiem patīk būt virsū vai vienkārši izspiest parasto kontaktu paneli.

Šī nianse man galīgi neder. Tāpēc nolēmu paņemt rokās lodāmuru un nogādāt Motor Shield sev ērtā formā.


Uzmanīgi izrāvu oriģinālās kontaktligzdas un izmetu.


Uzstādīju viņu vietā parastos.


Šajā formā modulis ir kļuvis daudz ērtāk lietojams. Tagad es varu pareizi savienot Bluetooth vadus ar savienotājiem, nevis pielodēt tos cieši pie motora vairoga kontaktiem.

Bluetooth modulis JY-MCU priekš Arduino


Pats JY-MCU Bluetooth modulis ir diezgan niecīgs. Piegādes komplektā ietilpst savienojuma kabelis. Tapu piešķiršana ir parādīta otrā pusē.


To var darbināt no 3,6-6V strāvas avota. Tas dod mums iespēju savienot to tieši ar Arduino, neizmantojot regulatoru vai sprieguma dalītāju.

Kods, ko izmanto, lai izveidotu savienojumu ar ierīci: 1234.

Bluetooth JY-MCU savienošana ar Arduino Mega 2560

Savienojums ir diezgan vienkāršs.

Oficiālā savienojuma shēma:

  • TXT uz JY-MCU izveidojiet savienojumu ar RX (0) uz Arduino
  • Savienojiet RXD uz JY-MCU ar TX (1) uz Arduino

Izmantojot šo savienojuma opciju, katru reizi pirms skices ielādes Bluetooth modulim būs jāizslēdz strāva. Neaizmirstiet par šo.

Es neesmu apmierināts ar šo iespēju, tāpēc es nolēmu izmantot diskrētos portus ar seriālo atbalstu.

Neoficiāla savienojuma shēma:

  • JY-MCU VCC ir savienots ar +5 V Arduino
  • Savienojiet GND uz JY-MCU ar GND Arduino
  • TXT uz JY-MCU savienots ar diskrētu PIN 50 uz Arduino
  • Savienojiet RXD JY-MCU, lai ar diskrētu PIN 51 uz Arduino

Tagad varat augšupielādēt skices, neizslēdzot Bluetooth moduļa strāvu.

Lai nodrošinātu Bluetooth, es nolēmu izmantot Proto Shield plati un miniatūru bezlodētu maizes dēli. Nākotnē tam pievienošu citu aprīkojumu, vadības ierīces un displejus.




Skice robota vadīšanai uz Arduino, izmantojot Bluetooth, izmantojot Android viedtālruni

Savā skicē es ieviesu šādas funkcijas:

  • Kustība uz priekšu
  • Pārvietojas atpakaļ
  • Pagriezies pa kreisi
  • Nogriezieties pa labi
  • Virzoties uz priekšu, vienmērīgs kreisais pagrieziens
  • Virzoties uz priekšu, vienmērīgs pagrieziens pa labi
  • Vienmērīgs kreisais pagrieziens, pārvietojoties atpakaļ
  • Vienmērīgs pagrieziens pa labi, pārvietojoties atpakaļ
  • Stop
  • Ātruma iestatījums 0%

    Ātruma iestatījums 10%

    Ātruma iestatījums 20%

    Ātruma iestatījums 30%

    Ātruma iestatījums 40%

    Ātruma iestatījums 50%

    Ātruma iestatījums 60%

    Ātruma iestatījums 70%

    Ātruma iestatījums 80%

    Ātruma iestatījums 90%

    Ātruma iestatījums 100%

Skicē izmantoju funkcijas, lai nedublētos kodu līdzīgiem notikumiem.

#iekļauts // Pievienojiet dzinēja vadības bibliotēku
#iekļauts // Savienojiet servo bibliotēku
#iekļauts // Savienojiet bibliotēku, lai strādātu ar seriālo, izmantojot diskrētos portus

//Izveidot objektus dzinējiem
AF_DCMotora motors1(1); //kanāls M1 uz Motor Shield - aizmugurē pa kreisi
AF_DCMotormotors2(2); //kanāls M2 uz Motor Shield - aizmugurē pa labi
AF_DCMotormotor3(3); //kanāls M3 uz Motor Shield - priekšējais pa kreisi
AF_DCMotormotor4(4); //kanāls M4 uz Motor Shield - priekšā pa labi

// Izveidojiet objektu servo
Servo vsservo;

SoftwareSerial BTSerial(50, 51); // RX, TX

// Izveidojiet mainīgo Bluetooth komandām
char vcmd;
// Izveidojiet mainīgos, lai atcerētos motoru ātrumu
int vspdL, vspdR;
/* Izveidojiet mainīgo, kura vērtība samazinās ātrumu vienmērīgu pagriezienu laikā.
Pašreizējam ātrumam jābūt lielākam par šo vērtību. Pretējā gadījumā motori griešanās virzienā vienkārši negriezīsies */
int vspd = 200;

anulēt iestatīšanu() (
// Iestatiet Bluetooth datu pārraides ātrumu
BTSerial.begin(9600);
// Iestatiet datu pārraides ātrumu, izmantojot kabeli
Serial.begin(9600);
// Izvēlieties tapu, pie kuras ir pievienots servo
vservo.attach(9); // vai 10, ja tas ir pievienots visattālākajam savienotājam
// Pagrieziet servo par 90 grādiem katru reizi, kad tas tiek ieslēgts
vservo.write(90);
// Iestatiet dzinēju maksimālo griešanās ātrumu
vspeed(255,255);
}

void loop() (
// Ja ir dati
ja (BTSerial.available())
{
// Izlasiet komandas un ievietojiet tās mainīgajā. char pārvērš komandas rakstzīmes kodu par rakstzīmi
vcmd = (char)BTSerial.read();
// Nosūtiet komandu uz portu, lai tās varētu pārbaudīt "Port Monitor"
Serial.println(vcmd);

// Uz priekšu
if (vcmd == "F") (
vforward();
}
// Atpakaļ
if (vcmd == "B")
{
vbackward();
}
// Pa kreisi
if (vcmd == "L")
{
vleft();
}
// Pa labi
if (vcmd == "R")
{
vright ();
}
// Taisni un pa kreisi
if (vcmd == "G")
{
vforwardleft();
}
// Taisni un taisni
if (vcmd == "es")
{
vforwardright();
}
// Atpakaļ un pa kreisi
if (vcmd == "H")
{
vbackwardleft();
}
// Aizmugure un pa labi
if (vcmd == "J")
{
vbackwardright();
}
// Stop
if (vcmd == "S")
{
vrelease();
}
// Ātrums 0%
if (vcmd == "0")
{
vspeed(0,0);
}
// Ātrums 10%
if (vcmd == "1")
{
vspeed(25,25);
}
// Ātrums 20%
if (vcmd == "2")
{
vspeed(50,50);
}
// Ātrums 30%
if (vcmd == "3")
{
vspeed(75,75);
}
// Ātrums 40%
if (vcmd == "4")
{
vspeed(100,100);
}
// Ātrums 50%
if (vcmd == "5")
{
vspeed(125,125);
}
// Ātrums 60%
if (vcmd == "6")
{
vspeed(150,150);
}
// Ātrums 70%
if (vcmd == "7")
{
vspeed(175,175);
}
// Ātrums 80%
if (vcmd == "8")
{
vspeed(200,200);
}
// Ātrums 90%
if (vcmd == "9")
{
vspeed(225,225);
}
// Ātrums 100%
if (vcmd == "q")
{
vspeed(255,255);
}
}
}

// Uz priekšu
Void vforward() (
vspeed(vspdL,vspdR);
vforwardRL();
}

// Uz priekšu par RL
Void vforwardRL() (
motor1.run(FORWARD);
motor2.run(FORWARD);
motor3.run(FORWARD);
motor4.run(FORWARD);
}

// Atpakaļ
void vbackward() (
vspeed(vspdL,vspdR);
vbackwardRL();
}

// Atpakaļ uz RL
Void vbackwardRL() (
motor1.run(ATPAKAĻ);
motor2.run(ATPAKAĻ);
motor3.run(ATPAKAĻ);
motor4.run(ATPAKAĻ);
}

// Pa kreisi
tukšs vleft() (
vspeed(vspdL,vspdR);
motor1.run(ATPAKAĻ);
motor2.run(FORWARD);
motor3.run(ATPAKAĻ);
motor4.run(FORWARD);
}

// Pa labi
tukšs vright() (
vspeed(vspdL,vspdR);
motor1.run(FORWARD);
motor2.run(ATPAKAĻ);
motor3.run(FORWARD);
motor4.run(ATPAKAĻ);
}

// Uz priekšu un pa kreisi
Void vforwardleft() (
if (vspdL > vspd) (
vspeed(vspdL-vspd,vspdR);
}
cits
{
vspeed(0,vspdR);
}
vforwardRL();
}

// Uz priekšu un pa labi
Void vforwardright() (
if (vspdR > vspd) (
vspeed(vspdL,vspdR-vspd);
}
cits
{
vspeed(vspdL,0);
}
vforwardRL();
}

// Atpakaļ un pa kreisi
Void vbackwardleft() (
if (vspdL > vspd) (
vspeed(vspdL-vspd,vspdR);
}
cits
{
vspeed(0,vspdR);
}
vbackwardRL();
}

// Aizmugure un pa labi
Void vbackwardright() (
if (vspdR > vspd) (
vspeed(vspdL,vspdR-vspd);
}
cits
{
vspeed(vspdL,0);
}
vbackwardRL();
}

// Stop
anulēt vrelease())(
motor1.run(RELEASE);
motor2.run(RELEASE);
motor3.run(RELEASE);
motor4.run(RELEASE);
}

// Mainīt ātrumu
void vspeed(int spdL,int spdR)(
if (spdL == spdR) (
vspdL=spdL;
vspdR=spdR;
}
motor1.setSpeed(spdL);
motor2.setSpeed(spdR);
motor3.setSpeed(spdL);
motor4.setSpeed(spdR);
}

Bluetooth RC Car programma - robota automašīnas vadīšana no Android viedtālruņa

Es savā viedtālrunī instalēju programmu Bluetooth RC Car. Manuprāt, šī ir labākā programmatūra robota automašīnas vadīšanai.


Programma ļauj pārsūtīt komandas, nospiežot pogas vai reaģēt uz datiem no viedtālruņa akselerometra, pielāgot kustības ātrumu ar slīdni, ieslēgt priekšējos un aizmugurējos lukturus, ieslēgt un izslēgt skaņas signālu, ieslēgt un izslēgt avārijas signāls.




Programmai nepieciešama Android versija 2.3.3 vai jaunāka. Programmas izmērs ir 3 megabaiti.

Komandu saraksts:

  • F – uz priekšu
  • B – aizmugure
  • L – pa kreisi
  • R - pareizi
  • G – taisni un pa kreisi
  • Es – taisni un pa labi
  • H – atpakaļ un pa kreisi
  • J – atpakaļ un pa labi
  • S – stop
  • W – ieslēgts priekšējais lukturis
  • w – priekšējais lukturis ir izslēgts
  • U – ieslēgts aizmugurējais lukturis
  • u – aizmugurējais lukturis ir izslēgts
  • V – ir ieslēgts skaņas signāls
  • v – skaņas signāls ir izslēgts
  • X – ir ieslēgts avārijas signāls
  • x - avārijas signāls ir izslēgts
  • 0 – kustības ātrums 0%
  • 1 – kustības ātrums 10%
  • 2 – kustības ātrums 20%
  • 3 – kustības ātrums 30%
  • 4 – kustības ātrums 40%
  • 5 – kustības ātrums 50%
  • 6 – kustības ātrums 60%
  • 7 – kustības ātrums 70%
  • 8 – kustības ātrums 80%
  • 9 – kustības ātrums 90%
  • q – kustības ātrums 100%

Kā redzat, radošuma testēšanas vieta ir diezgan laba. Es arī pievienotu iespēju atsevišķi ieslēgt labo un kreiso lukturi priekšējiem un aizmugurējiem lukturiem.

Es esmu izcēlis treknrakstā komandas, kas jau ir atbalstītas skicē. Pārējo izmantošu citam mērķim.

Komandu pārsūtīšanas princips: programmā nospiežot pogu, komanda vienreiz tiek pārraidīta pa Bluetooth, un, atlaižot pogu, nekavējoties tiek pārraidīta S-stop komanda.

Darba demonstrēšana

Nākamreiz plānoju pieslēgt robotam ultraskaņas diapazona meklētāju un ieviest šķēršļu izvairīšanās algoritmu.