LusoRobótica - Robótica em Português
Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: AJoao em 16 de Maio de 2011, 22:46
-
Olá. Tenho uma duvida no meu arduino. Eu tenho o arduino BT, e liguei o tanque RP5 que é alimentado a cerca de 9voltes, fiz uma ponte H e liguei tudo, mas ha dois fios que vâo ligar ao 5V e ao Gnd do arduino que estão ligados directamente aos 9voltes do RP5.
Vai queimar quando ligar? Ou só queimava de liga-se mais de 5voltes na parte da alimentação do arduino?
Cump.
-
Se diz 5v e lhe metes 9v, vai queimar..
Se esses 9v são de uma pilha quadrada é provavel é que o tanque não se mexa, essas pilhas oferecem muito pouca corrente, se queres alimentar o Arduino com mais de 5v ou ligas no jack preto ou metes no pino Vin, todas as massas têm de ser partilhadas, não esquecer.
-
Não, são pilhas de 1,5voltes juntas, são as que o RP5 já leva. Mas tipo, no tuturial da ponte H, aparece para ligar assim. Liguei mas apercebime que isto é de 9Voltes... :/
-
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg708.imageshack.us%2Fimg708%2F8905%2F16052011215.jpg&hash=d7ac6478fc2c92ad40e259b3000aea8b831cd8ca)
Aqueles dois fios verdes, está a ver? que vão aos pinos 5v e Gnd, vão ligar onde a ponte H liga, aos 9 voltes, se não como alimento o circuito para o tanque andar?!
-
Deixas estar a massa no mesmo sitio e simplesmente o fio que enfias-te nos 5v metes no Vin que está ao lado do Gnd no mesmo header em que o tens agora.
-
Então é só mudar o fio que está nos 5V, para ficar entre o amarelo ( 9V ) e o outro verde (Gnd) . Certo? Basicamente vai ficar no Gnd, porque aqui parece que os dois buracos a seguir ao dos 9v, sao Gnd. Não diz vin, so Gnd.
-
Não, tem de ficar no Vin, se ligas 9v e massa juntos tens um belo curto circuito.
O que é que diz aquele terminal com parafusos, não é GND e V+/VIN?
Até tens um terminal todo bonito para ligar lá os fios -.-
Esse fio dos 9v enfias no V+ e a massa no GND.
-
Não, não vejo aqui nenhum vin.
Está o V+ e o GND, para alimentar o arduino, que é esse que vc diz, todo bonito. e aqueles, só diz 5v, GND e 9V depois a seguir, Analogin 0,1,2,3,4,5...
Mas como no tutorial dizia para ligar a ponte H ao arduino assim, foi assim que meti. :/
Então, tiro o fio amarelo (9V) e meto na entrada bonita, no V+ e tiro aquele verde que está no GND para o outro GND de alimentação do arduino....
E aquele e o outro fio verde? Tiro-o do circuito?
Assim fico com outra duvida, lá em cima onde estavam os dois verdes (que era um para o + e outro para o - ) estão ligados os fios negativos e positivos da ponte H. Vai passar lá corrente?
-
não ligues os 9v no V+ se não queimas isso, o arduino Bt tem um step up em vez de step down, precisas de um regulador externo para os 5v
-
Um regulador externo? Como assim? :x
Ao inicio o que tinha em mente era, ligar a alimentação do arduino ( GND e V+) a uma pilha á parte e ligar o resto do circuito aos 9v, que eram os que o RP5 precisava para se mexer.
-
está explicito na página do arduino BT que não podes lá ligar mais do que 5.5V ou queimas a placa
para alimentar o arduino arranjas 1 ou 2 pilhas AA ou AAA (ou um regulador tipo o 7805 para "transformar" os 9v em 5v), a partir dai o arduino já pode alimentar a ponte H a partir dos 5V , os 9V vão só para a alimentação dos motores...
e claro, tens de ter os GND todos partilhados...
-
Eu amanhã, vou mostrar melhor aqui o circuito que fiz, para ver se não queimo isto... É caro...
Cumprimentos
-
Mas se os motores estão ligados directamente na ponte H, como meto os 9V, lá?
-
pino 9 da ponte H é onde se liga a alimentação dos motores, esses 9V que vêm do pack de pilhas...
-
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg202.imageshack.us%2Fimg202%2F4320%2Fponteh5.jpg&hash=76ff80754e20b8facde8486261a9ea5f5a761744) (https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg28.imageshack.us%2Fimg28%2F8170%2Funledsketchbb.jpg&hash=693194bfea090c2428cdf3aa7508e88a30b9169c)
Este foi o circuito que montei. So que em vez de ser esse arduino é o BT. Agora descobri este que está por baixo, mas o meu arduino não tem aquela entrada Vin.
Agora o problema está na alimentação, o arduino precisa de 1,5 e o RP5 Há alguma entrada semelhante no arduino BT?
para mexer os motores precisa de 9v. Ele vem com um suporte para levar
pilhas até aos 9v. Mas como faço para não queimar o arduino? Ao estar a
ligar assim, os motores vão precisar dos 9v, onde ligo esses fios para
alimentar os motores?
Cumprimentos
-
onde está escrito 9V ou VIN fisicamente é a mesma coisa, as versões mais antigas do arduino traziam escrito 9V, mas como em sempre se liga lá 9V alteraram para Vin.
A diferença aqui é que o teu arduino é o BT e o modo de funcionamento dessa parte é diferente, enquanto o UNO, mega, Deumilanove são alimentados externamente por uma voltagem superior à de funcionamento, têm um circuito que vai baixar essa voltagem até à desejada (step down), o BT é o oposto, é alimentado por uma voltagem inferior à de funcionamento e tem um circuito que vai aumentar a voltagem até à desejada (step up).
os pinos Vin estão directamente ligados no BT ao V+ do conector verde e nos outros ao jack DC, no teu caso apenas podes ligar no máximo 5.5V no V+ por isso apenas vais ter 5.5V no V+, se ligares uma pilha AA de 1.5V vais ter ai 1.5V.
como eu disse à uns posts atrás ou arranjas um suporte para 2 pilhas AA ou AAA, ligas ao arduino e alimentas a ponte H (pino 16) com o pino 5V do arduino ou arranjas um IC 7805 (step down)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Ft2.gstatic.com%2Fimages%3Fq%3Dtbn%3AANd9GcSIbN31NH-zuBA8r6Suz22uRLS4K8CIxxxEnMDkGhqavlC3LGMWKQ%26amp%3Bt%3D1&hash=67f49fc163b92ae65ff991349c0684784a0c71f8)
-
Aguem sabe de um programa em que possa desenhar o meu circuito? Que dê para ter a breadboard e meter o arduino, fios o circuito integrado e afins?
Agradecia, para poder desenhar e me poderem corrigir onde o meu circuito está errado.
Cumprimentos
-
O tipicamente usado é o Fritzing, se bem que é mais um programa de brincar do que a sério, mas para o que queres é o mais simples.
-
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg714.imageshack.us%2Fimg714%2F9278%2F18052011220.jpg&hash=0bfd4eeb30b73574531ac07362c6e8416cc7902f)
Então diz-lá, CBX, os pinos que estao mal ligados e para qual os mudo? Sff... Aqui está uma foto do circuito.
O circuito é praticamente aquele que mostrei da ponte H. Os fios que vêm da ponte H os + e - , estão ligados o + ao 5V e o - ao GND ( na foto aparecem trocados mas eu já mudei, foi erro meu), a alimentação da ponte H (fio amarelo) está ligada ao pino 9V do arduino o que devo acrescentar e mudar?
Atenção que aquela fila do arduino, só diz, 5V, tem duas entradas GND e 9V.
Obrigado. Cumprimentos
-
O Arduino tem de ser alimentado com qualquer coisa acima de 1.2V e abaixo de 5.5V, como o CBX está a dizer, há vários circuitos que fazem isso e pode-se simplesmente ligar 2 ou 3 pilhas AA em série e alimentar. Esta alimentação é a que vai para o "terminal todo bonitinho". Depois há que fazer as ligações à ponte H tal e qual no esquema - os 5V, a massa (GND) e os quatro sinais (laranjas) - ou seja, tudo, excepto os 9V. O pino da ponte H que deve receber 9V fica ligado ao positivo da bateria e o negativo vai para o GND (da breadboard, por exemplo). A placa do arduino não tem nada a ver com os 9V, porque se receber vai queimar.
-
Então, quer dizer que o fio amarelo que vem da parte da ponte H, desliga-se dos 9v e ligo-o ao + da alimentação dos motores que são cerca de 8 a 9V.
O verde que está ligado ao 5V do arduino, tiro-o e ligo-o aos 8 a9V doas motores e o GND do arduino pode lá continuar?
Depois com um suporte de pilhas (que ja tenho), alimento o arduino pela "entrada bonitinha". Ou seja o carro vai ter duas alimentações, uma para o arduino e outra para a ponte H e respectivos motores.
Sendo assim, aqueles fios ali de cima, logo na primeira fila da breadboard posso-lhes meter ai os 8 a 9V e o fio amarelo da ponte H passar para ai....
Só espero não vir a queimar nada, pois este arduino é bem caro. :)
Uma outra coisa que agora notei é que as pilhas que o tanque RP5 leva, que são 6AA, quando o ligo (directamente,( pois ainda não tenho este circuito concluído), para ele andar só para a frente ficam a escaldar, nem sei como não rebentam, nem é preciso muito tempo basta 1 ou 2 minutos para nem lhes conseguir tocar.
Alguma sugestão?
Cumprimentos.
-
se ficam quentes tens alguma coisa a fazer curto-circuito.
sim, esse fio amarelo liga às pilhas, o fio verde dos 5v fica onde está, e mais uma vez tens a ponte H montada ao contrario, a concavidade não está lá por acaso, serve para mostrar a orientação, repara na imagem:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.extremeelectronics.co.in%2Favrtutorials%2Fimages%2Fmotor-controller.gif&hash=42effc72651ec8117cc6f54f0f871910fe5d338f)
-
Impossível estar a fazer curto-circuito. Então ligar as pilhas diretamente aos motores não pode fazer curto circuito e mesmo assim aquecem.
Agora o que faço é ligo um motor o + aos + da pilha e o - ao - da pilha, e o outro motor tenho de ligar o + ao - e o - ao + da pilha, para que ele ande em frente se não, se ligasse todos os + aos + e os - aos -, o tanque andava ás voltinhas....
-
Podes estar a dar tensão a mais, ou não?
Há muito atrito na desmultiplicação?
-
Ou a puxar muita corrente e as baterias simplesmente aquecem.
-
Pois, não sei mesmo. Quem conheçe ou tem, o Tanque RP5, secalhar deve-lhe acontecer o mesmo... Eu uso pilhas alkalinas da duracell e faz isto... :/ As primeiras que lhe meti não duraram nem 20 minutos, descarregaram por completo... Não há pilhas que aguentem para isto.
-
Isso é com os motores sempre a fundo ou a usar pwm?
-
Sempre a fundo. :/
-
Não estou a conseguir montar o circuito devidamente... Apesar do CBX, me ter tentado ajudar, não estou a conseguir perceber isto.... Li na pagina do arduino BT, que nenhum dos pinos poderia trabalhar com mais de 5,5v . Pois bem, alguém me conseguirá desenhar um circuito que me ajude? É que a ponte H vai ligar ao arduino e os motores trabalham a 9V... Quando ligar os fios da ponte H ao arduino ele vai receber 9V nos pinos 5, 6, 10 e 11?
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg28.imageshack.us%2Fimg28%2F8170%2Funledsketchbb.jpg&hash=693194bfea090c2428cdf3aa7508e88a30b9169c)
Cumprimentos
-
que giro eu criei este desenho pode se assim dizer e já o vi em dezenas de sitios
-
Encontreio na net por acaso... Onde vai ligar aquele fio vermelho que vem da ponte H para o arduino? E os fios verdes que vao aos pinos 5,6,10 e 11, nao faz mal estarem ligados á ponte H a 9 Voltes?
-
o desenho está bem, apenas ignora aquele traço vermelho que liga ao Vin do Arduino
tu estas a fazer uma confusão enorme, os 9V alimentam os motores não a ponte H, os fios verdes são INPUT na ponte H, não há problema nenhum
-
qual dos vermelhos a dois?
a um que vai ao vin que liga no vss a ponte H e a outro que liga ao vs e aos enable
e os lios verde nao faz diferença se esta a 9 ou a 5
-
e isso que o ricardo disse tu esquece o vss e os inputs pois e para isso praticamente que serve uma ponte H e para SEPARAR os dois circuitos por isso as diferença de potencial pode ser diferente nos motores
-
Então, posso fazer esse circuito como ai está, tirando apenas aquele vermelho que o CBX disse, né? :)
Bestial, a ver se isto anda para a frente....
Cumprimentos
-
Boas.
Liguei tudo como naquele esquema.
E meti as pilhas no suporte para pilhas que o RP5 trás, mas elas começaram a aquecer... Aqueceram tanto que começaram a derreter o plástico do suporte, em menos de 1 minuto!!! Basta ligar as 6 pilhas ao suporte e depois á breadbord para acontecer isto... Alguém me consegue explicar o porquê?
Cumprimentos.
-
Tens ai um curto circuito.
-
Como posso fazer para vcs me ajudarem a resolver isso? :/ Estive a experimentar em meter as pilhas só no suporte, sem o suporte estar ligado a nada, só lá com as pilhas começam a aquecer do nada....
-
O suporte é este que aparece ai mais ou menos a meio da pagina, leva 6 pilhas AA.
-
Então ou estás a meter as pilhas ao contrário ou estragaste o suporte ou o suporte tem defeito de fabrico.
-
ou um dos motores está avariado ou tem alguma engrenagem partida\defeituosa
-
Estou lixado com isto... Só problemas.... :x
-
se ligares um motor directamente aquecem à mesma?
-
Sim, se ligar os vermelhos do suporte aos vermelhos dos motores e os pretos aos preto, não aquece logo, demora ai 2 ou 3 minutos. Mas ele assim anda ás voltinhas, não anda em frente. Para andar em frente, tenho de trocar um desses, os fios de um dos motores trocados, percebe? E ai, ele já anda em frente, mas aquece rápido....
-
tens um multímetro para medir a corrente dos dois motores em carga? a solução é arranjar umas pilhas recarregáveis de alta capacidade
-
Aqui não tenho...Só na oficina... :/ Eu já reparei que o motor do lado direito gira mais depressa que o outro... Isso é relevante?
-
Já descobri o problema de as pilhas aquecerem tanto... Era um interruptor que eu tinha metido, antes do suporte das pilhas, para o RP5 ligar só quando eu quisesse... Quando tirei o interruptor ela ja nao aqueceram mais...
Cumprimentos
-
Olá, de novo.
Alguem sabe como comunicar com o arduino BT atmega328?
É que não consigo enviar nada do programa arduino-0022 para o BT, parece que não se encontram um ao outro. Mas o pc com a pen bluetooth encontra o BT.
Cumprimentos.
-
Entre encontrar e estarem os dois com a configuração certa e igual vai muito, como está a baud-rate nos dois lados?
Controlo de fluxo, paridade, bits da dados e isso?
-
Não sei... Quando ele veio, a primeira vez que tentei fazer a comunicação deu, até exprimentei o exemplo do led no pino 13 e no GND. Como tinha dado, nunca mais tentei até agora que ja tenho o programa e tudo montado. Até comprei outra pen bluetooth a ver se o problema era da pen mas não. Isto é o erro que ele dá:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg19.imageshack.us%2Fimg19%2F4886%2Ferronobt.jpg&hash=6a152c9d2342ce05a18bf9eaee9688ce9bc510ce)
-
Quer dizer que ele não encontra a COM12, é a certa?
-
Pois, acho que é isso. Mas ele ali diz que não encontra a COM12 e quando meto a pen bluetooth e o ligo á pen, ele diz que a porta de entrada é a COM18 e de saida a COM17. Eu acho que é isso das COM, que está tudo trocado...
-
shred nisso lol.
-
Não te esqueças que sou novo nisto... xD Explica lá em que consiste o shred?
-
O shred é uma maneira de limpar uma pasta ou um ficheiro em linux de maneira que é totalmente impossivel recuperar os dados lol.
Piadas á parte, isso é muito estranho de aparecer tanta COM.
-
O que posso eu fazer para resolver isto? Não me digas que tenho de mandar o BT para a loja? :x
-
Diria mais limpar os drivers todinhos e depois voltar a instalar limpo.
-
Desinstalo o arduino-0022 e saco de novo... Eu já reparei que quando vou a clicar no tools, ele demora ai uns 20 segundos até abrir, enquanto os outros basta passar o rato....
Muito Obrigado.
Cumprimentos, A'João
-
Isso é problema dos drivers das pens bluetooth...
-
Mas até já comprei duas, para o caso de o ploblema ser das pen's, e comprei diferentes!
-
Desinstalas tudo e instalas só um.
-
Vou fazer até outra coisa... Levo tudo para a empresa onde estou a estagiar e num pc de lá, experimento, instalo a pen Bluetooth e saco o arduino-0022 a ver se dá...
Espero que funcione... Se não, não sei o que fazer... E não gostava de desistir deste projeto...
Cumprimentos, A'João
-
Vais desistir apenas por isso?
Onde se aprende mais é a resolver esse tipo de problemas..
-
Não é apenas por isso... É que isto está a dar cabo de mim, só problemas atrás de problemas. Mas tenho de tentar levar isto até ao fim... Faltam-me bases para fazer o que quero fazer, mas pronto, começei vou tentar acabar...
-
Por um lado não te devias atirar de cabeça logo para Arduino bluetooth, por outro lado assim aprendez á primeira lol.
-
mas o bluetooth não é encriptado e precisa de password?
não será esse o teu problema?
-
Sim, precisa de uma passe que é 12345. Mas isso, eu meto quando ligo a pen bluetooth e se encontram um ao outro.
-
Olá de novo...
Queria AGRADECER AO FORUM DA LUSO ROBÓTICA e a TODOS os que me ajudaram. Pois já consegui (finalmente) ter tudo montado e a funcionar. Já consigo enviar também tudo o que quero para o arduino. O segredo (como já aqui tinham referido) é fazer o reset na altura certa e andes disso ver as portas COM se estão corretas!
Agora vem ai a programação...
Já tenho algumas coisas feitas (para testar). Mas o que eu queria fazer era, que o arduino ficasse á espera de receber informação, por exemplo, ele recebe o numero 2 por bluetooth do telemovel (pelo bloco de notas do telemovel) e anda em frente, depois envio o 5 e ele pára e assim sucessivamente... É possível fazer isto?
Cumprimentos, AJoão
-
Sim, é possivel fazer isso.
Agora é pesquisar sobre o assunto e postares aqui as tuas duvidas, e força com o projecto ;)
-
/* Programa de teste aos motores */
#include <Stepper.h> // Preciso da biblioteca de controlo dos motores
#define steps 10 // Numero de passos numa volta completa do motor.
#define m1_red 11
#define m1_black 10
#define m2_red 6
#define m2_black 5
// Definicao dos objectos de controlo dos motores
Stepper motor = Stepper(steps, m1_red, m2_red, m1_black, m2_black);
void setup()
{
// Definicao da velocidade em rotacoes por minuto.
motor.setSpeed(50);
}
void loop()
{
// Definicao do numero de passos a executar.
motor.step(500);
}
Usei este para testar os motores... Nada de especial, mas serviu para ver se estava tudo a funcionar...
-
Alguém sabe como programar o arduino para ele ficar a espera de receber dados? Por exemplo ele está a espera e quando recebe um numero liga os dois motores, passado 10 segundos esquece esse numero e fica a espera de outro....
Cumprimentos
-
delay (100);
while (Serial.available>0)
{
// instruçao para leres os dados da porta serie
}
simples e eficas
-
Obrigado, vou ver se funciona... xD
-
Olá.
Alguém sabe os comandos para o arduino reconhecer os números? É que primeiro de tudo, quando o telemovel encontra o arduino (por bluetooth) e mando por exemplo o numero 2(escrevo no bloco de notas do telemovel) e ele nem recebe, no telemovel aparece "falha de envio" e o que eu queria era que o telemovel envia-se e ele reconheçese, 2 andar em frente por exemplo.
Alguém me pode ajudar com isto?
Cumprimentos
-
Olá.
Alguém sabe os comandos para o arduino reconhecer os números? É que primeiro de tudo, quando o telemovel encontra o arduino (por bluetooth) e mando por exemplo o numero 2(escrevo no bloco de notas do telemovel) e ele nem recebe, no telemovel aparece "falha de envio" e o que eu queria era que o telemovel envia-se e ele reconheçese, 2 andar em frente por exemplo.
Alguém me pode ajudar com isto?
Cumprimentos
Porque raio o que escreves no bloco de notas do telemóvel devia ser enviado para o Arduino por BT?
Estás a usar symbian? Se sim ve os exemplos de python :)
PS: Não leves aquele "porque raio" negativamente foi só para que tentasses pensar porque não funcionaria, e o senso também explica no post seguinte ;)
-
Assim não estás a enviar 2 mas sim ficheiro de texto que por acaso terá lá o numero 2 dentro, mas terá muito mais caracteres tambem..
-
Não, estou a usar o arduino BT atemega328 e a ideia era enviar a informação do telemovel para o arduino, por bluetooth. Ou seja, escrevia no bloco de notas um numero e enviava por bluetooth, o arduino recebia e executava. Acho que isso ade ser possivel.... :o
-
Assim não estás a enviar 2 mas sim ficheiro de texto que por acaso terá lá o numero 2 dentro, mas terá muito mais caracteres tambem..
Mas é possivel que ele reconheça apenas esse 2 e ignore tudo o resto, não é?
-
Fazes um programa, até podes usar o Processing mobile para fazer isso, e quando carregas num numero ele envia ou o numero ou uma letra ASCII e o Arduino só recebe esse numero ou letra e faz o que tem a fazer, agora não estou a ver o bloco de notas a ter sequer capacidade para fazer streaming do que quer que seja seja por bluetooth ou gsm ou seja lá o que for.
-
Mas assim tinha de fazer um programa para o telemóvel?! Sou novo nisto... É complicado...
-
Metes Processing mobile no google e vais ver que é praticamente o mesmo que programar o Arduino, tens muitos exemplos, sempre aprendes mais uma coisa.
-
O problema é que eu não tenho muito tempo e gostava de terminar isto o quanto antes... Aquele projecto no Pedro Vicente e do Tayeb, seria praticamente isso?
-
Qual projecto?
Pois, estas coisas demoram sempre mais que o se pensa e decidir deixar as coisas para a ultima da hora dá duas soluções, não fazer e pronto ou mandar meia duzia de noitadas para ficar tudo a trabalhar.
-
Mas eu passo as noites que forem preciso para concluir este projeto.
Este projeto: http://redacacia.wordpress.com/2010/09/15/controlling-a-robot-with-bluetooth-enabled-cell-phone/ (http://redacacia.wordpress.com/2010/09/15/controlling-a-robot-with-bluetooth-enabled-cell-phone/)
-
Pois, é mesmo isso ele até usa processing mobile....
Agora é ler isso tudo, ler um bocado sobre o processing mobile e martelar código, que copiar é feio.
-
Copiar é feio, mas se eu copiar e testar (só para ser em caso de recurso) e fazer depois um codigo meu. Achas que dava? Deve ter de se fazer algumas alterações, ou não?
-
Nunca usei processing mobile, não sei quão dependente é do modelo do telemovel e bla bla bla.
Digo que copiar é feio porque cheira-me a PAPs e companhia, copias tudo muito bem e depois explicar tá quieto, e se eu fosse professor e não me soubessem dizer o que aquele código faz era logo com um 0 porque isso é dizer descaradamente que se copiou e andou.
-
Eu acho que python até é mais simples, mas sim processing tambem é.
Olha este projecto:
http://www.youritronics.com/1st-place-at-digilent-design-contest/ (http://www.youritronics.com/1st-place-at-digilent-design-contest/)
-
Nada disso, eu gosto de saber do que falo, não é depois virem perguntar-me o que é uma coisa e não saber o que dizer. Posso até copiar, mas eu já ando nisto á 5 meses e só agora começei a avançar. Tenho pesquisado muito e estudado o basico da programação, para depois não fazer figura de urso. :D
Vou ler aquilo tudo com atenção e tentar experimentar. Ainda não percebi bem, ele fez mesmo um programa para o telemóvel?
-
Bem... Vou ver os dois e tentar aquele que me for mais fiavel. Não posso desperdiçar muito tempo. Pensava de este tipo de projetos não nos levar tanto tempo...
-
Ainda não percebi bem, ele fez mesmo um programa para o telemóvel?
Sim, vais ver que não é tão dificil como parece :)
-
Espero que não... Inclusive eu já estudei processing logo no inicio quando pensei em fazer este projeto. Só que tenho poucas bases de programação...
-
Afinal não é bem só copiar... Não está ali o codigo do programa que ele fez para o telemovel....
-
Esta abaixo disto:
Mobile Processing Sketch
-
Mas precisa de bibliotecas que não encontro... As bibliotecas são fornecidas por ele ou são mesmo do processing?
-
Quais bibliotecas afinal?
Já fizeste download do IDE do processing mobile?
É que isso não é para compilar no IDE do Arduino...
É que é so ler o site e coiso...
-
Sim eu já o tinha, porque até andei a pesquisar sobre ele antes de começar com isto. Tenho o Processing 1.2.1 . E meti lá o codigo, só que ele diz isto quando clico em RUN : Note that release 1.0, libraries must be installed in a folder named 'libraries' inside the 'sketchbook' folder.
-
Faz o que ele te diz, vai á pasta libraries do Processing, copia a biblioteca que estás a usar, e dentro da pasta sketchbook crias a pasta libraries e colas lá os ficheiros.
-
Pois é isso que não percebo, qual biblioteca que estou a usar? :s
-
A que está depois do import.
Já leste isto não já?
010 // This needs my patched bluetooth library that allows short UUIDs
011 // found at http://roombahacking.com (http://roombahacking.com)
-
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg546.imageshack.us%2Fimg546%2F408%2Fsemttulobu.jpg&hash=fb21a6e3f29f807cc852e505db80558e109a8714)
Aposto que deves de estar a pensar... Fogo, este gajo deve de ser muito burro... Ahah, mas não encontro... É aquilo, Show Sketh Folder Ctrl+K ?
-
Mas nem sabes sequer onde estás a guardar o programa?
Lê lá isso tudo, vai ao link buscar a biblioteca que é precisa e metes a biblioteca junto com o programa aka Sketch mas em vez de ser na mesma pasta é numa pasta nova chamada libraries.
-
Sei onde estou a guardar o programa, não sei é o nome da biblioteca (que devia de estar no site) nem onde está....
-
bluetooth?
-
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg28.imageshack.us%2Fimg28%2F2936%2Fssdefe.jpg&hash=60a742c1e571aa078fb5c5b7769cfcdd63593256)
O Bluetooth é isso do roombactrl. Nunca mexi com bibliotecas, por isso é que estou tão atrapalhado com isto...
-
// Bibliotecas para controlar os motores e para estabelecer uma comunicacao do tipo serie
#include <Stepper.h>
#include <SoftwareSerial.h>
#define rxPin 0 // Pino de recepcao
#define txPin 1 // Pino de transmissao
#define steps 100 // Numero de passos por rotacao do motor
// Definicao dos pinos de alimentacao e ground do motor
#define m1_red 2
#define m1_black 3
#define m2_red 4
#define m2_black 5
// Definicao de um porto de entrada serie
SoftwareSerial P1 = SoftwareSerial(rxPin, txPin);
// Definicao de um motor
Stepper motor = Stepper(steps, m1_red, m2_red, m1_black, m2_black);
//Programa principal
void setup()
{
pinMode(rxPin, INPUT); // Defino o pino 0 como de entrada
pinMode(txPin, OUTPUT); // Defino o pino 1 como de saida(embora nao o deve necessitar)
// Vou definir a taxa de transmissao de dados do meu porto para o valor por defeito do Bluetooth (115200 bits/s)
P1.begin(115200);
// Definicao da velocidade do motor
motor.setSpeed(10);
}
// Vou criar um ciclo em que o modulo fica a espera de dados pelo pino Rx. Quando recebe um valor entre 1 e 100, mete
// mete o motor a funcionar durante esse numero de passos. Quando o motor para, fica novamente a espera de outro numero
void loop()
{
int passos = 0; // Valor de controlo para os passos do motor
passos = P1.read();
if((passos >= 1) && (passos <= 100)) // Se o valor for valido
{
// Faz o motor andar esse numero de passos
motor.step(passos);
}
}
O código diz ai tudo... Só que o meu problema é, como é que mando do telemovel informação para o pino Rx?
Tenho mesmo de fazer um programa para o telemovel? Não cosigo de maneira alguma fazer com que o arduino reconheça um numero que envie pelo bloco de notas do telemovel?
-
Se é possível que o Arduino reconheça o ficheiro enviado pelo telemóvel? É! http://tinyurl.com/66bkbdb (http://tinyurl.com/66bkbdb)
Eu eu fosse professor e tu conseguisses fazer isso dava-te 20!
Viste bem o projecto que te mandei?! Não me parece pois o python trás exemplos para enviar dados por Bluetooth em serie!
-
O problema é que eu queria mesmo que fosse assim, do bloco de notas do telemovel enviar o numero e o arduino reconhecesse...
-
E já agora, eu não quero 20 xD A unica coisa que quero é concluir isto para ter o 12º. Nem que seja com 9,5... Só quero passar...
-
Mas qual é a parte que não compreendes que o bloco de notas não tem nada, mas mesmo nada a ver com bluetooth?
É que o bloco de notas nem sequer guarda o que escreves a cada segundo para estar sempre actualizado, logo tens de fazer um programa que le as teclas do telemovel e que envia por bluetooth informação após uma tecla ter sido premida.
-
Sendo assim, vou tentar uma coisa mais facil... (Para começar acho que será mais fácil)
Controlar o "tanque" pelo pc. Mas eu queria que não tivesse sempre que andar a meter e tirar o codigo, percebes? Pelo pc, dizer para onde quero que ele vá é mais fácil, certo?
Cumprimentos
-
sim é mais fácil, não precisas de programar nada, pegas num terminal, o do ide do arduino serve, e envias os comandos, por exemplo: envias um "f" para andar para a frente, "t" para trás, etc, o arduino lê o comando e executa, se estiveres à vontade com VB ou C# podes fazer uma interface gráfica simples com uns botões...
-
Andar a meter e tirar código de onde?
Se for para fazer depressa, tipo numa hora ou nem isso podes usar processing, o que não falta é precisamente robots feitos com Arduinos controlados em pc por processing.
-
O que eu queria era que ele desde que estivesse conectado via bluetooth, com as setas apenas andasse por onde mandava.
É preciso criar alguma aplicação para isso? É que nao queria ter que andar sempre a fazer o upload para a placa sempre que queria que ele fosse em frente, parasse ou andasse para tras....
Cumprimentos
-
No lado do pc podes usar processing, o bluetooth pode ser tratado simplesmente como uma porta serial, do lado do arduino podes fazer:
swithc(serial.read={
case 'w':
andar em frente
break;
case 's':
andar para trás
break;
etc etc etc
}
Penso que entendes a ideia.
-
Sim, entendo. (: Vou experimentar...
Obrigado
Cumprimentos
-
Olá outra vez.
Gostava de saber, se alguem me pode ajudar com o processing que estou a ter muitas dificultades.
O que escrevo no processing, para enviar via bluetooth a letra 'w' ou 's' ou outra, para o arduino?
Cumprimentos
-
É que na parte do arduino já está feito... Agora falta é mandar as letras para lá...
Está complicado...
-
Fazes serial.prints, porque o bluetooth pode ser visto como uma porta serial, só tens é de fazer um print do serial.list no processing para saber em que sitio está a tua pen bluetooth.
-
Mas como é que eu começo? Começo logo assim?
void setup ()
Serial.begin (9600)
void loop ()
Serial.print ("W" )
Serial.print ("\ t")
for (x = 0; x <64; x + +)
Serial.print (x)
delay / 200 milissegundos}
Serial.println ("w");
}
-
Isso é codigo para onde?
-
Oh... Fogo, já me enganei. Era para o processing, mas troquei tudo. :x
Eu já ando com isto tudo baralhado.... :s
Eu o do arduino já tenho é só experimentar. Fica aqui para dares uma olhadela. Mas acho que está em ordem. É o do processing é que me está a meter maluco.
/* Programa de teste aos motores */
#include <Stepper.h>
#include <SoftwareSerial.h>
#define rxPin 0
#define txPin 1
#define steps 100
#define m1_red 2
#define m1_black 3
#define m2_red 4
#define m2_black 5
// Definicao de um porto de entrada/saida serie
SoftwareSerial P1 = SoftwareSerial(rxPin, txPin);
// Definicao dos objectos de controlo dos motores
Stepper motor = Stepper(steps, m1_red, m2_red, m1_black, m2_black);
void setup()
{
pinMode(rxPin, INPUT); // pino rx como pino de entrada de dados
pinMode(txPin, OUTPUT); // pino tx como pino de saida de dados
P1.begin(115200);
}
void loop()
{
char comando;
comando = P1.read();
switch(comando) {
case 'w': // Andar para a frente
{
motor.setSpeed(50);
motor.step(1000);
}
case 's': // Andar para tras
{
motor.setSpeed(-50);
motor.step(1000);
}
default:
{
motor.setSpeed(0);
motor.step(0);
// Caso o comando dado nao seja valido, o carro para.
}
}
}
-
Por que raio de razão estás tu a usar serial por software nos pinos do serial por hardware?
Estás á espera de ter problemas, só pode, e isso continua a ser código para Arduino.
-
Sim este é o que é para ficar no arduino, mas tenho de fazer um (em processing, né?) para as letras para este.... Se houvesse ainda uma forma mais facil de enviar ainda era melhor...
Boa pergunta... Pensei que estivesse bem. Isso é as Bibliotecas de ligação serie :S
-
Não isso é serial por software, por hardware é simplesmente Serial...
http://arduino.cc/en/Reference/Serial (http://arduino.cc/en/Reference/Serial)
-
Hummm.... Então tiro o (Software ) e fica fica apenas <Serial.h> .
E no Processing, que posso eu fazer? Disses-te para fazer serial.prints, mas não sei como começar o código.
Nunca consegui fazer uma unica coisa que funcionasse em processing.
-
Não precisas de meter nada, porque a lib Serial nativa já está incluida por defeito.
Tens exemplos no IDE do Arduino e tudo.....
-
Exemplos para processing, mas é meter processing arduino e mais qualquer coisa no google que o que não falta são tutoriais.
http://webzone.k3.mah.se/projects/arduino-workshop/projects/arduino_meets_processing/instructions/index.html (http://webzone.k3.mah.se/projects/arduino-workshop/projects/arduino_meets_processing/instructions/index.html)
-
Não precisas de meter nada, porque a lib Serial nativa já está incluida por defeito.
Tens exemplos no IDE do Arduino e tudo.....
Mas e se ficar assim? Não faz mal, pois não?
-
Estás sujeito a isso funcionar mal, usa mais espaço em flash e em RAM e se tens uma porta serial por hardware perfeita para que usar serial por software?
-
Boas.
Estou mesmo á nora com o processing, não sai nada de nada daquilo.... :x
É assim tão complicado criar qualquer coisa basica, que envie letras para o arduino? É que eu não estou a conseguir...
Cumprimentos
-
se é só para testar (no pc) porque é que não usas um terminal?
é só escrever o que queres e enviar
-
Penso que até lá tens exemplos sobre como o fazer,já te dei links e é só meter arduino processing serial no google ou algo assim que tens mil e um exemplos.
-
se é só para testar (no pc) porque é que não usas um terminal?
é só escrever o que queres e enviar
Como assim? Escrevo no processing por exemplo o "W" e envio? :s
-
Não, num terminal tipo Brays terminal, hyper terminal, minicom, etc.
-
Estive a experimentar o Brays terminal, mas nao consigo fazer com que ele encontre o arduino Bluetooth. Alguma sugestão? É que a porta COM que o arduino está ligado é a 38 e so dá para seleccionar a 4, nem a 38 aparece no Brays terminal.
Cumprimentos
-
usa o terminal do IDE do arduino
-
Como é que faço para mandar por exemplo o "w" pelo terminal do IDE do arduino? :s
Não estou bem a ver isso...
-
pressionas w e depois enter.
-
Agora é o código que está mal. --'
Aquele código que está na pagina anterior, era para ao mete-lo no arduino ele não fazer nada até que recebesse a letra. Mas ele liga o motor esquerdo sem eu lhe enviar nada.
Alguém sabe o que é que está mal no código? :/
-
Ninguem sabe o que está mal no codigo? :/
Será por ter isto " #include <SoftwareSerial.h> " ?
-
o código é o da página anterior?
-
Sim, é o que tenho para o arduino receber as letras e andar...
-
já foi dito por outros e por mim ao longo deste tópico:
a biblioteca softwareserial.h SÓ serve para usar serial em pinos que não o suportam por hardware
a biblioteca stepper.h SÓ serve para controlar motores de passo, os teus são motores dc normais, o modo de controlo é completamente diferente
-
Quer dizer que tenho de alterar o codigo todo ? :/
-
sim
edit:
tens aqui um exemplo:
char comando;
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available()>0) {
comando = Serial.read();
switch(comando) {
case 'w': {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
}
case 's': {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
}
}
}
ao enviar "w" o led pisca 2x, "s" pisca 1
-
Ok. Obrigado, vou ver o que consigo fazer... (: