- Reikalavimai:
- Programinės įrangos atsisiuntimas ir diegimas:
- „Arduino“ aparatinės įrangos dalis ir grandinės schema:
- „Arduino“ programinės įrangos dalis:
- „Android“ mobilioji programa ultragarso radarams:
- Darbinis paaiškinimas:
Tai yra įdomus projektas, kurio metu mes ištiriame „Arduino“ ir „Android“ galią, kad sukurtume stebėjimo įrenginį, kuris „Arduino“ ir „Ultra Sonic Sensor“ naudodamas informaciją perduoda mobiliajai programai („Android“) naudojant „Bluetooth“.
Saugumas ir saugumas buvo mūsų pagrindinis rūpestis nuo amžių. Įdiegę saugos kamerą, kuri turi naktinį režimą su pakreipimo ir pakėlimo galimybe, mūsų kišenėse bus sudeginta didelė skylė. Taigi padarykime ekonominį prietaisą, kuris veikia beveik tą patį, bet be jokių vaizdo funkcijų.
Šis prietaisas objektus pajunta naudodamas ultragarso jutiklį, todėl gali veikti net nakties metu. Mes taip pat montuojame JAV („Ultra Sonic“) jutiklį ant servovariklio. Šis servo variklis gali būti nustatytas automatiškai pasisukti, kad nuskaitytų sritį, arba gali būti pasuktas rankiniu būdu, naudojantis mūsų mobiliąja programa, kad galėtume sutelkti ultragarso jutiklį mūsų reikalinga kryptis ir nujaučia ten esančius daiktus. Visa informacija, kurią užfiksuoja JAV jutiklis, bus transliuojama į mūsų išmanųjį telefoną naudojant „Bluetooth“ modulį (HC-05). Taigi jis veiks kaip sonaras ar radaras.
Įdomi teisė ??…. Pažiūrėkime, ko mums reikės šiam projektui atlikti.
Reikalavimai:
Techninė įranga:
- A + 5 V maitinimo šaltinis (maitinimui naudoju savo „Arduino“ (kitą) plokštę)
- „Arduino Mega“ (galite naudoti bet ką - nuo „pro mini“ iki „Yun“)
- Servo variklis (bet koks įvertinimas)
- „Bluetooth“ modulis (HC-05)
- „Ultra Sonic“ jutiklis (HC-SR04)
- Breadboard (neprivaloma)
- Jungiamieji laidai
- „Android“ mobilusis
- Kompiuteris programavimui
Programinė įranga:
- „Arduino“ programinė įranga
- „Android“ SDK
- Apdorojama „Android“ (norint sukurti programą mobiliesiems)
Kai būsime pasirengę savo medžiagoms, pradėkime kurti aparatinę įrangą. Šį vadovėlį padalinau į „Arduino“ ir „Apdorojimo“ dalis, kad būtų lengviau suprasti. Žmonės, kurie dar nepradėjo apdoroti, neturi daug bijoti, nes instrukcijos pabaigoje pateikiamas visas kodas, kurį galima naudoti kaip tokį.
Programinės įrangos atsisiuntimas ir diegimas:
„ Arduino IDE“ galima įdiegti iš čia. Atsisiųskite programinę įrangą pagal savo OS ir įdiekite ją. „Arduino IDE“ reikės tvarkyklės, kad galėtų bendrauti su jūsų „Arduino“ aparatine įranga. Ši tvarkyklė turėtų būti įdiegta automatiškai, kai prijungsite plokštę prie kompiuterio. Pabandykite iš pavyzdžių įkelti mirksėjimo programą, kad įsitikintumėte, jog „Arduino“ veikia ir veikia.
Apdorojimas IDE gali būti įdiegta iš čia. Apdorojimas yra puiki atvirojo kodo programa, kurią galima naudoti daugeliui dalykų, ji turi įvairius režimus. „Java“ režimu galime sukurti „Windows“ kompiuterio programas (.EXE failus), o „Android“ režimu - „Android“ mobilias programas (.APK failus). Jame taip pat yra kitų režimų, pvz., „Python mode“, kur galite rašyti jums „python“ programas. Šioje pamokoje nebus aptarti apdorojimo pagrindai, taigi, jei norite išmokti Java programavimo ar apdorojimo, pereikite į šį puikų „YouTube“ kanalą čia.
„Arduino“ aparatinės įrangos dalis ir grandinės schema:
Šis projektas apima daugybę komponentų, tokių kaip servovariklis, „Bluetooth“ modulis, ultragarso jutiklis ir kt. Taigi, jei esate visiškai pradedantysis, rekomenduojama pradėti nuo kai kurių pagrindinių pamokų, kuriose yra šie komponentai, ir tada grįžti čia. Peržiūrėkite mūsų įvairius servovariklio, „Bluetooth“ modulio ir ultragarso jutiklio projektus čia.
Visų komponentų maitina ne pats „Arduino“, nes servo variklis, „Bluetooth“ modulis ir JAV jutiklis iš viso pritraukia daug srovės, kurios „Arduino“ negalės gauti. Todėl griežtai patartina naudoti bet kokį išorinį + 5 V maitinimo šaltinį. Jei neturite išorinio + 5 V maitinimo šaltinio, galite pasidalinti komponentais tarp dviejų „Arduino“ plokščių, kaip aš padariau. Prijungiau „Servos“ maitinimo bėgius prie kitos „Arduino“ plokštės (raudonos spalvos) ir prie „Arduino“ mega prijungiau „Bluetooth“ modulį HC-05 ir ultragarso jutiklį HC-SR04. ĮSPĖJIMAS: Įjungus visus šiuos modulius naudojant vieną „Arduino“ plokštę, „Arduino“ įtampos reguliatorius bus apkepęs.
Šio „ Arduino“ pagrindu sukurto sonaro projekto ryšio schema pateikta žemiau:
Atlikę jungtis, pritvirtinkite JAV jutiklį prie „Servo“ variklio, kaip parodyta žemiau:
Jutikliui montuoti panaudojau mažą plastikinį gabalėlį, kuris buvo mano šiukšlėje, ir dvigubą šoninę juostą. Jūs galite sugalvoti padaryti tą patį. Rinkoje taip pat yra servo laikiklių, kuriuos galima naudoti tam pačiam tikslui.
Kai servo bus sumontuotas ir bus suteiktos jungtys, jis turėtų atrodyti maždaug taip.
Laikykitės viršuje pateiktų schemų, jei neteisingi ryšiai. Dabar pradėkime programuoti „Arduino Mega“ naudodami „Arduino IDE“.
„Arduino“ programinės įrangos dalis:
Turime parašyti savo kodą, kad galėtume apskaičiuoti atstumą tarp objekto ir „Ultra Sonic“ jutiklio ir nusiųsti jį į savo mobiliąją programą. Mes taip pat turime parašyti kodą, kad servo variklis galėtų nušluoti ir valdyti duomenis iš „Bluetooth“ modulio. Tačiau nesijaudinkite, kad „Arduino“ ir jo bibliotekų dėka programa yra daug paprastesnė, nei galite atvaizduoti. Visas kodas pateikiamas žemiau kodo skyriuje.
Žemiau funkcija naudojama tam, kad servo variklis automatiškai brauktų iš kairės į dešinę (nuo 170 iki 10) ir vėl iš dešinės į kairę (nuo 10 iki 170). Du, skirti kilpoms, naudojami tam pačiam tikslui pasiekti. Funkcija „us“ () abiejose funkcijose yra vadinama apskaičiuoti atstumą tarp jutiklio ir objekto ir perduoti jį į „Bluetooth“. Skiriama 50 ms uždelsimas, kad servo suktųsi lėtai. Kuo lėčiau variklis sukasi, tikslūs jūsų rodmenys.
// ** Servo valymo funkcija ** // void servofun () {Serial.println ("Sweeping"); // derinimui (posc = 10; posc <= 170; posc ++) // Naudoti nuo 10 iki 170 laipsnių yra saugu nei nuo 0 iki 180, nes kai kurie servo gali neveikti esant kraštutiniams angelams {servo.write (posc); // nustatykite servo variklio vėlavimo padėtį (50); mus (); // išmatuokite objektų atstumą, atlikdami JAV jutiklį} (posc = 170; posc> = 10; posc--) {servo.write (posc); vėlavimas (50); mus (); // išmatuokite objektų atstumą dainuodami JAV jutiklį} Serial.println ("Scan Complete"); // už derinimo vėliavą = 0; } // ** Servo šlavimo funkcijos pabaiga ** //
Kaip minėta anksčiau, servovariklis taip pat gali būti valdomas rankiniu būdu iš išmaniojo telefono. Jūs tiesiog braukite į dešinę, kad variklis judėtų į dešinę, ir braukite kairėn, kad variklis judėtų kairėn. Minėta funkcija naudojama tam pačiam tikslui pasiekti. Servo variklio angelą tiesiogiai priims „Bluetooth“ modulis ir jis bus saugomas kintamajame „ BluetoothData“ , tada servo yra toje pačioje angelėje , naudodamas liniją servo.write („BluetoothData“).
// ** Funkcija rankiniam servo valdymui ** // void manualservo () {us (); // Gaukite vertę iš vartotojo ir valdykite servo funkciją, jei (Blueboy.available ()) {BluetoothData = Blueboy.read (); Serial.println („BluetoothData“); servo.write („BluetoothData“); Serial.println („Parašyta“); if („BluetoothData == 'p') {flag = 0; }}} // __ rankinio valdymo funkcijos pabaiga __ //
Atstumas metu iki objekto bus apskaičiuojamas žemiau funkcija. Tai veikia naudojant paprastas formules, kurios greitis = atstumas / laikas. Kadangi mes žinome JAV bangos greitį ir laiko atstumą, atstumą galima apskaičiuoti naudojant aukščiau pateiktas formules.
// ** Funkcija matuoti atstumą ** // anuliuoti mus () {int trukmė, atstumas; „digitalWrite“ (trigPin, HIGH); vėlavimasMikrosekundės (1000); „digitalWrite“ (trigPin, LOW); trukmė = pulseIn (echoPin, HIGH); atstumas = (trukmė / 2) / 29,1; // Apskaičiuoja atstumą nuo jutiklio if (atstumas <200 && atstumas> 0) Blueboy.write (atstumas); } // __ Atstumo matavimo funkcijos pabaiga __ //
Jei turite kokių nors abejonių dėl programos, drąsiai naudokitės komentarų skiltimi. Taigi, kai būsime pasirengę naudoti savo kodą, galime nedelsdami išmesti kodą į savo aparatinę įrangą. Bet stebėjimo prietaisas nepradės veikti, kol nebus prijungtas prie „Android“ programos. Taip pat patikrinkite, ar vaizdo įrašas nėra visiškai veikiantis.
„Android“ mobilioji programa ultragarso radarams:
Jei nenorite kurti savo programos, o norite tiesiog įdiegti tą pačią programą, naudojamą šioje pamokoje, galite atlikti toliau nurodytus veiksmus.
1. Galite tiesiogiai atsisiųsti APK failą iš toliau pateiktos nuorodos. Šis APK failas skirtas 4.4.2 ir naujesnės versijos „Android“ (naujesnė „Kitkat“). Ištraukite APK failą iš ZIP failo.
„Android“ programa ultragarso radarams
2. Perkelkite.Apk failą iš savo kompiuterio į mobilųjį telefoną.
3. „Android“ nustatymuose įgalinkite programos diegimą iš nežinomų šaltinių.
4. Įdiekite programą.
Jei sėkmingai įdiegsite, telefone rasite programą, pavadintą „Zelobt“, kaip parodyta žemiau:
Jei įdiegėte šį APK, galite praleisti žemiau esančią dalį ir pereiti į kitą skyrių.
Savo programos programavimas naudojant apdorojimą:
Arba galite naudoti aukščiau pateiktą.APK failą, arba galite sukurti savo programą naudodami apdorojimą, kaip paaiškinta čia. Turint mažai žinių apie programavimą, taip pat labai lengva parašyti savo kodą savo „Android“ programai. Tačiau jei jūs tik pradedate, tada nepatartina pradėti nuo šio kodo, nes jis šiek tiek aukštesnis nei pradedančiųjų lygis.
Ši programa naudoja dvi bibliotekas, būtent „Ketų biblioteka“ ir „ControlP5 biblioteka“ . Ketai biblioteka naudojama valdyti visą aparatūrą, esančią mūsų mobiliajame telefone. Ši biblioteka gali lengvai pasiekti tokius dalykus kaip jūsų telefonų akumuliatoriaus įkrovos lygis, artumo jutiklio vertės, akselerometro jutiklio vertės, „Bluetooth“ valdymo parinktys ir kt. Šioje programoje mes naudojame šią biblioteką norėdami užmegzti ryšį tarp telefonų „Bluetooth“ ir „Arduino Bluetooth“ (HC-05). "ControlP5 biblioteka" yra naudojamas sklypas grafikus mūsų radaro sistemą.
Visa „ Android“ programa pridedama, ją galite atsisiųsti iš čia.
ĮSPĖJIMAS: Nepamirškite įdiegti aukščiau paminėtų bibliotekų ir nekopijuokite vienos kodo dalies, nes kodas importuoja vaizdus iš duomenų aplanko, kuris iš viso pateiktas aukščiau pateiktame priede. Taigi atsisiųskite ir naudokite tik tai.
Baigę kodavimo dalį ir sėkmingai ją sukompiliavę, galite tiesiogiai prijungti savo mobilųjį telefoną prie kompiuterio duomenų kabeliu ir spustelėti mygtuką „Atkurti“, kad nutildytumėte programą ant savo mobiliojo telefono. Taip pat patikrinkite kitus mūsų apdorojimo projektus: „Ping Pong“ žaidimą naudodami „Arduino“ ir „Smart Phone“ valdomą FM radiją naudodami „Processing“.
Darbinis paaiškinimas:
Dabar mes pasiruošę aparatinei ir programinei įrangai. Įjunkite aparatinę įrangą ir suporuokite mobilųjį telefoną su „Bluetooth“ moduliu. Susieję atidarykite „Zelobt“ programą, kurią ką tik įdiegėme, ir dabar palaukite sekundę, ir turėtumėte pastebėti, kad „ Bluetooth“ modulis (HC-05) automatiškai prisijungia prie išmaniojo telefono. Užmezgus ryšį, gausite šį ekraną:
Galite pastebėti, kad ekrano viršuje parašyta, kad prijungta prie: Įrenginio pavadinimas (aparatūros adresas). Taip pat rodomas dabartinis servovariklio angelas ir atstumas tarp JAV jutiklio. Remiantis išmatuotu atstumu, raudoname fone taip pat pavaizduotas mėlynas grafikas. Kuo arčiau objektas tampa, tuo aukštesnė yra mėlyna sritis. Grafikas, išmatuotas, kai kai kurie objektai yra šalia, taip pat parodytas antrame aukščiau esančiame paveiksle.
Kaip minėta anksčiau, servovariklį taip pat galite valdyti naudodamiesi savo mobiliąja programa. Norėdami tai padaryti, tiesiog spustelėkite mygtuką sustabdyti. Tai sustabdys jūsų servo automatinį šlavimą. Ekrano apačioje taip pat galite rasti apskritą ratą, kuris perbraukus pasuks laikrodžio arba prieš laikrodžio kryptį. Perbraukdami šį ratą taip pat galite priversti savo servo variklį pasisukti būtent ta kryptimi. Ratas ir grafikas, atnaujinti perbraukus, parodyti paveikslėlyje žemiau.
„Arduino“ kodas pateikiamas žemiau, o „Android“ programos APK failas yra čia. Viso projekto darbas parodytas toliau pateiktame vaizdo įraše. Tikiuosi, kad supratote projektą. Jei turite kokių nors problemų, maloniai naudokite toliau pateiktą komentarų skyrių.