LusoRobótica - Robótica em Português
Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: metRo_ em 30 de Janeiro de 2009, 22:11
-
Olá,
Depois dos habituais testes ao arduino decidi tentar controlar o telemóvel com o arduino.
Quando se liga o telemóvel ao pc, pelo menos nokia, é possível ler mensagens, efectuar chamadas, mandar mensagens, etc, através do hyperTerminal, que pelo que percebi comunica com o telemóvel através de uma ligação série. Abre-se o terminal e segue-se os passos das imagens seguintes:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi44.tinypic.com%2F9icjh4.jpg&hash=97ee0b404c35c18c1286ddb2947ffb43079aed03)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi41.tinypic.com%2Fjt6szn.jpg&hash=9a7b87461b28d65a19323d47d20ee9a2ef9a9046)
Depois escreve-se por exemplo at e se obtivermos a resposta OK quer dizer que está tudo ok, atenção que nem todos os telemóveis suportam todas as funções.
MAis informação aqui: http://wiki.forum.nokia.com/index.php/AT_Commands (http://wiki.forum.nokia.com/index.php/AT_Commands)
Agora a minha ideia era mandar esses comandos pelo arduino. Pequei no cabo e soldei 4 fios:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ffile%3A%2F%2F%2FC%3A%2FUsers%2FZ%25C3%25A9%2FDesktop%2FArduino%2Fat%2Fnokia_pop_pinout_files%2Fnokia14_w_ant.gif&hash=77ee2842aced55672659bd167a20abac6fcce97f)
Pin Number Pin Name Description
1 Vin Charger input
2 GND Charger ground
3 ACI Accessory Control Interface (short with pin 2 for handsfree recognition)
4 V Out Connected to pin 3 in DKU-2 usb data cable
5 USB Vbus Also act as USB power detection? Should be connected to USB pin 1 in usb data cable.
6 FBus Rx/USB D+ USB exists only in some models*. Should be connected to USB pin 3 in usb data cable.
7 FBus Tx/USB D- USB exists only in some models*. Should be connected to USB pin 2 in usb data cable.
8 GND Data GND
9 X Mic- Audio in - Ext. Mic input negativ
10 X Mic+ Audio in - Ext. Mic input positiv
11 HS Ear L- Audio out - Ext. Audio out - left, negativ
12 HS Ear L+ Audio out - Ext. Audio out - left, positiv
13 HS Ear R- Audio out - Ext. audio out - right, negativ
14 HS Ear R+ Audio out - Ext. audio out - right, positiv. Pins 10-14 may be used for antenna connection.
Soldei fios aos pinos 5,6,7,8. Depois liguei ao arduino e nada :S
Usei o seguinte código:
int incomingByte = 0; // for incoming serial data
void setup() {
Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}
void loop() {
// send data only when you receive data:
if (Serial.available() > 0) {
// read the incoming byte:
incomingByte = Serial.read();
// say what you got:
Serial.print("I received: ");
Serial.println(incomingByte, DEC);
}
}
Para escrever e fazer com que o arduino repetisse o que eu escrevia, assim devia enviar essa informação para o telemóvel.
Alguma sugestão?
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi40.tinypic.com%2F287ezix.jpg&hash=86fa124ccc5940bcee59df9fbc135e0c1063ea25)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi41.tinypic.com%2F2gul3bc.jpg&hash=3f92d6780652ddd53cc2bce45eb9805bb350d72a)
-
Olá
Era mais fácil com um max232...
-
Mas o max232 o que iria converter?
-
O max232 converte TTL em sinais rs232.
Se só queres que o arduino repita o que escreves, julgo que para testes, seria melhor começares por ligar directamente do pc ao telemóvel com um cabo serie.
Jaime
-
Pois, mas não tenho entrada série. Mas eu ligo o telemovel ao pc e consigo usar os comandos At commands e usar o hyperterminal.
-
Estavas a falar disto?
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fpinouts.ru%2Fimages%2Fcable_cell.gif&hash=1e989c9aa00d65346dcc56f6cca2c7571a107c0e)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.seattlerobotics.org%2Fencoder%2Faug97%2Fdb25sch.gif&hash=af119fa8535b0f14ef8fa077334774cd7d941e7a)
-
Eu acho que era..
ahh força com isso, que tem muitas aplicações ;)
-
Compras um conversor usb para rs232. Depois podes usar o esquema de cima.
-
Mas a saída do telemóvel já não é TTL?
Olha aqui, http://www.nokia-tuning.net/index.php?s=pinout_7260, (http://www.nokia-tuning.net/index.php?s=pinout_7260,) ele tem uma sai tx e rx...
-
Deve ser... 3,3V. Depois tens de converter ou para os 5v do arduino ou para niveis rs232...
afinal para que querias que o arduino repetisse tudo que enviavas??
-
bem eu ja fiz esse projecto na faculdade era do tipo fazer uma central de alarme p uma habitacao.
mas usava-mos uma telemovel da siemens c35 ou qq assim.
usava o pc e o hiperterminal p comunicacoes mas tinhas de ter o pic max rs232 uma cab usb serie p comunicares pic e pc.
o hiperterminal e mais um controlo do que estavamos a fazer um monitor p ver a informacao.
nos programavamos o pic e este por sia vez estava ligado ao telemovel siemens que envia uma sinal qd alguem entrasse.
espero ter ajudado em alguma coisa.
abracos
-
Podes ver este exemplo...
at commands (http://docs.google.com/View?docid=df9gzxzx_5gzhrzddj)
e este que embora seja com um pic e o ccs dá para entender com alguma facilidade.
controlo de uma saida (http://docs.google.com/View?docid=df9gzxzx_15586w6zhp)
-
Deve ser... 3,3V. Depois tens de converter ou para os 5v do arduino ou para niveis rs232...
afinal para que querias que o arduino repetisse tudo que enviavas??
Queria que repetisse por eu tinha o arduino ligado ao pc, e ao fazer com que ele repetisse o que eu escrevia, o que ele repetia ia para o telemóvel, certo? Mas eu também coloquei sempre a escrever "at" e a imprimir o que ele recebia e ele não recebia nada do telemóvel.
Podes ver este exemplo...
at commands (http://docs.google.com/View?docid=df9gzxzx_5gzhrzddj)
e este que embora seja com um pic e o ccs dá para entender com alguma facilidade.
controlo de uma saida (http://docs.google.com/View?docid=df9gzxzx_15586w6zhp)
Obrigado, mas eu a nivel dos comandos e assim já estou +- familiarizado.
A minha duvida era mesmo se tinha que converter, parece que sim, o sinal que vinha do telemóvel, eu pensava que tudo o que era SÉRIE, era sempre igual.
-
usb também é serie... :) e no entanto precisa de conversor para o arduino. O facto de ser serie não quer dizer que se possa ligar directamente.
podes fazer um programa para o arduino para ele repetir tudo o que vem do PC para o arduino e vice versa. Mas não podes esquecer que os niveis do telemovel e do arduino são diferentes. Saem 5V do arduino para o telemovel e terás de garantir que o telemovel é tolerante a essa tensão. Já do telemovel saem 3,3v e terás de garantir que o arduino vai assumir esses 3,3V como um '1'.
-
usb também é serie... :) e no entanto precisa de conversor para o arduino. O facto de ser serie não quer dizer que se possa ligar directamente.
podes fazer um programa para o arduino para ele repetir tudo o que vem do PC para o arduino e vice versa. Mas não podes esquecer que os niveis do telemovel e do arduino são diferentes. Saem 5V do arduino para o telemovel e terás de garantir que o telemovel é tolerante a essa tensão. Já do telemovel saem 3,3v e terás de garantir que o arduino vai assumir esses 3,3V como um '1'.
Terça vou comprar o MAX232 e depois vou tentar fazer um daqueles circuitos.
-
qual é o telemovel que vais usar?
-
Terça vou comprar o MAX232 e depois vou tentar fazer um daqueles circuitos.
Podes sempre pedir samples, convém ter desses em casa :D
-
Nokia 6020, já testei os at commands e funciona.
-
usb também é serie... :) e no entanto precisa de conversor para o arduino. O facto de ser serie não quer dizer que se possa ligar directamente.
podes fazer um programa para o arduino para ele repetir tudo o que vem do PC para o arduino e vice versa. Mas não podes esquecer que os niveis do telemovel e do arduino são diferentes. Saem 5V do arduino para o telemovel e terás de garantir que o telemovel é tolerante a essa tensão. Já do telemovel saem 3,3v e terás de garantir que o arduino vai assumir esses 3,3V como um '1'.
Terça vou comprar o MAX232 e depois vou tentar fazer um daqueles circuitos.
Manda vir samples! A maxim enviou-me ;)
-
Já mandei. Espero não ter abusado :p
-
max3232 tambem deves pedir...
como testaste?
ja testaste email?
-
max3232 tambem deves pedir...
como testaste?
ja testaste email?
Para que serve o max3232?
Liguei com o cabo, eu disse que já testei o telemóvel, liguei o telemóvel ao pc com o cabo da nokia e testei...
-
tiveste de instalar drives para ligar o cabo?
o max3232 faz o que faz o 232 mas pode ser alimentado de 3,3 a 5v (em vez dos 5v do max 232). são compactiveis pino a pino
sparkfun (http://www.sparkfun.com/commerce/product_info.php?products_id=316)
-
É o seguinte, hoje tive a fazer mais uns testes. Soldei uns fios aos pinos 3,4 e 5. http://www.nokia-tuning.net/index.php?s=pinout_7260 (http://www.nokia-tuning.net/index.php?s=pinout_7260)
Liguei ao arduino rx->rx tx->tx (para testar fiz tambem rx->tx tx->rx) e gnd->gnd e nada.
Uso o seguinte código:
void setup(){
Serial.begin(9600); // the GPRS baud rate
delay(5000);
}
void loop(){
delay(1500);
Serial.print("ATD 919338855;"); // ********* is the number to call
Serial.print(0x0D, BYTE);
delay(10000);
}
Basicamente o telemóvel devia iniciar uma chamada.
Quando ligo o telemóvel ao pc e ligo o terminal do arduino ele la vai mandado as mensagens pelo tx, quando ligo ao telemóvel reparo que a luz do TX nunca pisca. :S :S
Soluções?
-
A comunicação série é completamente "raw" (crua), os únicos dados que circulam no Tx/Rx são os que nós enviamos para lá explicitamente.
Se com as luzes do Tx/Rx te referes às luzinhas do Arduino, é normal que não acendam quando o Arduino tá a comunicar com outro dispositivo que não seja o PC. Se bem me lembro esses luzes são controladas pelo FTDI, e o FTDI só entra ao barulho na comunicação com o PC. Quando estás a usar a porta série do Arduino para comunicar com outro dispositivo, é como se o FTDI nem sequer lá estivesse. Aliás, agora que penso nisso, o FTDI pode é estar a interferir com a comunicação, pois ele tamém tem as linhas ligadas aos pinos Tx/Rx do AVR, ou seja, estás a ligar entre si 3 dispositivos série e isso não vai funcionar bem, pois vão haver 2 saídas (2 Tx) ligadas entre si e nenhuma delas vai conseguir "impôr" na linha certos valores. Isto nem é saudável, porque há situações (uma saída a 0 e a outra a 5V) que cria um curto-circuito na tensão de alimentação. Se o arduino não tiver uns jumpers para desligar o FTDI do AVR ou se o próprio FTDI não tiver um modo em que "desliga" o seu Tx do circuito então não é possível usar a porta série do AVR para mais nada.
-
ja ligaste o telemovel directamente à porta serie do pc??? (com cabo rs232, claro)
-
Mas tipo eu so tenho o arduino ligado ao telemóvel, acho que o ftdi não deve interferir até porque já houve aqui gente que ligou por exemplo GPS via serie ao arduino se nao me engano :S
-
ja ligaste o telemovel directamente à porta serie do pc??? (com cabo rs232, claro)
Não, já o liguei ao pc através do USB e consigo enviar os comandos AT pelo hyperterminal e ele funciona.
Não, mas tipo, as ligações que fiz foram as mesmas que outra pessoas fez para ligar o telemóvel a um 8051
-
nao sei se é possivel no arduino, mas...
defines uma porta de software.
envias o comando por lá. à partida nao precisas de receber nada do telemovel. se conseguires mandar um atd123; o telemovel vai fazer uma chamada.
Se nao consehuires podes ainda tentar colocar uma resistencia e um zenner na linha de tx porque o arduino trabalha a 5v e o telemovel a 3,3 ou 3,6v. O telemovel pode-se estar a "proteger" por receber uma tentao elevada...
-
mas tipo, faço um divisor de tensão para os 3.3V? Ou é mesmo melhor usar um zener?
-
eu usei uma resistencia e um zener e funciona muito bem, mas podes fazer doutra forma. A sfe tem umas placas que convertem sinais de 3,3 para 5 v e vice versa.
-
Olá,
Alguém pode fazer o seguinte teste:
- Retirar o chip do arduino,
- Ligar os pins TX/RX do telele aos TX/RX do arduino (o TX do telele deve ligar directamente ao TX do arduino e o mesmo com o RX).
- ligar os GNDs
- ligar o pin 3.3v, ou o de 5v ( não sei qual a voltagem dos teleles) do arduino, ao Vin do telele
- Enviar um comando AT
Em principio deve funcionar, e assim utilizamos a "porta" usb do arduino para comunicação em série.
(não consigo fazer o teste porque não tenho nenhum telele à mão para isso)
Obrigado,
Delphi
-
No fds testo isso...
-
Nova sugestão, que penso que será mais fácil e mais segura (para não dobrar ou partir os pins):
Não tirem o chip, e em vez disso, coloquem o Arduino em Reset - liguem o pin "RESET" ( o pin ao lado do 3.3v) ao GND.
-
testei sem o chip e não funcionou.
Tenho fios soldados directamente naqueles connectores atras da bateria:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Flh4.ggpht.com%2F_i2teYMYP9C0%2FSk5A663ijNI%2FAAAAAAAAAhk%2FOLMf4Digh7A%2Fs400%2FImage88.jpg&hash=ef499ff84be95ecf9e2954abeef844497e8aa0d2) (http://picasaweb.google.com/josescxavier/DropBox#5354288387968896210)
Se ligar estes fios directamente à entrada USB funciona, se ligar ao TX, RX e GND do arduino não funciona.
-
Venho fazer uma pergunta um bocado talvez estupida.
Com o Arduino Duelminove e um Telemovel (Nokia 62190), posso fazer parecido com um GPS, depois ligando ao PC.