Alternativa più piccola ed economica ad Arduino Uno per progetti permanenti


15

Ho giocato un po 'con un Arduino Uno che è arrivato in un kit con una breadboard e componenti. Presto vorrei fare alcune cose più permanenti.

Preferirei un'unità più piccola ed economica dell'Arduino Uno ma che è quasi facile da usare come l'Arduino Uno e molto simile da usare.

Arduino Pro Mini 328 - 5V / 16MHz è un passo logico successivo? A 1/6 delle dimensioni dell'Arduino Uno è molto piccolo. A 10 $ al pezzo anche il prezzo è buono.

Capisco che devo saldare per farlo funzionare. Questo non dovrebbe essere un problema.

Avrò bisogno anche di una scheda seriale USB per programmare l'unità?


2
il prossimo più piccolo con 328p è Nano
Juraj l'

1
I chip ATmega32u4 sono anche una buona mossa (come Leonardo) per i micro a 8 bit. La codifica è leggermente diversa da UNO / 328p (specialmente con seriale), ma si evita il convertitore USB / seriale. Alla fine, puoi creare i tuoi PCB e utilizzare i chip SMD, per un progetto davvero compatto.
MichaelT

1
Pro Mini, modulo 5V 16MHz con oscillatore a cristallo ($ 2,18CDN): aliexpress.com/item/… . PL2303HX Adattatore da USB a UART ($ 0,70 CDN): aliexpress.com/item/… .
VE7JRO

Risposte:


8

Penso che la prima scelta migliore sia quella di rimuovere il chip ATMega328p-pu dal tuo Arduino UNO e incorporarlo nel tuo circuito finale. Le chips sono solo circa $ 1,50.

In questo modo, puoi semplicemente utilizzare UNO come programmatore anziché come dispositivo finale da distribuire.

Non sono sicuro del perché non ci sia più documentazione sul modo corretto di rimuovere il chip ATMega328p-pu e di usarlo sulla breadboard, dopo aver completato la programmazione.

Spiego esattamente come farlo sul mio blog: http://raddev.us/arduino/post/2018/07/03/arduino-uno-using-your-atmega328p-u-as-stand-alone

Ma ecco le basi. Per prima cosa rimuovi il chip. Apparirà come segue dopo averlo fatto. (Nota: sto usando il clone Elegoo di un UNO).

chip atmega328p-pu rimosso

Successivamente, si applica l'alimentazione al pin 7 e si collega il pin 8 a GND.

Hai bisogno di un cristallo da 16 MHz

Ma a questo punto il chip non sembra eseguire il tuo schizzo. Questo perché in realtà hai bisogno di un cristallo per funzionare a 16MHz.

La scheda UNO ha quel chip installato ed è per questo che funziona. Potete vederlo qui:

Cristallo 16MHz su UNO

Alla fine aggiungi il cristallo da 16MHz e un paio di tappi da 22pF e il tuo chip funzionerà da solo (no UNO).

Aggiungete il cristallo ai pin 9 e 10. Potete vedere tutti i dettagli leggendo il mio blog o leggendo la scheda tecnica atmega328 .

cristallo su tagliere

Infine, basta collegare tutto il resto

Dopodiché, collega il resto del circuito ai pin corretti e puoi far funzionare ATMega328p-pu da solo.

In realtà è anche una bella esperienza di apprendimento.
Basta acquistare i chip atmega328p-pu sostitutivi per la tua UNO e puoi creare tutti i progetti che desideri a prezzi molto convenienti.


2
Saresti ben servito per aggiungere un po 'di protezione del circuito, dal momento che il 328p non ha nulla di proprio. Altrimenti, questo è un ottimo modo per andare.
SnakeDoc,

1
@duskwuff, credo che sia solo quando fai DAC. Questo è solo un semplice esempio per iniziare qualcuno nella direzione dell'utilizzo del chip come standalone. Vi assicuro che il codice per far lampeggiare il LED nell'esempio viene eseguito. Inoltre, quando stavo iniziando ho creato il circuito che ho citato in un commento sopra e non ho mai collegato AVCC e GND e il circuito ha funzionato per due anni. Certo, non sto dicendo che sarà sempre vero. Solo menzionando il modo in cui il chip funziona davvero. Come sempre, controlla la scheda tecnica per le specifiche esatte e soprattutto se riscontri qualcosa di diverso. Grazie.
Raddevus,

1
@raddevus Consultare la tabella 28.8 nel foglio dati: "AVCC assoluto min / max: 1,8 V / 5,5 V". Lasciare AVCC non alimentato non è conforme alle specifiche e può causare danni. Il pin GND sul pin 22 non è specificamente associato all'ADC e deve essere collegato a GND.
duskwuff -inattivo-

1
@duskwuff Grazie per la discussione illuminante. Sono d'accordo con quello che stai dicendo e presto cambierò i miei documenti e circuiti per assicurarmi che sia sempre connesso. Cordiali saluti - Ho iniziato a lavorare con ATMega328p-pu tramite il fantastico libro AVR Programming: Imparare a scrivere software per hardware ( amzn.to/2PS9OOA ) e in quei primi circuiti l'autore, Elliott Williams, non ha nemmeno collegato quei pin. Penso di esserne stato influenzato. Il libro è davvero fantastico e l'autore è ben informato. Grazie ancora, ottima discussione.
Raddevus,

1
@reddevus. Per essere più precisi, il cristallo che hai indicato nella casella rossa in questa risposta è il cristallo usato dal microcontrollore che gestisce la comunicazione USB e non dal chip ATmega328p-pu. Dagli
Kavka

7

Controlla la scheda di sviluppo STM32F103C8T6, costa circa $ 1,5, è più veloce / ha più memoria dell'Arduino Uno ed è molto più piccola.

Può funzionare con l'IDE di Arduino, ma non tutte le librerie sono supportate, quindi controlla prima di utilizzarlo se sono supportate le librerie utilizzate o se sono disponibili librerie diverse.

Aggiornare

differenze:

                       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: come scritto in precedenza, nonostante le specifiche per lo più migliori, non tutte le librerie sono supportate. Anche un programmatore deve essere acquistato (solo una volta, costa circa $ 5).


1
Puoi anche evitare di ottenere il programmatore se ottieni i cloni di Maple Mini (stesso uC, quasi lo stesso HW, ma con un bootloader già lampeggiato)
frarugi87

1
@ frarugi87 Oppure puoi usare il bootloader UART integrato (attivato impostando BOOT0 alto) per la programmazione iniziale.
duskwuff -inattivo-

STM32F103C8T6 è un'ottima parte. Ma è ancora solo 3.3v. Non è un calo in sostituzione di Uno. Prova a collegarlo a un LCD a 5 v caratteri e avrai problemi, se funziona affatto. (LCD)
Rudy,

6

Per il mio prodotto, sono passato da un Arduino Uno :

Arduino Uno R3

ad Arduino Pro Mini :

Arduino Pro Mini

Sì, avrai bisogno di un cavo FTDI per la programmazione e le comunicazioni seriali sul PC, ma a condizione che non ti servano sempre le comunicazioni, avrai solo bisogno di un solo cavo per caricare il programma su ciascun dispositivo. Possono anche essere trovati abbastanza economici.

Tuttavia noto che Arduino Pro Mini è ritirato ora, quindi potrebbe essere un po 'più difficile da procurarsi (è ancora disponibile su AliExpress ). Quindi, per questo motivo, ti suggerisco di provare invece l' Arduino Nano :

Arduino Nano

che ha l'ulteriore vantaggio della USB integrata, il che significa che non è più necessario il cavo FTDI per la programmazione o la comunicazione.

L'ATMega328P che è il processore di queste 3 schede non ha USB nativo, il che significa che la scheda deve anche includere l' IC FTDI FT232RL che viene utilizzato nel cavo FTDI. Avere questo IC può aggiungere costi aggiuntivi ai tuoi profitti.

Per pochi dollari in meno per dispositivo, puoi utilizzare un microcontrollore (come ATMega32U4) che ha com USB nativi (e quindi risparmi sull'IC FTDI). Uno di questi prodotti è Arduino Micro :

Arduino Micro

Tutte queste schede menzionate sono native dell'ecosistema Arduino e (a parte la Pro Mini ritirata) dovrebbero essere facili da reperire online o presso il tuo negozio di elettronica locale. Il tuo programma Arduino Uno funzionerà per tutte queste alternative - devi solo cambiare la scheda nell'IDE di Arduino:

Selezione della scheda Arduino

C'è un'altra scheda che vorrei menzionare: il DigiSpark :

Digispark

È adatto solo per programmi più piccoli, è limitato in alcune delle sue funzionalità e non è una scheda Arduino ufficiale. Detto questo, c'è un sacco di supporto per Arduino - ed è economico!


4

Se vuoi continuare a utilizzare Arduino e la sua toolchain, puoi ordinare solo un ATmega 328p nudo (il microcontrollore nel cuore di Arduino Uno) e usarlo da solo!

Sono abbastanza economici ($ 1,50- $ 3,00 di gamma) e sono facili da usare. Per una soluzione più permanente, puoi saldarli in una proto-board (perfboard) o persino in un circuito progettato su misura una volta che il tuo progetto è arrivato a quel livello.

Ecco un'eccellente guida della gente di Arduino sulla configurazione di un Arduino su una breadboard, usando solo componenti grezzi come ATmega 328p. Questo design utilizza un cristallo esterno da 16 MHz, proprio come un Arduino Uno.

Se stai bene usando l'orologio interno da 8 MHz a bordo del 328p, puoi eliminare la maggior parte dei componenti extra ed eseguire il chip raw come in questa guida (usando il Arloadino Lilypad Bootloader invece del predefinito Arduino bootloader). Ciò farà risparmiare ancora più denaro!

Ad ogni modo, avrai bisogno di un'unità programmatore AVR, poiché non c'è una porta USB incorporata nel 328p. Questa sarà la parte più costosa di questa configurazione, ma la buona notizia è che ne hai solo bisogno e può programmare qualsiasi 328p di cui hai bisogno. Possono anche essere utilizzati per programmare chip non standard che possono essere programmati su pin Serial Tx / Rx, come i chip ESP (li si collega semplicemente a mano). Molto utile avere uno di questi se si prende sul serio questi tipi di microcontrollori.

Chip microcontrollore ATmega 328p

Adesivi automatici ATMega

perfboard

Programmatore AVR


1
Se ordini ATMEGA328P-PU con il caricatore di avvio già installato: ebay.ca/itm/… , un adattatore da USB a UART PL2303HX ($ 0,70CDN) funzionerà per caricare il "codice": aliexpress.com/item/…
VE7JRO

Ho sempre trovato strano che Arduino utilizzi un bootloader speciale per la programmazione invece di utilizzare l'interfaccia di programmazione integrata.
user253751

@immibis non è sicuro di cosa significhi esattamente, ma i bootloader di Arduino fanno molte cose che rendono molto più facile lavorare con i chip di Arduino (e Atmel), incluso il ripristino dei pin, il passaggio all'orologio esterno, la consegna del codice, ecc. Senza di esso, dovresti essenzialmente scrivere il tuo ... il che sarebbe una perdita di tempo poiché, nella maggior parte dei casi, il bootloader Arduino di serie fa comunque tutto ciò che desideri.
SnakeDoc,

1
@immibis Penso che sia molto più semplice avere un'interfaccia porta seriale piuttosto che un'interfaccia programmatore dal PC. Inoltre, soprattutto all'inizio, penso (opinione personale) che volessero un sistema completo su una scheda, e l'integrazione di un programmatore sul PCB era molto più difficile che scrivere un bootloader seriale. Considera che le prime schede arduino avevano una porta seriale ( Arduino RS232 ), quindi era necessario un solo programmatore per programmarne molte (erano usate a scuola)
frarugi87

1
@frarugi87 è probabilmente vero, ma per i veri principianti, collegare un cavo USB e utilizzare l'IDE Arduino per caricare "schizzi" è il più semplice possibile. Penso che abbiano fatto la mossa giusta per renderlo super accessibile, specialmente per coloro che non hanno esperienza di microcontrollori.
SnakeDoc,

4

Mi piacciono il Nano e il Pro Mini. Mi piace lavorare con esso su una breadboard con altri moduli. Se sono coinvolti più circuiti, l'ho trovato molto più conveniente rispetto all'utilizzo di Uno. Ci sono processori più veloci ma per molti progetti il ​​16Mhz 328 è più che sufficiente. E come Uno, queste due parti sono alimentate a 5 volt. A volte ciò a cui è necessario connettersi non funziona bene con i processori a 3,3 volt.

Pro Mini e Nano possono essere facilmente saldati in 0,1 "spaziati" Veroboard (o equivalente) Se non ti dispiace acquistare parti clonate, il costo di un Nano e Pro Mini è solo di un paio di dollari. Acquistare parti da Aliexpress , o addirittura Ebay, può farti risparmiare molto, purché tu sia paziente quando si tratta di consegna.

Il modulo che sto utilizzando più spesso è ESP8266. È una potente piattaforma WiFi che costa solo pochi dollari e ha un framework Arduino abbastanza maturo. Spesso lo uso come unico processore nel design. L'ho persino usato come base per un data logger e ho completamente ignorato la funzionalità WiFi. LCD da 20x4 caratteri, chip di misurazione corrente / tensione (INA219) e una scheda di memoria SD, alimentata da una batteria al litio 18650.

Ci sono molte buone opzioni economiche.


3
potresti voler sottolineare che i moduli ESP12 NON hanno una spaziatura dei piedini di 1 ", il che è un po 'fastidioso. Ci sono schede breakout economiche, ma queste sono abbastanza larghe e difficili da usare con breadboard senza saldatura. Oltre a ciò, hanno sei abbastanza utile. Per circa $ 1 in più rispetto a un modulo ESP12 nudo puoi ottenere un Wemos D1 mini (clone) che è facile da usare come un Arduino Pro Mini o Nano.
Llaves

Dove ho detto di usare ESP-12? Non ho approfondito molti dettagli sull'ESP8266 perché non era questo il fulcro della domanda. Ho pensato che valesse la pena menzionarlo poiché molte persone non lo conoscono. Sostengo totalmente le persone che utilizzano la mini piattaforma Wemos D1. È una soluzione pronta all'uso a differenza di ESP01, ESP12, ecc. USB a seriale e un regolatore integrato fa la differenza. Ma sento ancora che il Nano o il Pro Mini sono la risposta più appropriata per la persona che ha posto la domanda.
Rudy,

È difficile considerare qualsiasi sistema basato su atmega nel 2019 rispetto ai sistemi ESP, quindi potresti menzionare per $ 2 con un ESP8266 ottenere un processore da 40 MHz, una scheda di sviluppo completa (non un chip), Wi-Fi e programmazione basata su USB e monitoraggio senza cavi extra. E menziona anche i sistemi ESP32, che sono più costosi da $ 7 a $ 10, ma contengono due CPU, un RTOS completo, più MB di flash, aggiunge BT a WIFI e supporto USB nativo. È inclusa la compatibilità con Arduino e anche eseguendo il RTOS fornito includono le librerie Arduino.
Brian Bulkowski,

ESP8266 ha un processore a 160 MHz. È un'ottima opzione ma ha dei limiti. Ha solo un convertitore A / D e uno negativo. I pin IO digitali hanno anche delle stranezze. Le resistenze pull-up sono attive per impostazione predefinita all'accensione. Tre pin IO impostano la modalità operativa e occorre prestare particolare attenzione. L'ESP8266 necessita anche di un alimentatore decente. Con ESP8266 c'è molto codice in esecuzione in background e il tuo codice deve coesistere con esso. Mi piace molto l'ESP9266 ma non è un microcontrollore per scopi generici. ESP32 è migliore ma anche con problemi.
Rudy,

2

I cloni Arduino Pro Micro sono super economici e tutto ciò che serve per programmarli è un normale cavo micro USB. Probabilmente dovrai saldare le intestazioni per fare qualcosa di utile. Sono disponibili in versione 3.3V / 8MHz e 5V / 16Mhz.

Pro Micro


ProMicro ha un processore 3.3v. Questo può essere un problema con alcuni progetti. Non è un calo in sostituzione di uno. Ma è una parte interessante.
Rudy,

1
No, proprio come con Pro Mini esiste una versione da 5 V / 16 MHz e una versione da 3,3 V / 8 MHz.
AndreKR,

Scusa, allora, errore mio.
Rudy,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.