Alternativa menor e mais barata ao Arduino Uno para projetos permanentes

14

Eu brinquei um pouco com um Arduino Uno que veio em um kit com uma placa de ensaio e componentes. Em breve, gostaria de fazer algumas coisas mais permanentes.

Eu preferiria uma unidade menor e mais barata que o Arduino Uno, mas isso é quase tão fácil de usar quanto o Arduino Uno, e muito semelhante ao uso.

O Arduino Pro Mini 328 - 5V / 16MHz é o próximo passo lógico? Com 1/6 do tamanho do Arduino Uno, é bastante pequeno. Por US $ 10 por peça, o preço também é bom.

Entendo que preciso soldar para que funcione. Isso não deve ser um problema.

Também precisarei de uma placa serial USB para programar a unidade?

Andy
fonte
2
O próximo menor com 328p é Nano
Juraj
1
Os chips ATmega32u4 também são uma boa jogada (igual ao Leonardo) para micro de 8 bits. A codificação é um pouco diferente da UNO / 328p (especialmente com a serial), mas você evita o conversor USB / serial. Eventualmente, você pode criar seus próprios PCBs e usar os chips SMD, para um projeto realmente compacto.
MichaelT #
1
Pro Mini, módulo de 5V 16MHz com oscilador de cristal (US $ 2,18 CDN): aliexpress.com/item/… . Adaptador USB para UART PL2303HX (US $ 0,70 CDN): aliexpress.com/item/… .
VE7JRO

Respostas:

8

Acho que a primeira melhor opção é remover o chip ATMega328p-pu do seu Arduino UNO e incorporá-lo ao seu circuito final. Os chips custam apenas US $ 1,50.

Dessa forma, você pode apenas usar o UNO como programador em vez do dispositivo final implantado.

Não sei por que não há mais documentação sobre a maneira correta de remover o chip ATMega328p-pu e usá-lo na sua placa de ensaio, após concluir a programação.

Eu explico exatamente como fazer isso no meu blog: http://raddev.us/arduino/post/2018/07/03/arduino-uno-using-your-atmega328p-u-as-stand-alone

Mas, aqui estão os princípios. Primeiro você remove o chip. Será semelhante ao seguinte depois de fazer isso. (Nota: estou usando o clone Elegoo de uma ONU).

chip atmega328p-pu removido

Em seguida, aplique energia ao pino 7 e conecte o pino 8 ao GND.

Precisa de um cristal de 16MHz

Mas, o chip não parece executar o seu esboço neste momento. Isso porque você realmente precisa de um cristal para rodar em 16MHz.

A placa da ONU tem esse chip instalado e é por isso que funciona. Você pode vê-lo aqui:

Cristal de 16MHz em UNO

Finalmente, você adiciona o cristal de 16MHz e um par de tampas de 22pF e seu chip funciona de forma independente (sem UNO).

Você adiciona o cristal aos pinos 9 e 10. Você pode ver todos os detalhes lendo a entrada do meu blog ou a folha de dados do atmega328 .

cristal na tábua de pão

Finalmente, apenas conecte tudo o resto

Depois disso, basta conectar o restante do seu circuito aos pinos adequados e você poderá executar o seu ATMega328p-pu independente.

Na verdade, também é uma boa experiência de aprendizado.
Basta comprar chips de substituição atmega328p-pu para o seu UNO e você pode criar todos os projetos que deseja por muito mais barato.

raddevus
fonte
2
Você estaria bem servido para adicionar alguma proteção de circuito, já que o 328p não possui nenhum recurso próprio. Caso contrário, este é um ótimo caminho a percorrer.
SnakeDoc 12/1118
1
@ Crepúsculo, eu acredito que é apenas quando você está fazendo DAC. Este é apenas um exemplo simples para alguém começar a usar o chip como autônomo. Garanto que o código para piscar o LED na amostra é executado. Além disso, quando eu comecei, criei o circuito que mencionei em um comentário acima e nunca conectei o AVCC e o GND e o circuito funcionou por dois anos. Claro, não estou dizendo que sempre será verdade. Apenas mencionando a maneira como o chip realmente funciona. Como sempre, verifique a folha de dados para obter as especificações exatas e, especialmente, se você tiver algo diferente. Obrigado.
Raddevus 12/1118
1
@raddevus Consulte a Tabela 28.8 na ficha de dados: "AVCC min / max absoluto: 1.8V / 5.5V". Deixar o AVCC desligado está fora das especificações e pode causar danos. O pino GND no pino 22 não está especificamente associado ao ADC e deve estar conectado ao GND.
duskwuff -inactive-
1
@duskwuff Obrigado pela discussão esclarecedora. Concordo com o que você está dizendo e mudarei meus documentos e circuitos em breve para garantir que esteja sempre conectado. FYI - Comecei a trabalhar com o ATMega328p-pu através do fantástico livro AVR Programming: Learning to Write Software For Hardware ( amzn.to/2PS9OOA ) e nesses primeiros circuitos o autor Elliott Williams também não conecta esses pinos. Eu acho que fui influenciado por isso. O livro é realmente ótimo e o autor é experiente. Mais uma vez obrigado, ótima discussão.
Raddevus
1
@reddevus. Para ser mais preciso, o cristal que você indicou na caixa vermelha nesta resposta é o cristal usado pelo microcontrolador que lida com a comunicação USB, e não pelo chip ATmega328p-pu. Você pode ver nos esquemas Uno que o chip ATmega328p-pu realmente usa um ressonador: mouser.com/ProductDetail/Murata-Electronics/…
Kavka
7

Verifique a placa de desenvolvimento STM32F103C8T6, custa cerca de US $ 1,5 e é mais rápida / possui mais memória que o Arduino Uno e é muito menor.

Ele pode funcionar com o Arduino IDE, mas nem todas as bibliotecas são suportadas; portanto, verifique antes de usá-lo se suas bibliotecas usadas são suportadas ou se existem bibliotecas diferentes que você pode usar.

Atualizar

Diferenças:

                       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: conforme escrito anteriormente, apesar das especificações melhores, nem todas as bibliotecas são suportadas. Também é necessário comprar um programador (apenas uma vez, custa cerca de US $ 5).

Michel Keijzers
fonte
1
Você também pode evitar o programador se você começar os bordo Mini clones (o mesmo do uc, quase o mesmo HW, mas com um bootloader já passou)
frarugi87
1
@ frarugi87 Ou você pode usar o gerenciador de inicialização UART embutido (ativado pela configuração BOOT0 alta) para a programação inicial.
duskwuff -inactive-
O STM32F103C8T6 é uma grande parte. Mas ainda é apenas 3.3v. Não é uma queda no substituto do Uno. Tente conectá-lo a um LCD de 5v e você terá problemas, se funcionar. (the LCD)
Rudy
6

Para o meu produto, fui de um Arduino Uno :

Arduino Uno R3

para o Arduino Pro Mini :

Arduino Pro Mini

Sim, você precisará de um cabo FTDI para programação e comunicações seriais no PC, mas, desde que não precise de comunicações o tempo todo, precisará apenas de um cabo para fazer o upload do programa em cada dispositivo. Eles podem ser encontrados muito baratos também.

No entanto, percebo que o Arduino Pro Mini está aposentado agora, por isso pode ser um pouco mais difícil de obter ( ainda está disponível no AliExpress ). Portanto, por esse motivo, sugiro que você experimente o Arduino Nano :

Arduino Nano

que possui a vantagem adicional de USB integrado, o que significa que você não precisa mais do cabo FTDI para programação ou comunicação.

O ATMega328P que é o processador dessas 3 placas não possui USB nativo, o que significa que a placa também precisa incluir o IC FTDI FT232RL que é usado no cabo FTDI. Ter esse IC pode adicionar custos adicionais aos seus resultados financeiros.

Por alguns dólares mais baratos por dispositivo, você pode usar um microcontrolador (como o ATMega32U4) que possui coms USB nativos (e, portanto, economiza no IC do FTDI). Um desses produtos é o Arduino Micro :

Arduino Micro

Todas essas placas mencionadas são nativas no ecossistema do Arduino e (além do Pro Mini aposentado) devem ser fáceis de obter on-line ou na loja de eletrônicos local. Seu programa Arduino Uno funcionará para todas essas alternativas - basta mudar o quadro no IDE do Arduino:

Seleção da placa Arduino

Há mais uma placa que eu gostaria de mencionar - o DigiSpark :

Digispark

É adequado apenas para programas menores, é limitado em alguns de seus recursos e não é uma placa oficial do Arduino. Dito isto, há muito suporte para o Arduino - e é barato!

sa_leinad
fonte
4

Se você deseja continuar usando o Arduino e sua cadeia de ferramentas, pode pedir apenas um ATmega 328p (o microcontrolador no coração do Arduino Uno) e usá-lo sozinho!

Eles têm um custo bastante baixo (faixa de US $ 1,50 a US $ 3,00) e são compatíveis com a tábua de pão. Para uma solução mais permanente, você pode soldá-los em uma placa de proto (perfboard) ou mesmo em uma placa de circuito projetada quando o design chegar a esse nível.

Aqui está um excelente guia do pessoal do Arduino sobre como configurar um Arduino em uma placa de ensaio, usando apenas componentes brutos, como o ATmega 328p. Esse design usa um relógio externo de 16MHz, como um Arduino Uno.

Se você não usar o relógio interno de 8 MHz a bordo do 328p, poderá acabar com a maioria dos componentes extras e executar o chip bruto, como em neste guia (usando o Arduino Lilypad Bootloader em vez do carregador de inicialização padrão do Arduino). Isso economizará ainda mais dinheiro!

De qualquer forma, você precisará de uma unidade de programador AVR, já que não há porta USB embutida no 328p. Essa será a parte mais cara dessa configuração, mas a boa notícia é que você só precisa de uma e pode programar os 328p necessários. Eles também podem ser usados ​​para programar chips não-padrão que podem ser programados através de pinos Serx Tx / Rx, como os chips ESP (você apenas os conecta manualmente). Muito útil ter um desses, se você for sério sobre esses tipos de microcontroladores.

Microplaqueta do microcontrolador de ATmega 328p

Autocolantes Pin ATMega

Perfboard

Programador AVR

SnakeDoc
fonte
1
Se você solicitar seu ATMEGA328P-PU com o carregador de inicialização já instalado: ebay.ca/itm/… , um adaptador USB para UART PL2303HX (US $ 0,70CDN) funcionará para carregar o "código": aliexpress.com/item/…
VE7JRO
Sempre achei estranho que o Arduino use um gerenciador de inicialização especial para programar, em vez de usar a interface de programação embutida.
user253751
O @immibis não sabe exatamente o que você quer dizer exatamente, mas os gerenciadores de inicialização do arduino fazem muitas coisas que facilitam muito o trabalho com o arduino (e os chips Atmel), incluindo a redefinição de pinos, a alternância para o relógio externo, a entrega do seu código, etc. Sem ele, você basicamente precisará escrever o seu próprio ... o que seria uma perda de tempo, pois na maioria dos casos, o gerenciador de inicialização Arduino faz tudo o que você deseja.
SnakeDoc 12/11/19
1
@immibis Eu acho que é muito mais fácil ter uma interface de porta serial do que uma interface de programador do PC. Além disso, especialmente no começo, eu acho (opinião pessoal) que eles queriam um sistema completo em uma placa, e integrar um programador no PCB era muito mais difícil do que escrever um gerenciador de inicialização serial. Considere-se que as primeiras placas Arduino tinha uma porta serial ( Arduino RS232 ), de modo que apenas um programador era necessário para programar um monte deles (eles foram usados na escola)
frarugi87
1
@ frarugi87 isso provavelmente é verdade, mas para iniciantes de verdade, conectar um cabo USB e usar o Arduino IDE para carregar "esboços" é o mais fácil possível. Eu acho que eles fizeram o movimento certo para torná-lo super acessível, especialmente para aqueles que não têm experiência em microcontroladores.
SnakeDoc 12/11/19
4

Eu gosto do Nano e do Pro Mini. Eu gosto de trabalhar com ele em uma placa de ensaio com outros módulos. Se houver mais circuitos envolvidos, achei muito mais conveniente do que usar um Uno. Existem processadores mais rápidos, mas para muitos projetos o 16Mhz 328 é mais que suficiente. E, como o Uno, esses dois são peças de 5 volts. Às vezes, o que você precisa conectar não funciona bem com processadores de 3,3 volts.

O Pro Mini e o Nano podem ser facilmente soldados em 0,1 "espaçados" Veroboard "(ou equivalente) Se você não se importa em comprar peças clonadas, o custo de um Nano e Pro Mini é de apenas alguns dólares. , ou até o Ebay, podem economizar muito, desde que você seja paciente no que diz respeito à entrega.

O módulo que agora uso com mais frequência é o ESP8266. É uma poderosa plataforma WiFi que custa apenas alguns dólares e tem uma estrutura Arduino bastante madura. Muitas vezes eu uso isso como o único processador no design. Até o usei como base para um registrador de dados e ignorei completamente o recurso WiFi. LCD de 20x4 caracteres, chip de medição de corrente / tensão (INA219) e um cartão de memória SD, alimentado por uma bateria de lítio 18650.

Existem muitas boas opções baratas.

Rudy
fonte
3
convém salientar que os módulos ESP12 NÃO possuem espaçamento de pinos de 1 ", o que é um pouco incômodo. Existem placas de interrupção baratas, mas são bastante amplas e difíceis de usar com placas de ensaio sem solda. Além disso, elas Por cerca de US $ 1 a mais do que um módulo ESP12 simples, você pode obter um mini (clone) Wemos D1 que é tão fácil de usar quanto um Arduino Pro Mini ou Nano.
Llaves
Onde eu disse para usar o ESP-12? Não entrei em muitos detalhes no ESP8266 porque esse realmente não era o foco da questão. Eu pensei que valeria a pena mencionar, já que muitas pessoas não estão familiarizadas com isso. Apoio totalmente as pessoas que usam a mini plataforma Wemos D1. É uma solução pronta para uso, diferente de ESP01, ESP12, etc. USB para serial e um regulador integrado fazem uma grande diferença. Mas ainda sinto que o Nano ou o Pro Mini é a resposta mais apropriada para a pessoa que fez a pergunta.
Rudy
É difícil considerar qualquer sistema baseado em atmega em 2019 em comparação com os sistemas ESP; portanto, você pode mencionar que, por US $ 2 com um ESP8266, você obtém um processador de 40MHZ, uma placa de desenvolvimento completa (não um chip), wifi e programação baseada em USB e monitoramento sem cabos extras. E também mencione os sistemas ESP32, que são mais caros de US $ 7 a US $ 10, mas contêm duas CPUs, um RTOS completo, vários MB de flash, adiciona BT ao WIFI e suporte USB nativo. A compatibilidade com o Arduino está incluída e, mesmo executando o RTOS fornecido, elas incluem bibliotecas do Arduino.
Brian Bulkowski
O ESP8266 possui um processador de 160 MHz. É uma ótima opção, mas tem limitações. Ele possui apenas um conversor A / D e um ruim. Os pinos de E / S digitais também têm peculiaridades. Por padrão, os resistores pull-up estão ligados na inicialização. Três pinos IO definem o modo de operação e deve-se tomar cuidado especial. O ESP8266 também precisa de uma fonte de alimentação decente. Com o ESP8266, há muito código em execução em segundo plano e seu código deve coexistir com ele. Eu realmente gosto do ESP9266, mas não é um ótimo microcontrolador de uso geral. O ESP32 é melhor, mas também com problemas.
Rudy
2

Os clones do Arduino Pro Micro são super baratos e tudo o que você precisa para programá-los é um cabo micro USB normal. Você provavelmente precisará soldar os cabeçalhos para fazer qualquer coisa útil. Eles estão disponíveis nas versões 3.3V / 8MHz e 5V / 16Mhz.

Pro Micro

AndreKR
fonte
ProMicro possui um processador de 3.3v. Isso pode ser um problema com alguns projetos. Não é uma queda em substituição a um Uno. Mas é uma parte interessante.
Rudy
1
Não, assim como no Pro Mini, existe uma versão de 5V / 16MHz e 3.3V / 8MHz.
21918 AndreKR #
Desculpe então, meu erro.
Rudy