[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