Роботски аутомобил којим управља мобилни телефон помоћу ДТМФ модула

Испробајте Наш Инструмент За Елиминисање Проблема





У овом пројекту ћемо управљати ручним роботом путем нашег мобилног телефона користећи ДТМФ модул и Ардуино.

Написали: Анкит Неги, Канисхк Годииал и Навнеет Сингх сајван



Роботски аутомобил којим управља мобилни телефон помоћу ДТМФ модула

УВОД

У овом пројекту користе се два мобилна телефона, један за позивање и један за пријем позива. Телефон који прима позив повезан је са роботом преко аудио прикључка.

Особа која зове може да контролише робота притиском на тастере на тастатури. (тј. роботом се може управљати из било ког дела света).



ПОТРЕБНЕ КОМПОНЕНТЕ

1 - Ардуино УНО

2 - Ручни робот

3 - 4 мотора (овде смо користили по 300 окретаја у минути)

4 - ДТМФ модул

5 - Возач мотора

6 - 12 волтна батерија

7 - Прекидач

8 - Џек за слушалице

9 - Два мобилна телефона

10 - Повезивање жица

О РУЧНОМ РОБОТУ

Ручни робот се састоји од шасије (тела) у коју се могу причврстити три или четири мотора (који су зашрафљени гумама) у зависности од захтева.

Мотори који ће се користити зависе од наших захтева, тј. Могу да обезбеде велику брзину или велики обртни моменат или добру комбинацију оба. Примене попут четвороструког хеликоптера захтевају моторе са врло великом брзином да би се подигле против гравитације, док примене попут кретања механичке руке или пењања на стрму падину захтевају моторе са великим обртним моментом.

Оба мотора на левој и десној страни робота су паралелно повезана одвојено. Обично су повезани на 12волтну батерију преко ДПДТ (дво-пински двоструки прекидач) прекидача.

Али у овом пројекту користићемо мобилни телефон уместо ДПДТ-ова за контролу бота.

О МОТОРНОМ ВОЗАЧУ

Ардуино даје максималну струју од 40мА користећи ГПИО (општи наменски улазни излаз) пинове, док даје 200мА користећи Вцц и уземљење.

Моторима је потребна велика струја за рад. Не можемо да користимо ардуино директно за напајање наших мотора, па зато користимо моторни покретач.

Моторни возач садржи Х мост (који је комбинација транзистора). ИЦ (Л298) возача мотора се напаја од 5в које напаја ардуино.

Да би напајали моторе, потребно је 12в улаза од ардуина који се на крају напаја од 12в батерије. Дакле, ардуино само узима енергију из батерије и даје возачу мотора.

Омогућава нам контролу брзине и смера мотора давањем максималне струје од 2 ампера.

УВОД У ДТМФ МОДУЛ

ДТМФ је скраћеница од Двотонска вишефреквенција. Наша нумеричка тастатура је вишеструка фреквенција од два тонера, тј. Једно дугме даје мешавину два тона различите фреквенције.

Један тон се генерише из високофреквентне групе тонова, док други из нискофреквентне групе. Учињено је тако да било која врста гласа не може да опонаша тонове.

Дакле, он једноставно декодира унос тастатуре телефона у четворобитни бинарни код. Фреквенције бројева тастатуре које смо користили у нашем пројекту приказане су у доњој табели

ДигитЛов фреквенција (херц) Висока фреквенција (херц) 2697133647701209677014778852133609411336

Бинарно декодирани низ цифара нумеричке тастатуре приказан је у доњој табели.

цифра Д3 Д2 Д1 Д0 1 0 0 0 1 два 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

ДИЈАГРАМ КОЛА

ВЕЗЕ

Возач мотора -

  • Пин „А“ и „Б“ контролише леву страну мотора, док пин „Ц“ и „Д“ контролишу десну страну мотора. Ова четири пина су повезана са четири мотора.
  • Пин „Е“ служи за напајање ИЦ (Л298) који је преузет из ардуино (5в).
  • пин „Ф“ је млевен.
  • Пин „Г“ узима напајање од 12 волти из батерије преко Вин-пин-а од ардуина.
  • Прибадаче „Х“, „И“, „Ј“ и „К“ добијају логику од ардуина.

ДТМФ -

  • пин „а“ је повезан са 3,5 волта ардуина за напајање ИЦ (СЦ9270Д).
  • Пин „б“ је повезан са земљом.
  • Улаз ДТМФ-а преузима се са телефона путем прикључка.
  • Излаз у облику бинарних података путем (Д0 - Д3) пинова иде на ардуино.

АРДУИНО -

  • излаз ДТМФ-а са (Д0 - Д3) пинова долази на дигиталне пинове ардуина. Овај излаз можемо повезати на било који од четири дигитална пина који се разликују од (2 - 13) у ардуину. Овде смо користили пинове 8, 9, 10 и 11.
  • Дигитални пинови 2 и 3 ардуина повезани су на пин број „Х“ и „И“ возача мотора, док су пинови 12 и 13 ардуина повезани са „Ј“ и „К“.
  • Ардуино је повезан са батеријом од 12 волти.

КОД програма-

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()
}

ОБЈАШЊЕЊЕ КОДА

  1. Пре свега, иницијализујемо све променљиве пре воид постављања.
  2. У празном подешавању, сви пинови који се користе додељују се као улаз или излаз према својој намени.
  3. Направљена је нова функција „воид децодинг ()“. У овој функцији сав бинарни улаз који добијемо од ДТМФ-а ардуино декодира на децималу. А променљива додељена за ову децималну вредност је а.
  4. Направљена је још једна функција „воид принтинг ()“. Ова функција се користи за штампање улазних вредности са ДТМФ пинова.
  5. Слично томе, пет функција је потребно функције су потребне за извршавање потребног задатка. Ове функције су:

воид мове_лефт () // робот скреће лево

воид мове_ригхт () // робот скреће удесно

воид мове_форвард () // робот се креће напред

воид мове_бацквард () // робот се креће уназад

воид халт () // робот се зауставља

  1. Сада се ове функције користе у воид лооп функцији за обављање свог задатка кад год их се позове у складу са уносом са бројчане тастатуре мобилног телефона.

На пример:::

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

дакле, када се притисне дугме 2 или се на улазне пинове прими 0010, ардуино то декодира и тако ове функције раде свој посао: кренути напред()

читање ()

декодирање ()

штампање ()

КРОГ РАДА

Контроле које смо користили у нашем пројекту су следеће -

2 - Да се ​​крене напред

4 - Да бисте скренули лево

6 - Да скренете десно

8 - За кретање уназад

0 - зауставити

Након што упути позив телефону повезаном са роботом, особа отвара тастатуру.

  • Ако се притисне „2“. ДТМФ прима улаз, декодира га у бинарни еквивалентни број, тј. „0010“, и шаље на дигиталне пинове ардуина. Ардуино затим шаље овај код возачу мотора како смо програмирали када ће код бити '0010', мотори ће се окретати у смеру казаљке на сату и стога ће се наш робот кретати напред.
  • Ако се притисне „4“, онда је његов еквивалентни код „0100“ и према програмирању леви бочни мотори ће се зауставити, а само десни бочни мотори ће се окретати у смеру казаљке на сату, па ће се тако и наш робот окренути лево.
  • Ако се притисне „6“, десни бочни мотор ће се зауставити, а само леви бочни мотори ће се окретати у смеру казаљке на сату, па ће се зато наш робот окренути десно.
  • Ако се притисне „8“, тада ће се наши мотори окретати у смеру супротном од кретања казаљке на сату и тако ће се наш робот померити уназад.
  • Ако се притисне „0“, тада ће се сви наши мотори зауставити и робот се неће померити.

У овом пројекту доделили смо функцију само пет бројева тастатуре. Можемо додати било који други механизам и том механизму доделити број тастатуре да бисмо направили надограђену верзију овог пројекта.

ТАЧКЕ КОЈЕ ТРЕБА ИМАТИ НА УМУ

1 - Дизалица не сме бити лабава.

2 - Тонови тастатуре телефона треба да буду максимални.

3 - Интернет / Ви-Фи пријемног телефона треба да буде затворен како би се избегли ефекти сметњи.

4 - Леви пин (тј. Пин „б“) ДТМФ-а је уземљен, а десни пин (тј. Пин „а“) повезан је на 3,3 в.

Прототипске слике кола роботског аутомобила којим управља мобилни телефон помоћу ДТМФ-а
Видео демонстрација РЦ аутомобила којим управља мобилни телефон помоћу ДТМФ-а



Претходно: Увод у ЕЕПРОМ у Ардуину Следеће: Направите овог робота за следбенике линија за пројекат сајма науке