Ir ao conteúdo
  • Cadastre-se

Pic com 4 pwm (drone)


Posts recomendados

Olá, to fazendo um projeto de um drone controlado por pic.

Estou na fase de programação (mplab x ide) simulaçao (proteus) e testes (com motores de baixa tensão).

O problema é que na fase de programação, eu tentei achar na internet, com ajuda de um site...

http://www.microchip.com/maps/microcontroller.aspx

...um pic que tivesse 4 pwms, achei um 18f6520 (entre outros), mas antes mesmo de comprar, tive dificuldades com o compilador C18 (ainda na programação)

 

Alguém me recomenda algum pic com 4 pwms? Que tenha uma memória que aguente um código de um drone? Eu usaria os 4 pwms, e o controle dos sensores (giroscopio e acelerometro) nada mais. Fora isso, alguém conhece algum material na internet que possa me auxiliar? valeu obrigado.

Link para o comentário
Compartilhar em outros sites

@Rafael da Silvaa ,

 

Existem vários projetos open source para controle de drone, mas quase todos utilizam a linha AVR de processadores, e não os Pics.

 

Como dica, sei que o controle PWM para os servos é feito por software, pois esses projetos controlam até 6 motores de maneira independente, sendo que os microcontroladores usados só possuem 3 PWMs por hardware.

 

Não se prenda nisso de 4 PWM como fator indispensável, e procure usar um microcontrolador com no mínimo 32K de flash. Mas irá precisar de um clock bem alto, pois mesmo para os AVRs rodando a 16 Mhz sofrem para atender todo o processamento necessário. Isto significa que teria de rodar a 48 Mhz em um Pic 16F ou 18F para chegar perto desse nível de desempenho, ok ?

 

Veja o projeto ARDUCOPTER, e o OPEN PILOT.

 

São Open, e você pode aprender bastante com os códigos e métodos.

 

Paulo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Se teu mc já tem 4 pwm e tendes a ter alguma afinidade com ele, talvez valha a pena tentar superar as ...

12 horas atrás, Rafael da Silvaa disse:

dificuldades com o compilador C18 (ainda na programação)

 

 Por outro lado, se estás a começar do zero, aí sim vale a pena considerar que ...

 

9 horas atrás, aphawk disse:

Existem vários projetos open source para controle de drone, mas quase todos utilizam a linha AVR de processadores, e não os Pics.

 

Link para o comentário
Compartilhar em outros sites

@Isadora Ferraz @aphawk Entendi o que disseram.

 

Eu já fiz muitos projetos simples (trabalho de faculdade) em pics 16f628a e 16f877a. Ambos só tem 2 pwms por hardware, e eu não conheço muito essa onda de usar pwm por software.

 

Por conta disso busquei um pic que tivesse pelo menos 4 saídas pwm por hardware, mas antes mesmo de comprar, tive problemas com o compilador, até mesmo com códigos simples.

 

Ao sair da minha zona de conforto do 16f, to apanhando demais. O compilador C18 parece que não tá indo com a minha cara, porque até códigos 100% copiados de alguém da internet não estão compilando. Deve ser algum erro bobo, sei lá.

 

Agora com isso que o @aphawk falou, sobre a memória, fiquei meio assustado, porque eles não vão rodar a 48Mhz, vou ter que pesquisar melhor sobre qual pic utilizar. Não tenho muito tempo/dinheiro pra ficar testando muita coisa, a minha ideia era que, se fosse errar, errar pra cima, e uma vez só. Nem que fosse gastar um pouco a mais, porém não ia perder o tempo do pic chegar, que pode durar umas 2 semanas cada encomenda.

Link para o comentário
Compartilhar em outros sites

@Rafael da Silvaa ,

 

Se você vai usar só 4 motores, usar um Pic com 4 Pwm vai te ajudar bastante para a programação não ficar com tempos muito críticos, claro que estará usando o Pwm por hardware.

 

Se vai usar apenas um sensor IMU de 6 DOF, acho que nesse caso com 16K de flash vai conseguir, pois não estará usando GPS e nem algoritmos de predição de posicionamento avançados.

 

Hoje em dia todos estão usando sensores IMU de 9 ou 10 DOF, pois usam também o barômetro para determinar a altura do drone. Nesse caso, como vai utilizar mais algoritmos de posicionamento, melhor mesmo um de 32K de flash.

 

Acho que se você olhar os códigos, principalmente do ArduPilot, vai te ajudar bastante a ter uma ideia geral do que te espera !

 

Paulo

 

 

 

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

bom, como é a 2ª vez que mencionas implicitamente...

6 horas atrás, Rafael da Silvaa disse:

problemas com o compilador, até mesmo com códigos simples

..., nem ouso perguntar quais seriam pois vai que você decide superar isso e algo me diz que vai sobrar pra mim. kk

 

Neste caso, sugiro fortemente que vá de avr mesmo.

 

Sobre pwm por sw... me lembro vagamente de tê-lo feito há alguns anos. De fato foi 1/2 que 50% sw, 50% hw. Essencialmente uma interrupção de um timer (hw), comparar uma variável (sw) do o valor do contador do timer (hw), setar ou não uma saída. Várias variáveis + vários pinos = vários canais pwm.  Ou algo assim... Dependendo da freq do pwm (=freq de interrupt) recomendo que o mc seja bem rápido pra ter tempo para respirar (fazer outras tarefas) antes de ser interrompido. Ou algo assim...

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

8 horas atrás, Rafael da Silvaa disse:

Agora com isso que o @aphawk falou, sobre a memória, fiquei meio assustado, porque eles não vão rodar a 48Mhz, vou

 

Sei que alguns Pics da linha 18F permitem usar o PLL interno para obter 48 Mhz de clock e assim chegar perto de 12Mips.

Nos Avrs rodando a 16 Mhz eles chegam perto de 16 Mips. Ainda seria 25% mais lento, mas creio que dá para fazer sim a temporização dos 4 canais PWM por software e ainda assim deixar um bom tempo de processamento para o programa

 

Paulo.

 

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...