LusoRobótica - Robótica em Português
Robótica => Discussão geral sobre robótica => Tópico iniciado por: LuísR.A. em 04 de Dezembro de 2012, 21:22
-
tava a pensar alterar os meus servos para motores dc simples controlados por pwm para ser mais facil de controlar e mais rapidos.
la no clube sei que tinhamos uma ponte H toda xpto que dava para motores muito fortes e era controlada apenas por i2c. mas é cara. e se estragar-se de certeza que não se vai arranjar outra
então pensei usar um attiny24 controlado por i2c que iria controlar a ponte H simples como a l293D. isto iria evitar usar 4 pins digitais e 2 de pwm.
o problema é que nunca fiz isso e não sei os endereços no attiny24.
e tambem não sei qual controlo tenho realmente.
posso controlar mesmo os pins livremente? controlar que pins estão high e low, controlar o duty do pwm e a frequencia
posso apenas mandar uma mão cheia de endereços que iniciaram partes especificas do codigo?
-
Por que é que não continuas a comunicar por pwm de servo mas com o attiny24 a descodificar os sinais e assim usas uma saída e um cabo apenas. Um tenho uma ponte h qua da para dois motores capaz de 25A por cada saida que da para ser controlada por seriar, pwm de servo, analog inputs, ic2 e é mais pratico usar o pwm de servo do que o resto todo.
-
ja pensei foi em usar portas analogicas mas depois devia ser muito lento pensei eu.
tipo tas a dizer para o attiny receber um sinal pwm normal de servo? o attiny transforma o 255 (exemplo) em 100% duty para a frente e 0 em 100% duty para tras? é uma ideia muito boa
o envio de pwm pode afectar o timer que conta o tempo em segundos? tive esse problema com um processador
posso tentar mas não sei como interpretar os dados.
-
ja pensei foi em usar portas analogicas mas depois devia ser muito lento pensei eu.
tipo tas a dizer para o attiny receber um sinal pwm normal de servo? o attiny transforma o 255 (exemplo) em 100% duty para a frente e 0 em 100% duty para tras? é uma ideia muito boa
posso tentar mas não sei como interpretar os dados.
Nao me parece que seja muito bom usar as portas analógicas mas de resto era isso exactamente isso que eu queria dizer. Mas também não me perguntes como é que isso se faz no attiny.
-
ok obrigado pela ideia é muito boa. vou ver se encontro como se lê pwm
sabes como fazes no arduino?
já vi como é no arduino agora falta ver se aplica-se ao attiny
aplica-se ao attiny em principio falta testar. acho que vou meter depois um tutorial como fazer isto que é uma muito boa forma de poupar pins. e é barato.
int pin = 7;
unsigned long duration;
void setup()
{
pinMode(pin, INPUT);
}
void loop()
{
duration = pulseIn(pin, HIGH);
}
-
Muito bom então ;D Depois tens que dizer ai ao pessoal para podermos começar a usar isso. 8)
-
pode ser mas tem de me ajudar a melhorar depois. condessadores para eliminar ruido e mais coisas que possam surgir pelo caminho.
ja tenho um modelo assim rapido numa veroboard (modelo digital claro)
para quem quiser ver esta no anexo em jpeg
reparei que convem explicar as cores.
o amarelo é os sinais de pwm (recebido e enviado)
o preto é o ground
o vermelho é 5V
o vermelho escuro é o V+ que se fornece aos motores.
o azul é os sinais digitais que controlam o sentido dos motores
o verde é o output da ponteH para os motores
os circulos brancos são cortes nas pistas
esta ponte H permite 1A por canal.
a ponte H vai de 3-4 euros
o attiny24 fica por volta de 2 euros +-
o preço disto fica por volta de 6 euros sem os condessadores e o resto
isto pode ser alterado para tambem controlar um servo tal como os motores (1 servo e 2 motores). isto só tem vantagens se o microcontrolador master não tiver mais que 1 pin PWM. basta usar mais 1 pin digital do master para isto ser possivel.
-
tive de alterar a placa.
não é possivel controlar os motores muito bem para a plantaforma movel virar.
tive de adicionar 1 segundo sinal pwm a receber mas deve ser possivel com analogica.
tambem meti o ground da ponte H comum com a fonte do attiny24
preciso de ajuda para saber se o attiny terá problemas com o ruido.
será que os condessadores iram impedir isso?
-
tenho um processador (no clube) que tem problemas ao usar o pwm. não consegue contar o tempo! é porque so tem um timer.
a base de fazer esta ponte era tambem para resolver esse problema. por isso é que queria por i2c.
como não sei como comunicar por i2c com o processador decidi meter na placa a opção de controlar a ponte H não so por pwm mas tambem por portas analogicas. isto pode ser escolhido atraves de jumpers.
tenho ai a imagem actualizada que tambem tem uma melhor legenda.
ainda continuo aberto a sugestões para melhorar a placa.
e claro gostava de saber se alguem sabe como controlar o processador por i2c
Jumpers são onde 1 fio roxo e amarelo saiem do mesmo buraco
tambem ha 1 jumper (fio roxo) que escolhe o modo de funcionamento. esta ligado do I/O 13 do attiny para os 5V. tem uma resistencia depois para o ground
a placa deverá ser um rectangulo de 7cmx4cm
-
Por que é que não continuas a comunicar por pwm de servo mas com o attiny24 a descodificar os sinais e assim usas uma saída e um cabo apenas. Um tenho uma ponte h qua da para dois motores capaz de 25A por cada saida que da para ser controlada por seriar, pwm de servo, analog inputs, ic2 e é mais pratico usar o pwm de servo do que o resto todo.
podes me dizer que ponteH usas?
-
Se quiseres gastar 120€ è um Sabertooth 2x25 da dimension Engineering. É muito boa para começar a delinear projectos desde médios a pequenos pois trabalha de 6 a 24 volts.
-
so queria ver +- como é que consegue usar apenas 1 sinal pwm :P
nem pensar que gasto tanto
-
O código para I2C slave neste tópico é capaz de funcionar logo ou com poucas alterações num ATtiny24:
http://lusorobotica.com/index.php?topic=4491.msg49017#msg49017 (http://lusorobotica.com/index.php?topic=4491.msg49017#msg49017)
O código é para ATtiny26 mas a USI do 24 parece-me igual à do 26, pode ter mudado algum nome de algum registo. É experimentar.