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

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

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 abrirse camino hacia 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 sé... tal vez un tipo de proyecto que es 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.

puede ser un algoritmo de mapeo de tecnología para el back-end de iverilog.
Te recomiendo que comiences con algunos proyectos de 555 temporizadores. Hay innumerables en Internet y le darán una comprensión básica de las resistencias, los condensadores y, en algunos casos, los inductores, con los que deberá familiarizarse para saber realmente lo que 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 encuentres interesante. Luego, comience a trabajar con valentía en un proyecto un poco más grande que le parezca interesante y asegúrese de no darse por vencido en el camino.
Estoy en la misma posición, solo quería jugar con el hardware. Traje un Arduino y un auto RC de juguete, los conecté juntos. No tengo idea de cómo, pero funciona, y es increíble :) No es tan difícil, nunca antes había escrito una línea de C (C# dev aquí), y tenía algo básico ejecutándose en un par de horas.
¿Qué tipo de proyecto? Yo sugeriría un proyecto de electrónica.
Meta discusión sobre esta pregunta aquí: meta.electronics.stackexchange.com/questions/1083/…

Respuestas (10)

Aquí hay algunas sugerencias para proyectos en los que no sería difícil entrar para un desarrollador de software. Todos pueden parecer bastante difíciles, pero soy un gran fanático de intentar proyectos que están fuera de mi conjunto de habilidades. Si son proyectos atractivos y divertidos, lo arrastrarán alegremente a través del proceso de aprendizaje. Y recuerda, todos estamos aquí para ayudarte.


Matriz LED

Matriz LED

Este es un proyecto totalmente digital, pero muy divertido (a quién no le gustan los LED). Necesitará algunos controladores como el ULN2803 y un microcontrolador. Obtén la matriz para decir la hora o muestra una imagen. Casi pude mostrar una imagen de Bjork en una matriz verde de 16x16.


Avión de espuma estabilizada giroscópica

Consigue un avión de espuma y un par de micro alerones :

Avión de espuma micro alerones

También necesitará un giroscopio MEMS con una salida analógica y algunos amplificadores operacionales pequeños. Mézclalos todos juntos para hacer un avión de espuma con banda de goma estabilizada con giroscopio.


Robot

Todo el mundo ama a un robot. Lo mejor de un pequeño robot como este es que puede comenzar con algo extremadamente simple (simplemente avanza) y poco a poco agregar más y más funciones (sensores y toma de decisiones), aprendiendo todo el tiempo.

Robot

Si ya es un desarrollador de software, entonces la programación de microcontroladores en sí misma no debería ser un desafío, y hay poca electrónica al respecto. Al menos no en la forma en que tendría 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 omnipresente termostato , por ejemplo.

Entradas
Deberá comprender los sensores de temperatura (de cualquier tipo), amplificadores, amplificadores operacionales y tal vez transistores, además de capacitores y resistencias. Los amplificadores operacionales y especialmente los transistores son básicos, se usan en todos los circuitos.

Salida
Para controlar 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 suelen tener una pantalla , LCD o LED, o pueden conectarse a un módulo de pantalla. Si bien esto es útil (por ejemplo, para la depuración) y divertido, no lo ayuda a comprender la electrónica. Tendrá que hacer su propia pantalla, como una matriz de LED, y aprender a controlar una pantalla multiplexada, tanto desde el punto de vista del software como del hardware.

Además de la placa del microcontrolador, hazte con un kit de arranque electrónico , que contiene la mayoría de las piezas 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 era debido a una actualización.

Y si está harto del termostato, puede actualizar para implementar un controlador PID. :)
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 pasar a un microcontrolador para hacer el mismo trabajo, y así conocer los pros (flexibilidad) y los contras (costo comparativo) de los microcontroladores.

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

Creador de PSoC

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

Este es un lugar poco común para comenzar; el PSoC es un sistema muy complejo e inusual. ¿Ha tenido éxito entrenando a otros usando esto como punto de partida?
Puede ser complejo por dentro, pero es un sueño usarlo. Hicieron un trabajo increíble al hacer que todo se integre sin problemas y produjeron muchos videos y documentos tutoriales agradables.
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 En absoluto. ¿Cuál es la diferencia entre cablear puertas dentro de chips y cablear puertas en un esquema? Es conceptualmente idéntico.
@sandundhammika Sin problemas. Creo que todo el mundo debería descubrir el placer que supone desarrollar aplicaciones sobre estas cosas.
¿Tienes un enlace?
PSoC3 . Tienes que desplazarte hacia abajo para ver la lista de dispositivos. No fue evidente de inmediato que fueran las primeras 10 veces que fui allí.

Proteus es una excelente plataforma de tipificación impulsada por software. Puede construir placas y esquemas de PCB utilizando la mayoría, si no todas, las MCU mencionadas aquí; ¡Y lo mejor de todo es que 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 enredar con placas proto o escudos. Lo emula perfecto.

También; Obtienes herramientas virtuales como osciloscopios. ¿Sabes cuánto cuesta un buen osciloscopio? ¡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 frustración que puede ahorrarte, en lugar de jugar con el hardware real.

¿Puedes hacer circuitos reales de esta manera?
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, animo 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 prototipo real. Es bastante bueno

Creo que tratar de aprender todo solo resultará en mucha confusión y pérdida de tiempo. En mi humilde opinión, deberías intentar centrar 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, interfaz con otros dispositivos...)

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

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

Solo preste atención a estudiar y comprender lo que está haciendo, en lugar de confiar en esquemas prefabricados y reglas generales genéricas.

Yo 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í

Bueno, como desarrollador de software, se encuentra en una de las dos principales plataformas disponibles.

¿PHP o .NET?

Si usted es .NET, entonces puedo recomendarle .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 muchos otros brebajes de placas de creación de prototipos que ayudarán a desarrollar la familiaridad con 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 C, lo cual es bueno saberlo. .NET, bueno, es bueno permanecer en 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 GRATIS! 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 las capacidades de cada kit de desarrollo.

ingrese la descripción de la imagen aquí

Se basa en chips Atmega, pero utilizan chips de baja velocidad de reloj (8 MHz, 16 MHz), 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 llegue a ese nivel, entonces será bueno pasar a .NET o AVR de 32 bits.

  • AVR32

Estos muchachos pueden manejar LCD, video, servidor web, inalámbrico y un montón de cosas dentro de sí mismos. También comienzan a ir mucho más rápido en la velocidad de procesamiento. Pero antes de comenzar a mirar estos, debe darse cuenta de que hay varios productos que también realizan funciones específicas. Como el sentido del tacto, la comunicación inalámbrica, el consumo ultra bajo, algunos se mezclan y combinan y esto necesita un proceso adecuado de investigación y desarrollo detrás del uso. 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 existe un 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 en el límite y no están claras. Además, aprender las bibliotecas de algunos chips TI es una auténtica pesadilla... Pero es un nicho de mercado y puedes conseguir un buen sueldo aquí...

Hay un montón de devkits por ahí, solo les he contado algo de mi propia experiencia al obtener una certificación .NET. De hecho, comencé con un Arduino Mega256.

Hoy estoy haciendo mis propios PCB tan pequeños como 1,5 cm x 1,5 cm que funcionan con celdas de moneda por hasta 2 años usando los asombrosos SystemOnChips de TI. Pero tomó mucho tiempo y paciencia para llegar allí y todavía siento que no sé nada acerca de los sistemas integrados...

Buena suerte :-)

... ¿está sugiriendo seriamente que todos los desarrolladores de software usen .NET o PHP?
@NickJohnson en su mayoría... Vaya al proveedor de alojamiento web y tiene dos selecciones de tipo de servidor; Windows .NET -O- Linux LAMP con PHP... No soy solo yo... ¿Apuesto a que eres como un Ruby on Rails o C++? Sé que solo estoy haciendo referencia a tecnologías web... pero las aplicaciones son tan antiguas... sigamos.
Era una linda pregunta. Mi principal experiencia profesional se basa en PHP (bien escrito), pero también soy fluido con Java, C & C++, Javascript.
@dukeofgaming, no debería tener problemas para detectar esto desde el lado del código. Hay tantas respuestas aquí que prueban que este tema es masivo. Le insto a que lea algunos libros de electrónica básica, con ejemplos básicos usando temporizadores 555, algunas puertas lógicas y transistores, qué son los diodos y cuándo usar condensadores... Pero lo más importante... ¡Lea y comprenda la Ley de Ohm! Imprime el círculo de ohmios :)
"...las aplicaciones son tan anticuadas..." -- Dígaselo a los cientos de miles de desarrolladores que no son de aplicaciones web. En lugar de "sigamos el ritmo", ¿qué tal "seamos realistas"? Si .NET y PHP fueran las únicas opciones para escribir software, arrojaría mi PC por un puente. Las aplicaciones web no son las únicas aplicaciones.
@ppumkin No hay problema en el lado del código, pero cuando empiezo a ver números hexadecimales y código de ensamblaje, mi mente se vuelve num
@dukeofgaming: muy rara vez tendrá que mirar el código ensamblador. Es por eso que escribimos en C para que se compile en ASM o HEX. Hexadecimal y binario (bits y bytes), solo tienes que aprenderlos. Son simples, simplemente busque fast ways to convert between binary, decimal and hexadaceimalLo hace en su cabeza sin gráficos desordenados y sin escribir en papel.
@ppumkin, sigo pensando firmemente que los usuarios deberían aprender a leer el ensamblaje para ver cuándo está haciendo algo estúpido.

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

También hay un nivel más básico importante de ingeniería eléctrica en el que un EE "verdadero" diseñaría y construiría sensores. El uso de una computadora de una sola placa como Arduino o Netduino y una placa de pruebas en la que conecta varios componentes como resistencias, LED, etc. en la placa de pruebas para construir circuitos estará más cerca de este nivel más básico. En este punto, se enfrentará a preguntas como "¿qué valor de resistencia 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 de Lego, simplemente conectas los componentes y ellos se encargan de hacerlo a prueba de idiotas.

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

Sugeriría centrarse en la diferencia entre el software escrito para PC y el firmware escrito para aplicaciones integradas. Repase C. Con embeddd linux volviéndose tan popular, la diferencia entre un ingeniero de firmware y un desarrollador de software se está reduciendo rápidamente. Dedique algún tiempo a buscar un controlador integrado de código abierto.

Cuestionaría un poco el deseo de volverse más como un EE ya que las dos disciplinas son bastante distintas. Sí, hay un montón de superposición, pero concéntrese en el lado del conductor y no se atasque en los detalles de la electrónica.

¡Él te dice que quiere entrar en la electrónica!
Lo que sugiero es un enfoque del lado del software de arriba hacia abajo, en lugar de comenzar con un esquema y trabajar desde los pines IO. Esto parece razonable ya que interpreto "conjunto de habilidades de ingeniería electrónica a nivel de software" como un enfoque en el desarrollo de firmware.

En primer lugar, está muy bien si no tienes experiencia en electrónica, realmente no vas a diseñar chips, ¿verdad?

pero si va a aprender electrónica, le sugiero que obtenga los conceptos básicos primero, como resistencia, diodos, transistores, etc. es realmente simple, pero le aconsejo que opte por algo que aún no se ha hecho fácil, Arduino es realmente fácil y no representa un gran desafío para su usuario. Comience por los microcontroladores AVR, PIC o 8051, compre un libro y codificación srart comenzando con el programa LED parpadeante (el "Hola mundo" en el departamento de electrónica) y, como verá, en poco tiempo estaría utilizando teclados de matriz y pantallas de siete segmentos para aprender algunos conceptos básicos más, después de eso viene el verdadero trabajo, interconectando sus dispositivos con otros circuitos integrados y redes de sensores, el relacionado con su trabajo.su placa de desarrollo ya tendría algunas de estas características y, si no las tienen, siempre puede comprar escudos o placas de conexión disponibles fácilmente, entonces todo depende de usted...

También le aconsejo 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 programador, esto debería resultarle realmente fácil y siempre haga proyectos de pasatiempo como Robot. y LED matrix entre otros, ¡esto te mantendrá en mente en el tema y no te aburrirás!