Alternativa más pequeña y económica a Arduino Uno para proyectos permanentes

15

He jugado un poco con un Arduino Uno que viene en un kit con una placa de pruebas y componentes. Pronto me gustaría hacer algunas cosas más permanentes.

Preferiría una unidad más pequeña y más barata que el Arduino Uno, pero es casi tan fácil de usar como el Arduino Uno, y muy similar.

¿El Arduino Pro Mini 328 - 5V / 16MHz es el siguiente paso lógico? Con 1/6 del tamaño del Arduino Uno, es bastante pequeño. A 10 $ por pieza, el precio también es bueno.

Entiendo que debo soldar para que funcione. Eso no debería ser un problema.

¿Necesitaré también una placa serial USB para programar la unidad?

Andy
fuente
2
el siguiente más pequeño con 328p es Nano
Juraj
1
Los chips ATmega32u4 también son un buen movimiento (igual que Leonardo) para micro de 8 bits. La codificación es ligeramente diferente de UNO / 328p (especialmente con serie), pero evita el convertidor USB / serie. Eventualmente, puede hacer sus propios PCB y usar los chips SMD, para un proyecto realmente compacto.
MichaelT
1
Pro Mini, módulo de 5V 16MHz con oscilador de cristal ($ 2.18CDN): aliexpress.com/item/… . Adaptador USB a UART PL2303HX ($ 0.70CDN): aliexpress.com/item/… .
VE7JRO

Respuestas:

8

Creo que la primera mejor opción es eliminar el chip ATMega328p-pu de su Arduino UNO e incorporarlo a su circuito final. Las fichas cuestan solo alrededor de $ 1.50.

De esa manera, puede usar su UNO como programador en lugar del dispositivo final que implementa.

No estoy seguro de por qué no hay más documentación sobre la forma correcta de eliminar el chip ATMega328p-pu y usarlo en su placa de pruebas, después de completar su programación.

Explico exactamente cómo hacer esto en mi blog: http://raddev.us/arduino/post/2018/07/03/arduino-uno-using-your-atmega328p-u-as-stand-alone

Pero, aquí están los conceptos básicos. Primero quitas el chip. Se verá así después de hacerlo. (Nota: estoy usando el clon Elegoo de un UNO).

chip atmega328p-pu eliminado

Luego, aplica energía al pin 7 y conecta el pin 8 a GND.

Necesita un cristal de 16MHz

Pero, el chip no parece ejecutar su boceto en este momento. Eso es porque realmente necesitas un cristal para funcionar a 16MHz.

La placa UNO tiene ese chip instalado y es por eso que funciona. Puedes verlo aqui:

Cristal de 16MHz en UNO

Finalmente, agrega el cristal de 16MHz y un par de tapas de 22pF y su chip se ejecutará de forma independiente (sin UNO).

Agregue el cristal a los pines 9 y 10. Puede ver todos los detalles leyendo mi entrada de blog o leyendo la hoja de datos atmega328 .

cristal en tablero

Finalmente, solo conecte todo lo demás

Después de eso, simplemente conecte el resto de su circuito a los pines adecuados y podrá ejecutar su ATMega328p-pu de forma independiente.

En realidad, también es una buena experiencia de aprendizaje.
Simplemente compre chips atmega328p-pu de repuesto para su UNO y podrá crear todos los proyectos que desee a un precio muy bajo.

raddevus
fuente
2
Sería bueno agregar un poco de protección de circuito allí, ya que el 328p no tiene nada propio. De lo contrario, esta es una excelente manera de hacerlo.
SnakeDoc
1
@duskwuff, creo que es solo cuando estás haciendo DAC. Este es solo un ejemplo simple para ayudar a alguien a comenzar a usar el chip de forma independiente. Le aseguro que se ejecuta el código para parpadear el LED en la muestra. Además, cuando comencé, creé el circuito que mencioné en un comentario anterior y nunca conecté AVCC y GND y el circuito funcionó durante dos años. Por supuesto, no digo que eso siempre sea cierto. Solo menciono la forma en que funciona el chip. Como siempre, revise la hoja de datos para conocer las especificaciones exactas y especialmente si experimenta algo diferente. Gracias.
raddevus
1
@raddevus Consulte la Tabla 28.8 en la hoja de datos: "AVCC min / max absoluto: 1.8V / 5.5V". Dejar AVCC sin alimentación está fuera de especificaciones y puede causar daños. El pin GND en el pin 22 no está específicamente asociado con el ADC, y debe estar conectado a GND.
duskwuff -inactive-
1
@duskwuff Gracias por la discusión esclarecedora. Estoy de acuerdo con lo que estás diciendo y cambiaré mis documentos y circuitos pronto para asegurarme de que siempre esté conectado. FYI: comencé a trabajar con ATMega328p-pu a través del fantástico libro AVR Programming: Learning to Write Software For Hardware ( amzn.to/2PS9OOA ) y en esos primeros circuitos el autor, Elliott Williams, tampoco conecta esos pines. Creo que fui influenciado por eso. Sin embargo, el libro es realmente genial y el autor está bien informado. Gracias de nuevo, gran discusión.
raddevus
1
@reddevus. Para ser más precisos, el cristal que indicó en el cuadro rojo en esta respuesta es el cristal utilizado por el microcontrolador que maneja la comunicación USB, y no por el chip ATmega328p-pu. Puede ver en los esquemas de Uno que el chip ATmega328p-pu realmente usa un resonador: mouser.com/ProductDetail/Murata-Electronics/…
Kavka
7

Verifique la placa de desarrollo STM32F103C8T6, cuesta alrededor de $ 1.5 y es más rápido / tiene más memoria que el Arduino Uno y es mucho más pequeño.

Puede funcionar con el IDE de Arduino, pero no todas las bibliotecas son compatibles, por lo tanto, compruebe antes de que quiera usarlo si sus bibliotecas usadas son compatibles o si hay diferentes bibliotecas que puede usar en su lugar.

Actualizar

Diferencias:

                       Arduino Uno       STM32F103C8T6 Mini Dev Board

MicroController            Atmega328P           Cortex M3
MIPS/MHz                        1                   1.25
Operating Voltage [V]           5                   3.3, most pins 5V tolerant
Input Voltage   [V]            7-12               USB only
Input Voltage (limit) [V]      6-20                (USB)
Digital I/O Pins               16                   37
From them:PWM Digital I/O Pins  6                   12
Analog Input Pins               6                   10
DC Current per I/O Pin [mA]    20                    ?
DC Current for 3.3V Pin [mA]   50                    ?
Flash [KB}                     32                   64
SRAM [KB]                       2                   20
EEPROM [KB]                     1                    -
Clock Speed [MHz]              16                   72

I2C                             1                    2
SPI                             1                    2 (18 MBit/s)
UART                            1                    3
CAN                             0                    1
USB                             0          USB 2.0 FS 12 MBit        
DMA                             0          7 channels (ATsP, SPI, I2C, USART)
RTC                             0                    1
CRC                             0                    1
Unique ID                       0                    1

Programmed by                  USB                 SWD Debug (around $5)

IDE                         Arduino IDE         Arduino IDE, CubeMX, ...
Libraries                      Many               Limited

Dimensions  [mm]            68.6 x 53.4           53 x 22
Weight       [g]               25                    ?
Price (cheapest)  [$]         2.50                 1.50

Nota: como se escribió anteriormente, a pesar de las especificaciones en su mayoría mejores, no todas las bibliotecas son compatibles. También se debe comprar un programador (solo una vez, cuesta alrededor de $ 5).

Michel Keijzers
fuente
1
También puede evitar obtener el programador si obtiene los clones de Maple Mini (mismo uC, casi el mismo HW, pero con un gestor de arranque ya flasheado)
frarugi87
1
@ frarugi87 O puede usar el cargador de arranque UART incorporado (activado configurando BOOT0 alto) para la programación inicial.
duskwuff -inactive-
El STM32F103C8T6 es una gran parte. Pero todavía es solo 3.3v. No es una caída en el reemplazo del Uno. Intente conectarlo a una pantalla LCD de 5v de caracteres y tendrá problemas, si es que funciona. (la pantalla LCD)
Rudy
6

Para mi producto, pasé de un Arduino Uno :

Arduino Uno R3

al Arduino Pro Mini :

Arduino Pro Mini

Sí, necesitará un cable FTDI para la programación y comunicaciones en serie a la PC, pero siempre que no necesite comunicaciones todo el tiempo, solo necesitará un cable para cargar el programa en cada dispositivo. También se pueden encontrar bastante baratos.

Sin embargo, noto que el Arduino Pro Mini está retirado ahora, por lo que puede ser un poco más difícil de obtener ( todavía está disponible en AliExpress ). Entonces, por esta razón, le sugiero que pruebe el Arduino Nano :

Arduino Nano

que tiene la ventaja adicional de USB a bordo, lo que significa que ya no necesita el cable FTDI para programación o comunicaciones.

El ATMega328P que es el procesador de estas 3 placas no tiene USB nativo, lo que significa que la placa también debe incluir el FTDI FT232RL IC que se usa en el cable FTDI. Tener este IC puede agregar costos adicionales a su balance final.

Por unos pocos dólares más baratos por dispositivo, puede usar un microcontrolador (como el ATMega32U4) que tiene comunicaciones USB nativas (y, por lo tanto, ahorra en el IC FTDI). Uno de esos productos es el Arduino Micro :

Arduino Micro

Todas estas placas mencionadas son nativas dentro del ecosistema Arduino y (aparte del Pro Mini retirado) deberían ser fáciles de encontrar en línea o en su tienda de electrónica local. Su programa Arduino Uno funcionará para todas estas alternativas: solo tiene que cambiar la placa en el IDE de Arduino:

Selección de placa Arduino

Hay una placa más que me gustaría mencionar: el DigiSpark :

Digispark

Solo es adecuado para programas más pequeños, está limitado en algunas de sus características y no es una placa oficial de Arduino. Dicho esto, hay mucho soporte de Arduino , ¡y es barato!

sa_leinad
fuente
4

Si quieres seguir usando Arduino y su cadena de herramientas, puedes pedir solo un ATmega 328p (el microcontrolador en el corazón del Arduino Uno) y usarlo solo.

Tienen un costo bastante bajo (rango de $ 1.50- $ 3.00) y son compatibles con la placa de pruebas. Para una solución más permanente, puede soldarlos en una placa de prototipo (perfboard), o incluso en una placa de circuito diseñada una vez que su diseño llegue a ese nivel.

Aquí hay una excelente guía de la gente de Arduino sobre cómo configurar un Arduino en una placa de prueba, utilizando solo componentes sin procesar como el ATmega 328p. Este diseño utiliza un cristal de reloj externo de 16MHz, como un Arduino Uno.

Si está de acuerdo con usar el reloj interno de 8MHz a bordo del 328p, puede eliminar la mayoría de los componentes adicionales y simplemente ejecutar el chip sin procesar como en esta guía (usando el cargador de arranque Arduino Lilypad en lugar del cargador de arranque Arduino predeterminado). ¡Esto ahorrará aún más dinero!

De cualquier manera, necesitará una unidad AVR Programmer, ya que no hay un puerto USB integrado en el 328p. Esta será la parte más costosa de esta configuración, pero una buena noticia es que solo necesita una, y puede programar cualquier 328p que necesite. También se pueden usar para programar chips no estándar que pueden programarse a través de pines Serial Tx / Rx, como los chips ESP (simplemente los conecta a mano). Es muy útil tener uno de estos si te tomas en serio este tipo de microcontroladores.

Chip Microcontrolador ATmega 328p

Etiquetas engomadas del Pin ATMega

Perfboard

Programador AVR

SnakeDoc
fuente
1
Si ordena su ATMEGA328P-PU con el cargador de arranque ya instalado: ebay.ca/itm/… , entonces un adaptador PL2303HX USB a UART ($ 0.70CDN) funcionará para cargar el "código": aliexpress.com/item/…
VE7JRO
Siempre me pareció extraño que Arduino use un cargador de arranque especial para la programación en lugar de usar la interfaz de programación incorporada.
user253751
@immibis no está seguro de lo que quiere decir exactamente, pero los cargadores de arranque arduino hacen muchas cosas que hacen que trabajar con los arduino's (y los chips Atmel) sea mucho más fácil, incluido el restablecimiento de pines, el cambio a reloj externo, la entrega de su código, Sin él, esencialmente necesitarías escribir el tuyo ... lo cual sería una pérdida de tiempo ya que, en la mayoría de los casos, el cargador de arranque Arduino original hace todo lo que quieres de todos modos.
SnakeDoc
1
@immibis Creo que es mucho más fácil tener una interfaz de puerto serie que una interfaz de programador desde la PC. Además, especialmente al principio, creo (opinión personal) que querían un sistema completo en una placa, e integrar un programador en la PCB fue mucho más difícil que escribir un cargador de arranque en serie. Tengamos en cuenta que las primeras placas Arduino tenían un puerto serie ( Arduino RS232 ), por lo que se necesitaba sólo un programador para programar una gran cantidad de ellos (que se utilizaron en la escuela)
frarugi87
1
@ frarugi87 probablemente sea cierto, pero para los principiantes reales, enchufar un cable USB y usar el IDE Arduino para cargar "bocetos" es lo más fácil posible. Creo que hicieron el movimiento correcto para hacerlo súper accesible, especialmente para aquellos que no tienen experiencia en microcontroladores.
SnakeDoc
4

Me gusta el Nano y el Pro Mini. Me gusta trabajar con él en una placa con otros módulos. Si hay más circuitos involucrados, lo encuentro mucho más conveniente que usar uno. Hay procesadores más rápidos, pero para muchos proyectos el 16Mhz 328 es más que suficiente. Y como el Uno, estos dos son piezas de 5 voltios. A veces, lo que necesita para conectarse no funciona bien con procesadores de 3.3 voltios.

El Pro Mini y el Nano se pueden soldar fácilmente en un "Veroboard" de 0.1 "espaciado (o equivalente) Si no le importa comprar piezas clonadas, el costo de un Nano y Pro Mini es solo un par de dólares. Comprar piezas de Aliexpress , o incluso Ebay, pueden ahorrarle mucho, siempre y cuando sea paciente en lo que respecta a la entrega.

El módulo que ahora uso con más frecuencia es el ESP8266. Es una poderosa plataforma WiFi que solo cuesta unos pocos dólares y tiene un marco Arduino bastante maduro. A menudo uso esto como el único procesador en el diseño. Incluso lo he usado como base para un registrador de datos e ignoré por completo la capacidad WiFi. LCD de 20x4 caracteres, chip de medición de corriente / voltaje (INA219) y una tarjeta de memoria SD, alimentada por una batería de litio 18650.

Hay muchas opciones buenas y económicas.

Rudy
fuente
3
es posible que desee señalar que los módulos ESP12 NO tienen un espaciado de clavijas de .1 ", lo cual es un poco molesto. Hay tableros desmontables de bajo costo, pero estos son bastante anchos y difíciles de usar con paneles sin soldadura. Aparte de eso, eres bastante útil. Por aproximadamente $ 1 más que un módulo ESP12 simple, puedes obtener un Wemos D1 mini (clon) que es tan fácil de usar como un Arduino Pro Mini o Nano.
Llaves
¿Dónde dije que usara el ESP-12? No entré en muchos detalles sobre el ESP8266 porque ese no era realmente el foco de la pregunta. Pensé que valía la pena mencionarlo ya que muchas personas no están familiarizadas con él. Apoyo totalmente a las personas que usan la mini plataforma Wemos D1. Es una solución lista para usar a diferencia de ESP01, ESP12, etc. USB a serie y un regulador integrado hace una gran diferencia. Pero sigo sintiendo que el Nano o el Pro Mini es la respuesta más adecuada para la persona que hizo la pregunta.
Rudy
Es difícil considerar cualquier sistema basado en atmega en 2019 en comparación con los sistemas ESP, por lo que puede mencionar que por $ 2 con un ESP8266 obtendrá un procesador de 40MHZ, una placa de desarrollo completa (no un chip), wifi y programación basada en USB y Monitoreo sin cables adicionales. Y también mencione los sistemas ESP32, que son más caros de $ 7 a $ 10, pero contienen dos CPU, un RTOS completo, múltiples MB de flash, agrega BT a WIFI y soporte USB nativo. Se incluye compatibilidad con Arduino, e incluso ejecutando el RTOS proporcionado, incluyen bibliotecas Arduino.
Brian Bulkowski,
El ESP8266 tiene un procesador de 160MHz. Es una gran opción pero tiene limitaciones. Solo tiene un convertidor A / D y uno malo. Los pines digitales IO también tienen peculiaridades. Las resistencias pull up están activadas de forma predeterminada al encender la mayoría. Tres pines IO establecen el modo de funcionamiento y se debe tener especial cuidado. El ESP8266 también necesita una fuente de alimentación decente. Con el ESP8266 hay mucho código ejecutándose en segundo plano y su código debe coexistir con él. Realmente me gusta el ESP9266, pero no es un gran microcontrolador de uso general. El ESP32 es mejor pero también con problemas.
Rudy
2

Los clones Arduino Pro Micro son súper baratos y todo lo que necesita para programarlos es un cable micro USB normal. Probablemente tendrá que soldar los encabezados para hacer algo útil. Están disponibles en versiones de 3.3V / 8MHz y 5V / 16Mhz.

Pro Micro

AndreKR
fuente
ProMicro tiene un procesador de 3.3v. Eso puede ser un problema con algunos diseños. No es una caída en el reemplazo de uno. Pero es una parte interesante.
Rudy
1
No, al igual que con el Pro Mini hay una versión de 5V / 16MHz y una de 3.3V / 8MHz.
AndreKR
Lo siento, mi error.
Rudy