¿Para un programador experimentado Arduino o algo más?

11

Mis antecedentes:

He hecho software desde hace bastante tiempo, y soy más o menos competente en C, C ++, Java, Ruby, Erlang, Haskell, Lua y Python. También tomé una clase en electrónica de laboratorio, pero aparte de un breve laboratorio con una bomba, se trataba de ingresar una señal y A / D y de ahí a un x86 con LabView ( no mi elección de entornos de programación) Me gustaría volver a jugar con hardware con miras a la automatización del hogar. (Creo que puedo hacerlo mejor que esto por menos de $ 500)

Pregunta :

Iba a cortarme los dientes con un Arduino, pero cuanto más leo, más siento que la principal ventaja de ese sistema es que es fácil de programar. ¿Es este un buen lugar para que comience un tipo de software (que aún necesita comprar un soldador) o hay algo que me conviene más?

(P.S. Tengo más tiempo que dinero)

    

10 respuestas

4

En cuanto a las placas de evaluación de microcontroladores listas para usar fuera de la puerta, está la familia arduino, por supuesto. pero también considere el launchpad msp430 por $ 4.30. buen conjunto de instrucciones y un rendimiento similar al de avr con una inclinación hacia la baja potencia / costo. Por $ 20 puede obtener el descubrimiento stm32f4 (que no debe confundirse con el descubrimiento de la línea de valor stm32 o la familia stm8), que generalmente es menos de lo que pagaría por un arduino utilizable ($ 35- $ 50) pero corre alrededor del arduino 168Mhz, punto flotante unidad, cachés, etc. En el extremo superior del rango de precios de arduino hay otro brazo, el mbed (mbed.org), que es probablemente el más cercano a la experiencia de la caja de arena de arduino.

Si desea permanecer en un standbox y simplemente hacer llamadas a la API, el arduino es probablemente el lugar donde desea vivir, está el mega para obtener más rendimiento o ir con el maple Leaflabs basado en el brazo pero intenta proporcionar el arenero arduino. experiencia.

Puede obtener mucho más rendimiento, por su dinero, etc. si asume un poco más de responsabilidad y conocimiento sobre lo que está sucediendo. Recomiendo las tres plataformas (avr, msp, arm / thumb) y múltiples proveedores (avr y msp están bloqueados, pero arm se vende por todos con diferentes periféricos y E / S). Por ejemplo, puede estar acostumbrado a una plataforma que no tiene pull ups en las líneas de gpio y tiene que usar componentes externos donde otro chip o proveedor proporciona eso en un chip en un punto de precio / rendimiento comparable. Del mismo modo, es posible que le guste golpear un puerto serial o un bus spi, pero encuentre que por el mismo dinero, potencia, tamaño, etc., otro proveedor tiene hardware para ayudarlo en esa interfaz.

si nada más le conviene a usted como programador y a alguien que quiera entrar en la electrónica de hobby para saber más sobre lo que está sucediendo fuera de la caja de arena. Como una forma de entrar en este mundo de la electrónica de la afición, el arduino es una transición muy cómoda de la programación de aplicaciones en un sistema operativo. sparkfun tiene algunos kits ahora que incluyen la interfaz serial y algunos periperhals hay un kit lilypad (una plataforma arduino) y tal vez un kit profesional, ambos no son el factor de forma del escudo arduino si eso importa. sparkfun vende en caja y muchos otros sabores de arduinos, el uno, etc. (las tablas st y msp mencionadas anteriormente deben comenzar en el sitio web de ti o st o ir a github.com/dwelch67 y tengo enlaces a las diferentes tablas en mi ejemplos).

    
respondido por el old_timer
8

También soy un chico de software por día. Hace unos diez años comencé con los sellos BASIC de Parallax y, después de un largo lapso, recientemente volví a los proyectos integrados. Inicialmente miré el Arduino y sus diferentes partes y me di cuenta de que simplemente podía pasar por alto el precio de la placa Arduino y agarrar algunos ATMega168 y comenzar de nuevo. Esto funcionó en su mayor parte, sin embargo, con frecuencia me topé con problemas en los que tener una placa prefabricada hubiera sido bueno ya que no podría haber arruinado el ensamblaje básico.

Finalmente ordené un Arduino y me encanta todo lo relacionado con la pizarra y las bibliotecas. No soy un fanático del "IDE", así que hago clic en 'Usar Editor Externo' y uso el IDE únicamente para compilar y actualizar el software a la pizarra. Por lo general, comienzo un proyecto o una idea con la placa Arduino y luego la transfiero a un mega chip. Esto ayuda a mantener bajos los costos utilizando solo las partes necesarias para un proyecto, pero aún así me permite crear rápidamente un prototipo.

¡Buena suerte!

    
respondido por el Michael Dillon
6

El Arduino es una excelente introducción a la programación de un microcontrolador.

Hay una gran diferencia entre escribir software para una PC y escribir firmware para un microcontrolador.

El Arduino sería un buen punto de partida para que tu cabeza se interconecte con periféricos, etc., sin tener que atascarse al tratar con ciertas peculiaridades de chips y cosas así.

Pero, como digo, es una introducción.

Comienza con el Arduino y luego pasa a cosas más grandes y mejores.

Utilizo bastante la familia de microcontroladores PIC, pero todavía tengo mi confiable Arduino que uso para probar ideas y probar cosas rápidamente.

    
respondido por el Majenko
6

Dado que “Arduino” comprende varias cosas, creo que puede ser útil verlas por separado:

  • En el lado del hardware, un dispositivo compatible con Arduino es básicamente un microcontrolador ATMega con un cierto cargador de arranque. Por lo general, una placa compatible con Arduino ya preparada también incluirá otros componentes electrónicos de soporte, como una interfaz de puerto serie o USB, un regulador de voltaje, encabezados de pines para un fácil acceso a los pines, etc. Los dispositivos de hardware son bastante asequibles si desea la funcionalidad de USB y Junto con el gestor de arranque preprogramado, le ahorra la necesidad de comprar un programador separado para cargar su software. Entonces, sí, los Arduino (y los clones compatibles) son útiles como dispositivos de hardware mientras se crean prototipos; para la compilación final, es posible que desee construir su propio con solo las partes que necesita, por lo que no necesita poner un Arduino completo en cada proyecto.

  • En el lado del software, la biblioteca Arduino es como cualquier biblioteca de programación y su utilidad depende de sus necesidades. Personalmente lo encuentro ocasionalmente útil para la creación rápida de prototipos (por ejemplo, la funcionalidad del puerto serie), pero como programador experimentado no me gustan muchas de las simplificaciones (especialmente la numeración de pines). En cualquier caso, puede utilizar fácilmente las bibliotecas AVR originales en lugar de, o además de, la biblioteca Arduino, incluso si programa para un dispositivo Arduino y / o utiliza el IDE de Arduino. Por lo tanto, use las bibliotecas de Arduino que le resulten útiles, especialmente cuando haga prototipos, pero aprenda el AVR subyacente a medida que avanza (consulte las fuentes de datos de Arduino y la hoja de datos de ATMega).

  • Finalmente, el IDE de Arduino es el entorno de programación gráfica con un editor simple, una consola de puerto serie, un sistema de compilación similar a "make" (oculto para el usuario) y (un front-end para) herramientas para cargar su software para el dispositivo real. Personalmente odio el IDE y nunca lo uso, prefiero trabajar en la línea de comandos, pero obviamente esto es solo una cuestión de preferencia personal.

respondido por el Arkku
4

Su pregunta es demasiado abierta para una respuesta directa, por lo que todo lo que podemos hacer es mostrarle las concesiones.

El adruino es un microcontrolador recubierto de azúcar para las masas. Está optimizado para hacer las cosas básicas rápidamente, con el mínimo de tener que aprender cosas.

En el corazón de un arduino se encuentra un microcontrolador común, que también puede utilizar directamente. La ventaja es que puede elegir su micro para exactamente lo que quiere hacer, no tiene una idea de lo que debe hacer entre usted y el micro, y puede hacer lo que sea capaz de hacer con el micro desnudo, que es una Mucho más de lo que surgió a través de la abstracción arduino. El inconveniente es que realmente tendrás que aprender algo, leer unas pocas páginas de la hoja de datos es solo el comienzo y no vas a obtener una gratificación instantánea.

Solo tú puedes decir lo que es mejor para ti. ¿Quieres abrazar a tu imbécil interior y ser guiado felizmente por el jardín para siempre relegado a decir "¿eh?", "¿Qué?" Y "¡Oh, eso es tan lindo!" a cosas electronicas? ¿O preferirías recorrer el largo camino oscuro para emerger con un solo LED parpadeante después de mucho esfuerzo y problemas? ¿Solo quieres conducir el auto o aprender cómo funciona el motor para poder obtener el máximo rendimiento y modificarlo tú mismo?

    
respondido por el Olin Lathrop
4

Como programador, prefiero la programación en un lenguaje que es usado por muchas otras personas, de esa manera hay muchos libros, artículos, compañeros, etc. disponibles para ayudarme a aprender.

En el mundo de las computadoras de una sola placa, Arduino es indiscutiblemente el más popular con el mayor aliento de apoyo. Es una excelente opción para su primer microordenador.

Teniendo en cuenta lo baratas que son estas cosas (la mayoría son menos de $ 50), es posible que desee considerar obtener más de un tipo.

Para alguien familiarizado con Microsoft Visual Studio y C #, Netduino es una excelente opción ya que tiene una cadena de herramientas que ya sabrá.

Si su entorno preferido es Unix, es posible que le guste una placa como la Raspberry Pi que saldrá en enero de 2012:

  

¿Qué es una Raspberry Pi? La Raspberry Pi es una tarjeta de crédito del tamaño de   Computadora que se conecta a su televisor y un teclado. Es un poco capaz   PC que puede usarse para muchas de las cosas que hace su PC de escritorio, como   Hojas de cálculo, procesamiento de textos y juegos. También juega en alta definición.   vídeo. Queremos que sea usado por niños de todo el mundo para   aprender programación.

     

¿Cuándo estará disponible el dispositivo para comprarlo? Esperábamos tener   la Raspberry Pi disponible para pedido a finales de 2011. Todavía   espera subastar algunos de nuestros primeros lotes de placas beta antes   el final del año (vigile el sitio después de Navidad); bien   Se trasladará a la producción principal en enero.

     

¿Cuánto costará? El Modelo A costará $ 25 y el Modelo B $ 35.

La noticia realmente buena es que hay muchos microcontroladores de bajo costo disponibles con más novedades todo el tiempo.

Finalmente está el Launchpad MSP-430 de Texas Instruments que está disponible por $ 4.30 con envío gratuito. A un precio tan barato, ¿cómo no comprar uno?

    
respondido por el JonnyBoats
4

Comience con Arduino para concretar su idea y haga un prototipo de trabajo mínimo y aprenda a interactuar con los conceptos básicos que necesitará para su producto (motores, sensores, serie para la comunicación).

Más adelante, a medida que desee una mayor funcionalidad (dispositivos USB, Ethernet), cambie a los chips ARM Cortex serie M. ARM de 32 bits significa que son muy potentes y ahora a menudo más baratos y con más periféricos que los chips de 8 o 16 bits de gama alta, como los AVR y los PIC. Mbed de NXP (http://mbed.org) es una introducción muy suave a esa plataforma si viene de Arduino.

    
respondido por el nemik
2

Cuando la gente dice que Arduino es "fácil de programar", lo que realmente quieren decir es que la cadena de herramientas básicamente funciona. Funciona en una Mac, funciona en Windows y funciona en Linux. Conectas tu tablero, escribes tu código, lo subes y se va.

Para ofrecer un poco de contraste anecdótico, yo mismo me "actualicé" a la STK600 de Atmel y su entorno de desarrollo AVR Studio 5. Solo funciona en Windows, así que tuve que instalar VMware y ejecutarlo en mi Mac. Luego tuve que instalar el delicado controlador USB de Jengo, que me llevó un día leer los mensajes del foro. Luego tuve que averiguar por qué podía hablar con el panel de desarrollo del IDE, pero no con la tarjeta secundaria ATmega2560 que venía con el STK600 ... (El cable JTAG estaba mal conectado, porque seguí un tutorial ilustrado en el Web que resultó tener una imagen que muestra el cable conectado al revés.)

Hasta ahora no he escrito una línea de código con AVR Studio 5, pero es probable que haya pasado más tiempo jugando con él que con el IDE de Arduino. Y he escrito docenas de bocetos de Arduino.

El lenguaje en el que estás programando es básicamente C ++ con un poco de preprocesamiento. Con sus antecedentes, no tendrá ningún problema en descubrir cómo trasplantar los bocetos que desee a un entorno "pro" más adelante, si fuera necesario. Para mí, la necesidad surgió solo una vez que fui más allá de probar el hardware Arduino y comencé a diseñar mi propia placa. YMMV, por supuesto ...

Espero que esto ayude. :-)

    
respondido por el Kaelin Colclasure
1

El Arduino hace una plataforma flexible de bajada que proporciona A / D, D / A (al menos como PWM) gran cantidad de E / S digitales, un LED programable en la placa, serial a USB y listo para usar Módulos disponibles para muchos otros tipos de hardware. Si desea obtener su propia experiencia de aprendizaje, entonces no la necesita. Si desea que una plataforma funcione correctamente solo por diversión o mientras diseña la versión de hardware de bajo costo de ese algo, entonces está lista para usar cuando se encuentre. Estas son decisiones de diseño, estratégicas y económicas que son perfectamente válidas para hacer de la manera que mejor se adapte a sus objetivos. No hay nada "tonto" en hacer concesiones, eso es lo que hacen los ingenieros, y se supone que deben hacer, todos los días.

    
respondido por el JRobert
1

La experiencia de John coincide casi exactamente con la mía hace 15 años cuando me retiré de la enseñanza de Ciencias de la computación (básicamente programación en lenguaje ensamblador y C) a estudiantes universitarios. Entonces me di cuenta de que seguir con los avances en computación sería prohibitivamente costoso, por lo que mi esposa sugirió volver a Electrónica como pasatiempo, ya que en la década de 1950 había disfrutado de ser Ingeniero Eléctrico. Esto lo hice, aunque solo había conocido transistores brevemente, y nunca había visto un amplificador operacional, así que tenía mucho aprendizaje encantador que hacer. Conservé mi amor por el lenguaje ensamblador, y cuando apareció Microchip Pics a mediados de los 90, me enganché a ellos.

No puedo compararlos con Arduino, del cual no sé nada, pero una ventaja de usar Pics es que su configuración es barata, ya que Microchip proporciona toda la información gratis, con un IDE brillante, y puedes aprender Para usarlos, como yo lo hice, a partir de lo que publican. Puedes comenzar con un programador hecho en casa, con muchos diseños en Internet, por lo que solo costaría unas cuantas libras para que empieces con unos chips de Pic. Pero recomendaría el PicKit 2, que tiene muchas características integradas para facilitar el desarrollo del programa. Tal vez no PicKit 3, sin embargo, ver:

enlace Aunque esto se ha actualizado, consulte Las notas sobre esta referencia.

Hay una gran cantidad de libros en imágenes, pero algunos son basura, ten cuidado. Para un comienzo fácil, una excelente introducción a Pic es:

"Diseño de sistemas integrados con microcontroladores PIC: Principios y aplicaciones" [Libro en rústica] por Tim Wilmshurst, £ 22-66 en Amazon, que incluye tanto a Ensamblador como a C. Evité C por un tiempo porque parecía quitarle la intimidad con el hardware que proporciona Assembler, pero con el compilador C provisto por Microchip también puede ver el código de ensamblador que también se genera.

Para una cobertura general, buena, técnica (sin miedo de incluir a Maths) en electrónica moderna, recomiendo: "Práctica electrónica para inventores" 2 / E [Libro en rústica] por Paul Scherz, £ 19-95 en Amazon.

Pagué £ 26-99 y £ 22-99 respectivamente por estos libros en tiendas, y no me arrepiento en absoluto.

No puedo cubrir lo suficiente aquí, me complacería enviarle un correo electrónico sobre este tema: [email protected] (y, por si acaso, desconfío de lo que leo o descargo o respondo).

    
respondido por el Harry Weston

Lea otras preguntas en las etiquetas