Tudo bem, eu já brinquei o suficiente com o Arduino para me sentir bem à vontade com ele. Tudo o que é feito agora é mais aprender a eletrônica do que o lado do Arduino.
Qual é o próximo passo para o meu aprendizado? O Arduino é um programador / controlador combinado, então, presumivelmente, eu preciso quebrar esse link e começar a trabalhar com um chip controlador separado do controlador, eu acho? Alguém pode me apontar na direção certa?
Respostas:
Aqui estão algumas dicas para trabalhar com AVRs e C.
Comece com C incorporado com ATmega32 (série ATmega AVR)
fonte
Eu concordo com Joby - o Arduino é ótimo, mas sempre me sinto sufocado pela estrutura que me rodeia. Eu usaria o C direto no seu Arduino e criaria muitas das funcionalidades da biblioteca que eles forneciam do zero. Geralmente, prefiro a profundidade antes da amplitude - não comece apenas em outra família de microcontroladores usando estruturas fornecidas. Aprenda um pouco mais sobre como implementar algumas dessas funções você mesmo.
Comece com um programa de trabalho e substitua as chamadas da biblioteca do Arduino pelas suas próprias versões, uma função de cada vez. Você aprenderá muito sobre os registros de controle, tempo, operações de bits, etc., se ainda não o tiver. Leia a folha de dados do ATMega328 em detalhes - tudo o que você precisa está lá.
Experimente um IDE diferente como o AVR Studio ou o Code :: Blocks. Aprenda a cadeia de ferramentas do GCC. Experimente técnicas de codificação mais avançadas - testes de unidade, cobertura, criação de perfil, verificação de fiapos / talas. Coloque um RTOS no Arduino.
Um programador / controlador combinado não é um sinal de fraqueza - é apenas uma opção de design. A única "fraqueza" que poderia surgir é a falta de depuração no circuito. Compre um dragão AVR e você terá isso por US $ 50.
fonte
Eu acho que o que aprender a seguir depende do que você quer fazer que o Arduino não pode fazer. Ou seja, não vejo muito sentido em programar um chip semelhante para fazer as mesmas coisas, mas com meios mais difíceis.
Aqui estão algumas fraquezas do Arduino:
Eu posso imaginar duas direções a seguir:
Posso acrescentar mais detalhes se você comentar sobre qual direção é mais atraente. (O segundo é definitivamente mais barato.)
fonte
Aprenda I2C, SPI, 1wire e tente fazer a interface de sensores com essas interfaces. Leia muitas folhas de dados desses sensores e tente entender tudo o que há neles. Faça perguntas quando preso. Aprenda o protocolo MODBUS (RTU / ASCII / TCP) ou similar que pode abrir seu dispositivo para o mundo depois que você o incorporar. Aprenda a eletrônica geral e tente fazer interface com relés, triacs, o que é puxado para cima e para baixo, o que é fonte e afundamento, como desenhar esquemas e conectar drivers básicos ao seu MCU.
fonte
Para começar, convém passar do Arduino como plataforma para o AVR como plataforma. Ou seja, aprenda como programar / usar um microcontrolador AVR virgem para seus projetos em vez do Arduino. Dessa forma, você não precisará comprar outra placa Arduino para cada projeto que realizar, ou para fazer projetos com amigos. Este é um passo bastante simples (um Arduino é apenas um microcontrolador Atmel AVR convencional, mas com uma placa e um gerenciador de inicialização especiais), mas é importante para vender / dar projetos a amigos. A cadeia de ferramentas também é semelhante: você usa avr-gcc ou avr-g ++ com make em conjunto com um utilitário de programação para instalar seu programa.
fonte