Alternative plus petite et moins chère à Arduino Uno pour les projets permanents

15

J'ai joué un peu avec un Arduino Uno fourni dans un kit avec une planche à pain et des composants. Je voudrais bientôt faire des choses plus permanentes.

Je préférerais une unité plus petite et moins chère que l'Arduino Uno mais qui est presque aussi facile à utiliser que l'Arduino Uno, et très similaire à utiliser.

L'Arduino Pro Mini 328 - 5V / 16MHz est-il une prochaine étape logique? À 1/6 de la taille de l'Arduino Uno, il est très petit. À 10 $ la pièce, le prix est également bon.

Je comprends que je dois souder pour le faire fonctionner. Cela ne devrait pas être un problème.

Aurai-je également besoin d'une carte série USB pour programmer l'unité?

Andy
la source
2
suivant plus petit avec 328p est Nano
Juraj
1
Les puces ATmega32u4 sont également un bon coup (comme Leonardo) pour les micro 8 bits. Le codage est légèrement différent de UNO / 328p (en particulier avec série), mais vous évitez le convertisseur USB / série. Finalement, vous pouvez créer vos propres PCB et utiliser les puces SMD, pour un projet vraiment compact.
MichaelT
1
Module Pro Mini, 5 V 16 MHz avec oscillateur à cristal (2,18 $ CAN): aliexpress.com/item/… . Adaptateur USB vers UART PL2303HX (0,70 $ CAN): aliexpress.com/item/… .
VE7JRO

Réponses:

8

Je pense que le premier meilleur choix est de retirer la puce ATMega328p-pu de votre Arduino UNO et de l'intégrer dans votre circuit final. Les jetons ne coûtent qu'environ 1,50 $.

De cette façon, vous pouvez simplement utiliser votre UNO en tant que programmeur au lieu du périphérique final que vous déployez.

Je ne sais pas pourquoi il n'y a pas plus de documentation sur la bonne façon de retirer la puce ATMega328p-pu et de l'utiliser sur votre planche à pain, après avoir terminé votre programmation.

J'explique exactement comment faire cela sur mon blog: http://raddev.us/arduino/post/2018/07/03/arduino-uno-using-your-atmega328p-u-as-stand-alone

Mais, voici les bases. Vous retirez d'abord la puce. Il ressemblera à ce qui suit après cela. (Remarque: j'utilise le clone Elegoo d'un UNO).

puce atmega328p-pu supprimée

Ensuite, vous mettez sous tension la broche 7 et connectez la broche 8 à GND.

Besoin d'un cristal 16 MHz

Mais, la puce ne semble pas exécuter votre croquis à ce stade. C'est parce que vous avez réellement besoin d'un cristal pour fonctionner à 16 MHz.

La carte UNO a cette puce installée et c'est pourquoi cela fonctionne. Tu peux le voir ici:

Cristal 16 MHz sur UNO

Enfin, vous ajoutez le cristal 16 MHz et quelques bouchons 22pF et votre puce fonctionnera de manière autonome (pas UNO).

Vous ajoutez le cristal aux broches 9 et 10. Vous pouvez voir tous les détails en lisant mon entrée de blog ou en lisant la fiche technique atmega328 .

cristal sur planche à pain

Enfin, connectez tout le reste

Après cela, connectez simplement le reste de votre circuit aux broches appropriées et vous pouvez exécuter votre ATMega328p-pu de manière autonome.

C'est aussi une belle expérience d'apprentissage.
Il suffit d'acheter des puces de remplacement atmega328p-pu pour votre UNO et vous pouvez créer tous les projets que vous souhaitez pour très bon marché.

raddevus
la source
2
Vous seriez bien servi d'ajouter une protection de circuit, car le 328p n'a pas de son propre. Sinon, c'est une excellente façon de procéder.
SnakeDoc
1
@duskwuff, je crois que ce n'est que lorsque vous faites du DAC. Ceci est juste un exemple simple pour amener quelqu'un à commencer à utiliser la puce de manière autonome. Je vous assure que le code pour faire clignoter la LED dans l'exemple fonctionne. De plus, lorsque je débutais, j'ai créé le circuit que j'ai mentionné dans un commentaire ci-dessus et je n'ai jamais connecté AVCC et GND et le circuit a fonctionné pendant deux ans. Bien sûr, je ne dis pas que ce sera toujours vrai. Je mentionne simplement le fonctionnement de la puce. Comme toujours, consultez la fiche technique pour les spécifications exactes et surtout si vous rencontrez quelque chose de différent. Merci.
raddevus
1
@raddevus Reportez-vous au tableau 28.8 de la fiche technique: "AVCC absolu min / max: 1,8 V / 5,5 V". Laisser AVCC hors tension est hors spécifications et peut provoquer des dommages. La broche GND sur la broche 22 n'est pas spécifiquement associée à l'ADC et doit être connectée à GND.
duskwuff -inactive-
1
@duskwuff Merci pour la discussion éclairante. Je suis d'accord avec ce que vous dites et je changerai bientôt mes documents et mes circuits pour être toujours connecté. FYI - J'ai commencé à travailler avec ATMega328p-pu via le fantastique livre AVR Programming: Learning to Write Software For Hardware ( amzn.to/2PS9OOA ) et dans ces premiers circuits, l'auteur, Elliott Williams, ne connecte pas non plus ces broches. Je pense que cela m'a influencé. Le livre est vraiment super et l'auteur est bien informé. Merci encore, bonne discussion.
raddevus
1
@reddevus. Pour être plus précis, le cristal que vous avez indiqué dans la case rouge dans cette réponse est le cristal utilisé par le microcontrôleur gérant la communication USB, et non par la puce ATmega328p-pu. Vous pouvez voir dans les schémas Uno que la puce ATmega328p-pu utilise en fait un résonateur: mouser.com/ProductDetail/Murata-Electronics/…
Kavka
7

Vérifiez la carte de développement STM32F103C8T6, coûte environ 1,5 $, et est plus rapide / a plus de mémoire que l'Arduino Uno, et est beaucoup plus petite.

Il peut fonctionner avec l'IDE Arduino, mais toutes les bibliothèques ne sont pas prises en charge, vérifiez donc avant de l'utiliser si vos bibliothèques utilisées sont prises en charge ou s'il existe différentes bibliothèques que vous pouvez utiliser à la place.

Mise à jour

Différences:

                       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

Remarque: comme écrit précédemment, malgré les spécifications généralement meilleures, toutes les bibliothèques ne sont pas prises en charge. Un programmeur doit également être acheté (une seule fois, coûte environ 5 $).

Michel Keijzers
la source
1
Vous pouvez également éviter d'obtenir le programmeur si vous obtenez les clones Maple Mini (même uC, presque le même matériel, mais avec un chargeur de démarrage déjà flashé)
frarugi87
1
@ frarugi87 Ou vous pouvez utiliser le chargeur de démarrage UART intégré (activé en définissant BOOT0 haut) pour la programmation initiale.
duskwuff -inactif-
Le STM32F103C8T6 est une grande partie. Mais ce n'est toujours que 3,3v. Ce n'est pas une baisse de remplacement pour l'Uno. Essayez de le connecter à un écran LCD 5v et vous aurez des problèmes, si cela fonctionne. (l'écran LCD)
Rudy
6

Pour mon produit, je suis passé d'un Arduino Uno :

Arduino Uno R3

à l' Arduino Pro Mini :

Arduino Pro Mini

Oui, vous aurez besoin d'un câble FTDI pour la programmation et les communications série sur le PC, mais si vous n'avez pas besoin de communications tout le temps, vous n'aurez besoin que d'un seul câble pour télécharger le programme sur chaque appareil. Ils peuvent également être trouvés assez bon marché.

Cependant, je remarque que l'Arduino Pro Mini est désormais à la retraite, il peut donc être un peu plus difficile à approvisionner (il est toujours disponible sur AliExpress ). Donc, pour cette raison, je vous suggère plutôt d'essayer l' Arduino Nano :

Arduino Nano

qui a l'avantage supplémentaire de l'USB intégré, ce qui signifie que vous n'avez plus besoin du câble FTDI pour la programmation ou les coms.

L'ATMega328P qui est le processeur de ces 3 cartes n'a pas d'USB natif, ce qui signifie que la carte doit également inclure le CI FTDI FT232RL utilisé dans le câble FTDI. Avoir ce CI peut ajouter des coûts supplémentaires à votre résultat net.

Pour quelques dollars moins cher par appareil, vous pouvez utiliser un microcontrôleur (tel que l'ATMega32U4) qui a des communications USB natives (et donc vous économisez sur l'IC FTDI). Un tel produit est l' Arduino Micro :

Arduino Micro

Toutes ces cartes mentionnées sont natives de l'écosystème Arduino et (à l'exception du Pro Mini à la retraite) devraient être faciles à trouver en ligne ou dans votre magasin d'électronique local. Votre programme Arduino Uno fonctionnera pour toutes ces alternatives - il vous suffit de changer la carte dans l'IDE Arduino:

Sélection de cartes Arduino

Il y a un autre conseil que je voudrais mentionner - le DigiSpark :

Digispark

Il ne convient que pour les petits programmes, est limité dans certaines de ses fonctionnalités et n'est pas une carte Arduino officielle. Cela dit, il y a beaucoup de support Arduino - et c'est bon marché!

sa_leinad
la source
4

Si vous voulez continuer à utiliser Arduino et sa chaîne d'outils, vous pouvez commander juste un ATmega 328p nu (le microcontrôleur au cœur de l'Arduino Uno) et l'utiliser seul!

Ils sont assez peu coûteux (gamme de 1,50 $ à 3,00 $) et sont compatibles avec la planche à pain. Pour une solution plus permanente, vous pouvez les souder dans un proto-board (perfboard), ou même un circuit imprimé personnalisé une fois que votre conception atteint ce niveau.

Voici un excellent guide des gens d'Arduino sur la configuration d'un Arduino sur une planche à pain, en utilisant uniquement des composants bruts tels que l'ATmega 328p. Cette conception utilise un cristal d'horloge externe de 16 MHz, tout comme un Arduino Uno.

Si vous êtes d'accord avec l'utilisation de l'horloge interne de 8 MHz à bord du 328p, vous pouvez supprimer la plupart des composants supplémentaires et simplement exécuter la puce brute comme dans ce guide (en utilisant le chargeur de démarrage Arduino Lilypad au lieu du chargeur de démarrage Arduino par défaut). Cela permettra d'économiser encore plus d'argent!

Quoi qu'il en soit, vous aurez besoin d'une unité de programmation AVR, car aucun port USB n'est intégré au 328p. Ce sera la partie la plus chère de cette configuration, mais la bonne nouvelle est que vous n'en avez besoin que d'un et qu'il peut programmer les 328p dont vous avez besoin. Ils peuvent également être utilisés pour programmer des puces non standard pouvant être programmées sur des broches Serial Tx / Rx, telles que les puces ESP (il vous suffit de les câbler à la main). Très utile d'en avoir un si vous êtes sérieux au sujet de ces types de microcontrôleurs.

Puce de microcontrôleur ATmega 328p

Autocollants pour épingles ATMega

Perfboard

Programmeur AVR

SnakeDoc
la source
1
Si vous commandez votre ATMEGA328P-PU avec le chargeur de démarrage déjà installé: ebay.ca/itm/… , alors un adaptateur USB vers UART PL2303HX (0,70 $ CDN) fonctionnera pour télécharger le "code": aliexpress.com/item/…
VE7JRO
J'ai toujours trouvé étrange que Arduino utilise un chargeur de démarrage spécial pour la programmation au lieu d'utiliser l'interface de programmation intégrée.
user253751
@immibis ne sait pas exactement ce que vous voulez dire, mais les chargeurs de démarrage Arduino font beaucoup de choses qui rendent le travail avec les puces Arduino (et Atmel) beaucoup plus facile, y compris la réinitialisation des broches, le passage à une horloge externe, la remise de votre code, etc. Sans cela, vous auriez essentiellement besoin d'écrire le vôtre ... ce qui serait une perte de temps car dans la majorité des cas, le chargeur de démarrage Arduino fait tout ce que vous voulez de toute façon.
SnakeDoc
1
@immibis Je pense qu'il est beaucoup plus facile d'avoir une interface de port série plutôt qu'une interface de programmation depuis le PC. De plus, surtout au début, je pense (opinion personnelle) qu'ils voulaient un système complet sur une carte, et intégrer un programmeur sur le PCB était beaucoup plus difficile que d'écrire un chargeur de démarrage série. Considérez que les premières cartes Arduino avaient un port série ( Arduino RS232 ), donc un seul programmeur était nécessaire pour en programmer beaucoup (elles étaient utilisées à l'école)
frarugi87
1
@ frarugi87 c'est probablement vrai, mais pour les vrais débutants, brancher un câble USB et utiliser l'IDE Arduino pour télécharger des "croquis" est à peu près aussi simple que possible. Je pense qu'ils ont fait le bon choix pour le rendre super accessible, en particulier pour ceux qui n'ont aucune expérience en microcontrôleur.
SnakeDoc
4

J'aime le Nano et le Pro Mini. J'aime travailler avec lui sur une planche à pain avec d'autres modules. S'il y a plus de circuits impliqués, je l'ai trouvé beaucoup plus pratique que d'utiliser un Uno. Il existe des processeurs plus rapides, mais pour de nombreux projets, le 16Mhz 328 est plus que suffisant. Et comme l'Uno, ces deux sont des pièces alimentées en 5 volts. Parfois, ce à quoi vous devez vous connecter ne fonctionne pas bien avec les processeurs 3,3 volts.

Le Pro Mini et le Nano peuvent facilement être soudés en "Veroboard" espacé de 0,1 "(ou équivalent) Si cela ne vous dérange pas d'acheter des pièces clonées, le coût d'un Nano et Pro Mini n'est que de quelques dollars. , ou même Ebay, peuvent vous faire économiser beaucoup, tant que vous êtes patient lors de la livraison.

Le module que j'utilise maintenant le plus souvent est l'ESP8266. Il s'agit d'une puissante plateforme WiFi qui ne coûte que quelques dollars et possède un cadre Arduino assez mature. Souvent, je l'utilise comme seul processeur dans la conception. Je l'ai même utilisé comme base pour un enregistreur de données et j'ai complètement ignoré la capacité WiFi. LCD 20x4 caractères, puce de mesure courant / tension (INA219) et une carte mémoire SD, alimentée par une batterie au lithium 18650.

Il existe de nombreuses bonnes options peu coûteuses.

Rudy
la source
3
vous voudrez peut-être souligner que les modules ESP12 n'ont PAS d'espacement de broches de 0,1 ", ce qui est un peu gênant. Pour environ 1 $ de plus qu'un module ESP12 nu, vous pouvez obtenir un Wemos D1 mini (clone) qui est à peu près aussi facile à utiliser qu'un Arduino Pro Mini ou Nano.
Llaves
Où ai-je dit d'utiliser l'ESP-12? Je ne suis pas entré dans beaucoup de détails sur l'ESP8266 car ce n'était vraiment pas l'objet de la question. J'ai pensé que cela valait la peine d'être mentionné, car beaucoup de gens ne le connaissent pas. Je soutiens totalement les personnes utilisant la mini plateforme Wemos D1. C'est une solution prête à l'emploi contrairement à ESP01, ESP12, etc. USB vers série et un régulateur embarqué font une grande différence. Mais je pense toujours que le Nano ou le Pro Mini est la réponse la plus appropriée pour la personne qui a posé la question.
Rudy
Il est difficile d'envisager un système basé sur atmega en 2019 par rapport aux systèmes ESP, donc vous pourriez mentionner pour 2 $ avec un ESP8266 que vous obtenez un processeur 40 MHz, une carte de développement complète (pas une puce), le wifi et une programmation basée sur USB et surveillance sans câbles supplémentaires. Et mentionnez également les systèmes ESP32, qui sont plus chers à 7 $ à 10 $, mais contiennent deux processeurs, un RTOS complet, plusieurs Mo de flash, ajoute BT au WIFI et un support USB natif. La compatibilité avec Arduino est incluse, et même en exécutant le RTOS fourni, ils incluent des bibliothèques Arduino.
Brian Bulkowski
L'ESP8266 possède un processeur à 160 MHz. C'est une excellente option mais elle a ses limites. Il n'a qu'un seul convertisseur A / N et un mauvais à cela. Les broches d'E / S numériques ont également des bizarreries. Les résistances de tirage sont activées par défaut à la mise sous tension de la plupart. Trois broches IO définissent le mode de fonctionnement et une attention particulière doit être prise. L'ESP8266 a également besoin d'une alimentation électrique décente. Avec l'ESP8266, beaucoup de code s'exécute en arrière-plan et votre code doit coexister avec lui. J'aime vraiment l'ESP9266 mais ce n'est pas un excellent microcontrôleur à usage général. L'ESP32 est meilleur mais aussi avec des problèmes.
Rudy
2

Les clones Arduino Pro Micro sont super bon marché et tout ce dont vous avez besoin pour les programmer est un câble micro USB normal. Vous devrez probablement souder les en-têtes pour faire quelque chose d'utile. Ils sont disponibles en version 3,3V / 8MHz et 5V / 16Mhz.

Pro Micro

AndreKR
la source
ProMicro a un processeur 3,3v. Cela peut être un problème avec certains modèles. Ce n'est pas une baisse en remplacement d'un Uno. Mais c'est une partie intéressante.
Rudy
1
Non, tout comme avec le Pro Mini, il existe une version 5V / 16MHz et une version 3,3V / 8MHz.
AndreKR
Désolé alors, mon erreur.
Rudy