Que tipo de projeto poderia ajudar um engenheiro de software a se tornar mais engenheiro eletrônico? [fechadas]

17

Sou desenvolvedor de software com praticamente nenhum conhecimento em eletrônica, mas quero entrar nisso, pois é relevante para o trabalho que estou realizando (desenvolvimento de sistemas de entretenimento e entretenimento). Eu sou engenheiro de software, não engenheiro eletrônico, portanto, minha formação / experiência tem mais a ver com programação no nível de aplicativos e talvez um pouco de programação de sistemas / redes.

Ouvi falar do Arduino como uma plataforma de projeto flexível e fiquei imaginando que tipos de projetos poderiam ajudar alguém com meu histórico a abrir caminho para a engenharia eletrônica ... começando com a programação do microcontrolador e talvez mexendo com outros tipos de periféricos, como bluetooth , zigbee, wifi, áudio, vídeo, não sei ... talvez um tipo de projeto típico dos engenheiros eletrônicos durante seus cursos.

Em suma, o que estou procurando é um tipo de projeto típico / popular (acadêmico ou outro) que possa ajudar um engenheiro de software a desenvolver um conjunto de habilidades de engenharia eletrônica no nível do software.

dukeofgaming
fonte
pode ser um algoritmo de mapeamento de tecnologia para iverilog back-end.
perfil completo de Sandun
1
Eu recomendo que você comece com alguns 555 projetos de timer. Existem inúmeros na Internet e eles fornecerão uma compreensão básica de resistores, capacitores e, em alguns casos, indutores, com os quais você precisará se familiarizar para realmente saber o que está fazendo com coisas de nível superior, como programação de microcontroladores e similares. Depois disso, você poderá começar a jogar com o Arduino, o PICAXE ou qualquer outra plataforma que achar interessante. Então, bravamente, comece a trabalhar em um projeto um pouco maior que você achar interessante e não desista do caminho.
precisa saber é o seguinte
1
Estou na mesma posição, só queria mexer com o hardware. Eu trouxe um Arduino e um carro de brinquedo RC, os juntei. Não faço ideia de como, mas funciona, e é incrível :) Não é tão difícil, eu nunca tinha escrito uma linha de C antes (C # dev aqui) e tinha algo básico em execução em algumas horas.
TJHeuvel 17/04
Que tipo de projeto? Eu sugeriria um projeto de eletrônica.
joeforker

Respostas:

10

Aqui estão algumas sugestões para projetos que não seriam difíceis de obter para um desenvolvedor de software. Eles podem parecer difíceis, mas sou um grande fã de projetos que estão muito além do meu conjunto de habilidades. Se forem projetos divertidos e atraentes, eles o arrastarão com alegria pelo processo de aprendizado. E lembre-se, estamos todos aqui para ajudar.


Matriz de LED

Matriz de LED

Este é um projeto totalmente digital e muito divertido (quem não gosta de LEDs). Você precisará de alguns drivers como o ULN2803 e um microcontrolador. Faça com que a matriz conte a hora ou mostre uma imagem. Eu era capaz de mostrar uma imagem de Bjork em uma matriz verde de 16x16.


Plano de espuma estabilizada com giroscópio

Pegue um avião de espuma e dois micro ailerons :

Plano de espuma micro ailerons

Você também precisará de um giroscópio MEMS com uma saída analógica e alguns OpAmps minúsculos. Misture-os todos juntos para fazer um plano de espuma de borracha estabilizada com giroscópio.


Robô

Todo mundo adora um robô. O melhor de um pequeno robô como esse é que você pode começar com algo extremamente simples (apenas avança) e lentamente adicionar mais e mais funcionalidade (sensores e tomada de decisão), aprendendo o tempo todo.

Robô

Rocketmagnet
fonte
5

Se você já é desenvolvedor de software, a programação do microcontrolador em si não deve ser realmente um desafio, e há pouco de eletrônico nisso. Pelo menos não da maneira que você precisaria lidar com diferentes tipos de componentes e fazer cálculos sobre tensões e correntes para fazer algo funcionar.

Um kit de microcontrolador pode ajudá-lo a obter o controle. Você pode trabalhar com todos os tipos de entradas, digitais e analógicas e saídas.
Experimente o onipresente termostato, por exemplo.

Entradas
Você precisará entender os sensores de temperatura (qualquer que seja o tipo), amplificadores, opamps e talvez transistores, além de capacitores e resistores. Opamps e especialmente transistores são básicos, são usados ​​em todos os circuitos.

Saída
Para acionar um relé, você precisará saber como um transistor funciona como um comutador (essa é a aplicação mais fácil de entender).

As placas de desenvolvimento de microcontroladores costumam ter uma tela nelas, LCD ou LED, ou podem se conectar a um módulo de tela. Embora isso seja útil (por exemplo, para depuração) e divertido, não ajuda a entender a eletrônica. Você precisará criar seu próprio monitor, como uma matriz de LEDs, e aprender a dirigir um monitor multiplexado, tanto do ponto de vista de software quanto de hardware.

Além da placa do microcontrolador, pegue um kit de partida eletrônica , que contém a maioria das peças básicas para fazer circuitos simples. E um bom manual , é claro. A Arte da Eletrônica é imensamente popular aqui, embora a última vez que a vi foi devido a uma atualização.

stevenvh
fonte
1
E se você está cansado do termostato, pode atualizar para implementar um controlador PID. :)
Nick Johnson
Idéia de projeto elegante que incorpora uma ampla gama de conceitos elétricos e eletrônicos. Depois de ter feito esse projeto em componentes discretos você pode olhar para passar para um controlador de micro para fazer o mesmo trabalho, e assim aprender os prós (flexibilidade) e contras (custo comparativo) de microcontroladores
SimonBarker
5

Adquira um kit de desenvolvimento PSoC . O PSoC é um microcontrolador que contém blocos digitais e analógicos reconfiguráveis. Basicamente, você pode conectar esquemas digitais e analógicos ao IDE. Esses esquemas são então implementados dentro do chip PSoC.

Criador de PSoC

Você pode jogar com projetos de circuitos digitais e analógicos de acordo com o conteúdo do seu coração e combinar tudo isso com o software escrito no mesmo IDE.

Rocketmagnet
fonte
2
Este é um lugar incomum para começar; o PSoC é um sistema muito complexo e incomum. Você teve sucesso em treinar outras pessoas usando isso como ponto de partida?
Kevin Vermeer
Pode ser complexo por dentro, mas é um sonho de usar. Eles fizeram um trabalho incrível ao integrar tudo perfeitamente e produziram muitos vídeos e documentos tutoriais interessantes.
Rocketmagnet
1
O fato de todos esses periféricos serem integrados em um PSoC é um caso contra isso. Você deve construir esses sistemas você mesmo, se quiser aprender.
amigos estão dizendo sobre stevenvh
2
@stevenvh Nem um pouco. Qual é a diferença entre conectar portas dentro de chips e conectar portas em um esquema? É conceitualmente idêntico.
Rocketmagnet
@sandundhammika Sem problemas. Eu acho que todos deveriam descobrir que prazer é desenvolver aplicações nessas coisas.
Rocketmagnet
5

Proteus é uma excelente plataforma de criação de textos orientada por software. Você pode criar placas e esquemas de PCB usando a maioria, se não todos os MCUs mencionados aqui; E o melhor de tudo, você pode simular seu código-fonte como se estivesse sendo executado no hardware real!

O mais legal desse software é que você pode alterar variáveis ​​como cristais, capacitores, resistores sem precisar soldar, dessoldar, pedir e esperar para eventualmente mexer com proto boards ou escudos. Emula-o perfeito.

Além disso; Você obtém ferramentas virtuais como osciliscópios. Você sabe quanto custa um bom osciliscópio? Uma fortuna! Tudo está incluído em praticamente vários outros recursos e ferramentas virtuais.

Não é gratuito, mas o preço é absolutamente razoável pela quantidade de tempo e frustração que você pode economizar, em vez de mexer com o hardware real.

Willy Wonka
fonte
Você consegue fazer circuitos reais dessa maneira?
Rocketmagnet
Sim, eu faço o meu circuito no Proteus, por exemplo, attiny 861 com h-bride, e o vinculo ao arquivo hexadecimal que o AVR Studio compila. Toda vez que troco de fonte e compilo no AVRStudio, animao no Proteus e minhas alterações são instantâneas. E eu posso medir a saída da h-bride usando um osciloscópio, sonda ou voltímetro com leitura precisa ... apenas como meu verdadeiro proto. É bom bastante
WillyWonka
3

Eu acho que tentar aprender tudo só resultará em muita confusão e perda de tempo. IMHO, você deve tentar focar seu interesse: você disse que precisa dele para sistemas de infotainment, certo?

Uma abordagem poderia ser ter uma idéia do que é um desses sistemas:

  • Uma unidade de processamento (provavelmente um microcontrolador ou um computador simples);

  • Alguns drivers para a tela;

  • Interface de E / S para interação do usuário;

  • Interfaces de comunicação (rede, interface com outros dispositivos ...)

Qualquer um desses subdomínios é um sistema completo que pode ser estudado e projetado como um projeto. Alguns deles também podem ser divididos em mais subdomínios em um nível mais baixo de abstração e até o nível do componente.

Então, minha sugestão é quebrar essa arquitetura complexa em blocos e tentar criar circuitos simples (talvez a partir de drivers de LED), mas isso pode ser inserido no plano maior. Você terá a motivação para fazer isso, pois fará parte do trabalho final e da maneira como aprenderá sobre eletrônica.

Apenas cuide de estudar e entender o que você está fazendo, em vez de confiar em esquemas pré-fabricados e regras gerais genéricas.

clabacchio
fonte
2

Eu estava no mesmo problema. E, finalmente, aprendi que não há uma maneira direta de aprender eletrônica. Um diploma universitário pode ajudá-lo.

Caso contrário, você pode tentar os seguintes livros:

Passo 1.

insira a descrição da imagem aqui

Passo 2.

insira a descrição da imagem aqui

Juntamente com o software NI Multisim .

insira a descrição da imagem aqui


fonte
1

Como desenvolvedor de software, você está entre as duas principais plataformas disponíveis.

PHP ou .NET?

Se você é .NET, posso sugerir fortemente o .NET MicroFramework IDE e o NetDuino

insira a descrição da imagem aqui

Existem muitos outros hardwares disponíveis, mas sugiro este porque seu preço é razoável e é muito parecido com o Arduino e muitas outras placas de prototipagem que ajudarão a familiarizar vários kits.

Nem o .NET nem o PHP não têm conexão real com a programação incorporada, mas a sintaxe do PHP está muito próxima do Cque é bom saber. .NET, é bom ficar em um ambiente familiar e você também pode obter certificações para isso com o Microsoft Learning.

Outra plataforma que eu sugeriria é o Atmels AVR XMega, que é basicamente o arduino, mas muito mais novo e mais capaz.

As partes importantes sobre esses dois caras é que os ambientes de desenvolvimento são GRATUITOS! Sim, a Microsoft oferece o Visual Studio gratuito para Micro Framework e o Atmel possui o AVR Studio 5 (baseado no Visual Studio a partir da versão 5)

Você também precisa entender os recursos de cada kit de desenvolvimento.

insira a descrição da imagem aqui

É baseado em chips Atmega, mas eles usam chips de baixa velocidade de clock (8mhz, 16mhz), mas são capazes de executar vários bits e interrupções. É um excelente ponto de partida para o aprendizado de engenharia elétrica, pois possui IDE gratuito e uma comunidade enorme com toneladas de código e bibliotecas. Se você aprender a partir daqui, será mais fácil mudar para outros chips baseados no AVR em termos de sintaxe e portabilidade de código.

É muito limitado ao que pode ser feito, por exemplo, não espere retransmitir dados de vídeo por meio de um servidor micro web interno para a Internet. Esses MCUs simplesmente não conseguem lidar com os dados e a quantidade de coisas a fazer ao mesmo tempo, mas depois que você chegar a esse nível, será bom avançar para os AVRs .NET ou 32Bit.

  • AVR 32

Esses caras podem lidar com LCDs, vídeo, servidor web, sem fio e um monte de coisas dentro dele. Eles também começam a ir muito mais rápido na velocidade de processamento. Porém, antes de começar a analisar esses itens, você precisa perceber que existem vários produtos que também possuem funções específicas. Como toque, comunicação sem fio, potência ultra baixa, alguns são misturados e combinados e isso precisa de um processo adequado de pesquisa e desenvolvimento por trás do uso esses meninos maus.

  • Instrumentos Texas

Tenha muito cuidado com eles,

Eles oferecem fantásticos chips líderes de mercado que são incríveis quando você lê sobre eles. Infelizmente, não há IDE gratuito e eles custam milhares de dólares em taxas de licença. Embora alguns produtos, como o MSP430, tenham um IDE gratuito, muitas coisas são limítrofes e pouco claras. Além disso, aprender as bibliotecas para alguns chips de TI é um pesadelo absoluto. Mas é um nicho de mercado e você pode obter um bom salário aqui.

Existem muitos devkits por aí, só contei sobre algumas das minhas próprias experiências que vêm de uma Certificação .NET. Eu realmente comecei com um Mega256 do Arduino.

Hoje, estou fabricando minhas próprias PCBs de 1,5 cm x 1,5 cm, que funcionam com células de moedas por até 2 anos, usando o incrível SystemOnChips da TI. Mas demorou muito tempo e paciência para chegar lá e ainda sinto que não sei nada sobre sistemas embarcados ...

Boa sorte :-)

Piotr Kula
fonte
10
... você está seriamente sugerindo que todo desenvolvedor de software use .NET ou PHP?
21712 Nick12
@NickJohnson na maioria dos casos .... Vá para o provedor de host da web e você tem duas seleções de tipo de servidor; Windows .NET -OU- LAMP Linux com PHP .. Não sou só eu ... aposto que você é como um ruby ​​on rails ou C ++? Eu sei que só estou referenciando tecnologias da Web .. mas os aplicativos são tão ontem ... vamos acompanhar.
Piotr Kula
Foi uma pergunta fofa. Minha principal experiência profissional está no PHP (bem escrito), mas também sou fluente em Java, C & C ++, Javascript.
Dukeofgaming
12
"... os aplicativos são tão ontem ..." - diga isso às centenas de milhares de desenvolvedores que não são de aplicativos da Web por aí. Em vez de "vamos acompanhar", que tal "vamos ser reais"? Se .NET e PHP fossem as únicas opções para escrever software, eu jogaria meu PC em uma ponte. Aplicativos da Web não são os únicos aplicativos.
precisa saber é o seguinte
1
@ppumkin, eu ainda acho fortemente que os usuários devem aprender a ler assembly para ver quando está fazendo algo estúpido.
Kortuk
1

Sua pergunta é bastante ampla e haverá muitas boas possibilidades. Se você está mais focado no nível mais alto de como fazer um computador pequeno interagir com coisas físicas, sugiro que você olhe algo como o kit Lego Mindstorms . Com isso, você pode criar e programar robôs. Isso estará em um alto nível de plug and play, vários sensores etc.

Há também um nível mais básico importante de engenharia elétrica, onde um EE "verdadeiro" projetaria e construiria sensores. O uso de um computador de placa única como um Arduino ou um Netduino e uma placa de ensaio onde você conecta vários componentes como resistores, LEDs etc. na placa de ensaio para construir circuitos estará mais próximo desse nível mais básico. Neste ponto, você estará lidando com perguntas como "que resistor de valor devo colocar em série com o LED para limitar a corrente para que meu led e microcontrolador não fumem?".

Com o kit Lego, você simplesmente conecta os componentes e eles cuidam de torná-lo à prova de idiotas.

JonnyBoats
fonte
1
Na verdade, o "verdadeiro" EE provavelmente não usaria um Ardunio e uma placa de ensaio.
Jeanne Pindar
@Jeanne - É verdade, mas não podemos todos ser Jeri Ellsworth e fazer nossas próprias transistores: youtube.com/watch?v=w_znRopGtbE
JonnyBoats
1

Eu sugeriria focar na diferença entre o software escrito para o PC e o firmware escrito para aplicativos incorporados. Aprimore o C. Com o linux embutido se tornando tão popular, a diferença entre um engenheiro de firmware e um desenvolvedor de software está diminuindo rapidamente. Passe algum tempo olhando para um driver incorporado de código aberto.

Eu questionaria um pouco o desejo de se tornar mais como um EE, pois as duas disciplinas são bem distintas. Sim, existem muitas sobreposições, mas concentre-se no lado do motorista e não fique atolado nos detalhes da eletrônica.

Spearson
fonte
Ele diz que ele quer entrar na eletrônica!
Stevenvh
O que estou sugerindo é uma abordagem do lado de cima para baixo do software, em vez de começar com um esquema e trabalhar com os pinos de E / S. Isso parece razoável, pois interpreto "habilidades de engenharia eletrônica definidas no nível do software" como um foco no desenvolvimento de firmware.
Spearson 17/04/12
1

primeiro de tudo é muito bom se você não é do ramo da eletrônica, não vai realmente projetar chips, não é?

mas se você for aprender eletrônica, sugiro que você compreenda o básico primeiro, como resistência, diodos, transistores etc. um kit de hobby eletrônico do radioshack ou qualquer outro fornecedor faria. Em seguida, nos microcontroladores, o Arduino faria realmente simples, mas eu aconselho que você escolha algo que não tenha sido facilitado, o Arduino é realmente fácil e não representa um grande desafio para o usuário. Comece pelos controladores AVR, PIC ou 8051 Micro, compre um microcontrolador, um codifique book e srart começando com o programa LED piscando (o "Hello World" no Departamento de Eletrônica) e, como você verá, em pouco tempo você usaria teclados de matriz e monitores de sete segmentos para aprender um pouco mais sobre o básico. trabalho, interface de seus dispositivos com outros CIs e redes de sensores, aquele relacionado ao seu trabalho.sua diretoria de desenvolvimento já possui alguns desses recursos e, se não, você sempre pode comprar sheilds ou breakad borads disponíveis com facilidade, então tudo depende de você ...

Também aconselho que você verifique com sua empresa a plataforma que está usando, isso lhe dará uma orientação sobre o microcontrolador para aprender e, como você já é um programador, isso deve ser muito fácil para você e sempre faz projetos de hobby como o Robot e matriz de LED, entre outros, isso manteria sua mente no assunto que você não ficará entediado!

ArunMKumar
fonte