[FUG-BR] ARMv6 FreeBSD na beaglebone 5v

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Quarta Julho 16 22:56:58 BRT 2014


On 15/07/2014, at 22:00, Luiz Otavio O Souza <lists.br em gmail.com> wrote:

> 2014-07-15 10:34 GMT-03:00 Evandro Nunes:
>> sim, estou assistindo a um curso no youtube excelente, ja consigo ler
>> esquematicos agora apesar de não ter decorado todos os simbolos, e em
>> especial não decorar as cores dos aneis nos resistores mas tudo ficou claro
>> 
>> dentro desse assunto me digam o seguinte quero fazer isso em shell script:
>> 
>> http://beagleboard.org/Support/BoneScript/ServoMotor/
>> 
>> no trecho:
>> 
>> var duty_cycle = (position*0.115) + duty_min;
>> b.analogWrite(SERVO, duty_cycle, 60, scheduleNextUpdate);
>> 
>> o duty_cycle é o dutyA ou dutyB nas sysctl do freebsd?
>> 
>> o period é o 200? equivalente a:
>> 
>> // call updateDuty after 200ms
>>    setTimeout(updateDuty, 200);
>> 
>> posso por então o period do PWM em 200 e o dutyA (ou B?) em
>> (position*0.115) + duty_min num shell script?
>> 
> 
> Cada modulo de PWM tem duas saídas que são nomeadas de PWM1A e PWM1B
> para o modulo 1 e PWM2A e PWM2B para o modulo 2.
> 
> Como a freqüência do PWM é configurada por modulo as saídas A e B vão
> operar na mesma freqüência mas podem ter ciclos de trabalho diferentes
> (por exemplo: frequência PWM 100Khz, saída A 20% e saída B 60%).
> 
> Assim são 2 módulos PWM e 4 saídas.
> 
> O pino 14 do conector P9 corresponde a saída A do PWM1 (conforme
> https://wiki.freebsd.org/FreeBSD/arm/BeagleBoneBlack).
> 
> No caso do servo, o duty cycle não são os 200ms, esse valor é o tempo
> no qual a saída do PWM é atualizada (a cada 200ms ela tem um novo
> valor).  O período é calculado através da freqüência que nesse caso é
> o '60' passado no analogWrite(). O 60 corresponde a 60Hz (servos RC
> operam entre 50~60Hz).
> 
> O PWM da BBB não funcionava com freqüências tão baixas (antes o mínimo
> era 1.525kHz) até a r266937 quando corrigi isso. Como ainda não fiz o
> MFC você só vai conseguir utilizar servos com o -current (que tem 2
> sysctls a mais - clockdiv e frequency).
> 
> Com essa sysctl 'frequency', você pode setar ela diretamente pra 60 e
> depois só precisa alterar o duty cycle (A ou B dependendo da saída que
> você estiver utilizando) para movimentar o servo.
> 
> Como teste eu liguei um potenciometro em uma das entradas analógicas e
> um programa em C lendo esse valor e alterando o duty cycle do PWM,
> assim o servo acompanhava o movimento conforme o movimento que era
> feito no potenciometro.
> 
> Luiz

Luiz, bem legal hein?

Vou descolar um mini servo pra eu também brincar com essas MIBs novas ai.

Evandro, ainda dentro do assunto de relé fiz um teste com o módulo que eu tenho em mãos, veja:

http://www.youtube.com/watch?v=TM_5iVZgN1s

Desculpa a qualidade, a única câmera ao alcance era um iPod velho.

Bem simples o teste como podem ver. O diodo e o relé compartilham o mesmo pino GPIO e o mesmo terra (ta jumpeado na mini-bagaça-board caso não de pra ver).

--
Patrick Tracanelli

FreeBSD Brasil LTDA.
Tel.: (31) 3516-0800
316601 em sip.freebsdbrasil.com.br
http://www.freebsdbrasil.com.br
"Long live Hanin Elias, Kim Deal!"



Mais detalhes sobre a lista de discussão freebsd