LusoRobótica - Robótica em Português
Robótica => Projectos de robótica => Projectos em desenvolvimento => Tópico iniciado por: ricard0g0mes em 19 de Julho de 2009, 22:46
-
Boas,
Estou a começar a desenvolver um robot, com lagartas e que seja capaz de evitar obstáculos, e saber voltar sempre ao local de onde partiu.
Deixo cá um pequeno video da fase actual.
Neste momento já se mexe, em todas as direcções e com velocidade variável por pwm.
O controlador é um PIC18F4550.
Como o meu tempo livre é muito pouco, isto acho que vai levar uns mesitos mas... é por gosto. ;)
http://www.youtube.com/watch?v=cIt2ICiQmCA (http://www.youtube.com/watch?v=cIt2ICiQmCA)
-
Para já está tb com alimentação directa de uma fonte externa. No futuro, terá concerteza umas baterias ;)
-
Continua ;)!
-
tens aí uma boa base.. força nisso..
-
Está com melhor aspecto o Robot que as filmagens :P
-
lol... pois... estive a filmar com o telele. quando fizer mais progressos ja filmo com camera ;)
-
bem fixe, quero ver no final.
onde arranjaste ess base?? :o :o
-
Muito bom aspecto, continua...
(realmente, senti-me de pernas para o ar :P )
-
Boas,
A base foi comprada na DAGU(China). custou $24
Já vem com as lagartas e com os motores e caixas redutoras.
;)
-
já agora, podem ver cá um projecto com a mesma plataforma e arduino.
http://letsmakerobots.com/node/5351#comment-27474
-
ja tens ai um bom trabalho força nisso.
abraço
-
Algumas fotos do projecto:
Interface para o controlador dos motores DC:
http://twitpic.com/azvg8
http://twitpic.com/azvxl
http://twitpic.com/azvyn
Interface USB(para ficar disponivel na parte lateral do robot, de maneira a ser possivel alterar o firmware a qq altura):
http://twitpic.com/azvzw
Placa principal desenhada por mim:
http://twitpic.com/azw2l
-
Sempre gostei de lagartas.
Um dia tenho que adquirir essa base.
-
Não conhecia esse pololu, faz-me lembras os stamp da paralax.
-
Não conhecia esse pololu, faz-me lembras os stamp da paralax.
Pois, este é muito porreiro.
Dá 1A por cada motor e controle de velocidade, etc.
http://www.sparkfun.com/commerce/product_info.php?products_id=8905
7,12€ cada.
-
Pequena actualização:
Já tenho o PIC a receber e interpretar um comando nunchuck que comprei por 4,5€ no ebay ;)
Agora vou passar à parte de controlo da direcção de acordo com as ordens que lhe dê com o comando.
O próximo passo será criar um sistema de "mapeamento" em X, Y utilizando os encoders rotativos que comprei. Já agora, se alguém tiver um exemplo de programa que use esses encoders ou idênticos, agradeço.
Eles usam o código gray... ainda tenho de o estudar antes... :(
-
Bem, fica aqui um exemplo que encontrei na rede:
//This is the decoder for a change in the quadrature inputs. Called on
//port B change
//interrupt, using the fast return stack.
void quad(void) {
static int old;
static int new;
static int value;
//Here I have an edge on one of the quadrature inputs
new=input_b();
//Now I have to decode the quadrature changes. There are four
// possibilities:
//I can have a rising or falling edge, on each of the two inputs. I have to
//look at the state of the other bit, and increment/decrement according
//to this.
value=new^old;
//'value', now has the bit set, which has changed
if (value & 0x10) {
//Here the low bit has changed
if (new & 0x10) {
//Here a rising edge on A
if (new & 0x20) --position;
else ++position;
}
else {
//Here a falling edge on A
if (new & 0x20) ++position;
else --position;
}
}
else {
//Here the high bit (B) must have changed
if (new & 0x20) {
//Here a rising edge on B
if (new & 0x10) ++position;
else --position;
}
else {
//Here a falling edge on B
if (new & 0x10) --position;
else ++position;
}
}
old=new;
bchanged=0;
}
'position', is a global value containing the current shaft position.
Now, this code looks long, but if you track it through, each possible path, for the different input combinations, involves only reading the port, an XOR, two logic tests, and then incrementing/decrementing the position variable.
Used with the normal interrupt handlers, and reasonable speed on the PIC, this should work fine. However I used it with a minimised 'global' handler, that doesn't save most registers, and like this, it happily handled a servo at up to 5000RPM, on a 128 line encoder.
-
Viva as Pics!!! ;)
Essa coisa do mapeamento dá me uma ideia para o meu robot semelhante ao teu. Quem sabe de futuro lhe meta um módulo GPS ou assim. Mas para já ainda o tenho de meter a circular...
-
Só uma pequena brincadeira:
http://twitpic.com/byl76 (http://twitpic.com/byl76)
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg37.imageshack.us%2Fimg37%2F9416%2Fimage181f.jpg&hash=96db1df4073048413bf3ed8a273c256d8e021aee)
... agora já tenho um LCD a funcionar para diagnostico... não havendo porta serie no portátil... teve de ser ;)
-
sempre podes usar um cabo conversor RS232 para USB...
-
sempre podes usar um cabo conversor RS232 para USB...
pois, eu sei. eu tenho um que emprestei a alguém que já não sei quem...
ja comprei um novo pelo ebay... estou à espera que chegue.
-
Boas,
Já agora, fica aqui o esquema da placa que desenhei juntamente com um amigo para fazer a pcb para interface com o pic18f4550.
todas as portas estão disponíveis por "Molex's", e a comunicação por RS232 e usb tem uns jumpers associados para o caso de se querer usar as portas RC4, RC5, RC6 e RC7 para outros fins que não as comunicações.
Tem tb os botões para reset e entrada em bootloader.
http://twitpic.com/c4qgs
se alguem quiser os gerber files, posso arranjar.
P.S- o esquema tem um erro na max232 (falta ligar os pinos 8, 10 e 15 ao GND e ligar um condensador entre o pino 15 e a GND).
-
Fica cá um pequeno video com o robot em movimento comandado com o joystick do nunchuck.
Para activar os motores tenho de premir os botões C e Z. A velocidade já depende da pressão que faça do joystick para a frente ou para trás em 3 níveis.
http://www.youtube.com/watch?v=VeqBawgmtWQ
-
Para colocares o vídeo basta colocar o link do youtube :)
Ainda não definis-te para os lados?
Quando isso ficar sem fios!
-
Para colocares o vídeo basta colocar o link do youtube :)
Ainda não definis-te para os lados?
Quando isso ficar sem fios!
pois... o tempo tem sido mesmo muito pouco... uns minutitos por dia.
para os lados é já a seguir... sem fios, para já não é prioridade.
-
Uma ideia: Usar um nunchuck wireless (As ligações devem ser as mesmas)
-
Altamente!
Engraçado, o meu projecto é semelhante ao teu... essa base de lagartas parece muito porreira. Acho muita piada as lagartas mesmo.
Tenho de pensar também na questão da velocidade variável dos motores.
-
Altamente!
Engraçado, o meu projecto é semelhante ao teu... essa base de lagartas parece muito porreira. Acho muita piada as lagartas mesmo.
Tenho de pensar também na questão da velocidade variável dos motores.
isso é muito fácil de fazer com o pwm e um controlador como o que usei.
-
Partilha connosco as tuas conclusões, "lessons learned". Como chegaste a essa solução e porquê!
-
Partilha connosco as tuas conclusões, "lessons learned". Como chegaste a essa solução e porquê!
qual solução? a do controlador?
ou de utilizar um pic?
usei pic pois estou habituado a trabalhar com eles deste o tempo de universidade, em que usava o 16f876 (acho que era assim).
alem disso, tinha por cá algumas free samples ;)
-
http://www.youtube.com/watch?v=Ls-pJkb5UN4
:D
-
n dá nd, isso, pá..
EDIT: já dá..
-
Estava a ver que ele ia subir a caixa :)
-
boas,
depois de algum tempo de descanço, vou voltar hoje a pegar no bichinho...
vou agora começar a pensar no sistema de mapeamento (encoder's rotativos, rato optico, outros)... ainda nao sei qual vou usar.
o que aconcelham?
queria o mais simples possivel apenas para saber posição em XY e direcção.
não preciso de velocidade.
-
é mt teórico, mas usa o sensor do rato optico e tenta calcular a distancia percorrida pelo teu robot em função do tempo que o mandas deslocar..
-
ricard0g0mes, penso que a maneira mais fácil, é usares encoders ópticos.
o que estás a usar como motores, servos alterados?!
pergunto isto porque ando a fazer uns encoders para aos servos.
Ainda não os testei, (não tenho a PCB feita). assim que tenha testado coloco os resultados!
Cumprimentos, Mauro.
-
sao motores DC.
para encoders opticos, tinha de comprar ou fazer o disco.
tenho uns encoders rotativos de 12 passos:
http://www.sparkfun.com/commerce/product_info.php?products_id=9117
-
desenterrando este tópico... pois estive uns mesitos com isto parado...
voltei a carga com o meu robot e tenho algumas novidades...
em relação a sensores de distancia, encontrei uns excelentes por ultra sons, e comunicação directa em RS232
Referencia: URM37 3.2
http://milesburton.com/wiki/index.php?title=URM37_Ultrasonic_Distance_Measurement_Library (http://milesburton.com/wiki/index.php?title=URM37_Ultrasonic_Distance_Measurement_Library)
Quanto a encoders para as rodas, vou usar uns simples optoacopladores deste genero:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.soselectronic.com%2Fa_info%2Fimg_data%2Fd%2Fico_KTIR0621DS.jpg&hash=ef50c5293938e5cd89fca0ed30e41c48479882f2)
Estou agora a desenhar uma nova placa que irá incluir tudo o que preciso para o robot e possibilidade de expansão :D
fica aqui a imagem da placa como está neste momento... ainda vai levar alterações antes de enviar para ser feita.
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fgrupomotard.com%2Fplaca_v1.jpg&hash=e3cab3cd2963b45ef21b781ba8ecd9e1a3fb644c)
Já agora, quais os melhores locais onde fazer as placas? queria dupla face, e se possivel, com serigrafia.
pode ser online em qq pais... desde que chegue cá... heehhe
tenho usado a circuitotal cá de Aveiro, mas fica um pouco caro.
thanks
-
Testa a http://futurlec.com/ (http://futurlec.com/)
Força com o projecto, está a ir muito bem ;)
-
Posso dar-te umas dicas para usar a futurlec, já usei os serviços deles. Têm aqui um simulador de preço:
http://futurlec.com/PCBService.shtml (http://futurlec.com/PCBService.shtml)
Os custos de envio são
# For orders up to US$29, Delivery Charge - US$4.00.
# For orders US$30 to US$49, Delivery Charge - US$6.00
# For order US$50 to US$99, Delivery Charge - US$9.00
# For order US$100 and above, Delivery Charge - US$14.00
Deves fazer o teu PCB respeitar as regras de design (vê os links no inicio da página do simulador), nomeadamente as distâncias mínimas entre pistas e, principalmente, os tamanhos de furo suportados.
Os preços são bons, demora é muito tempo. Os PCBs vão levar na melhor das hipóteses cerca de 4 semanas (uns dias para eles verificarem os ficheiros e pagares, uma semana para fabricar, e 1.5 a 2 semanas para chegar cá).
O envio que aconselho e a que se referem os preços acima é correio aéreo registado. Deves "ficar à coca" de quando o pacote chega a Portugal para ver se entra na alfandega e, se ficar e ficar lá "retido", ligas para os CTT (707 26 26 26) a pedir o número local do pacote (dando o número de registo) e depois envias um email para internacional@ctt.pt a indicar o preço da encomenda (por exemplo uma cópia do resultado do simulador de PCBs mais o preço dos portes) para que o desalfandegamento seja o mais rápido possível (senão bem podes contar com mais umas 3 a 4 semanas só em Portugal).
-
estado actual do desenho da nova placa em eagle:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fgrupomotard.com%2Fplaca_v1.png&hash=23bcb140dd1f17b126add241fae92383c6b0718b)
;)
-
A orientação do ''jack'' de usb será adequada? :o
-
Isso é um bug do programa 3D. Acontece comigo também. ???
-
Isso é um bug do programa 3D. Acontece comigo também. ???
lol... pois, eu sei... sao alguns pormenores ainda a ver ;)
-
já agora, quem quiser usar este sensor de ultrasons com arduino, tem aqui uma pequena ajuda:
http://milesburton.com/index.php/URM37_Ultrasonic_Distance_Measurement_Library (http://milesburton.com/index.php/URM37_Ultrasonic_Distance_Measurement_Library)
;)
-
bem, acho que terminei o desenho da minha pcb...
ja fiz a placa em eagle e o route está a 100%.
agora, queria certificar-me que está tudo dentro dos limites minimos para mandar fazer as placas na Futurlec...
Haverá cá alguem a quem eu pudesse enviar o ficheiro do eagle com ja alguma experiencia com a Futurlec para verificar que está tudo em ordem?
Ou entao, alguém que me possa enviar o ficheiro de configuração das regras necessárias para carregar directamente no eagle de maneira a que ele redesenhe a pcb de acordo com o pedido...
é que aquilo tem para lá parametros que nunca mais acaba... nao me entendo com aquilo... acho eu... :D
-
Eagle não uso por isso não te posso ajudar, mas as regras a respeitar são simples, consistindo essencialmente na distância mínima entre pistas, largura minima de pistas e os furos, que têm que ser um tamanho que eles suportem (está na página da Futurlec).
O meu conselho logo à partida é usar pistas e ilhas o mais largas possível e o mais espaçadas possível. Se tiverem espaço, engrossem as pistas e afastem-nas equatitativamente. Quando mais largas menos possibilidades de a coisa sair mal, mais resistentes são ao calor da soldadura, mais resistentes são mecanicamente, mais aixa será a sua resistência eléctrica, menos cobre será diluído nos ácidos, mais fácil é soldar, enfim, só vantagens.
-
Reabrindo este topico...
o meu robot agora está com um novo cerebro... o arduino ;)
Segue abaixo um video onde se pode ver ele já a circular usando apenas odometria para se localizar e um algoritmo para se mover até um dado ponto em XY.
Rasteiro v2.6 (http://www.youtube.com/watch?v=___MEYxXpmQ#ws)
-
Só com odometria ?
Não tem nenhum magnetometro ? ou algo do género ?
Pareceu-me que o rasteiro sabia bem para onde queria ir, só com odometria ... parece-me dificil.
Mas gostei bastante de ver o rasteiro ... até já fiquei com mais vontade de fazer um tb. :D
-
o video nao funca.. ou é só cmg? ???
-
exprimentei agora e consegui visualizar o video.
se nao der exprimentar noutro browser.
-
ja consegui ver :)
o robot memoriza posiçoes ou memoriza deslocamentos?
-
boas,
o robot está constantemente a vigiar a posição, orientação e a comparar com o destino pretendido.
para diminuir erros acumulados, queria agora adicionar uma busssola digital, mas acho que estou com bastantes problemas com interferencias dos motores (acho que será por isso....)
Não, no video ainda só usava mesmo odometria. ;)