INHOUDSOPGAWE:

Robotmotor met Bluetooth, kamera en MIT App Inventor2: 12 stappe (met foto's)
Robotmotor met Bluetooth, kamera en MIT App Inventor2: 12 stappe (met foto's)

Video: Robotmotor met Bluetooth, kamera en MIT App Inventor2: 12 stappe (met foto's)

Video: Robotmotor met Bluetooth, kamera en MIT App Inventor2: 12 stappe (met foto's)
Video: MIT App Inventor 2 - bluetooth car control app develope||Arduino car control 2024, Julie
Anonim
Image
Image
Onderdele en sagteware
Onderdele en sagteware

Wou u ooit u eie robotmotor bou? Wel … dit is jou kans !!

In hierdie instruksies sal ek jou leer hoe om 'n robotmotor te maak wat beheer word via Bluetooth en MIT App Inventor2. Wees bewus daarvan dat ek 'n nuweling is en dat dit my eerste aanvoeling is, so wees vriendelik in u kommentaar.

Daar is baie instruksies daar buite, maar in hierdie een het ek probeer om baie funksies te kombineer, soos: kamera -stroming, vermyding van hindernisse, ultraklankafstandsensor, Larson -skandeerder (met charlieplexing) en batterymonitering na 'n Android -app !!

Laat ons dus begin en vir Frankie ontmoet (dit gebruik idees van baie plekke af … vandaar Robo Frankenstein)

Stap 1: Onderdele en sagteware

Onderdele en sagteware
Onderdele en sagteware
Onderdele en sagteware
Onderdele en sagteware

Hier, in my tuisdorp, is dit moeilik om al die onderdele te kry, daarom kon ek die meeste van hulle op www.aliexpress.com kry

Ek skat dat die projek vir $ 25 - 30 gebou kan word sonder om die ou selfoon in ag te neem.

  • Motor onderstel: 3 wiele, 2 motors 6V (USD 9)
  • Arduino Nano (USD 2)
  • Bluetooth HC-05 (3 tot 4 dollar)
  • L293D -motorbestuurder om wielmotors aan te dryf (1,50 dollar vir 5 stukke)
  • Ou selfoon met kamera en Wi-Fi
  • Ultrasoniese sensor HC-SR04 vir meting aan 'n voorwerp in die omgewing (USD 1)
  • 6 LED's vir Larson -skandeerder
  • ATtiny85 vir Larson -skandeerder (USD 1)
  • Broodbord (USD 1)
  • Drade
  • 100K Ohm weerstand (4)
  • 1K Ohm weerstand (2)
  • 2K Ohm weerstand (1)
  • 270 Ohm weerstand (3)
  • Gonser

Sagteware:

  • Arduino IDE
  • IP -webkamera (vir ou mobiele Android)
  • MIT App Inventor2: Hierdie app is wonderlik, maar werk slegs vir Android -bedryfstelsels (geen Iphones nie … jammer!)

Stap 2: Bouproses

Bouproses
Bouproses
Bouproses
Bouproses
Bouproses
Bouproses
Bouproses
Bouproses

Motor onderstel is baie maklik om te monteer; dit het 2 motors van 6V wat agterwiele aandryf en 'n 4 -battery.

Die Robot-motor word beheer via Bluetooth en Wi-Fi. Bluetooth beheer die seriële kommunikasie tussen die Car en MIT App inventor2 en Wi-Fi word gebruik om te kommunikeer met die kamera (ou selfoon) wat voor die motor geïnstalleer is.

Vir hierdie projek het ek twee stel batterye gebruik: die arduino word aangedryf deur 'n 9V -battery en die motormotors met 6V (vier 1.5V AA -batterye).

Arduino Nano is die brein van hierdie projek wat die motor, gonser, ultrasoniese reikafstandsensor HC-SR04, Bluetooth HC-05, Larson-skandeerder (ATtiny85) beheer en die batterye monitor. 9V -battery gaan na Vin (pen 30) en Arduino se pen 27 gee 5V gereguleerde krag aan broodbord. Moet alle gronde van al die IC's en batterye bymekaarmaak.

Aangeheg, het die kringdiagram dit in Excel gemaak (jammer …. volgende keer probeer ek Fritzing). Ek het alles met 'n broodbord en 'n mannetjie verbind met 'n manlike draad, en myne lyk soos 'n rotnes.

Stap 3: L293D -motorbestuurder

L293D motorbestuurder
L293D motorbestuurder
L293D motorbestuurder
L293D motorbestuurder

L293D is 'n viervoudige halfstroom H-drywer met 'n hoë stroom wat ontwerp is om tweerigting-dryfstrome van tot 600 mA te verskaf by spannings van 4,5V tot 36V. Dit word gebruik om die motorwiele te bestuur.

Dit word aangedryf deur 'n 6V -batterypak (vier 1.5V AA) vir die motors en gebruik 5V vir die logika wat afkomstig is van gereguleerde 5V (pen 27) in Arduino Nano. Verbindings word getoon in die aangehegte skema.

Dit was nie nodig om dit in 'n koelkas te installeer nie.

Stap 4: HC-05 Bluetooth

HC-05 Bluetooth
HC-05 Bluetooth

HC-05 Bluetooth word aangedryf deur 5V (arduino pin 27), maar dit is belangrik om te verstaan dat die logiese vlak 3.3V is, dit wil sê kommunikasie (Tx en Rx) met 3.3V. Daarom moet Rx gekonfigureer word met 'n maksimum van 3,3V wat bereik kan word met 'n vlakverskuiwingsomskakelaar of, soos in hierdie geval, met 'n spanningsverdeler deur 'n 1K- en 2K -weerstand te gebruik, soos gesien in die stroombaan.

Stap 5: Batterymonitor

Om die batterivlakke te monitor, het ek spanningsverdelers ingestel om die spanningsvlakke onder 5V te bring (maksimum bereik van Arduino). Die spanningsverdeler verminder die spanning wat gemeet word binne die omvang van die Arduino analoog insette.

Die analoog ingange A4 en A6 word gebruik en hoë weerstande (100K ohm) word gebruik om die batterye nie te veel in die meetproses te laat leegloop nie. Ons moet 'n kompromie aangaan, as weerstande te laag is (10K ohm), minder laai -effek, is spanninglesing meer akkuraat, maar meer stroomtekening; as hulle te hoog is (1M ohm), meer laai -effek, is spanninglesing minder akkuraat, maar minder stroomtekening.

Elke 10 sekondes word die battery gemonitor en direk in u selfoon van die beheerder vertoon.

Ek is seker daar is baie ruimte vir verbetering in hierdie deel, aangesien ek van twee analoog penne lees en die interne MUX tussen hulle wissel. Ek bereken nie veelvuldige metings nie, en miskien is dit wat ek moet doen.

Laat ek die volgende formule verduidelik:

// Lees spanning van analoog pen A4 en maak kalibrasie vir Arduino:

spanning1 = (analogRead (A4)*5.0/1024.0)*2.0; //8.0V

Die Arduino nano-bord bevat 8-kanaals, 10-bis analoog na digitaal omskakelaar. Funksie analogRead () gee 'n getal tussen 0 en 1023 terug wat eweredig is aan die hoeveelheid spanning wat op die pen aangewend word. Dit lewer 'n resolusie tussen die lesings van: 5 volt / 1024 eenhede of, 0,0049 volt (4,9 mV) per eenheid.

Spanningsverdeler halveer die spanning en moet met 2 vermenigvuldig word om die ware spanning te kry!

BELANGRIK: ek is seker daar is 'n meer doeltreffende manier om 'n arduino aan te dryf as die manier waarop ek dit doen! As 'n nuweling het ek op die harde manier geleer. Arduino Vin pin gebruik 'n lineêre spanningsreguleerder, wat beteken dat u met 'n 9V -battery 'n groot deel van die krag in die lineêre reguleerder self sal verbrand! Nie goed nie. Ek het dit so gedoen omdat dit vinnig was en net omdat ek nie van beter geweet het nie … maar wees seker dat ek dit in Robo Frankie weergawe 2.0 beslis anders sal doen.

Ek dink hardop dat 'n DC DC Step up Switching Power Supply en 'n Li-ion herlaaibare battery 'n beter manier kan wees. U vriendelike voorstel sal meer as welkom wees …

Stap 6: HC-SR04 Ultrasoniese afstandsensor

Ultrasoniese afstandsensor HC-SR04
Ultrasoniese afstandsensor HC-SR04

HC-SR04 is 'n ultrasoniese reeks sensor. Hierdie sensor bied metings van 2 cm tot 400 cm met 'n reikafstand van tot 3 mm. In hierdie projek word dit gebruik om hindernisse te vermy wanneer dit 20 cm of minder bereik, en ook om die afstand te meet na enige voorwerp wat na u selfoon teruggestuur word.

Daar is 'n knoppie op u selfoonskerm waarop u moet klik om afstand na 'n voorwerp in die omgewing te vra.

Stap 7: Larson -skandeerder

Larson skandeerder
Larson skandeerder
Larson skandeerder
Larson skandeerder
Larson skandeerder
Larson skandeerder

Ek wou iets lekker insluit, so ek het Larson -skandeerder ingesluit wat lyk soos K. I. T. T. van Knight Rider.

Vir die Larson -skandeerder het ek ATtiny85 gebruik met charplexing. Charlieplexing is 'n tegniek om 'n multiplex -skerm te bestuur waarin relatief min I/O -penne op 'n mikrobeheerder gebruik word om 'n verskeidenheid LED's aan te dryf. Die metode gebruik die drie-staat logika-vermoëns van mikrobeheerders om doeltreffendheid te verkry bo tradisionele multiplexing.

In hierdie geval gebruik ek 3 penne van ATtiny85 om 6 LED's aan te steek !!

U kan 'X' LED's met N -penne aansteek. Gebruik die volgende formule om te bepaal hoeveel LED's u kan bestuur:

X = N (N-1) LED's met N penne:

3 penne: 6 LED's;

4 penne: 12 LED's;

5 penne: 20 LED's … jy kry die idee;-)

Stroom vloei van positief (anode) na negatief (katode). Die punt van die pyl is katode.

Dit is belangrik om daarop te let dat pen 1 (in Arduino IDE -kode) verwys na fisiese pen 6 in ATtiny85 (verwys na aangehegte pinout).

Hier vind u die kode wat opgelaai moet word na ATtiny85 wat die Larson -skandeerder beheer. Ek beskryf nie hoe om 'n kode in ATtiny85 op te laai nie, aangesien daar baie instruksies is wat dit soos hierdie kan doen.

Stap 8: Kode

Kode
Kode

Ek heg die kode aan wat opgelaai moet word na ATtiny85 wat die Larson -skandeerder en die kode vir Arduino nano's beheer.

Wat die Arduino -nano betref, het ek 'n deel van kodes van ander instruksies (hier) gebruik en veranderings gemaak om aan my behoeftes te voldoen. Ek het 'n vloeidiagram (ook in woord vir 'n duideliker beeld) van die kode ingesluit om beter te verstaan hoe die Switch - Case werk.

Belangrik: om CarBluetooth-kode in die Arduino nano op te laai, moet u Rx en Tx van die HC-05 Bluetooth-module ontkoppel!

Stap 9: kamera

Kamera
Kamera
Kamera
Kamera

Die IP -webkamera -app moet van die speelwinkel afgelaai word en op u ou selfoon geïnstalleer word. Kyk vir video -voorkeure, pas die resolusie dienooreenkomstig aan en gaan uiteindelik na die laaste opdrag "Start server" om die oordrag te begin. Moenie vergeet om Wi-Fi in u selfoon aan te skakel nie !!

Stap 10: MIT App Inventor2

MIT App Uitvinder 2
MIT App Uitvinder 2

MIT App inventor2 is 'n wolk -gebaseerde hulpmiddel wat help om programme in u webblaaier te bou. Hierdie app (slegs vir Android -gebaseerde selfone) kan dan na u selfoon opgelaai word en u robotmotor beheer.

Ek heg 'n.apk- en.aia -kode aan, sodat u kan sien wat ek gedoen het en dit kan verander soos u wil. Ek het 'n kode van die internet (MIT App) gebruik en my eie wysigings aangebring. Hierdie kode beheer die beweging van die robotmotor, ontvang 'n sein van die ultrasoniese sensor, skakel ligte aan en piep die gonser. Dit ontvang ook sein van die batterye wat ons die spanningsvlak laat weet.

Met hierdie kode sal ons twee verskillende seine van die motor kan ontvang: 1) afstand na 'n voorwerp in die omgewing en 2) spanning van motor- en arduino -batterye.

Om die reeksreeks wat ontvang is, te identifiseer, het ek 'n vlag in die kode van Arduino ingesluit wat die tipe tou wat gestuur is, spesifiseer. As Arduino die afstand wat deur die ultrasoniese sensor gemeet is, stuur, stuur dit 'n "A" -teken voor die snaar. Elke keer as Arduino batteryvlakke stuur, stuur dit 'n vlag met 'n "B" -teken. In die MIT App inventors2 -kode het ek die reeksreeks wat uit Arduino kom, ontleed en gekyk of hierdie vlae was. Soos ek gesê het, ek is 'n nuweling en ek is seker daar is meer doeltreffende maniere om dit te doen, en ek hoop dat iemand my op 'n beter manier kan inlig.

Stuur Arduino_Bluetooth_Car.apk na u selfoon (via e -pos of Google Drive) en installeer dit.

Stap 11: Koppel u selfoon aan u RC -motor

Koppel jou selfoon aan jou RC -motor
Koppel jou selfoon aan jou RC -motor
Koppel u selfoon aan u RC -motor
Koppel u selfoon aan u RC -motor

Skakel eers wi-fi aan in 'n ou selfoon (die in RC-robot).

Skakel u wi-fi, Bluetooth in u beheerder se selfoon aan en maak Arduino_Bluetooth_Car.apk oop wat u pas geïnstalleer het. Aan die einde van die skerm (blaai af as u dit nie kan sien nie), sal u twee knoppies sien: toestelle en Koppel. Klik op Toestelle en kies die Bluetooth van u RC -motor (behoort iets te wees HC 05), klik dan op VERBIND en u sal die VERBONDE boodskap onder aan die linkerkant van u skerm sien. Die eerste keer word u gevra om 'n wagwoord (voer 0000 of 1234 in).

Daar is 'n boks waarin u die IP -adres van u ou selfoon (selfoon in u RC -motor) moet tik, in my geval is dit

Hierdie IP-nommer kan in u Wi-Fi-router opgespoor word. U moet by u router -konfigurasie ingaan, toestelle lys kies (of iets dergeliks, afhangend van u router -handelsmerk), en u moet u ou selfoon kan sien; klik daarop en voer hierdie IP -nommer in hierdie blokkie in.

Kies dan CAMERA en u moet begin kyk na die kamerastroom vanaf u RC -motor.

Stap 12: U is klaar

Jy is klaar!
Jy is klaar!

Jy is klaar! Begin daarmee speel

Toekomstige veranderinge: ek sal die 9V-battery met Li-ion-batterye verander om dit te herlaai en 'n DC-DC-spanning-spanningsreguleerder te gebruik, ek wil ook die batterymonitor verbeter deur die analoogmetings glad te maak (gemiddeld). Nie van plan om A. I. tog …;-)

Ek het deelgeneem aan my eerste instruksionele wedstryd … stem dus;-)

Aanbeveel: