-
Apresentação do Projecto
Há cerca de ano e meio foi-me roubado um Fiat Uno que contava com 16 primaveras. Desde então nunca mais o vi. >:(
Embora estivesse todo "escafiado" ainda servia muito bem para as voltinhas do dia-a-dia. ;D
Nem imaginam o que senti quando me roubaram o dito. :'(
Desde então já instalei um alarme na minha "voiture", no entanto trata-se de um alarme básico que só faz barulho. ;)
Depois de consultar umas quantas páginas aqui na web decidi que iria fazer algo bem melhor, mas na vertente "low-cost". 8)
Sempre que puder vou mostrando a evolução do projecto.
Quem tiver algumas dicas, ideias ou "bitaites" que os vá colocando aqui no fórum. Pode ser que dê uma ajuda !!!
Objectivos
Fase 1- Enviar e receber dados entre o arduino e o telemóvel - Concluído
- Receber dados no arduino do módulo gps - Concluído
- Enviar e receber dados entre o arduino, módulo gps e telemóvel - Concluído
Fase 2
- Ligar display LCD - Concluído
- Mostrar no display localização (Lat, Lon) - Concluído
- Enviar sms em modo de texto - Concluído
- Enviar sms com posição quando recebe uma chamada - Concluído
- Enviar email com mapa (gmaps) da posição onde se encontra - Em estudo
- Escolher as opções através de um menu, visualizando no display LCD e keypad do telemóvel - Concluído
Fase 3
- Enviar sms em formato PDU - Em estudo
- Enviar e receber dados de acelerómetro
- Envia sms em caso de pancada
- Aviso de saída de uma zona pré-delimitada - Em estudo
Fase 4
- Redução do consumo de energia
- Imobilização da viatura através de sms
Fase 5
- Execução de PCB com todos os componentes do projecto,
c/ ATMEGA8 ATMEGA168
Componentes
Utilizados até ao momento:
- Arduino diecimila
- Módulo GPS EM-410
- Antena MMCX para GPS
- Telemóvel Sony Ericsson T290i
- Display LCD 16x2
- Placa de acrílico
- Cabos, fios e parafusos
Em processo de aquisição:
- Acelerómetro ou nunchuck
- Relés
- Botões
Estado do projecto
Fase 1 - 100% Concluída
Este foi o meu primeiro projecto, a primeira vez que mexi num arduino e a primeira vez que programei em C.
Tenho algumas bases em basic, preferia que pudesse programar o arduino em basic, seria tudo mais fácil.
Apesar de ter tido algumas dificuldades iniciais consegui concluir esta fase com sucesso. Inclusivé já consegui oerceber que o C não é tão diferente do basic como eu pensava
Fase 2 - 90% Concluída
Ao iniciar esta fase tive conhecimento que era possível programar o arduino com Bascom, que no fundo é uma linguagem muito parecida com o basic. Após várias tentativas falhadas lá consegui utilizar o Bascom, e sinceramente, agora já não quero outra coisa.
Fase 3 - 0 % Concluída
Fase 4 - 0 % Concluída
Fase 5 - 0 % Concluída
Fotos e Videos
http://www.youtube.com/watch?v=INRv-szkn8Q (http://www.youtube.com/watch?v=INRv-szkn8Q)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg195.imageshack.us%2Fimg195%2F31%2Fsmartracker.jpg&hash=cd200d86f0154b5960f1fe3a432970c219cdd334)
[/list]
-
Estas a usar que telemovel?
É que por exemplo eu já li e enviei mensagens pelo hiperterminal do windows com um telemóvel nokia ligado a este mas nunca tentei ligar ao arduino, porque o telemóvel está ligado ao pc por USB e depois tem é tipo uma porta com virtual, e neste caso lia as mensagens em text não estavam em pdu.
-
provavelmente podes patentealo e vender, conheço uma mao chei de pessoas que quer muito um destes, quando pesa, e as dimensoes?
-
Obrigado pela atenção pessoal, mas não pretendo comercializar, só quero mesmo fazer um alarme jeitoso.
O telemóvel que tenho neste momento e que comprei para este fim é um sony ericsson T230, uma vez que tem saidas ttl e não é preciso nenhum conversor.
Quanto a dimensões, vai ser pequeno, é só o tamanho do arduino com um chip de gps e o telemovel.
Apesar de já ter um chip de gps, pretendia comprar outro pela net, e até encontrei um barato e com o chip sirf star III.
Vejam aqui:
http://www.sectron.eu/products/31-gps-leadtek/32-gps-module/707-gps-lr9101lp-module-leadtek.html (http://www.sectron.eu/products/31-gps-leadtek/32-gps-module/707-gps-lr9101lp-module-leadtek.html)
Alguém me sabe dizer se vale a pena comprar este modulo ?
kast
-
rovavelmente podes patentealo e vender, conheço uma mao chei de pessoas que quer muito um destes, quando pesa, e as dimensoes?
lol, não pode patenteá-lo coisa nenhuma que este tipo de dispositivos já existem há anos.. são chamados de trackers GPS. Procurem que vão encontrar montes deles.. o inconveniente é que geralmente estão associados a um serviço, ou seja, tem uma mensalidade que tem que ser paga à empresa que o vende, pelas comunicações sms. Com uma boa procura também encontram trackers independentes. Acho que na sparkfun há um...
kast.. É um projecto muito interessante.. também ando a ver se faço um mas ainda estou na fase de aquisição de componentes.. o módulo GPS já o tenho e o módulo GSM está neste momento parado na alfandega.. :( O módulo GPS mais o módulo GSM ficou-me por menos de 30 euros já com portes incluídos ;) Só espero que os gajos da alfandega n se armem em chulos..
Quanto ao projecto deixo-te aqui uma pequena informação na qual deves pensar afim de evitares chatices.. Depois de fazeres tudo testa bem o consumo e os modos de sleep dos componentes (aqueles que tiverem esses modos).. porque se fores ligar à bateria do carro arriscas-te a um dia chegar ao carro e não teres bateria.. principalmente tendo em conta que vais estar a usar um arduino que tem um regulador linear (eficiência na ordem dos 50%, ou seja, 50% de energia desperdiçada), um telemóvel que vai manter determinados recursos ligados desnecessariamente e quanto ao GPS não sei.. Pode ser dificil de acontecer, mas se por alguma razão deixares o carro parado uns dias podes ficar sem bateria no carro..
-
Olá
msaleiro: será que podes indicar quais os componentes compraste (ou os links)?
Obrigado,
Delphi
-
Foi tudo componentes que encontrei no ebay. Não sei se ainda há mais mas deixo-te aqui a informação para poderes tentar encontrar. O módulo GPS é um módulo da Rockwell e o módulo GSM é um RIM 1802, acho. Se meteres qualquer uma destas palavras no ebay e ainda houver à venda deves encontrar :) Eu ainda não testei nada mas um amigo meu tb mandou vir e diz que funciona bem.. Por enquanto ainda me falta comprar as antenas para ambos os módulos.. mas pelo que vi no ebay tb é barato :)
-
Por acaso estou interessado em arranjar um modulo gsm ou um telemovel que me permita uma facil ligação ao arduino
-
Epa ja "samos" uns quantos então! Eu desde que me iniciei neste mundo que quero fazer uma "coisa" destas! Mas sempre achei os módulos GSM super caros, já os GPS acho que têm um preço aceitável, mas para o preço são fracos. Compensa mais comprar um GPS bluetooth que é bem melhor e custa o mesmo! assim só é necessário um modulo bluetooth que é bem barato e tem mais aplicações!
Mas pronto dado o número de interessados, no qual eu me incluo, sugiro a quem ja passou pela fase de investigação de material que indique links com informação sobre os dispositivos que recomenda e porquÊ :D
;)
-
:) façam a coisa parecer low-cost que eu alinho.. o tr3s já sabe comé.. :)
-
Caro msaleiro, obrigado pela tua intervenção. Já tinha pensado no problema dos consumos de corrente, e essa situação já consegui resolver, ligando os módulos só mesmo quando eles são necessários.
Caro metRo_, com o sony ericsson T230 a ligação ao arduíno é feita directamente não é necessário nenhum conversor, uma vez que os sinais deste telemóvel já são TTL.
Lista de material a utilizar:
1 arduino (no futuro um arduino feito por mim sem ligações USB ou serial para pc, mais barato e em tamanho mini)
1 telemóvel sony ericsson T230
1 Módulo de GPS tirado de uma GPS bluetooth (no futuro um módulo de gps com chip SirfStar III)
1 Cartão SIM
Dúvidas
Qual o melhor tarifário e operadora para o cartão sim (sem carregamentos obrigatorios e sms baratas) ?
Será que é necessário utilizar o chip Atmega328 ( devido à conversão de pdu em texto) ?
Alguém arranja uma rotina para converter pdu em texto que consuma pouca sram ?
kast
-
"Alargando" um bocado a ideia inicial, e com um Optimus Tag (ou equivalente de outra rede), em que te oferecem todas as comunicações entre Tags totalmente de borlix, com 10 euros/mês por unidade até consegues um sistema que te monitorize o percurso do carro (ou de vários carros).
Por ex. envia um sms com as coordenadas a cada minuto para um outro equipamento igual, mas este configurado para receber as mensagens. Este por sua vez regista-as num site, e posteriormente permite a consulta no googlemaps!!
Isto para uma gestão de frotas era um mimo!
-
Delphi, nem de propósito, o tarifário que tenho no meu telemovel é mm o tag.
-
1 Módulo de GPS tirado de uma GPS bluetooth (no futuro um módulo de gps com chip SirfStar III)
Ui o que me foste dizer Kast.... Acho que vou desmanchar o meu este fim de semana... ;D
-
Para quem quiser usar o arduino com um receptor GPS com o protocolo NMEA, este link pode ajudar
http://www.maartenlamers.com/nmea/ (http://www.maartenlamers.com/nmea/)
-
msaleiro, não tens um link desse modulo gsm?eu tambem queria comprar um barato e juntar um rockwell de 9.99$ porque comprar um modulo gps/gsm sao 70 euros...
-
Por esse preço têm isto http://www.libelium.com/tienda/catalog/product_info.php?cPath=21&products_id=59 (http://www.libelium.com/tienda/catalog/product_info.php?cPath=21&products_id=59)
-
o que eu estava a dizer é que um modulo gps com gsm da telit custa 70 euros, acho que e mais avantajoso que esse da libelium que é so gsm, mas mesmo assim eu queria um modulo gsm mais barato visto que o modulo gps da rockwel é bastante acessivel
-
este modulo está impecável:
http://www.sectron.eu/products/226-clearance-sale/227-gsm-modules/15-clearance-sale-wireless-module-tc45-java-gsm-gprs-technologies.html (http://www.sectron.eu/products/226-clearance-sale/227-gsm-modules/15-clearance-sale-wireless-module-tc45-java-gsm-gprs-technologies.html)
na Univ. fiz um projecto que era uma casa inteligente onde podia monitorizar e controlar tudo por sms.
o receptor gsm era um siemens c35 por comandos pdu.
agora é tudo muito mais fácil :D ... ainda bem
-
Olá a todos!
Tenho modems GSM/GPRS, já em caixa de alumínio, a preço bastante apelativo.
Datasheet do modem Wavecom (http://www.antoniosergiosena.com/files/M1206B-ON-user_guide.pdf)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.antoniosergiosena.com%2Ffiles%2Fmodem_GSM%2BAntena___5cm.jpg&hash=48953fb18033ef3b303880a5b839743ea4b4ccdf)
Atenção: apesar da foto, modem é fornecido sem antena nem cabo de alimentação. Custo unitário: 35.00 EUR.
-
A comunicação é serie certo? Tem o nivel do arduino? 5v?
-
A comunicação é série, RS232.
Tem que se usar um conversor RS232-TTL. Um MAX232 faz o trabalho.
Ou então usar um cicuito destes, bastante mais simples e barato:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.senaeng.com%2Ffiles%2Fforum%2Fserial_TTL_232_transistores.JPG&hash=072e8c76aff5b3378811ffc6c712e264f151d6a8)
-
teria que ligar o modem ao pc_tx e pc_rx e depois ligar ao arduino o tx e rx, certo?
-
Exactamente.
E funciona muito bem, este simples interface.
Há quem substitua os transistores NPN, por NMOS. Há melhorias em termos de velocidade e consumo de corrente.
Mas neste caso, NPN são muito baratos e funcionam bem.
Já testei o interface a 115kbps e foi 100%.
-
bom pessoal
tenho uma modulo gps já ligado ao arduino ... alguém arranja um sketch para verificar se o gps está a mandar alguns dados ???
Já tentei ligar o hyperterminal ... mas acho que preciso de um pde que mande os dados para o pc...
Alguém ajuda ???
-
bom pessoal
tenho uma modulo gps já ligado ao arduino ... alguém arranja um sketch para verificar se o gps está a mandar alguns dados ???
Já tentei ligar o hyperterminal ... mas acho que preciso de um pde que mande os dados para o pc...
Alguém ajuda ???
byte incomingByte = 0;
void setup() {
Serial.begin(38400);
}
void loop() {
while(1){
if (Serial.available() > 0) {
incomingByte = Serial.read();
Serial.print(incomingByte);
}
}
}
Isto deve funcionar ;)
-
obrigado tig...
parece que está a funcionar ...
mas onde vejo o que está a receber ?
Só consigo ver que funciona porque alterei um pouco o código para ligar e desligar o pin13 se receber algo... mas não consigo ver o que chega ao arduino ...
Mas já faz alguma coisa ... :D
editado:
Afinal já recebe ... mas o que recebe não tem nada a ver com NMEA . recebe uns caracteres esquisitos ...
alguém consegue ajudar???
-
Certifica-te que ambos os dispositivos envolvidos na comunicação estão configurados com a mesma baud rate, bits de paragem e controlo de fluxo (geralmente o controlo de fluxo deve estar desligado em ambos os terminais).
-
pois isso já tinha uma ideia ...
mas não consigo enviar nenhum comando para o modulo gps ... ou pelo menos assim parece.
-
Bom pessoal
Finalmente consegui por isto a funcionar ...
Tava dificil mas pelo menos já tenho o arduino a dar coordenadas...
Agora só falta colocar o lcd
Quando puder coloco fotos
Kast
-
boa kast.. ;)
-
Cada vez mais perto do fim ... primeira sms com localização enviada com sucesso !!!
-
Muito bem ;D
Olha devias começar a colocar no primeiro post as informações, por exemplo, que dispositivos compraste, fotografias, o que estás a utilizar, como estás a comunicar entre eles.
-
Só para dar algumas ideias ao pessoal :P
Há coisa de um mês fiz experiências com o o gps que tenho, um Holux M1000.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Floja.tray.com.br%2Fadm%2Feditor%2Fup%2F104756%2FHOLUX_GPS_Reciver_m1000.jpg&hash=b79d1b2bffecc0dffb9503a35abee8025c7107a3)
Este GPS comunica por bluetooth mas na ligação mini USB que tem, debita todos os dados por Serial!
Aproveitando esta característica liguei-o ao Arduino e começei a processar os dados que ele me mandava. Este GPS debita informações em vários formatos. Escolhi o que mais me convinha e fiz um programa no Arduino que regista as cordenadas numa EEPROM de X em X tempo (segundos/minutos) e que quando comandado para tal a transmitia para o computador. Neste ultimo, pego na informação e mostro-a ao utilizador usando a API do Google Maps!
Fiz um log do meu percurso desde o trabalho até casa com o Arduino e o resultado foi este!
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fi240.photobucket.com%2Falbums%2Fff159%2Fsuper-mascarada%2Fmapsgoogle.jpg&hash=6e4934ccded24ba43a6ba6dd415d32bbccbaacb1)
;)
-
Ora aí está uma boa aplicação para se esconder dentro de um veículo :D
TR3S - moras na Asseceira ou em Sta.Iria? Eu estive 27 anos em Alverca pá... se calhar ainda nos cruzámos lá na escola :P
-
Ora aí está uma boa aplicação para se esconder dentro de um veículo :D
TR3S - moras na Asseceira ou em Sta.Iria? Eu estive 27 anos em Alverca pá... se calhar ainda nos cruzámos lá na escola :P
Eeheheh moro na Póvoa de Santa Iria! :D Mais propriamente no Casal da Serra :D!
-
nas barbas um do outro! :D
andaste em q escola? no alto da Póvoa, ou em Alverca?
-
nas barbas um do outro! :D
andaste em q escola? no alto da Póvoa, ou em Alverca?
Eehehhehe andei na Póvoa sempre, mais tarde o secundário fiz no Forte da Casa!
-
Então nada feito. Eu estive sempre em Alverca :)
Taõ perto mas tão longe hehehe
-
Eish é tudo aqui da zona? :D
Eu sou de Alverca. Sempre estudei cá até ir para o IST na Alameda, ha 3 anos atrás :)
Edit: tr3s a cena do GPS está brutal :o
-
Eish é tudo aqui da zona? :D
Eu sou de Alverca. Sempre estudei cá até ir para o IST na Alameda, ha 3 anos atrás :)
Então de certeza que te conheço de vista! :D
-
(acho que vou desactivar a minha notificação do tópico ;D )
-
oi Pessoal
Bom ... para já o gps está a funcionar sem qq tipo de problemas.
No entanto o que me tem dado problemas agora é a ligação entre o arduino e o telemóvel.
Para fazer testes ligo um cabo do sony ericsson t290i aos pins 0 e 1 do arduino, e se colocar o sketch blink, posso através do hyperteminal mandar at commands para o telemovel que ele aceita e executa.
No entanto quando mando o arduino enviar directamente esses comandos para o telemovel, o telemovel não os recebe, ou pelo menos não os executa. Alguém me ajuda com isto? O led do tx (arduino) pisca mas o telemóvel não faz nada ...
Estou mesmo a precisar de ajuda para resolver isto para ver se acabo com este projecto.
Eis o sketch que utilizo para testes:
#include <SoftwareSerial.h>
int rxPin = 0;
int txPin = 1;
// set up a new serial port
SoftwareSerial serial=SoftwareSerial(rxPin,txPin);
void setup() {
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
// set the data rate for the SoftwareSerial port
serial.begin(9600);
// Set SMS to text mode. Note it is critical
// to use \r\n to end each line
// The delays are also critical, without them,
// you may lose some of the
// characters of your message
serial.print("AT+CMGF=1\r\n");
delay(300);
serial.print("AT+CMGS=");
delay(300);
// Replace with a valid phone number
serial.print("123\r\n");
delay(300);
serial.print("Hello from Arduino.");
delay(300);
// End the SMS with a control-z
serial.print(0x1A,BYTE);
}
void loop() {
}
Kast
-
Pode ser o telemóvel que não consegue processar os bytes tão depressa quanto estás a enviar.
Quando tás no hyperterminal tás a enviar os dados muito devagar porque tás a escrever à mão.
Já o Arduino dispara os bytes "à velocidade máxima" (assim que acaba de enviar um começa logo a enviar o seguinte).
A solução para isto é fazeres uma função que envie um comando byte a byte e faça um delay entre cada byte.
-
hummmmm
vou tentar mandar um comando para o telele com delay a cada caractere para ver o que dá ....
editado: já testei e não é por isso, tentei mandar um keypress para o telemovel com um delay de 300 entre cada caractere e nada ...
-
já tens mais sorte que eu pois nas minhas tentativas que coloco o arduino a fazer "Serial.println("ATD 919999999")" na consola tudo bem e piscam as luzes, já quando ligo o telemóvel as luzes não piscam.
-
Depois de muito procurar pela internet, encontrei muito pessoal com o mesmo problema, com telemoveis e modems de marcas diferentes.
Mas ninguém sabe o porquê de isto não funcionar direito ....
Alguém pode ajudar ???
-
Mostra lá o código do teste...
Disseste "com o sketch blink"?
Ahh... outra coisa... faz o teste com o Arduino desligado do USB.
-
Sim com o sketch blink.
Porque se for com outro que funcione com o serial não consigo escrever nada no hyperterminal.
Vou testar sem o usb ligado.
Já digo qq coisa.
kast
-
Parece que já faz qq coisa ... daqui a pouco já vejo melhor e coloco aqui ...
-
epá que estranho ...
fiz um sketch para mandar um comando simples para o telele para ver se este respondia. Depois desliguei o cabo usb. As duas primeiras vezes que tentei ele ligava o tx e logo de seguida o rx (quase que parecia ao mm tempo). Mas agora nem liga o tx.
-
Bom este rapaz também teve o mm problema (mas com outro equipamento).
http://forum.sparkfun.com/viewtopic.php?p=72628&sid=b567202eb61fdb854d8b9fef0c67ae2b (http://forum.sparkfun.com/viewtopic.php?p=72628&sid=b567202eb61fdb854d8b9fef0c67ae2b)
Alguém percebe como é que ele resolveu a coisa ? eu li, traduzi e continuo sem saber como é que ele solucionou o problema.
-
Quantos fios tem o cabo que estás a usar, ou seja, quantos fios ligaste entre o Arduino e o telemóvel?
-
Tem 4 (+5v, GND, TX e RX)
Já experimentei sem o +5v mas tb não funciona ...
O cabo que liga o telele ao arduino era um cabo para ligar o telemovel ao pc, que eu adaptei (cortei) para ligar ao arduino.
-
Também não percebi o que o bacano disse, só disse que fez um cabo novo, apenas com 3 fios (GND, TX, RX).
Não será o nosso amigo FTDI a meter-se na conversa?
-
Vou colocar noutros pins ...
mas agora reparei numa coisa ....
quando mando comandos pelo hyperterminal ele liga o tx e o rx mas quando mando comandos do telele ele liga o tx ?!?!?!?!?
E quando mando o comando "ATE0" para desligar o eco passa ao seguinte:
comandos enviados pelo hyperterminal liga o rx, comandos enviados pelo telele liga o tx ....
Cada vez percebo menos disto ...
-
Apaga tudo e faz outra vez :P às vezes (muitas vezes) resulta :)
-
bom estou a utilizar este sketch agora:
#include <NewSoftSerial.h>
char incomingByte=0;
NewSoftSerial mySerial = NewSoftSerial(6, 7);
void setup()
{
Serial.begin(9600);
mySerial.begin(9600);
mySerial.println("AT");
}
void loop()
{
incomingByte = mySerial.read();
Serial.println(incomingByte);
}
e no hyperterminal no inicio mostra uns numeros esquisitos e depois começa a dar linhas (CR).
Não percebo mesmo nada disto ...
alguém me ajuda ?
-
EEEUUUUUUUUUURRRRRRRRREEEEEEEKKKKKKKKKAAAAAAAAAAAAA !!!!!!!!!!!!!!
Estava mesmo difícil ...
será que isto agora vai funcionar sempre ???? tenho de testar .... ;D
-
creio que o problema é que estava a fazer tudo nos pins 0 e 1 ... agora passei para o 6 e 7 e funciona quase a 100%.
Estou com algumas dúvidas aqui numas coisitas
tenho uma linha de código que não me dá o que eu quero, a linha é: telemovel.print("AT+CPMS="'ME'","'ME'","'ME'"\r\n");
o que eu quero é que seja enviado para o telemovel o seguinte: AT+CPMS="ME","ME","ME"
não consigo por as aspas nos MEs alguém ajuda ?
-
\" (sp k for uma aspa, n tenho bem a certeza, mas penso mm k é isso)
-
ok obrigado ricardo-reis ... esta parte já está a funcionar ...
-
E então postares o código que funcionou :D
-
Já estou a alterar para o alarme ficar a funcionar este fim de semana, mas o que funcionou foi isto:
#include <NewSoftSerial.h>
#define rxPin 6
#define txPin 7
char incomingByte = 0;
NewSoftSerial telemovel(rxPin, txPin);
void setup()
{
Serial.begin(9600);
telemovel.begin(9600);
delay(300);
telemovel.print("AT\r\n");
delay(300);
telemovel.print("AT+CPMS=\"ME\",\"ME\",\"ME\"\r\n");
delay(300);
telemovel.print("AT+CNMI=2,1\r\n");
delay(300);
telemovel.print("AT+CMER=3,2\r\n");
delay(300);
telemovel.print("AT*ECAM=1\r\n");
delay(300);
telemovel.print("AT+CMGF=1\r\n");
delay(300);
}
void loop()
{
if (telemovel.available() > 0) {
incomingByte = telemovel.read();
Serial.print(incomingByte);
}
}
com este código o telemovel não consegue processar todos os comandos, mas estou a trabalhar nisso ... ;D
-
outra coisa, a biblioteca NewSoftSerial.h onde saco?
-
isso anda por aí no google ... se não achares dá-me um toque que envio por mail.
-
Então é isso, interferência do FTDI. Provavelmente o telemóvel recebia os comandos, mas não respondia, porque ao ligares AVR, FTDI e telemóvel no mesmo bus ficas com 2 pares de saídas ligadas uma à outra.
-
Oi
Estou com um problema na programação. Neste momento o código que estou a utilizar é:
#include <LiquidCrystal.h>
#include <NewSoftSerial.h>
#define rxPin 6
#define txPin 7
#define ledPin 13
#define contrast 9
char incomingByte = 0;
#define BUFFSIZ 40
char buffer[BUFFSIZ];
char buffidx;
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
NewSoftSerial telemovel(rxPin, txPin);
void setup()
{
pinMode(contrast, OUTPUT);
analogWrite(contrast, 100);
lcd.clear();
lcd.print("Smartracker on!");
delay(1000);
Serial.begin(9600);
telemovel.begin(9600);
delay(1000);
telemovel.print("AT\r\n");
le_linha();
delay(1000);
telemovel.print("AT+CPMS=\"ME\",\"ME\",\"ME\"\r\n");
le_linha();
delay(1000);
telemovel.print("AT+CNMI=2,1\r\n");
le_linha();
delay(1000);
telemovel.print("AT*ECAM=1\r\n");
le_linha();
delay(1000);
telemovel.print("AT+CMGF=1\r\n");
le_linha();
delay(1000);
telemovel.print("AT+CMER=3,2\r\n");
le_linha();
}
void loop()
{
}
void le_linha(void) {
lcd.clear(); // para ver dados lcd activar esta linha
char c;
buffidx = 0;
while (1) {
c=telemovel.read();
if (c == -1)
continue;
if (c == '\n')
continue;
if ((buffidx == BUFFSIZ-1) || (c == '\r')) {
buffer[buffidx] = 0;
return;
}
lcd.print(c); // para ver dados lcd activar esta linha
Serial.print(c); // para ver dados serial activar esta linha
buffer[buffidx++]= c;
}
}
No entanto o telemóvel só me processa os primeiros 2 comandos, o resto não!
Alguém consegue resolver isto ?
Aproveito para dizer ao pessoal que o projecto já conta com um lcd tb.
Kast
-
Olá,
Só executa até aos 2 comandos "sempre" ou apenas quando utilizas com o LCD?
Pergunto porque a função clear e print do LCD utilizam a função delayMicroseconds() e isso pode por algum motivo estar a impedir de ler os dados.
Qual é o objectivo do "delay(1000)" antes de enviares os comandos?
Experimenta colocares essas instruções no loop (controladas só para executar uma vez) e no loop de ler os dados "print" tudo o que ele te dá.
Experimenta programar de forma a que o loop receba comandos introduzidos "manualmente" (por ex. pelo hyperterminal) de forma a enviá-los para telemóvel pelo "serial" do NewSoftSerial.
-
olá
Este problema já acontecia antes de colocar o lcd.
o novo código é:
#include <LiquidCrystal.h>
#include <NewSoftSerial.h>
#define rxPin 6
#define txPin 7
#define ledPin 13
#define contrast 9
char incomingByte = 0;
#define BUFFSIZ 40
char buffer[BUFFSIZ];
char buffidx;
int conta=0;
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
NewSoftSerial telemovel(rxPin, txPin);
void setup()
{
pinMode(contrast, OUTPUT);
analogWrite(contrast, 100);
lcd.clear();
lcd.print("Smartracker on!");
delay(3000);
lcd.clear();
Serial.begin(9600);
telemovel.begin(9600);
lcd.print("Teste 1 - ");
telemovel.print("AT\r\n");
le_linha();
delay(1000);
lcd.print("Teste 2 - ");
telemovel.print("AT+CPMS=\"ME\",\"ME\",\"ME\"\r\n");
le_linha();
delay(1000);
lcd.print("Teste 3 - ");
telemovel.print("AT+CNMI=2,1\r\n");
le_linha();
delay(1000);
lcd.print("Teste 4 - ");
telemovel.print("AT*ECAM=1\r\n");
le_linha();
delay(1000);
lcd.print("Teste 5 - ");
telemovel.print("AT+CMGF=1\r\n");
le_linha();
delay(1000);
lcd.print("Teste 6 - ");
telemovel.print("AT+CMER=3,2\r\n");
le_linha();
}
void loop()
{
}
void le_linha(void) {
char c;
buffidx = 0;
conta=0;
while (conta < 200) {
c=telemovel.read();
conta++;
if (c == -1)
continue;
if (c == '\n')
continue;
if ((buffidx == BUFFSIZ-1) || (c == '\r')) {
buffer[buffidx] = 0;
delay(1000);
lcd.clear(); // para ver dados lcd activar esta linha
return;
}
lcd.print(c); // para ver dados lcd activar esta linha
Serial.print(c); // para ver dados serial activar esta linha
buffer[buffidx++]= c;
}
}
No entanto estou a melhorar o código para fazer o debug para o lcd, e reparei que o arduino manda os comandos muito mais rápido do que o telemovel envia a resposta.
Só quando aparece teste 5 no lcd é que aparece o envio 2º comando para o telemóvel.
Não percebo o porquê dele não estar a fazer tudo pela ordem que está no código.
Acho que a função que lê linha não está a funcionar bem. Deve ter problemas em acabar, acho que em alguns comandos que recebe não aparece o \r que manda a função terminar.
Kast
-
Parece que o problema é mm na função lê linhas ... vou tentar repara o erro e já posto aqui a solução.
-
Oi
ALguém conhece uma library para o arduino que consiga lidar com gps ?
Já tentei 3 e nenhuma delas funcionou ....
-
O que é que queres que a biblioteca faça? Eu fiz um código que recebe dados de GPS... Se disseres o que queres que faça posso-te ajudar, quer com contas quer com interpretaçao de dados de GPS.
-
olha é o seguinte ... preciso de algo que agarre numa linha ou caractere saido do gps e o converta em latitude. longitude, velocidade, direcção, sinal fixo, etc.
-
A melhor mensagem que deve agarrar no GPS deverá ser a $GPRMC, é a que te da os dados mais certinhos de modo a extraí-los bem.
A mensagem tem este formato:
$GPRMC,220516,A,5133.82,N,00042.24,W,173.8,231.8,130694,004.2,W*70
220516 Time Stamp
A validity - A-ok, V-invalid
5133.82 current Latitude
N North/South
00042.24 current Longitude
W East/West
173.8 Speed in knots
231.8 True course
130694 Date Stamp
004.2 Variation
W East/West
*70 checksum
Para converteres a velocidade em KM multiplicas por '1.85200'
Tens muita informação nestes sites:
http://aprs.gids.nl/nmea/#rmc
http://www.codepedia.com/1/The+GPRMC+Sentence
Quando ja conseguires tirar os dados que te interessam avisa pa te ajudar nas conversões e nas contas ;)
-
eu cá tb estou a analisar uma situação semelhante.
Queria era usar a frase que sai do gps (GPRMC) e construir um site como este (http://www.gisgeo.pt/mapa.html).
Nao parece que seja dificil ate porque já fiz umas experiencias com o api da google e aquilo parece facil. mas na verdade nao sei trabalhar com formularios em html.
ver aqui (http://mapa.jagsilva.com)
Alguem que me possa dar uma ajuda?
-
caro tr3s
Obrigado pela ajuda. Mas já tenho arranjado dezenas de sites que dizem o mesmo.
O que quero é uma biblioteca que coloca os dados da linhas que o gps manda em variáveis.
Já experimentei várias e não consigo trabalhar com nenhuma delas (têm todas erros).
Estou a ver que vai ter que ser "à la páte" ...
O único aspecto positivo disto é que já começo a perceber mais de C.
Kast
-
Eu não estou muito por dentro disso mas se os dados vêm como o tr3s disse basta-te fazer um ciclo e de cada vez que encontras uma "," sabes que vem um novo valor, gravas tipo num vector duplo ou assim.
-
metro_
Pois isso também sei que é o que é preciso fazer, no entanto há libraries que fazem isso sozinhas, sem ter de perder tempo a programar isso.
Se isto fosse em basic bastavam dois comandos (instr e mid), em C é mais dificil, até é necessário fazer ciclos.
Bom tenho mesmo de fazer eu. Talvez aproveite para fazer a função mid em c, e assim fica tudo mais fácil.
Kast
-
jeez.. complica, complica.. se fores a pensar assim deixas de comer, de dormir, de fazer tudo o k é simples.. só pk implica ciclos..
-
ricardo-reis
Infelizmente nem todos temos a mesma disponibilidade e tempo para os nossos hobbies.
O meu trabalho não me deixa muito tempo livre para que possa andar a dispender tempo com isto da electrónica.
Daí pretender despachar este projecto, pois tenho outros não relacionados com a electrónica para terminar.
No entanto o problema dos ciclos é outro e está relacionado com a recepção dos dados do gps e do telemóvel.
Mas enfim ... eu só percebo mesmo de tijolos e cimento ... ;D
-
Kast enviei-te uma PM ;)
Responde e já agora cola aqui um exemplo do que lês do GPS. :D
-
Aqui vai um exemplo de uma comunicação deste projecto, neste momento:
SmarTracker on!
by Kast !!!
Iniciando testes
no telemovel
T1- AT
R1- OK
T2- AT+*******
R2- OK
T3- AT+*******
R3- OK
T4- AT+*******
R4- OK
T5- AT+*******
R5- OK
T6- AT+*******
R6- OK
Fim dos testes
no telemovel
$GPGGA,191326.384,,,,,0,00,,,M,0.0,M,,0000*57
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,191326.384,V,,,,,,,210709,,,N*41
$GPGGA,191327.384,,,,,0,00,,,M,0.0,M,,0000*56
$GPGSA,A,1,,,,,,,,,,,,,,,*1E
$GPRMC,191327.384,V,,,,,,,210709,,,N*40
$GPGGA,191328.384,,,,,0,00,,,M,0.0,M,,0000*59
Para já é isto que sai do arduino, quer pelo serial quer no lcd.
Pelo que vêem este projecto já está, pelas minhas contas 75% concluído. Agora é só mesmo programar a recepção de chamadas e envio de coordenadas. Que me parece a mim acessível.
Não deixei o gps fixar a posição e ocultei os comandos do telemovel, propositadamente.
Vou ver se coloco aqui um filme disto (serial e lcd).
Kast
-
Realmente está a andar :) Olha podias começar a organizar o primeiro post quando tiveres tempo :)
-
ok metro, vou ver se hoje arranja um tempinho para isso. No entanto ando aqui à guerra com C.
Alguém sabe se a lat e long que sai do gps tem casas decimais fixas ?
Kast
-
Boas Kast!
Vou fazer uma Biblioteca para o Arduino para processar os dados do GPS. Desta forma com muito pouco ou nenhum trabalho obtens logo todos os dados que queiras e que sejam possíveis de extrair das mensagens do GPS! Espero que mais logo já tenha algo para ti! ;)
De GPS para GPS os valores tem casas decimais variáveis vou dar-te o exemplo:
LAT = ...,621726.30, ...
em alguns GPS pode aparecer
LAT = ...,621726.3, ...
Quando para os mesmo aparelhos esta situação é igual em ambos:
LAT = ...,621726.78, ...
em alguns GPS pode aparecer
LAT = ...,621726.78, ...
Julgo que respondi à tua questão! ;)
-
Oi
Obrigado pela ajuda tr3s, mas neste momento já conclui essa parte. Estou a melhorar o código dessa parte, mas neste momento este já está funcional. De qualquer modo agradeço a ajuda. Quando tiveres isso pronto diz qq coisa assim podemos comparar resultados.
Ontem estava para colocar um monte de info aqui no forum sobre este projecto mas o C não me deixou... no entanto já consigo sacar a localização do gps. A passo de caracol, mas isto vai lá.
Kast
-
Ahh fixe fixe ;)
Como estás a testar para ver se a posição é certa?
À parte, diz la quando conseguimos fazer as coisas não é uma satisfação enorme?! ;)
-
tr3s
O que queres dizer verificar se a posição está certa ?
Pois... quando somo nós o sabor é outro ... e o tempo gasto tb ... ;D
-
ele quer dizer com isso se já foste ao google earth, por exemplo, pôr as coordenadas k te dá o gps pra ver se estão correctas ou não.. se te der no mapa o sítio exacto de onde tás a testar isso, verificas que a posição está certa..
-
Ainda não fui ... mas o tr3s já me disse que o googlemaps só aceita coordenadas em DD,DDDD e não como elas saem do gps.
Para isso é só converter minutos em graus ...
qq coisa do tipo: graus+60/minutos
Isto deve dar o que é preciso para converter...
-
então vai lá experimentar.. ;) dps manda postais.. :P
-
LOL ... se não for isso só pode ser um datum diferente ... mas vou já verificar isso ... aguarda só 1 pouco ...
-
DDMM.mmmm = DD + MM.mmmm/60
deve ser qualquer coisa deste tipo
-
jagsilva é isso mm, coloquei o 60 do lado errado
-
já agora onde é que site é que colocam as coordenadas no googlemaps ?
-
se alguem souber um pouco de api e html, nao me parece que seja dificil fazer um site desses.
eu encontrei um site onde se coloca a informação tal e qual como sai do gps. assim nem é preciso andar a fazer contas. é so copy paste
http://www.gisgeo.pt/mapa.html (http://www.gisgeo.pt/mapa.html)
-
http://www.gorissen.info/Pierre/maps/googleMapLocation.php
n encontrei o link do google maps k tinha opção pra isso, mas podes tentar por aqui.. ;)
-
epá ... dá uns 6 metro de diferença no máximo ... devia dar mais ???
Para GPS com a qualidade de sinal que tenho esta muito bom....
-
se dá 6 metros de diferença tá optimo.. isso tem também a ver com uma imprecisão de segurança..
-
imprecisão de segurança ??? Será que estás a falar de "Selective availability" ???
Meu amigo ... isso foi desligado no dia 1 de Maio de 2000.
Os 6 metro na realidade são 4,8 metro (estive a medir ;D).
Este erro deve-se entre outros, a condições meteorológicas e multipath.
-
Para testarem no google maps basta colocarem "DDmm.ddddd, DDDmm.dddddddd" no campo de pesquisa! ;D
Mas o sistema actual de GPS tem um código civil que dá um erro propositado de +/-3 metros nas melhores condições. Tem também os códigos militares que lhes dá uma precisão até ao centimetro!
-
caro tr3s
Acredita que neste momento não há erro propositado no gps.
Os códigos militares que falas eram para tirar a selective availability, no entanto isso já foi desligado desde 2000.
A precisão ao milímetro ( e não centimetro) só com correctores diferenciais. Isto é conhecendo o erro (local) devido às condições atmosféricas, multipath e afins.
Kast
-
Pronto sendo assim tudo bem! :D
Os DGPS já conhecia mas não tinha ideia que tinham essa precisão "toda" :D
-
Segundo muitas coisas que vi quando tive que fazer um trabalho sobre GPS para uma cadeira da universidade, precisões ao centímetro ou ao milímetro, só quando o sistema Galileo estiver a funcionar a 100%..
-
Nada disso msaleiro
Se pesquisares bem vais ver que já é possível ter precisão ao milimetro. Basta ter correcção diferencial. E acredita que sei do que estou a falar. Só por acaso o meu pai é topógrafo e trabalha com um gps para fazer levantamentos topográficos.
Por isso acredita que sei bem do que é que estou a falar.
Para o comum dos "mortais" o galileo apenas vai ter 1 metro de erro, 1 metro e não centimetros, isso só mesmo com correcção diferencial.
No entanto há possibilidade do galileo fazer melhor que 1 metro, mas isso só a pagantes....
Kast
-
Eu por acaso tenho visto esta discussão, e quanto a esses erros propositados não sabia de nada, no entanto é normal esses erros pois pelo vi estamos todos a usar GPS's de normais, tipo, meia duzia de euros e não centenas, acho que a qualidade não deve ser nada de outro mundo.
Para um projecto da faculdade, nós compramos um IMU+GPS (custou à volta de uns milhares de euros) e na janela do laboratório e sem estar apanhar muitos satelites nós tínhamos precisão +- de 1metro ou menos.
-
Para o comum dos "mortais" o galileo apenas vai ter 1 metro de erro, 1 metro e não centimetros, isso só mesmo com correcção diferencial.
É claro que é sempre necessário ter a correcção diferencial para ter boas precisões. O que eu estava a querer dizer é que o Galileo só por si terá mais precisão que o sistema GPS actual, logo o sistema Galileo com correcção diferencial também terá mais precisão que o sistema GPS com a mesma correcção. De qualquer maneira já estive a ver e segundo o que vi em alguns sites o erro do DGPS anda por volta de um pouco menos de 10 cm. Já é bem bom, mas ainda não chega ao milímetro. Mas pronto.. cada site tem os seus valores. Uns dizem mais, outros dizem menos..De qualquer maneira precisões dessas é só para quem tem dinheiro para comprar um receptor como deve ser, não um GPS comercial daqueles para ter no carro.
-
Bom pessoal
Acho que esta discussão da precisão do gps não tem muito a ver com o tópico ....
Neste momento estou a tentar fazer tudo no bascom mas tá dificil.
Alguém já experimentou fazer algo em bascom para o arduino ?
Kast
-
Finalmente já consigo ligar telemóvel e gps e programar tudo no bascom ...
Provavelmente vou abandonar o C ...
-
Tens razão :D
Infelizmente não te consigo ajudar :S nunca fiz nada em BASCOM :S
-
Ora bem
Este código devolve o que o gps transmite ... em bascom claro ....
'--------------------------------------------------------------
' SmarTracker
' Kast
' 23 Julho 2009
'--------------------------------------------------------------
$crystal = 16000000
$baud = 4800
Dim Sync_char As String * 1
Dim I As Integer
Open "comb.3:4800,8,N,1" For Input As #1 ' ligado no pin 11
Do
Sync_char = Inkey(#1)
Print Sync_char;
Loop '
Close #1
End
Simples não é ?
Acho que tenho mesmo de abandonar C.
-
Acho que tenho mesmo de abandonar C
Se estás ou pensas vir a estar numa carreira relacionada com electrónica isso é o maior erro que podes fazer. Todos os microcontroladores têm uma coisa em comum no que diz respeito às linguagens de programação.. e essa coisa é nada mais nada menos que o C. Se souberes C.. pegas em qualquer microcontrolador e em pouco tempo fazes o que quiseres. Além disso o C é mais eficiente que o Basic ou qualquer outra linguagem, excepto o assembly.
Além disso o C é uma espécie de linguagem universal.. pk quer seja para software ou hardware podes programar em C.
-
Carreira na electrónica ???
Epá na minha carreira só os tijolos e o cimento contam ... ;D
-
lol. Mas mesmo assim aconselho-te a aprender C.. é a base da programação.. mas vai aprendendo aos poucos, com tempo.. entretanto acho que fazes bem em ir experimentando com o BASCOM se achas fácil :) é sempre uma maneira de ter motivação :) Força nesses projectos!
-
Bom ... para quem estiver interessado ... posto aqui o código em bascom para sacar alguns dados do gps:
'--------------------------------------------------------------
' SmarTracker
' Kast
' 23 Julho 2009
'--------------------------------------------------------------
$crystal = 16000000
$baud = 4800
Dim Car As String * 1 , Linha As String * 90 , I As Integer , Virgula As Integer
Dim Hora As String * 10 , Estado As String * 1 , Lat As String * 9 , Lats As String * 1 , Lon As String * 10 , Lons As String * 1 , Veloc As String * 7 , Direc As String * 7 , Dat As String * 8
Open "comb.3:4800,8,N,1" For Input As #1 ' ligado no pin 11
Do
Car = Inkey(#1)
' Print Car;
If Car = Chr(13) Or Car = Chr(10) Then
If Instr(1 , Linha , "$GPRMC") > 0 Then
Virgula = 0
Hora = ""
Estado = ""
Lat = ""
Lats = ""
Lon = ""
Lons = ""
Veloc = ""
Direc = ""
Dat = ""
For I = 0 To Len(linha)
If Mid(linha , I , 1) = "," Then
Virgula = Virgula + 1
Else
Select Case Virgula
Case 1
Hora = Hora + Mid(linha , I , 1)
Case 2
Estado = Estado + Mid(linha , I , 1)
Case 3
Lat = Lat + Mid(linha , I , 1)
Case 4
Lats = Lats + Mid(linha , I , 1)
Case 5
Lon = Lon + Mid(linha , I , 1)
Case 6
Lons = Lons + Mid(linha , I , 1)
Case 7
Veloc = Veloc + Mid(linha , I , 1)
Case 8
Direc = Direc + Mid(linha , I , 1)
Case 9
Dat = Dat + Mid(linha , I , 1)
End Select
End If
Next I
Print "Hora: " ; Hora
Print "Estado: " ; Estado
Print "Lat: " ; Lat ; Lats
Print "Lon: " ; Lon ; Lons
Print "Veloc: " ; Veloc
Print "Direc: " ; Direc
Print "Data: " ; Dat
Print
End If
Linha = ""
Else
Linha = Linha + Car
End If
Loop
Close #1
End
O que sai pelo serial é qq coisa como isto :
Hora: 234234.000
Estado: A
Lat: 39**.8292N
Lon: 008**.6046W
Veloc: 0.00
Direc:
Data: 230709
Hora: 234235.000
Estado: A
Lat: 39**.8942N
Lon: 008**.6046W
Veloc: 0.00
Direc:
Vou tentar melhorar isto com umas funções e procedimentos.
kast
-
Boas pessoal
Posso anunciar que o alarme já está a funcionar, isto é, quando recebe uma chamada devolve um sms com as coordenadas da viatura. Tudo isto programado com o bascom.
Quero ver se hoje ou amanhã coloco aqui um video a mostrar isto, no entanto não sei como postar aqui um video, se alguma alma caridosa tiver a paciência para explicar isso agradecia.
Agora que já tenho o alarme a funcionar quero melhorá-lo.
Como já vos disse, neste momento o alarme está muito básico, mas quero acrescentar algumas melhorias, a nível de software e hardware.
Por exemplo:
-Aviso de pancadas na viatura
-Aviso de saída de uma zona pré-delimitada.
-Imobilização da viatura remotamente.
-Método para reduzir o consumo de energia.
-etc.
Se alguém tiver mais ideias agradeço.
Kast
-
Parabéns ! :D
Sim faz um video que a malta ajuda-te a pô-lo online! :D
-
Bom já tenho o filme
Alguém me explica como colocar o filme no fórum fazer isso ?
-
Está no youtube? Se sim basta colocar aqui o link
-
Já estou a colocar ... o tr3s está a dar assistência ... deve estar quase ...
-
Aqui vai video e mais foto.
Não liguem à desarrumação nem à falta de qualidade do filme.
Foi filmado com o telemóvel e foi feito mesmo a correr só para verem como é que isto está.
http://www.youtube.com/watch?v=INRv-szkn8Q (http://www.youtube.com/watch?v=INRv-szkn8Q)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg195.imageshack.us%2Fimg195%2F31%2Fsmartracker.jpg&hash=cd200d86f0154b5960f1fe3a432970c219cdd334)
-
Bem, está excelente :)
-
excelente, os meus sinceros parabéns ;D
-
Sim senhor, está muito fixe mesmo! :D
Parabéns, são mesmo merecidos, está aí muita dedicação e "pestanas queimadas"! ;)
Continua!
Agora, que funcionalidades prevês implementar?!
:D
-
Para já pretendo implementar a seguintes:
1- Aviso de pancadas na viatura
2- Aviso de saída de uma zona pré-delimitada.
3- Imobilização da viatura remotamente.
4 -Método para reduzir o consumo de energia.
5- outras
no entanto preciso de ajuda para:
1- Sensor para aviso de pancadas (onde arranjar este sensor)
2- É só programação.
3- Preciso de ajuda para saber a maneira mais simples, mas eficaz de imobilizar uma viatura.
-
para imobilizar aconselho um corte na bomba de combustivel e da bobine...agora sensor de pancadas :-\
-
Pancadas ?
Referes-te a pancadas do tipo enquanto estás a estacionar, ou até mesmo no meio do trânsito (frontais e traseiras) ?
ou estás a referir-te ao carro em geral ?
Se forem só frontais e traseiras, é uma questão de calibrares um sensor de ultra sons ou infravermelhos de modo a que detecte obstáculos a (ora bem visto que queres pancadas ;D ) 1 ou 0 centimetros...
mas explica melhor a funcionalidade do "detector de pancadas"
-
Kast vê lá se este sensor te interessa:
http://www.analog.com/en/mems-and-sensors/imems-accelerometers/adxl345/products/product.html
-
Sensor de pancadas serve para se alguém der uma "cacetada" no carro (cacetada suficientemente grande para o amolgar) o alarme manda um sms a avisar que a viatura levou uma cacetada.
Kast
-
para as pancadas, usa um acelerómetro para detectar o impacto. ;)
-
Alguém sabe onde arranjar um acelerómetro low-cost ? ;D
Kast
-
faz como eu e compra um nunchuck no ebay por menos de 5€ ;)
-
http://cgi.ebay.co.uk/Brand-New-Nunchuck-Controller-For-Nintendo-Wii-Nunchuck_W0QQitemZ280377751090QQcmdZViewItemQQptZUK_VideoGames_VideoGameAccessories_VideoGameAccessories_JN?hash=item4147d0f632&_trksid=p3286.c0.m14&_trkparms=65%3A16|66%3A2|39%3A1|293%3A9|294%3A50
peço à administração que retire caso seja contra as regras...
-
Este que mostraste custa uns 6€. E ainda pode parar na alfandega. No entanto obrigado pela ajuda ricardo0g0mes.
Ninguém sabe onde comprar algo mais barato ?
Kast
-
Já viste isto: http://lusorobotica.com/index.php/topic,902.0.html?
-
mas o que mostrei compensa pelo preço ;)
esse da sparkfun custa $20.
quanto a alfandega, não passa por lá pois vem em envelope almofadado. alem disso, mesmo que passa-se, nao pagava pois o valor pago é muito pequeno. ;9
eu mandei vir o meu assim e ficou por esse preço ;)
-
epá ...
eu pensava que se arranjava um sensor de "pancadas" mais baratucho ...
Mas pelos vistos vou ter que pesquisar melhor ....
De qualquer forma acho que prefiro utilizar o nunchuck.
Já agora isso tem sensor nas 3 direcções ?
Como é que ligas isso ao arduino ?
Há algum tópico aqui no fórum com isso ?
kast
-
quanto a alfandega, não passa por lá pois vem em envelope almofadado.
Tudo o que vem de fora da UE passa na alfândega. Acontece é que algumas coisas são fiscalizadas e outras não, o que é completamente aleatório. Mas tal como disseste, como o valor é baixo, é provável que não seja preciso pagar mais nada. Na minha experiência pessoal, até 22 euros com portes incluídos não se paga nada :)
-
Se vier de países da UE não pagas alfândega.
Habitualmente mando vir do reino unido ou da Espanha.
Há uns tempos lembro-me de ter visto um "fio condutor" que tinha variações quando era minimamente dobrado, mas talvez não sirva para o que pretendes.
-
Podiam ler o link do metr0_ com mais atenção... Podem mandar vir samples daqueles acelerometros GRATUITAMENTE da freescale :D ;)
-
Para ligares a nunchuck ao Arduino:
http://ricardodias.wordpress.com/2008/10/19/arduino-e-wii-nunchuck/
-
Podiam ler o link do metr0_ com mais atenção... Podem mandar vir samples daqueles acelerometros GRATUITAMENTE da freescale :D ;)
ele já te vai repreender ...
é o "R" maiúsculo ;D
metRo_
-
Eu não sou de intrigas.. mas aqui entre nós acho que ele anda a fazer de propósito para chatear o metRo_ :P
-
o T*r+E$s_ tem a mania ;D
-
Andei a retocar o 1º post
Espero que gostem. Como é óbvio utilizei ideias (isto é copiei tudo ;D) de outro pessoal (que tem muito mais jeito do que eu para isto) aqui do fórum.
Ainda faltam adicionar outras imagens e colocar um video novo.
Kast
-
Supimpa! :D
-
Muito bom, o projecto estava a passar-me um pouco ao lado, mas agora estive a ler e ver o vídeo e foto, e gostei ;) Continuação de bom trabalho pessoal.
-
Finalmente consegui ligar o lcd no bascom.
Também já coloquei tudo na placa de acrílico.
Assim que possível coloco fotos.
Alguém sabe como se manda um email por sms ??? Já soube, mas de momento não me recordo nem encontro.
-
Hoje decidi tirar umas fotos para verem como está a ficar ...
cá vai disto ...
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg146.imageshack.us%2Fimg146%2F705%2F21082009140.jpg&hash=d488d24842601eee5d8a46f946dc95c971e9c665)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg29.imageshack.us%2Fimg29%2F4879%2F21082009141.jpg&hash=c620532aeba643b4b9ddbcf9b3cadeb4efb24a51)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg190.imageshack.us%2Fimg190%2F1453%2F21082009142.jpg&hash=7d0bc40105f2169f68de90b7d3ac07cee5a04ad5)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg39.imageshack.us%2Fimg39%2F9598%2F21082009143.jpg&hash=d577e3f74b509666ad9426261d765459f95a66cb)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg25.imageshack.us%2Fimg25%2F6572%2F21082009144.jpg&hash=23c995df4d4981bffe126aecadedd4bdd7fe6e05)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg401.imageshack.us%2Fimg401%2F9043%2F21082009145a.jpg&hash=ebe256d881cd05dbf9bcaa4dfb366b7870324b0b)
-
Está a ficar excelente :D
O que dava jeito era por exemplo colocar estes pontos como links para os post's onde está a informação.
Fase 1
* Enviar e receber dados entre o arduino e o telemóvel
* Receber dados no arduino do módulo gps
* Enviar e receber dados entre o arduino, módulo gps e telemóvel
Fase 2
* Ligar display LCD
* Mostrar no display localização (Lat, Lon)
* Enviar sms em modo de texto
* Enviar sms com posição quando recebe uma chamada
* Enviar email com mapa (gmaps) da posição onde se encontra
Por exemplo colocar Receber dados no arduino do módulo gps como link para aquele post onte tens o código que vais buscar os dados ao gps.
Na minha opinião parecia-me importante um post sobre a ligação do Arduino ao telemovel como pinout e assim porque acho que é a parte de projecto que não está muito explicada, tens o código num post mas se calhar era melhor organizar tudo num post.
De resto 5* :)
-
ok
Vou tentar melhorar isto então.
Até já pensei colocar esta info num blog .... logo se vê.
Talvez hoje consiga melhorar isto.
Mas já agora que perguntas como ligar ao telemóvel, é muito simples, o cabo do telemóvel tem 4 fios (GND,TX,RX e 5v), o GND ligar ao GND do arduino, o TX a um pin digital que não o 0,1 ou 13, o RX a mesma coisa, e o 5v não é preciso ligar mas se ligarem a bateria do telemóvel fica a alimentar o arduino, ou se tiver o arduino ligado a outra fonte a bateria do telemovel fica a carregar.
Kast
-
Parabens pelo projecto e por partilhares a tua evolucao e experiencia. Encontrei o teu post (e o forum, 5*) procurando por gps trackers e achei mt interessante a informação que tens vindo a colocar, continua!
Sobre o gps, como é a sensibilidade desse modulo gps? dentro duma garagem o sinal desaparece completamente, debaixo dum predio... etc.. Alguma experiencia doutro membro com modulos diferentes? Do ponto de vista do software, se nao tiveres sinal, fica em loop ate ter e so dps envia a informacao?
Obg
Cumps
Rui
-
rmonteiro
A sensibilidade do gps é muito boa para o preço que custou. Até dentro de edifícios se consegue sinal.
Se não tiver sinal ele fica em loop e só envia a sms ou email quando fixar o sinal. No entanto pretendo alterar um pouco esta parte do algoritmo.
Kast
-
Tenho aqui uns vídeos para colocar mas preciso de os editar.
Que software de edição de vídeo grátis é que costumam utilizar?
já agora aproveito para dizer que os vídeos estão em .mov
Kast
-
Tenho aqui um vídeos para colocar mas preciso de os editar.
Que software de edição de vídeo grátis é que costumam utilizar?
já agora aproveito para dizer que os vídeos estão em .mov
Kast
Ainda há pouco tempo encontrei software grátis para isto mas na altura como não precisava não liguei e agora não me lembro :S
-
O windows não tem um programa que faz isso ? não consigo encontrar nada no meu ...
Bom já encontrei ... vou editar e já mostro
-
É suposto ter o windows movi maker, se não tiver é de download gratuito, mas digo-te já que parece o paint...
Podia te sugerir o iMovie, mas receio que ainda não há muitos macs por ai...
-
É suposto ter o windows movi maker, se não tiver é de download gratuito, mas digo-te já que parece o paint...
Podia te sugerir o iMovie, mas receio que ainda não há muitos macs por ai...
o iMovie parece o iPaint, vai dar ao mesmo...
-
o iMovie parece o iPaint, vai dar ao mesmo...
^o) lol ;D
-
Cá vai um
http://www.youtube.com/watch?v=RIOel_NoBAw (http://www.youtube.com/watch?v=RIOel_NoBAw)
-
e vão dois
http://www.youtube.com/watch?v=j-how8QZ2No (http://www.youtube.com/watch?v=j-how8QZ2No)
e por hoje chega que já estou cansado .... amanhã há mais
-
Estás a controlar o LCD com as teclas do telemóvel?
-
Estou
Achei que era mais fácil de fazer e escuso de colocar botões para escolher as opções.
Kast
-
Mas como é que o Arduino sabe quais as foram as teclas do telemóvel que foram pressionadas?
-
Suponho que ele envia a informação pela porta série.
-
exactamente.
se virem bem as especificações dos comandos at está lá tudo.
kast
-
Qual é o comando?
Quais são os comandos que utilizas neste projecto?
jagsilva
-
Não estou em casa.
Assim que chegar coloco aqui isso.
Kast
-
Boas
Entao já tens os commandos utilizados?
E já agora qual é o editor de video utilizado?
Obrigado
-
Tinha uma manual dos comandos at mas não o encontro.
Já chegou o nunchuck ... agora é ver como é que se liga e que informação é que envia.
Kast
-
Se quisesses dizer qual era o comando AT já terias visto no teu programa... ;)
mas deixa lá. não estás para partilhas...
-
o google costuma responder ao que outros não respondem:
http://www.usr.com/support/3cp3056/3cp3056-portuguese-ug/atcoms.htm
http://www.developershome.com/sms/
há tantos links com referências a at commands..
-
caro jagsilva
se estivesses mesmo interessado nos comandos já terias reparado que neste tópico eu já exibi isso.
É só uma questão de procurares.
Quanto a querer exibir isso ou não, acredita que nem todos temos tempo livre para isto.
Kast
-
Encontrei o manual dos comandos at ... agora não sei é como colocar anexos ... alguma alma caridosa que explique sff
kast
-
quando tás a responder, por baixo da caixa onde escreves as msgs, tens um link que diz 'opções adicionais'.. clica lá e dps é só browse e enviar..
-
Aqui vai então.
Espero que sirva de algo ... já agora e para não julgarem que estou aqui sem espírito de partilha segue parte do código que utiliza os comandos at:
Sub Teste_telemovel()
Dim Tmp As Integer
Cls
Tmp = Cmd_telemovel( "AT")
Tmp = Cmd_telemovel( "AT")
If Tmp = 1 Then Lcd "Teste T1 - Ok" Else Lcd "Teste T1 - ERRO"
Tmp = Cmd_telemovel( "AT+CNMI=2,1")
Cls
If Tmp = 1 Then Lcd "Teste T2 - Ok" Else Lcd "Teste T2 - ERRO"
Tmp = Cmd_telemovel( "AT*ECAM=1")
Cls
If Tmp = 1 Then Lcd "Teste T3 - Ok" Else Lcd "Teste T3 - ERRO"
Tmp = Cmd_telemovel( "AT+CMGF=1")
Cls
If Tmp = 1 Then Lcd "Teste T4 - Ok" Else Lcd "Teste T4 - ERRO"
Tmp = Cmd_telemovel( "AT+CMER=3,2")
Cls
If Tmp = 1 Then Lcd "Teste T5 - Ok" Else Lcd "Teste T5 - ERRO"
'Tmp = Cmd_telemovel( "AT+CPMS="ME","ME","ME"")
'Cls
'If Tmp = 1 Then Lcd "Teste T6 - Ok" Else Lcd "Teste T6 - ERRO"
'Wait 1
Cls
End Sub
Estou com alguns problemas com o ultimo comando por isso é que coloquei as plicas.
Relembro que está programado em Bascom.
Agora digam que não partilho ....
-
obrigado