Amigos

Estou fazendo projeto de Autopilot para aviões aeromodelos (inicialmente elétricos) usando PIC (18F4550), o programa em C com o compilador C18.

Atualmente está no embrião mas, já com a parte de estabilização começando à rodar: completei a parte do código do acelerômetro que detecta a inclinação eixos X / Y e trata c/ Filtro de Kalman pra eliminar ruídos e disponibiliza o valor proporcional.

Quem quiser contribuir e, tem conhecimento em Aeromodelos e/ou PIC c/ linguagem C, é bem vindo

do Ardupilot: sei que existe mas é relativamente caro e exige sensores também caros e difíceis de comprar. Pretendo fazer uma alternativa eficiente, também de projeto aberto e que possa ser construída ou comprada mais facilmente.

Exibições: 7301

Responder esta

Respostas a este tópico

Olá Euclides, será um prazer te ajudar. Respondendo as perguntas:

1- Sei programar PIC, trabalhei com os 12F,16F e um pouco do 18F, a os comandos são os mesmos, basta saber o que cada um tem, por isso sempre recomendo incansavelmente a ler o datasheet do microcontrolador que se está utilizando, lá contem muitas informaçoes valiosas.

2- A cópia seria pegar um microcontrolador (que é bem diferente de um microprocesador) que ja tem um programa gravado e ver seu conteudo? nao sei se entendi bem, mas se for isso eu nunca fiz, mas o proprio programa que grava, no meu caso eu uso o pickit2 ele le o codigo hexa, nao sei converter de hexa para um codigo C, mas tem gente que só olhando o hexa ja sabe o que o programa faz, nao tenho essa pratica =/.

3- Pelo que eu li no datasheet do 16C84 ele tem o apêndice E que fala das diferenças entre ele e o 16F84, interessante dar uma olhada.

4- Converti semana passada uma programaçao que eu fiz no pic para o arduino, mas eu tinha a programaçao do pic, bastei ler entender e fazer igual, a diferença sao só os registradores o resto é tudo C.

5- Interesso, posso te ajudar tranquilamente, se quiser me adicionar no skype douglas.pivoto a gente pode trocar umas ideias.

Espero ter de ajudado, se quiser algo mais especifico me adiciona no skype que eu posso te ajudar.

Estou saindo agora do estágio, mas de noite estou em casa, e quase 24H online no skype.

 

Olá Douglas.

Vou te adicionar e depois enumero as perguntas e te passo as respostas na sequência.

Obrigado por enquanto.

Euclides.

Douglas

Sobre o PWM do PIC só ter 2 (preciso de mínimo de 3 canais de controle) e da freq. mínima ficar em torno dos 1200Hz pra clocks mais altos (precisa ser de 50 Hz pros servos/ ESC): eu fiz em software e já está funcional, usando um PIC 18F4550 c/ clock de 48MHz (xtal de20Mhz + PLL habilitado)

O código completo + hex pré compilado está em anexo

Anexos

Olá Marcelo.

Você leu o que passei para o Douglas?

Acha viável?

Até a próxima.

Euclides.

Euclides, nao sei se eu entendi direito ainda a pira de passar a programaçao do pic pro arduino, mas se vc tiver o C do PIC pra passa pro arduino é facinho, é só adapta os registradores, o resto é bem parecido.

Olá Douglas.

Não tenho o fonte em C, só tenho uma placa (controladora de motor de passo) com um 16C84 e um LM339N. E gostaria de poder replicar esta placa. O único componente que não tem "identidade" (por ser programado caso-a-caso) é o PIC e para fazer cópias desta placa tenho que copiar este CI. Me parece que ele não é mais fabricado. Portanto a idéia é poder usar um CI mais novo e que "aceite" o Hexa do antigo (nisso vc. poderia ajudar) ou "emula-lo" usando um Arduino/Attiny. Mas para fazer isso, terei que estudar as entradas e saídas e o que ocorre no circuito enquanto está acionando um motor.

Até a próxima.

Ahh, entendi, entao, da pra fazer o seguinte:

1 - Pegar o codigo hexa dele, se nao estiver bloqueado para gravaçoes, e replicar o hexa se for compativel, se nao, criar um esquemático no proteus e fazer os testes para ver como ele trabalha e criar um codigo semelhante.

2 - Se for bloqueado, o negócio e pegar o teu hardware ver como funciona e fazer um semelhante ou totalmente diferente ou do mesmo jeito com outro micro :D

Agora você "pegou" 100% da mensagem...rsrsrsrsrssss...

Como saber se é possível "ler" o Hexa dele???

Terei que extrair o CI da placa (está soldado) e tentar grava-lo em outro CI?

Mas...este CI (PIC 16C84-04/P) ainda é fabricado?

Se não for, existe algum 100% compatível com ele?

O PIC 16F84 serviria?

Como proceder? Já que não tenho leitor/gravador de PIC? Você poderia tentar? Onde você mora?

Obrigado por enquanto.

Euclides.

Olá Euclides, sinceramente não sei qual, poderia postar de novo

valeu

Olá Marcelo.

Está na página anterior a esta.

Isso Marcelo, pelo aeromodelo necessitar de no mínimo 3 servos que eu falei para você que o PIC só terá 2 pwms.

Dei uma olhada na programaçao mas nao estou familiarizado com esse compilador =/ mas pelo programa vc utilizou a interrupçao de baixa prioridade para um controle tipo botao nas portas rb 4-7 e de timer0 para criar um pwm certo? ja tentei fazer isso com o timer0, sinceramente, perdi tempo, o gosto bastante do pic, mas essa pira de pwm com ele é uma briga, pelo menos pra mim =/.

Desculpa nao poder te ajudar melhor agora, pois estou no estágio sem muito tempo aqui, posso te ajudar melhor mais de noite, se quiser me add no skype, douglas.pivoto que posso te ajudar com a programaçao.

Abraço

kara,

o pic pode ter quantos pwm vc quiser, basta saber implementar..

tem pic com mais de 8 pwm nativo, não precisa migrar pra arduino.

veja nos meus codigos postados que fiz com um pic 18F2520 a 40Mhz controlar 18 servos simultaneamente.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço