Offline
Newbie
Karma: 0
Posts: 34
|
 |
« Reply #60 on: September 24, 2012, 01:02:35 pm » |
Beleza cara... vou dar mais olha olhada se não fiz m.... Valeu pela informação!!! Jo
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 34
|
 |
« Reply #61 on: September 28, 2012, 02:15:29 pm » |
Beleza cara... vou dar mais olha olhada se não fiz m.... Valeu pela informação!!! Jo Fala pessoal, desculpe pelo ausência.... tive que fazer uma cirurgia esta semana.... mas já tô bem e em casa..... Mortis, fiz os testes, realmente "só" os 5v..... fiz até uma ligação igual a sua.... mas somente os 5v!!!! O que será que tá errado? Se alguém tiver uma luz eu agradeço!! Jo
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Full Member
Karma: 7
Posts: 139
IDE for Microsoft Visual Studio and Atmel Studio 6.1, optional USB Debugger
|
 |
« Reply #62 on: September 29, 2012, 05:45:18 pm » |
 Me interessou essa parte: "Apply to be a beta tester when you register for the forum. Contributors get a free forever license for the debugger upgrade when it is released"
É interessante vermos as regras, "free forever" é muito melhor!
Yes, it is "free forever" for all beta contributors (the more the better, hint hint) but it won't cost very much anyway http://www.visualmicro.comYou can see a slow but detailed overview of the Arduino debugger on youtube . The first couple of minutes is for new Arduino users, the remainder shows basic debugging. Sorry for using English
|
|
|
|
« Last Edit: September 29, 2012, 05:50:10 pm by Visual Micro »
|
Logged
|
|
|
|
|
Offline
Sr. Member
Karma: 4
Posts: 256
|
 |
« Reply #63 on: September 30, 2012, 07:02:52 pm » |
Fala ai Jo,
Me desculpe por demorar a entrar, mas as coisas estão corridas por aqui =/
Você tirou a placa fora e fez os testes iguais aos meus? Sem mais nada ligado na placa? Você mediu a bateria ou fonte e ela fornece mais de 5V?
Muito estranho isso, a saída do motor deveria ter a mesma voltagem do VMS... ... Eu seguiria as trilhas da placa para ver se tem algo estranho, sei lá, não imagino como te ajudar.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 34
|
 |
« Reply #64 on: October 01, 2012, 08:58:39 am » |
Fala ai Jo,
Me desculpe por demorar a entrar, mas as coisas estão corridas por aqui =/
Você tirou a placa fora e fez os testes iguais aos meus? Sem mais nada ligado na placa? Você mediu a bateria ou fonte e ela fornece mais de 5V?
Muito estranho isso, a saída do motor deveria ter a mesma voltagem do VMS... ... Eu seguiria as trilhas da placa para ver se tem algo estranho, sei lá, não imagino como te ajudar.
Fala Mortis, quanto a demora nem esquenta.... tranquilo.... Cara eu fiz dos dois jeitos, só coloquei o multímetro na saída do motor (sem os fios ligados, só o multímetro mesmo) e deram os 5v.... ai pensei que o jeito que vc ligou pudesse ter interferido em alguma coisa e desliguei tudo.... só a plaquina controladora.... a bateria e o multímetro nas saídas.... os jumpers tb iguais aos seus.... mas nada mudou... tudo igual.... que decepção.... fazê o que né.... vou esperar as baterias que eu comprei chegarem... ai eu testo de novo!!!!! Outra coisa que fiz foi medir a corrente do carrinho igual ao colega Filantropic ensinou no outro tópico que eu abri e deu certo... a corrente é de 0,68 A... quem sse interessar procura no tópico que eu postei um vídeo do youtube que o cara ensina a medir.... Outra coisa foi o controle remoto com o N95, deu certo, consegui deixar do jeito que eu queria.... o carrinho só anda para as direções quando vc pressiona a tecla, se soltar ele para... simulando um controle remoto real.... ficou legar.... mas o direcional é muito pequeno.... eu dedo é grande e constantemente aperto as outras teclas em volta e ele sai da aplicação.... ou seja.... o manejo té legal....mas a agilidade tá ruim..... vou pesquiser usar um controle de PS2 que tenho jogado aqui.... quem sabe!!!! Se algum colega quiser dicas ou o código estou a disposição!!! Se alguém tiver uma idéia de o porque minha plaquinha não tá "soltando" os 7 v na saída do motor eu agradeço!!!! Jo
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 18
|
 |
« Reply #65 on: October 01, 2012, 09:09:37 am » |
Fala ai Jo,
Me desculpe por demorar a entrar, mas as coisas estão corridas por aqui =/
Você tirou a placa fora e fez os testes iguais aos meus? Sem mais nada ligado na placa? Você mediu a bateria ou fonte e ela fornece mais de 5V?
Muito estranho isso, a saída do motor deveria ter a mesma voltagem do VMS... ... Eu seguiria as trilhas da placa para ver se tem algo estranho, sei lá, não imagino como te ajudar.
Fala Mortis, quanto a demora nem esquenta.... tranquilo.... Cara eu fiz dos dois jeitos, só coloquei o multímetro na saída do motor (sem os fios ligados, só o multímetro mesmo) e deram os 5v.... ai pensei que o jeito que vc ligou pudesse ter interferido em alguma coisa e desliguei tudo.... só a plaquina controladora.... a bateria e o multímetro nas saídas.... os jumpers tb iguais aos seus.... mas nada mudou... tudo igual.... que decepção.... fazê o que né.... vou esperar as baterias que eu comprei chegarem... ai eu testo de novo!!!!! Outra coisa que fiz foi medir a corrente do carrinho igual ao colega Filantropic ensinou no outro tópico que eu abri e deu certo... a corrente é de 0,68 A... quem sse interessar procura no tópico que eu postei um vídeo do youtube que o cara ensina a medir.... Outra coisa foi o controle remoto com o N95, deu certo, consegui deixar do jeito que eu queria.... o carrinho só anda para as direções quando vc pressiona a tecla, se soltar ele para... simulando um controle remoto real.... ficou legar.... mas o direcional é muito pequeno.... eu dedo é grande e constantemente aperto as outras teclas em volta e ele sai da aplicação.... ou seja.... o manejo té legal....mas a agilidade tá ruim..... vou pesquiser usar um controle de PS2 que tenho jogado aqui.... quem sabe!!!! Se algum colega quiser dicas ou o código estou a disposição!!! Se alguém tiver uma idéia de o porque minha plaquinha não tá "soltando" os 7 v na saída do motor eu agradeço!!!! Jo Fala Jo, blz? Meu querido, se você puder disponibilizar seu código será bem legal. Fala tb qual software está usando no N95 para controlar o carro. Essa questão de usar o controle do PS2, PS3 é o meu objetivo tb (via bluetooth) , já vi alguns no Youtube mas sem o código fonte. O que não ficou claro é se conectam o controle ao PC ou diretamente ao módulo. abraço.
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 34
|
 |
« Reply #66 on: October 01, 2012, 09:31:30 am » |
Fala cara.... quanto ao código tô pondo os dois no final..... ok... acredito que dá pra customizar para uma melhor performace e aparência (no do N95), mas agora tô fazendo tudo funcionar e depois vou voltar olhando o que pode ser melhorado... sugestões e críticas sào MUITO BEM VINDAS. Quanto ao controle.... minha idéia é ligar ele o controle de PS2 no arduino... ler os comandos e enviar via bluethoot tb.... preciso pesquisar direitinho como isso funciona.... tb já achei pra compar um shield que é o direcional pronto para ser usado.... tb é uma opção.... ainda voi amadurecer a idéia e continuar postanto aqui.... faça o mesmo vc tb... o nosso tópico já tem bastante coisa legal!!!!! segue o código: int ENA=5;//connected to Arduino's port 5(output pwm) int IN1=2;//connected to Arduino's port 2 int IN2=3;//connected to Arduino's port 3 int ENB=6;//connected to Arduino's port 6(output pwm) int IN3=4;//connected to Arduino's port 4 int IN4=7;//connected to Arduino's port 7 byte VelocidadeAtual = 255;
void setup() { pinMode(ENA,OUTPUT);//output pinMode(ENB,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); Serial.begin(9600);
} void loop() { // ena = velocidade // in = direção char c = Serial.read();
// aqui precisa melhorar, tirar os ifs e colocar algo mais eficiente if (c == '1') { // para frente AndaParaFrente(); FuncionaMotor(VelocidadeAtual); }
if (c == '2') { // para trás AndaParaTraz(); FuncionaMotor(VelocidadeAtual); }
if (c == '3') { // direita // começa a funcionar com 90 ViraDireita(); FuncionaMotorA(VelocidadeAtual * .4); FuncionaMotorB(VelocidadeAtual); }
if (c == '4') { // direita // começa a funcionar com 90 ViraEsquerda(); FuncionaMotorA(VelocidadeAtual); FuncionaMotorB(VelocidadeAtual * .4 ); }
if (c == '5') { // para ParaMotores(); }
}
//------------------------------------------------------------------------------------------ // Liga os motores e determina a velocidade //------------------------------------------------------------------------------------------ void FuncionaMotor(byte Velocidade) { FuncionaMotorA(Velocidade); FuncionaMotorB(Velocidade); }
void FuncionaMotorA(byte Velocidade) { analogWrite(ENA, Velocidade);//start driving motorA }
void FuncionaMotorB(byte Velocidade) { analogWrite(ENB, Velocidade);//start driving motorA }
void ParaMotores() { digitalWrite(ENA,LOW); digitalWrite(ENB,LOW);//stop driving
}
//------------------------------------------------------------------------------------------ // FIM - Liga os motores e determina a velocidade //------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------ // Direcoes //------------------------------------------------------------------------------------------
void AndaParaFrente() { // MOTOR 1 digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH);//setting motorA's directon
// MOTOR 2 digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH);//setting motorB's directon }
void AndaParaTraz() { // MOTOR 1 digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW);//setting motorA's directon
// MOTOR 2 digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW);//setting motorB's directon }
void ViraEsquerda() {
// MOTOR 1 digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH);//setting motorA's directon
// MOTOR 2 digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW);//setting motorB's directon
}
void ViraDireita() {
// MOTOR 1 digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW);//setting motorA's directon
// MOTOR 2 digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH);//setting motorB's directon
}
Para o N95, isto que estou postando é um script que roda em Python... então precisa ter ele instalado na máquina... vc acha ele aqui: http://sourceforge.net/projects/pys60 o livro que use como base foi este: "Wiley Mobile Python-Rapid prototyping of applications on the mobile platform"... dá pra achar tranquilo, é só procurar. A idéia é, primeiro se conectar ao bluethoot do carrinho, depois, quando o cara apertar o direcional para cima vai aparecer uma bolinha vermelha no topo da tela para indicar no celular a direção e enquanto vc mantém a tecla pressionada o script fica enviando o caractere "1" que no arduino tá programado para ele andar pra frente.... quando vc solta o direcional ele para de mandar o 1 e desliga os motores!!!! Funciona assim para as quatro direções. Segue o código: import appuifw, e32, key_codes, graphics, socket
def choose_service(services): names = [] channels = [] for name, channel in services.items(): names.append(name) channels.append(channel)
index = appuifw.popup_menu(names, u"Choose service") return channels[index] def connect(): global sock address, services = socket.bt_discover() channel = choose_service(services) sock = socket.socket(socket.AF_BT, socket.SOCK_STREAM)
print "address:", address print "channel:", channel
sock.connect((address, channel))
def frente(): global sock sock.send("1")
def tras(): global sock sock.send("2")
def esquerda(): global sock sock.send("3")
def direita(): global sock sock.send("4")
def desliga(): global sock sock.send("5")
WHITE = (255,255,255) RED = (255,0,0) BLUE = (0,0,255) YELLOW = (255,255,0)
def handle_redraw(rect): if img: canvas.blit(img)
def draw_point(pos): if pos == 1: img.point((125,30), outline = RED, width = 50) elif pos == 2: img.point((125,285), outline = RED, width = 50) elif pos == 3: img.point((200,170), outline = RED, width = 50) elif pos == 4: img.point((35,170), outline = RED, width = 50)
key_down = None clicked = None
def handle_event(event): global clicked, key_down if event['type'] == appuifw.EEventKey: if key_down: key_down = (event['keycode'], "down") else: key_down = (event['keycode'], "pressed") elif event['type'] == appuifw.EEventKeyUp and key_down: code, mode = key_down if mode == "pressed": clicked = code key_down = None desliga() img.clear(BLUE)
handle_redraw(None)
def key_clicked(code): global clicked if code == clicked: clicked = None return True return False
def key_is_down(code): if key_down and key_down == (code, "down"): return True return False
def quit(): global running running = False
img = None
canvas = appuifw.Canvas(redraw_callback = handle_redraw, event_callback=handle_event)
appuifw.app.body = canvas appuifw.app.screen = 'full' appuifw.app.exit_key_handler = quit appuifw.app.menu = [(u"Connect", connect)]
w, h = canvas.size img = graphics.Image.new((w, h)) img.clear(BLUE)
running = True while running: e32.ao_sleep(0.05)
if key_is_down(key_codes.EKeyUpArrow): draw_point(1) frente() elif key_is_down(key_codes.EKeyDownArrow): draw_point(2) tras() elif key_is_down(key_codes.EKeyRightArrow): draw_point(3) direita() elif key_is_down(key_codes.EKeyLeftArrow): draw_point(4) esquerda()
else: img.clear(BLUE)
Mais uma vez, dúvidas, discussões, sugestões e críticas são bem vindas.... Abraço!
|
|
|
|
|
Logged
|
|
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 18
|
 |
« Reply #68 on: October 01, 2012, 01:31:51 pm » |
Fala cara.... quanto ao código tô pondo os dois no final..... ok... acredito que dá pra customizar para uma melhor performace e aparência (no do N95), mas agora tô fazendo tudo funcionar e depois vou voltar olhando o que pode ser melhorado... sugestões e críticas sào MUITO BEM VINDAS. Quanto ao controle.... minha idéia é ligar ele o controle de PS2 no arduino... ler os comandos e enviar via bluethoot tb.... preciso pesquisar direitinho como isso funciona.... tb já achei pra compar um shield que é o direcional pronto para ser usado.... tb é uma opção.... ainda voi amadurecer a idéia e continuar postanto aqui.... faça o mesmo vc tb... o nosso tópico já tem bastante coisa legal!!!!! segue o código: int ENA=5;//connected to Arduino's port 5(output pwm) int IN1=2;//connected to Arduino's port 2 int IN2=3;//connected to Arduino's port 3 int ENB=6;//connected to Arduino's port 6(output pwm) int IN3=4;//connected to Arduino's port 4 int IN4=7;//connected to Arduino's port 7 byte VelocidadeAtual = 255;
void setup() { pinMode(ENA,OUTPUT);//output pinMode(ENB,OUTPUT); pinMode(IN1,OUTPUT); pinMode(IN2,OUTPUT); pinMode(IN3,OUTPUT); pinMode(IN4,OUTPUT); Serial.begin(9600);
} void loop() { // ena = velocidade // in = direção char c = Serial.read();
// aqui precisa melhorar, tirar os ifs e colocar algo mais eficiente if (c == '1') { // para frente AndaParaFrente(); FuncionaMotor(VelocidadeAtual); }
if (c == '2') { // para trás AndaParaTraz(); FuncionaMotor(VelocidadeAtual); }
if (c == '3') { // direita // começa a funcionar com 90 ViraDireita(); FuncionaMotorA(VelocidadeAtual * .4); FuncionaMotorB(VelocidadeAtual); }
if (c == '4') { // direita // começa a funcionar com 90 ViraEsquerda(); FuncionaMotorA(VelocidadeAtual); FuncionaMotorB(VelocidadeAtual * .4 ); }
if (c == '5') { // para ParaMotores(); }
}
//------------------------------------------------------------------------------------------ // Liga os motores e determina a velocidade //------------------------------------------------------------------------------------------ void FuncionaMotor(byte Velocidade) { FuncionaMotorA(Velocidade); FuncionaMotorB(Velocidade); }
void FuncionaMotorA(byte Velocidade) { analogWrite(ENA, Velocidade);//start driving motorA }
void FuncionaMotorB(byte Velocidade) { analogWrite(ENB, Velocidade);//start driving motorA }
void ParaMotores() { digitalWrite(ENA,LOW); digitalWrite(ENB,LOW);//stop driving
}
//------------------------------------------------------------------------------------------ // FIM - Liga os motores e determina a velocidade //------------------------------------------------------------------------------------------
//------------------------------------------------------------------------------------------ // Direcoes //------------------------------------------------------------------------------------------
void AndaParaFrente() { // MOTOR 1 digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH);//setting motorA's directon
// MOTOR 2 digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH);//setting motorB's directon }
void AndaParaTraz() { // MOTOR 1 digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW);//setting motorA's directon
// MOTOR 2 digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW);//setting motorB's directon }
void ViraEsquerda() {
// MOTOR 1 digitalWrite(IN1,LOW); digitalWrite(IN2,HIGH);//setting motorA's directon
// MOTOR 2 digitalWrite(IN3,HIGH); digitalWrite(IN4,LOW);//setting motorB's directon
}
void ViraDireita() {
// MOTOR 1 digitalWrite(IN1,HIGH); digitalWrite(IN2,LOW);//setting motorA's directon
// MOTOR 2 digitalWrite(IN3,LOW); digitalWrite(IN4,HIGH);//setting motorB's directon
}
Para o N95, isto que estou postando é um script que roda em Python... então precisa ter ele instalado na máquina... vc acha ele aqui: http://sourceforge.net/projects/pys60 o livro que use como base foi este: "Wiley Mobile Python-Rapid prototyping of applications on the mobile platform"... dá pra achar tranquilo, é só procurar. A idéia é, primeiro se conectar ao bluethoot do carrinho, depois, quando o cara apertar o direcional para cima vai aparecer uma bolinha vermelha no topo da tela para indicar no celular a direção e enquanto vc mantém a tecla pressionada o script fica enviando o caractere "1" que no arduino tá programado para ele andar pra frente.... quando vc solta o direcional ele para de mandar o 1 e desliga os motores!!!! Funciona assim para as quatro direções. Segue o código: import appuifw, e32, key_codes, graphics, socket
def choose_service(services): names = [] channels = [] for name, channel in services.items(): names.append(name) channels.append(channel)
index = appuifw.popup_menu(names, u"Choose service") return channels[index] def connect(): global sock address, services = socket.bt_discover() channel = choose_service(services) sock = socket.socket(socket.AF_BT, socket.SOCK_STREAM)
print "address:", address print "channel:", channel
sock.connect((address, channel))
def frente(): global sock sock.send("1")
def tras(): global sock sock.send("2")
def esquerda(): global sock sock.send("3")
def direita(): global sock sock.send("4")
def desliga(): global sock sock.send("5")
WHITE = (255,255,255) RED = (255,0,0) BLUE = (0,0,255) YELLOW = (255,255,0)
def handle_redraw(rect): if img: canvas.blit(img)
def draw_point(pos): if pos == 1: img.point((125,30), outline = RED, width = 50) elif pos == 2: img.point((125,285), outline = RED, width = 50) elif pos == 3: img.point((200,170), outline = RED, width = 50) elif pos == 4: img.point((35,170), outline = RED, width = 50)
key_down = None clicked = None
def handle_event(event): global clicked, key_down if event['type'] == appuifw.EEventKey: if key_down: key_down = (event['keycode'], "down") else: key_down = (event['keycode'], "pressed") elif event['type'] == appuifw.EEventKeyUp and key_down: code, mode = key_down if mode == "pressed": clicked = code key_down = None desliga() img.clear(BLUE)
handle_redraw(None)
def key_clicked(code): global clicked if code == clicked: clicked = None return True return False
def key_is_down(code): if key_down and key_down == (code, "down"): return True return False
def quit(): global running running = False
img = None
canvas = appuifw.Canvas(redraw_callback = handle_redraw, event_callback=handle_event)
appuifw.app.body = canvas appuifw.app.screen = 'full' appuifw.app.exit_key_handler = quit appuifw.app.menu = [(u"Connect", connect)]
w, h = canvas.size img = graphics.Image.new((w, h)) img.clear(BLUE)
running = True while running: e32.ao_sleep(0.05)
if key_is_down(key_codes.EKeyUpArrow): draw_point(1) frente() elif key_is_down(key_codes.EKeyDownArrow): draw_point(2) tras() elif key_is_down(key_codes.EKeyRightArrow): draw_point(3) direita() elif key_is_down(key_codes.EKeyLeftArrow): draw_point(4) esquerda()
else: img.clear(BLUE)
Mais uma vez, dúvidas, discussões, sugestões e críticas são bem vindas.... Abraço! Jo, Não entendi muito bem esta segunda parte. Devo instalar o Python no meu Android e adicionar esse Script? É isso? OBS: Instalei o Python e os comando dele são: "=, (, ), " e TAB. Tem que alterar algo?
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 34
|
 |
« Reply #69 on: October 02, 2012, 01:02:24 pm » |
Fala jpricaro, blz? Jo,
Não entendi muito bem esta segunda parte. Devo instalar o Python no meu Android e adicionar esse Script? É isso?
OBS: Instalei o Python e os comando dele são: "=, (, ), " e TAB. Tem que alterar algo?
Sim, deve instalar o Python, mas este código que eu passei é somente para celular Symbian 3 edição..... pra Android eu não sei..... até queria escrever esta aplicação pro Android, mas meu celular é "veinho" ainda hehehehehe Abraço!! Jo
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 18
|
 |
« Reply #70 on: October 08, 2012, 03:45:22 pm » |
Fala jpricaro, blz? Jo,
Não entendi muito bem esta segunda parte. Devo instalar o Python no meu Android e adicionar esse Script? É isso?
OBS: Instalei o Python e os comando dele são: "=, (, ), " e TAB. Tem que alterar algo?
Sim, deve instalar o Python, mas este código que eu passei é somente para celular Symbian 3 edição..... pra Android eu não sei..... até queria escrever esta aplicação pro Android, mas meu celular é "veinho" ainda hehehehehe Abraço!! Jo Achei esse link, bem explicado. Vou tentar fazer http://www.instructables.com/id/Use-a-PS3-Controller-to-control-an-Arduino-NXT-Bot/
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 34
|
 |
« Reply #71 on: October 17, 2012, 12:03:03 pm » |
Achei legal, mas tenho que comprar muita coisa pra fazer.... Ainda tô tentando com o do PS1 (achei que o meu era de PS2 mas é de PS1)..... bom.... ainda não consegui.... assim que alguma coisa der certo eu aviso!! Abraço! Jo
|
|
|
|
|
Logged
|
|
|
|
|
Offline
Newbie
Karma: 0
Posts: 18
|
 |
« Reply #72 on: March 23, 2013, 12:57:33 pm » |
Boa tarde pessoal. Deixaram o tópico morrer? Ninguém com novas experiências? Vamos voltar a ativa.
Abraço.
|
|
|
|
|
Logged
|
|
|
|
|
|