Matkapuhelinohjattu robotti-auto DTMF-moduulin avulla

Kokeile Instrumenttia Ongelmien Poistamiseksi





Tässä projektissa aiomme ohjata manuaalista robottia matkapuhelimemme kautta DTMF-moduulin ja Arduinon avulla.

Kirjoittajat: Ankit Negi, Kanishk Godiyal ja Navneet Singh sajwan



Matkapuhelinohjattu robotti-auto DTMF-moduulin avulla

JOHDANTO

Tässä projektissa käytetään kahta matkapuhelinta, yhtä soittamiseen ja toista puhelun vastaanottamiseen. Puhelun vastaanottava puhelin on kytketty robottiin ääniliittimen kautta.

Soittaja voi hallita robottia vain painamalla valintanäppäimiä. (ts. robottia voidaan käyttää mistä päin maailmaa tahansa).



VAADITUT KOMPONENTIT

1 - Arduino UNO

2 - Manuaalinen robotti

3-4 moottoria (tässä käytimme 300 kierrosta minuutissa)

4 - DTMF-moduuli

5 - Moottorin kuljettaja

6 - 12 voltin akku

7 - Kytkin

8 - Kuulokeliitäntä

9 - Kaksi matkapuhelinta

10 - Liitäntäjohdot

TIETOJA MANUAALISESTA ROBOTISTA

Manuaalinen robotti koostuu alustasta (rungosta), johon voidaan kiinnittää kolme tai neljä moottoria (jotka on ruuvattu renkailla) tarpeen mukaan.

Käytettävät moottorit riippuvat vaatimuksistamme, ts. Ne voivat tuottaa joko suuren nopeuden tai suuren vääntömomentin tai hyvän yhdistelmän molemmista. Quad-kopterin kaltaiset sovellukset vaativat erittäin nopeita moottoreita nostamaan painovoimaa vastaan, kun taas mekaanisen varren liikuttaminen tai jyrkkään rinteeseen kiipeäminen vaatii suuria vääntömomentteja.

Molemmat robotin vasemmalla ja oikealla puolella olevat moottorit on kytketty rinnakkain erikseen. Yleensä ne kytketään 12 voltin akkuun DPDT-kytkimillä (kaksinapainen kaksinkertainen heitto).

Mutta tässä projektissa käytämme matkapuhelinta DPDT: n sijaan botin hallitsemiseksi.

TIETOA MOOTTORIOHJAIMESTA

Arduino antaa enintään 40 mA: n virran GPIO (yleiskäyttöinen tulolähtö) -nastojen avulla, kun taas se antaa 200 mA: n Vcc: n ja maan avulla.

Moottorit vaativat suuren virran toimiakseen. Emme voi käyttää arduinoa suoraan moottoriemme virtaan, joten käytämme moottoriohjainta.

Moottorin ohjain sisältää H-sillan (joka on yhdistelmä transistoreita). Moottorin kuljettajan IC: tä (L298) ohjaa 5v, jonka toimittaa arduino.

Moottoreiden virran saamiseksi tarvitaan 12 V: n tulo Arduinolta, jonka lopulta toimittaa 12 V: n akku. Joten arduino vain ottaa virtaa akusta ja antaa moottorin kuljettajalle.

Sen avulla voimme hallita moottoreiden nopeutta ja suuntaa antamalla maksimivirran 2 ampeeria.

JOHDANTO DTMF-MODUULIIN

DTMF tarkoittaa kaksisävyistä monitaajuutta. Valintanäppäimemme on kahden väriaineen monitaajuus, eli yksi painike antaa sekoituksen kahdesta eri taajuudella olevasta äänestä.

Yksi sävy syntyy korkean taajuuden ääniryhmästä, kun taas toinen matalasta taajuusryhmästä. Se tehdään niin, että minkä tahansa tyyppinen ääni ei voi jäljitellä ääniä.

Joten se yksinkertaisesti purkaa puhelimen näppäimistön syötteen nelibittiseksi binäärikoodiksi. Projektissamme käytettyjen näppäimistönumeroiden taajuudet on esitetty alla olevassa taulukossa

Numero Matalan taajuuden (hertsi) korkea taajuus (hertsi) 2697133647701209677014778852133609411336

Valintanäppäinten numeroiden dekoodattu sekvenssi on esitetty alla olevassa taulukossa.

numero D3 D2 D1 D0 1 0 0 0 1 kaksi 0 0 1 0 3 0 0 1 1 4 0 1 0 0 5 0 1 0 1 6 0 1 1 0 7 0 1 1 1 8 1 0 0 0 9 1 0 0 1 0 1 0 1 0 * 1 0 1 1 # 1 1 0 0

PIIRIKAAVIO

YHTEYDET

Moottorin kuljettaja -

  • Tapit 'A' ja 'B' ohjaavat vasemmanpuoleista moottoria, kun taas tapit 'C' ja 'D' ohjaavat moottorin oikeaa puolta. Nämä neljä nastaa on kytketty neljään moottoriin.
  • Tappi 'E' on virtaa IC: lle (L298), joka on otettu arduinosta (5v).
  • tappi 'F' on jauhettu.
  • Nasta ‘G’ vie 12 voltin virran akusta arduinon Vin-nastan kautta.
  • Nastat 'H', 'I', 'J' ja 'K' saavat logiikan arduinolta.

DTMF -

  • nasta ‘a’ on kytketty 3,5 voltin arduinoon IC: n virran saamiseksi (SC9270D).
  • Tappi 'b' on kytketty maahan.
  • DTMF: n tulo otetaan puhelimesta liitännän kautta.
  • Binaaritiedon muodossa oleva lähtö (D0 - D3) nastojen kautta menee arduinoon.

ARDUINO -

  • DTMF: n lähtö (D0 - D3) nastoista tulee arduinon digitaalisiin nastoihin. Voimme liittää tämän lähdön mihin tahansa neljästä digitaalisesta nastasta, jotka vaihtelevat välillä (2 - 13) arduinossa. Tässä käytimme nastoja 8, 9, 10 ja 11.
  • Arduinon digitaaliset nastat 2 ja 3 on kytketty moottorinohjaimen nastanumeroihin 'H' ja 'I', kun taas arduinon nastat 12 ja 13 on liitetty 'J' ja 'K'.
  • Arduino on kytketty 12 voltin akkuun.

Ohjelma KOODI-

int x // initialising variables
int y
int z
int w
int a=20
void setup()
{
pinMode(2,OUTPUT) //left motor
pinMode(3,OUTPUT) //left
pinMode(8,INPUT) // output from DO pin of DTMF
pinMode(9,INPUT) //output from D1 pin of DTMF
pinMode(10,INPUT) //output from D2 pin of DTMF
pinMode(11,INPUT) // output from D3 pin of DTMF
pinMode(12,OUTPUT) //right motor
pinMode(13,OUTPUT) //right
Serial.begin(9600)// begin serial communication between arduino and laptop
}
void decoding()// decodes the 4 bit binary number into decimal number
{
if((x==0)&&(y==0)&&(z==0)&&(w==0))
{
a=0
}
if((x==0)&&(y==0)&&(z==1)&&(w==0))
{
a=2
}
if((x==0)&&(y==1)&&(z==0)&&(w==0))
{
a=4
}
if((x==0)&&(y==1)&&(z==1)&&(w==0))
{
a=6
}
if((x==1)&&(y==0)&&(z==0)&&(w==0))
{
a=8
}
}
void printing()// prints the value received from input pins 8,9,10 and 11 respectively
{
Serial.print(' x ')
Serial.print( x )
Serial.print(' y ')
Serial.print( y )
Serial.print(' z ')
Serial.print( z )
Serial.print(' w ')
Serial.print( w )
Serial.print(' a ')
Serial.print(a)
Serial.println()
}
void move_forward()// both side tyres of bot moves forward
{
digitalWrite(2,HIGH)
digitalWrite(3,LOW)
digitalWrite(12,HIGH)
digitalWrite(13,LOW)
}
void move_backward()//both side tyres of bot moves backward
{
digitalWrite(3,HIGH)
digitalWrite(2,LOW)
digitalWrite(13,HIGH)
digitalWrite(12,LOW)
}
void move_left()// only left side tyres move forward
{
digitalWrite(2,HIGH)
digitalWrite(3,LOW)
digitalWrite(12,LOW)
digitalWrite(13,HIGH)
}
void move_right()//only right side tyres move forward
{
digitalWrite(2,LOW)
digitalWrite(3,HIGH)
digitalWrite(12,HIGH)
digitalWrite(13,LOW)
}
void halt()// all motor stops
{
digitalWrite(2,LOW)
digitalWrite(3,LOW)
digitalWrite(12,LOW)
digitalWrite(13,LOW)
}
void reading()// take readings from input pins that are connected to DTMF D0, D1, D2 and D3 PINS.
{
x=digitalRead(8)
y=digitalRead(9)
z=digitalRead(10)
w=digitalRead(11)
}
void loop()
{
reading()
decoding()
if((x==0)&&(y==0)&&(z==1)&&(w==0))
{
move_forward()
reading()
decoding()
printing()
}
if((x==1)&&(y==0)&&(z==0)&&(w==0))
{
move_backward()
reading()
decoding()
printing()
}
if((x==0)&&(y==1)&&(z==0)&&(w==0))
{
move_left()
reading()
decoding()
printing()
}
if((x==0)&&(y==1)&&(z==1)&&(w==0))
{
move_right()
reading()
decoding()
printing()
}
if((x==0)&&(y==0)&&(z==0)&&(w==0))
{
halt()
reading()
decoding()
printing()
}
a=20
printing()
}

KOODISELITYS

  1. Ensinnäkin alustamme kaikki muuttujat ennen tyhjää asetusta.
  2. Tyhjässä asennuksessa kaikki käytettävät nastat määritetään tuloksi tai lähdöksi niiden tarkoituksen mukaan.
  3. Uusi toiminto ”void decoding ()” tehdään. Tässä toiminnossa kaikki DTMF: ltä saamamme binääritulot dekoodataan desimaaliksi arduinolla. Ja tälle desimaaliarvolle määritetty muuttuja on a.
  4. Toinen toiminto 'tyhjä tulostus ()' tehdään. Tätä toimintoa käytetään tuloarvojen tulostamiseen DTMF-nastoista.
  5. Vastaavasti vaaditaan viisi toimintoa, joita vaaditaan vaaditun tehtävän suorittamiseen. Nämä toiminnot ovat:

void move_left () // robotti kääntyy vasemmalle

void move_right () // robotti kääntyy oikealle

void move_forward () // robotti liikkuu eteenpäin

void move_backward () // robotti liikkuu taaksepäin

void halt () // robotti pysähtyy

  1. Nyt näitä toimintoja käytetään tyhjän silmukan toiminnossa tehtävänsä suorittamiseen aina, kun niitä kutsutaan matkapuhelimen näppäimistön syötteen mukaan.

Esimerkiksi:::

if((x==0)&&(y==0)&&(z==1)&&(w==0))
{
move_forward()
reading()
decoding()
printing()
}

siis kun painiketta 2 painetaan tai 0010 vastaanotetaan tuloliittimille, arduino dekoodaa tämän ja siten nämä toiminnot tekevät työnsä: siirry eteenpäin ()

lukeminen ()

dekoodaus ()

tulostus ()

PIIRIN TOIMINTA

Projektissamme käytetyt säätimet ovat seuraavat -

2 - eteenpäin

4 - Käänny vasemmalle

6 - Käänny oikealle

8 - Siirtyminen taaksepäin

0 - lopettaa

Soittanut robottiin yhdistettyyn puhelimeen, henkilö avaa valintanäppäimistön.

  • Jos painetaan ”2”. DTMF vastaanottaa tulon, purkaa sen binaarisena ekvivalenttilukunaan eli 0010 ja lähettää sen arduinon digitaalisille nastoille. Arduino lähettää tämän jälkeen koodin moottoriohjaimelle, kun olemme ohjelmoineet koodin olevan 0010, moottorit pyörivät myötäpäivään ja siten robotti liikkuu eteenpäin.
  • Jos painetaan '4', sen vastaava koodi on '0100' ja ohjelmoinnin mukaan vasemmanpuoleiset moottorit pysähtyvät ja vain oikeanpuoleiset moottorit pyörivät myötäpäivään ja siten robotti kääntyy vasemmalle.
  • Jos painetaan numeroa 6, oikeanpuoleinen moottori pysähtyy ja vain vasemmanpuoleiset moottorit pyörivät myötäpäivään, joten robotti kääntyy oikealle.
  • Jos painetaan ”8”, moottorimme pyörivät vastapäivään ja siten robotti liikkuu taaksepäin.
  • Jos painetaan ”0”, kaikki moottorimme pysähtyvät ja robotti ei liiku.

Tässä projektissa olemme määrittäneet toiminnon vain viidelle numeronäppäimistölle. Voimme lisätä minkä tahansa tyyppisen muun mekanismin ja antaa valintanäppäimen numeron tälle mekanismille päivitetyn version tekemiseksi tästä projektista.

PIDETTÄVÄT PISTEET

1 - Tunkki ei saa olla löysä.

2 - Puhelimen näppäimistön äänien tulisi olla korkeimmat.

3 - Vastaanottavan puhelimen Internet / Wi-Fi on suljettava häiriövaikutusten välttämiseksi.

4 - DTMF: n vasen nasta (ts. Nasta 'b') on hiottu ja oikea nasta (ts. Nasta 'a') on kytketty 3,3 V: een.

Prototyyppikuvat matkapuhelimen ohjaamasta robotti-autopiiristä DTMF: n avulla
Matkapuhelinohjatun RC-auton videoesittely DTMF: n avulla



Edellinen: Johdatus EEPROM: iin Arduinossa Seuraava: Tee tämä linjaseuraajarobotti Science Fair -projektiin