Quais são alguns projetos simples que você pode fazer para aprender as noções básicas de programação incorporados? [fechadas]

StackOverflow https://stackoverflow.com/questions/111254

  •  02-07-2019
  •  | 
  •  

Pergunta

Para alguém querendo aprender os rudimentos da programação incorporada, o que são alguns projetos simples que poderiam resolver?

Estamos falando de alguém que não sabe o básico de circuitos eletrônicos (resistores, capacitores, ICs digitais, etc ...) e pode fazer solda básica. Uma eletrônica hobby que está olhando para entrar em programação incorporado, ou talvez no segundo ano ou júnior em um grau EE faculdade.

A plataforma realmente não importa e nem a língua (pode ser C ou assembler ou qualquer outro). O ponto é ter idéias para um projeto simples que faz algo .

Se houver um livro cobrindo algo como isso, você poderia postar um link para ele?

Foi útil?

Solução

Eu comprei um Arduino recentemente, que é fácil de se levantar e correr. É uma placa pequena, razoavelmente barato executando um ATMega168 com o I / O quebradas, poder, USB, e outras coisas divertidas. Ele é executado código C nativo (como seria de esperar de um chip Atmega) e pode ser usado para acionar os circuitos através de software.

Outras dicas

O projeto a seguir é para o CSC460: Tempo real classe Sistemas operacionais na Universidade de Victoria. Este projecto foi concebido para obter os alunos CS sem o conhecimento de sistemas embarcados de programação confortável em micro-controladores.

Meta:

Desenhar um sistema actuador de sensores para controlar a temperatura de um quarto. Este projecto vai te ensinar pulso largura modulação e AD (analógico para digital) de conversão.

Peças:

  • Uma 8-bit AT90USB1287 placa de micro-controlador de demonstração
  • Um sensor de temperatura (a bordo do AT90)
  • motora Uma DC (sensíveis a tensões entre 3,3 V e 5,0 V)
  • hélice ou pá do ventilador que se encaixa o motor DC
  • Uma L293D ponte-H
  • Uma 5V regulador

Desenho:

Este sistema irá usar o sensor de temperatura do AT90USB1287 para ler a temperatura ambiente actual e ajustar a velocidade do motor de corrente contínua (com pá de ventilador em anexo). Ao ajustar a velocidade da ventoinha isto com teoricamente arrefecer o quarto.

O sensor de temperatura já está a bordo do AT90USB1287 e ligado a porta e AD do micro-controlador. Você é obrigado a ler a folha de dados para este micro-controlador e escrever código para configurar e consultar o sensor de temperatura.

O motor de corrente contínua será controlado com modulação de largura de impulso. PWM pode controlar a velocidade de um motor de CC ligado através da variação do ciclo de trabalho do sinal de PWM. Para mais informações sobre PWM consultar o grande e detalhada (talvez um pouco demais) dados folha para o AT90USB1287.

Depois de ter o sensor de temperatura e DC motor funcionando, você completou este projeto. O L293D ponte-H e regulador de 5V pode ser utilizado para aumentar a energia fornecida para o motor de corrente contínua (de 3,3V de bordo contra a 5.0V da ponte-H).

Na minha experiência, há uma aprendizagem "corcunda" inicial, se você vai, em sistemas embarcados que pode ser difícil de superar, mas uma vez que você você vai ficar desapontado se o primeiro projeto que você escolhe é muito simples .

Há algum investimento inicial nas ferramentas de desenvolvimento (ie. Os chips eo programador no mínimo). Construção de um projeto muito simples não vai deixar você explorar as áreas mais úteis do chip, portanto, a quantidade de conhecimento que você obterá será desproporcional à quantidade de recursos que investem; tanto em tempo e dinheiro.

Sugiro fazer algo mais envolvente do que um par de piscar do LED. A parte mais difícil de desenvolver uma nova plataforma embarcada, para mim, é sempre recebendo a compilação inicial e fazer o upload do primeiro programa para o chip. Uma vez que este passo é o mesmo assunto não como complicado ou fácil o seu primeiro projeto é, eu voltaria a votar fortemente a favor de embarcar em um projeto moderadamente complicado imediatamente. Algo como um controle remoto IR vem à mente. Em qualquer caso, será necessário investir muito tempo se você realmente quer aprender nada.

Eu também não iria sugerir indo para algo como um selo BASIC ou mesmo Arduino, uma vez que estes dispositivos não iria ensinar-lhe as verdadeiras habilidades necessárias para fazer a programação incorporado. Eles são mais de uma plataforma que irá executar o código de alto nível. Você está usando uma versão glorificada de tal plataforma a ler este post, o seu PC; Dificilmente um dispositivo embutido. No lado positivo, eles irão lhe poupar um monte de problemas, se você não estiver familiarizado com a eletrônica.

Obter um chip de 8 bits feita por Microchip ou ATMEL, ambos muito populares e relativamente barata para começar, obter um programador e talvez uma placa de demonstração, o funcionamento do fórum de demonstração, se você não estiver familiarizado com a eletrônica, por uma dessas fichas . Mais importante ainda, ler as folhas de dados que o acompanham, e tentar construir algo moderadamente útil. Programa em C ou montador. ATMEL é muito melhor com compiladores e suporte para C. No longo prazo, você será feliz que você não perca seu tempo aprendendo uma plataforma que ninguém no seu perfeito juízo iria usar para um produto comercial e você vai ganhar uma melhor compreensão de lidar com as limitações dos sistemas embarcados, já que não há melhor fonte de informação do que a folha de dados.

Não é um bom livro sobre o assunto chamado "Linux Embedded Primer" (Christopher Hallinan é o autor). Este livro leva você embora as porcas e parafusos de desenvolvimento de software em uma plataforma Linux embutido. Junte isso com um sistema de desenvolvimento relativamente barato e o céu é o limite.

Pegue uma cópia da revista Circuit Cellar (realmente um bom recurso para software embarcado e hardware) e você vai encontrar dezenas de anúncios para pequenos sistemas que deverá permitir-lhe obter-se a funcionar rapidamente.

Um projeto simples (parecido com o Olá Mundo) seria fazer um caçador de LED. Você precisa:. 6 a 10 LEDs e um interruptor simples

Toda vez que você pressionar o botão, os LEDs piscam em um padrão diferente. Alguns padrão:
1 LED rolagem direita
1 LED rolar para a esquerda
Alternada LEDs
...

Isso vai ensiná-lo sobre I / O pins, como usar um temporizador, talvez como usar uma interrupção para o switch (ou você poderia usar polling).

Pessoalmente, eu iria construir um gravador de som simples. Vamos você pratica usando a saída de onda do conversor AD e PWM. Também seria ensinar a modularizar o código para permitir a gravação e reprodução de controle. Única limitação é a quantidade de memória, mas mesmo uma amostra de 1 kB deve ser divertido.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top