¿Qué tipo de proyecto podría ayudar a un ingeniero de software a convertirse en un ingeniero electrónico? [cerrado]

17

Soy un desarrollador de software prácticamente sin experiencia en electrónica, pero quiero entrar en esto ya que es relevante para el trabajo que estoy haciendo (desarrollo del sistema de infoentretenimiento). Soy ingeniero de software, no ingeniero electrónico, por lo que mi experiencia / experiencia tiene más que ver con la programación a nivel de aplicación, y tal vez un poco de programación del sistema / red.

Escuché sobre Arduino como una plataforma de proyecto flexible y me preguntaba qué tipo de proyectos podrían ayudar a alguien con mi experiencia a profundizar en la ingeniería electrónica ... comenzando con la programación de microcontroladores y tal vez jugando con otros tipos de periféricos, como bluetooth , zigbee, wifi, audio, video, no lo sé ... quizás un tipo de proyecto típico de los ingenieros electrónicos durante sus cursos.

En resumen, lo que estoy buscando es un tipo de proyecto típico / popular (académico o de otro tipo) que pueda ayudar a un ingeniero de software a desarrollar un conjunto de habilidades de ingeniería electrónica a nivel de software.

dukeofgaming
fuente
puede ser un algoritmo de mapeo tecnológico para el back-end de iverilog.
Estándar Sandun
1
Recomiendo que comience con algunos proyectos de 555 temporizadores. Hay innumerables en Internet y le darán una comprensión básica de resistencias, condensadores y, en algunos casos, inductores, con los que deberá familiarizarse para saber realmente qué está haciendo con las cosas de nivel superior, como Programación de microcontroladores y similares. Después de eso, puedes comenzar a jugar con Arduino, PICAXE o cualquier plataforma que te parezca interesante. Luego, valientemente, comience a trabajar en un proyecto un poco más grande que le parezca interesante y asegúrese de no darse por vencido en el camino.
AndrejaKo
1
Estoy en la misma posición, solo quería jugar con el hardware. Traje un Arduino y un coche RC de juguete, los conecté juntos. No tengo idea de cómo, pero funciona, y es increíble :) No es tan difícil, nunca había escrito una línea de C antes (C # dev aquí), y tenía algo básico funcionando en un par de horas.
TJHeuvel
¿Qué tipo de proyecto? Sugeriría un proyecto de electrónica.
joeforker

Respuestas:

10

Aquí hay algunas sugerencias para proyectos que no serían difíciles de conseguir para un desarrollador de software. Todos pueden parecer bastante difíciles, pero soy un gran admirador de intentar proyectos que están muy fuera de mi conjunto de habilidades. Si son proyectos divertidos y convincentes, lo arrastrarán alegremente a través del proceso de aprendizaje. Y recuerda, todos estamos aquí para ayudar.


Matriz de LED

Matriz de LED

Este es un proyecto completamente digital y muy divertido (a quien no le gustan los LED). Necesitará algunos controladores como el ULN2803 y un microcontrolador. Obtenga la matriz para decir la hora o muestre una imagen. Estaba a punto de mostrar una imagen de Bjork en una matriz verde de 16x16.


Plano de espuma con giro estabilizado

Consigue un avión de espuma y un par de microalerrones :

Plano de espuma micro alerones

También necesitará un giroscopio MEMS con una salida analógica y algunos pequeños amplificadores operacionales. Mezclarlos todos juntos para hacer un plano de espuma de gomas estabilizadas con giroscopio.


Robot

Todos aman a un robot. Lo mejor de un pequeño robot como este es que puede comenzar con algo extremadamente simple (solo avanza) y agregar lentamente más y más funcionalidad (sensores y toma de decisiones), aprendiendo todo el tiempo.

Robot

Rocketmagnet
fuente
5

Si ya es un desarrollador de software, entonces la programación de microcontroladores en sí misma no debería ser un desafío realmente, y hay poco electrónico al respecto. Al menos no de la manera en que tendrías que lidiar con diferentes tipos de componentes y hacer cálculos sobre voltajes y corrientes para que algo funcione.

Sin embargo, un kit de microcontrolador puede ayudarlo a obtener el control. Puede trabajar con todo tipo de entradas, digitales y analógicas, y salidas.
Pruebe el termostato ubicuo, por ejemplo.

Entradas
Necesitará comprender los sensores de temperatura (del tipo que sea), amplificadores, opamps y quizás transistores, además de condensadores y resistencias. Opamps y especialmente los transistores son básicos, se usan en todos los circuitos.

Salida
Para conducir un relé, necesitará saber cómo funciona un transistor como interruptor (esa es la aplicación más fácil de entender).

Las placas de desarrollo de microcontroladores a menudo tienen una pantalla , LCD o LED, o pueden conectarse a un módulo de pantalla. Si bien esto es útil (por ejemplo, para depurar) y divertido, no lo ayuda a comprender la electrónica. Tendrá que hacer su propia pantalla, como una matriz de LED, y aprender a manejar una pantalla multiplexada, tanto desde el punto de vista del software como del hardware.

Además de la placa del microcontrolador, obtenga un kit de arranque electrónico , que contiene la mayoría de las partes básicas para hacer circuitos simples. Y un buen manual , por supuesto. El arte de la electrónica es inmensamente popular aquí, aunque la última vez que lo vi fue debido a una actualización.

stevenvh
fuente
1
Y si está harto del termostato, puede actualizar a implementar un controlador PID. :)
Nick Johnson
Buena idea de proyecto que incorpora una amplia gama de conceptos eléctricos y electrónicos. Una vez que haya realizado este proyecto en componentes discretos, podría buscar pasar a un microcontrolador para hacer el mismo trabajo, y así aprender los pros (flexibilidad) y los contras (costo comparativo) de los microcontroladores
SimonBarker
5

Consigue un kit de desarrollo de PSoC . El PSoC es un microcontrolador que contiene bloques digitales y analógicos reconfigurables. Básicamente, puede conectar esquemas digitales y analógicos con el IDE. Esos esquemas se implementan dentro del chip PSoC.

PSoC Creator

Puede jugar con diseños de circuitos digitales y analógicos al contenido de su corazón, y combinarlo todo con un software escrito en el mismo IDE.

Rocketmagnet
fuente
2
Este es un lugar poco común para comenzar; El PSoC es un sistema muy complejo e inusual. ¿Has tenido éxito entrenando a otros usando esto como punto de partida?
Kevin Vermeer
Puede ser complejo por dentro, pero es un sueño usarlo. Han hecho un trabajo increíble al hacer que todo se integre sin problemas y han producido muchos videos tutoriales y documentos.
Rocketmagnet
1
El hecho de que todos esos periféricos estén integrados en un PSoC es un caso en contra. Se supone que debes construir estos sistemas tú mismo si quieres aprender.
stevenvh
2
@stevenvh Para nada. ¿Cuál es la diferencia entre el cableado de puertas dentro de chips y el cableado de puertas en un esquema? Es conceptualmente idéntico.
Rocketmagnet
@sandundhammika No hay problemas. Creo que todos deberían descubrir qué placer es desarrollar aplicaciones en estas cosas.
Rocketmagnet
5

Proteus es una excelente plataforma de proptyping impulsada por software. Puede construir placas de PCB y esquemas utilizando la mayoría, si no todas las MCU mencionadas aquí; Y lo mejor de todo, ¡puede simular su código fuente como si se estuviera ejecutando en el hardware real!

Lo mejor de este software es que puede cambiar variables como cristales, condensadores, resistencias sin tener que soldar, desoldar, ordenar y esperar para eventualmente mudar con prototipos de placas o escudos. Lo emula perfecto.

También; Obtienes herramientas virtuales como Osciliscopes .. ¿Sabes cuánto cuesta un buen osciliscope? ¡Una fortuna! Todo está incluido con prácticamente toneladas de otras características y herramientas virtuales.

No es gratis, pero el precio es absolutamente razonable por la cantidad de tiempo y la frustración que puede ahorrarle, en lugar de meterse con el hardware real.

Willy Wonka
fuente
¿Tienes la oportunidad de hacer circuitos reales de esta manera?
Rocketmagnet
Sí, hago mi circuito en Proteus, por ejemplo, attiny 861 con h-bride, y lo vinculo al archivo hexadecimal que compila AVR Studio. Cada vez que cambio la fuente y compilo en AVRStudio, vivo en Proteus y mis cambios son instantáneos. Y puedo medir la salida de h-bride usando un osciloscopio, una sonda o un voltímetro con una lectura precisa ... como mi proto real. Es bastante bueno
WillyWonka
3

Creo que tratar de aprender todo solo generará mucha confusión y tiempo perdido. En mi humilde opinión, debes tratar de enfocar tu interés: dijiste que lo necesitas para los sistemas de infoentretenimiento, ¿verdad?

Un enfoque podría ser tener una idea de cuál es uno de esos sistemas:

  • Una unidad de procesamiento (probablemente un microcontrolador o una computadora simple);

  • Algunos controladores para la pantalla;

  • Interfaz de E / S para la interacción del usuario;

  • Interfaces de comunicación (redes, interfaces con otros dispositivos ...)

Cualquiera de estos subdominios es un sistema completo que puede estudiarse y diseñarse como un proyecto. Algunos de ellos también se pueden dividir en más sub-subdominios en un nivel inferior de abstracción y hasta el nivel de componente.

Entonces, mi sugerencia es romper esta compleja arquitectura en bloques e intentar crear circuitos simples (tal vez comenzando con los controladores LED), pero eso se puede insertar en el plan más grande. Tendrás la motivación para hacerlo, ya que será parte del trabajo final, y en la forma en que aprenderás sobre electrónica.

Solo tenga cuidado de estudiar y comprender lo que está haciendo, en lugar de confiar en esquemas prefabricados y reglas generales genéricas.

clabacchio
fuente
2

Estaba en el mismo problema. Y eventualmente aprendí que no hay una forma abreviada de aprender electrónica. Un título universitario puede ayudarte.

De lo contrario, puede probar los siguientes libros:

Paso 1.

ingrese la descripción de la imagen aquí

Paso 2.

ingrese la descripción de la imagen aquí

Junto con el software NI Multisim .

ingrese la descripción de la imagen aquí


fuente
1

Bueno, como desarrollador de software, estás en una de las dos principales plataformas disponibles.

PHP o .NET?

Si usted es .NET, entonces puedo sugerirle fuertemente .NET MicroFramework IDE y NetDuino

ingrese la descripción de la imagen aquí

Hay un montón de otro hardware disponible, pero sugiero este porque su precio es razonable y es muy similar en diseño al Arduino y muchas otras variedades de tableros de prototipos que ayudarán a desarrollar la familiaridad en varios kits.

Ni .NET ni PHP no tienen una conexión real con la programación integrada, pero la sintaxis de PHP está muy cerca de C que es bueno saber. .NET, es bueno estar dentro de un entorno familiar y también puede obtener certificaciones para esto con Microsoft Learning.

Otra plataforma que sugeriría es Atmels AVR XMega que es básicamente el arduino pero mucho más nuevo y más capaz.

¡Lo importante de estos dos tipos es que los entornos de desarrollo son GRATUITOS!Sí, Microsoft le ofrece Visual Studio gratuito para Micro Framework y Atmel tiene AVR Studio 5 (que se basa en Visual Studio a partir de la versión 5)

También debe darse cuenta de la capacidad de cada kit de desarrollo.

ingrese la descripción de la imagen aquí

Está basado en chips Atmega, pero usan los de baja velocidad de reloj (8mhz, 16mhz) pero son bastante capaces de hacer varios bits y bops. Es un excelente punto de partida para aprender ingeniería eléctrica porque tiene IDE gratuito y una comunidad masiva con toneladas de código y bibliotecas. Si aprende de aquí, será más fácil pasar a otros chips basados ​​en AVR en términos de sintaxis y portabilidad de código.

Está muy limitado a lo que puede hacer, por ejemplo, no espere transmitir datos de video a través de un micro servidor web interno a Internet. Estos MCU simplemente no pueden manejar los datos y la cantidad de cosas que hacer al mismo tiempo, pero una vez que llegar a ese nivel, entonces será bueno avanzar a .NET o AVR de 32 bits.

  • AVR 32

Estos chicos pueden manejar LCD, video, servidor web, conexión inalámbrica y muchas cosas dentro de sí mismo. También comienzan a ir mucho más rápido en la velocidad de procesamiento. Pero antes de comenzar a analizarlos, debe darse cuenta de que hay varios productos que también cumplen funciones específicas. Como el sentido del tacto, la comunicación inalámbrica, la energía ultra baja, algunos se mezclan y combinan y esto necesita un proceso de investigación y desarrollo adecuado para usar Estos chicos malos.

  • Instrumentos Texas

Ten mucho cuidado con ellos

Ofrecen fantásticos chips líderes en el mercado que son increíbles cuando lees sobre ellos. Lamentablemente, no hay IDE gratuito y cuestan miles de dólares en derechos de licencia. Aunque, algunos productos como el MSP430 tienen un IDE gratuito, pero muchas cosas están al límite con ellos y no están claros. Además, aprender las bibliotecas para algunos chips TI es una pesadilla absoluta ... Pero es un nicho de mercado y puede obtener un buen salario aquí ...

Hay muchos devkits por ahí, solo te he contado sobre algo de mi propia experiencia que viene de una certificación .NET. De hecho comencé con un Arduino Mega256.

Hoy estoy haciendo mis propios PCB's tan pequeños como 1.5cmx1.5cm que funcionan con celdas de monedas por hasta 2 años usando el increíble SystemOnChips de TI. Pero tomó mucho tiempo y paciencia llegar allí y todavía siento que no sé nada acerca de los sistemas integrados ...

Buena suerte :-)

Piotr Kula
fuente
10
¿Estás sugiriendo seriamente que todos los desarrolladores de software usan .NET o PHP?
Nick Johnson
@NickJohnson en su mayoría ... Vaya al proveedor de alojamiento web y tendrá dos selecciones de tipo de servidor; Windows .NET -O BIEN- Linux LAMP con PHP ... No soy solo yo ... ¿Apuesto a que eres como un rubí sobre rieles o C ++? Sé que solo estoy haciendo referencia a tecnologías web ... pero las aplicaciones son tan ayer ... sigamos el ritmo.
Piotr Kula
Fue una linda pregunta. Mi experiencia profesional principal reside en PHP (bien escrito), pero también soy fluido con Java, C & C ++, Javascript.
dukeofgaming
12
"... las aplicaciones son tan ayer ..." - Dígaselo a los cientos de miles de desarrolladores que no son de aplicaciones web. En lugar de "sigamos", ¿qué tal "seamos realistas"? Si .NET y PHP fueran las únicas opciones para escribir software, lanzaría mi PC por un puente. Las aplicaciones web no son las únicas aplicaciones.
Justin ᚅᚔᚈᚄᚒᚔ
1
@ppumkin, sigo pensando firmemente que los usuarios deberían aprender a leer el ensamblaje para ver cuándo está haciendo algo estúpido.
Kortuk
1

Su pregunta es bastante amplia, y habrá muchas buenas posibilidades. Si te enfocas más en el nivel superior de cómo hacer que una computadora pequeña interactúe con cosas físicas, te sugiero que veas algo como el kit Lego Mindstorms . Con esto puedes construir y programar robots. Esto será en un alto nivel de enchufar y usar varios sensores, etc.

También hay un importante nivel más básico de ingeniería eléctrica donde un EE "verdadero" diseñaría y construiría sensores. El uso de una computadora de placa única como un Arduino o un Netduino y una placa de prueba donde conecte varios componentes como resistencias, LED, etc.en la placa de prueba para construir circuitos estará más cerca de este nivel más básico. En este punto, se enfrentará a preguntas como "¿qué resistencia de valor debo poner en serie con el LED para limitar la corriente para que mi led y mi microcontrolador no se conviertan en humo?".

Con el kit Lego, simplemente conecta los componentes y se han encargado de hacerlo a prueba de idiotas.

JonnyBoats
fuente
1
En realidad, el EE "verdadero" probablemente no estaría usando un Ardunio y una placa de pruebas.
Jeanne Pindar
@Jeanne - Cierto, pero no todos podemos ser Jeri Ellsworth y hacer nuestros propios transistores: youtube.com/watch?v=w_znRopGtbE
JonnyBoats
1

Sugeriría centrarse en la diferencia entre el software escrito para PC y el firmware escrito para aplicaciones integradas. Repasar C. Con embeddd linux cada vez más popular, la diferencia entre un ingeniero de firmware y un desarrollador de software se está reduciendo rápidamente. Pase algún tiempo mirando un controlador integrado de código abierto.

Cuestionaría un poco el deseo de ser más como un EE ya que las dos disciplinas son bastante distintas. Sí, hay un montón de superposición, pero concéntrate en el lado del conductor y no te empañes con los detalles de la electrónica.

Spearson
fuente
¡Te dice que quiere meterse en la electrónica!
stevenvh
Lo que sugiero es un enfoque lateral de software de arriba hacia abajo, en lugar de comenzar con un esquema y trabajar desde los pines de E / S. Esto parece razonable ya que interpreto que el "conjunto de habilidades de ingeniería electrónica en el nivel de software" significa un enfoque en el desarrollo de firmware.
Spearson
1

en primer lugar, está muy bien si no eres de la electrónica, realmente no vas a diseñar chips, ¿verdad?

pero si vas a aprender electrónica, te sugiero que primero obtengas los conceptos básicos como Resistencia, Diodos, Transistores, etc., un kit de pasatiempo electrónico de radioshack o cualquier otro proveedor haría ... a continuación, pasa a los Microcontroladores, Arduino haría es muy simple, pero le aconsejaría que vaya con algo que ya no se ha hecho fácil, Arduino es realmente fácil y no pone mucho desafío ante su usuario. Comience por AVR, PIC o 8051 Microcontroladores, compre un microcontrolador, un codificación de libro y srart que comienza con el Programa LED parpadeante (el "Hola mundo" en el Departamento de electrónica) y, como verá, en poco tiempo usaría teclados matriciales y pantallas de siete segmentos para aprender más conceptos básicos, después de eso viene lo real trabajo, conectando sus dispositivos con otros circuitos integrados y redes de sensores, la relacionada con su trabajo.su placa de desarrollo ya tendría algunas de estas características y, si no es así, siempre puede comprar sheilds o borads disponibles fácilmente, entonces todo depende de usted ...

También le aconsejaría que consulte con su empresa sobre la plataforma que están utilizando, esto le daría una dirección sobre el microcontrolador para aprender y, dado que ya es un programador, esto debería resultarle muy fácil y siempre realizar proyectos de pasatiempo como Robot y matriz de LED, entre otros, ¡esto te mantendría concentrado en el tema que no te aburrirás!

ArunMKumar
fuente