Mniejsza i tańsza alternatywa dla Arduino Uno dla stałych projektów

15

Grałem trochę z Arduino Uno, które było dostarczane w zestawie z płytką do krojenia i elementami. Wkrótce chciałbym zrobić coś bardziej trwałego.

Wolałbym mniejszą i tańszą jednostkę niż Arduino Uno, ale jest ona prawie tak łatwa w użyciu jak Arduino Uno i bardzo podobna w użyciu.

Czy Arduino Pro Mini 328 - 5V / 16MHz to logiczny kolejny krok? Przy wielkości 1/6 Arduino Uno jest wystarczająco mały. Przy 10 $ za sztukę cena jest również dobra.

Rozumiem, że muszę lutować, aby działał. To nie powinno stanowić problemu.

Czy będę potrzebować również karty szeregowej USB, aby zaprogramować urządzenie?

Andy
źródło
2
następny mniejszy z 328p to Nano
Juraj
1
Układy ATmega32u4 są również dobrym posunięciem (tak samo jak Leonardo) dla 8-bitowego mikro. Kodowanie różni się nieco od UNO / 328p (szczególnie w przypadku szeregowego), ale unika się konwertera USB / szeregowego. W końcu możesz tworzyć własne płytki drukowane i używać układów SMD, aby uzyskać naprawdę kompaktowy projekt.
MichaelT
1
Pro Mini, moduł 5 V 16 MHz z kryształowym oscylatorem (2,18 CDN): aliexpress.com/item/… . PL2303HX Adapter USB na UART (0,70CDN): aliexpress.com/item/… .
VE7JRO

Odpowiedzi:

8

Myślę, że najlepszym wyborem jest usunięcie układu ATMega328p-pu z Arduino UNO i włączenie go do końcowego obwodu. Żetony to tylko około 1,50 $.

W ten sposób możesz po prostu używać UNO jako programisty zamiast końcowego urządzenia, które wdrażasz.

Nie jestem pewien, dlaczego nie ma więcej dokumentacji na temat właściwego sposobu usuwania układu ATMega328p-pu i używania go na płycie po zakończeniu programowania.

Dokładnie wyjaśniam, jak to zrobić na moim blogu: http://raddev.us/arduino/post/2018/07/03/arduino-uno-using-your-atmega328p-u-as-stand-alone

Ale oto podstawy. Najpierw usuń układ. Po wykonaniu tej czynności będzie to wyglądać następująco. (Uwaga: używam klonu Elegoo z UNO).

Usunięto układ atmega328p-pu

Następnie podłącz zasilanie do styku 7 i podłącz styk 8 do GND.

Potrzebujesz kryształu 16 MHz

Ale układ nie wydaje się w tym momencie uruchamiać szkicu. To dlatego, że tak naprawdę potrzebujesz kryształu do pracy z częstotliwością 16 MHz.

Płyta UNO ma zainstalowany ten układ i dlatego działa. Możesz to zobaczyć tutaj:

Kryształ 16 MHz na UNO

Na koniec dodajesz kryształ 16 MHz i kilka czapek 22pF, a twój układ będzie działał samodzielnie (bez UNO).

Dodajesz kryształ do pinów 9 i 10. Możesz zobaczyć wszystkie szczegóły, czytając mój wpis na blogu lub czytając arkusz danych atmega328 .

kryształ na desce

Wreszcie po prostu podłącz wszystko inne

Następnie po prostu podłącz resztę obwodu do odpowiednich styków i możesz uruchomić samodzielny ATMega328p-pu.

To także przyjemne doświadczenie edukacyjne.
Wystarczy kupić zastępcze układy atmega328p-pu dla UNO i możesz bardzo tanio stworzyć wszystkie projekty, które chcesz.

raddevus
źródło
2
Dobrze byłoby dodać trochę ochrony obwodu, ponieważ 328p nie ma własnego. W przeciwnym razie jest to świetny sposób.
SnakeDoc,
1
@duskwuff, uważam, że to tylko wtedy, gdy robisz DAC. To tylko prosty przykład, aby zachęcić kogoś do korzystania z układu jako samodzielnego. Zapewniam cię, że kod migania diody LED w próbce działa. Ponadto, kiedy zaczynałem, stworzyłem obwód, o którym wspomniałem w komentarzu powyżej, i nigdy nie podłączyłem AVCC i GND, a obwód działał przez dwa lata. Oczywiście nie mówię, że zawsze tak będzie. Wspomnę tylko o sposobie działania układu. Jak zawsze sprawdź dokładną specyfikację w arkuszu danych, a zwłaszcza jeśli zauważysz coś innego. Dzięki.
raddevus,
1
@raddevus Patrz tabela 28.8 w arkuszu danych: „AVCC absolutne min / maks: 1,8 V / 5,5 V”. Pozostawienie AVCC bez zasilania jest niezgodne ze specyfikacją i może spowodować uszkodzenie. Pin GND na pinie 22 nie jest specjalnie powiązany z ADC i musi być podłączony do GND.
duskwuff -inactive-
1
@duskwuff Dzięki za pouczającą dyskusję. Zgadzam się z tym, co mówisz i wkrótce zmienię moje dokumenty i obwody, aby zapewnić, że zawsze będą one połączone. Do Twojej wiadomości - zacząłem pracować z ATMega328p-pu dzięki fantastycznej książce AVR Programming: Learning to Write Software For Hardware ( amzn.to/2PS9OOA ) iw tych pierwszych obwodach autor, Elliott Williams, również nie podłączył tych pinów. Myślę, że to miało na mnie wpływ. Książka jest naprawdę świetna, a autor ma wiedzę. Jeszcze raz dziękuję, świetna dyskusja.
raddevus,
1
@reddevus. Mówiąc ściślej, kryształ, który wskazałeś w czerwonym polu w tej odpowiedzi, jest kryształem używanym przez mikrokontroler obsługujący komunikację USB, a nie przez układ ATmega328p-pu. Ze schematów Uno widać, że układ ATmega328p-pu faktycznie korzysta z rezonatora: mouser.com/ProductDetail/Murata-Electronics/…
Kavka
7

Sprawdź płytę programistyczną STM32F103C8T6, kosztuje około 1,5 USD i jest szybsza / ma więcej pamięci niż Arduino Uno i jest znacznie mniejsza.

Może współpracować z Arduino IDE, ale nie wszystkie biblioteki są obsługiwane, więc sprawdź, zanim zechcesz go użyć, czy używane biblioteki są obsługiwane lub czy istnieją inne biblioteki, których możesz użyć zamiast tego.

Aktualizacja

Różnice:

                       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

Uwaga: jak napisano wcześniej, pomimo przeważnie lepszych specyfikacji, nie wszystkie biblioteki są obsługiwane. Należy także kupić programistę (tylko raz, koszt około 5 USD).

Michel Keijzers
źródło
1
Możesz także uniknąć uzyskania programatora, jeśli otrzymasz klony Maple Mini (to samo UC, prawie taki sam HW, ale z już
załadowanym
1
@ frarugi87 Lub możesz użyć wbudowanego bootloadera UART (aktywowanego przez ustawienie BOOT0 na wysokim poziomie) do początkowego programowania.
duskwuff -inactive-
STM32F103C8T6 to świetna część. Ale nadal jest tylko 3,3 V. To nie jest kropla zastępująca Uno. Spróbuj podłączyć go do 5-znakowego wyświetlacza LCD, a będziesz mieć problemy, jeśli w ogóle zadziała. (LCD)
Rudy,
6

W przypadku mojego produktu wybrałem Arduino Uno :

Arduino Uno R3

do Arduino Pro Mini :

Arduino Pro Mini

Tak, będziesz potrzebować kabla FTDI do programowania i komunikacji szeregowej z komputerem, ale pod warunkiem, że nie potrzebujesz komunikacji przez cały czas, będziesz potrzebować tylko jednego kabla do przesłania programu do każdego urządzenia. Można je również znaleźć dość tanio.

Jednak zauważam, że Arduino Pro Mini jest już wycofany, więc może być nieco trudniej go zdobyć ( nadal jest dostępny na AliExpress ). Z tego powodu sugeruję, aby zamiast tego wypróbować Arduino Nano :

Arduino Nano

co ma dodatkową zaletę wbudowanego USB, co oznacza, że ​​nie potrzebujesz już kabla FTDI do programowania lub komunikacji.

ATMega328P, który jest procesorem tych 3 płyt, nie ma natywnego USB, co oznacza, że ​​płytka musi również zawierać układ FTDI FT232RL, który jest używany w kablu FTDI. Posiadanie tego układu scalonego może zwiększyć koszty.

Za kilka dolarów tańsze na urządzenie, możesz użyć mikrokontrolera (takiego jak ATMega32U4), który ma natywne interfejsy USB (a tym samym oszczędzasz na FTDI IC). Jednym z takich produktów jest Arduino Micro :

Arduino Micro

Wszystkie wymienione płyty są natywne w ekosystemie Arduino i (poza emerytowanym Pro Mini) powinny być łatwe do zakupu online lub w lokalnym sklepie elektronicznym. Twój program Arduino Uno będzie działał dla wszystkich tych alternatyw - wystarczy zmienić płytkę w Arduino IDE:

Wybór tablicy Arduino

Jest jeszcze jedna tablica, o której chciałbym wspomnieć - DigiSpark :

Digispark

Jest odpowiedni tylko dla mniejszych programów, jest ograniczony w niektórych jego funkcjach i nie jest oficjalną tablicą Arduino. Powiedziawszy to, istnieje wiele wsparcia Arduino - i jest tanie!

sa_leinad
źródło
4

Jeśli chcesz trzymać się Arduino i jego zestawu narzędzi, możesz zamówić tylko gołe ATmega 328p (mikrokontroler w sercu Arduino Uno) i używać go samodzielnie!

Są dość tanie (zakres od 1,50 do 3,00 USD) i są przyjazne dla makiet. Aby uzyskać bardziej trwałe rozwiązanie, możesz wlutować je w proto-płytkę (perfboard) lub nawet w specjalnie zaprojektowaną płytkę drukowaną, gdy twój projekt osiągnie ten poziom.

Oto doskonały przewodnik od Arduino o ustawianiu Arduino na płycie chlebowej, używając tylko surowych komponentów, takich jak ATmega 328p. Ta konstrukcja wykorzystuje zewnętrzny zegar zegarowy 16 MHz, podobnie jak Arduino Uno.

Jeśli nie masz nic przeciwko używaniu wewnętrznego zegara 8 MHz na pokładzie 328p, możesz zrezygnować z większości dodatkowych komponentów i po prostu uruchomić surowy układ jak w tym przewodniku (używając Arduino Lilypad Bootloader zamiast domyślnego bootloadera Arduino). Zaoszczędzi to jeszcze więcej pieniędzy!

Tak czy inaczej, będziesz potrzebować programatora AVR, ponieważ nie ma wbudowanego portu USB w 328p. Będzie to najdroższa część tej konfiguracji, ale dobra wiadomość jest taka, że ​​potrzebujesz tylko jednej i może ona zaprogramować dowolne 328p, których potrzebujesz. Można ich również używać do programowania niestandardowych układów, które można programować za pomocą pinów Serial Tx / Rx, takich jak układy ESP (wystarczy je ręcznie podłączyć). Bardzo przydatne, aby mieć jeden z nich, jeśli poważnie myślisz o tego rodzaju mikrokontrolerach.

Układ mikrokontrolera ATmega 328p

Naklejki ATMega Pin

Perfboard

Programator AVR

SnakeDoc
źródło
1
Jeśli zamówisz swój ATMEGA328P-PU z zainstalowanym programem ładującym: ebay.ca/itm/... , to adapter PL2303HX USB na UART (0,70 CDN) będzie działał, aby przesłać „kod”: aliexpress.com/item/…
VE7JRO
Zawsze wydawało mi się dziwne, że Arduino używa specjalnego programu ładującego do programowania zamiast korzystania z wbudowanego interfejsu programowania.
user253751,
@immibis nie jest pewny, co dokładnie masz na myśli, ale programy ładujące arduino robią wiele rzeczy, które znacznie ułatwiają pracę z układami arduino (i chipami Atmel), w tym resetowanie pinów, przełączanie na zegar zewnętrzny, przekazywanie kodu, itd. Bez tego trzeba by było napisać własne ... co byłoby stratą czasu, ponieważ w większości przypadków podstawowy program ładujący Arduino i tak robi wszystko, co chcesz.
SnakeDoc,
1
@immibis Myślę, że o wiele łatwiej jest mieć interfejs portu szeregowego niż interfejs programisty z komputera. Co więcej, szczególnie na początku, myślę (osobista opinia), że chcieli mieć kompletny system na płycie, a zintegrowanie programatora na płytce drukowanej było znacznie trudniejsze niż napisanie seryjnego programu ładującego. Weź pod uwagę, że pierwsze tablice Arduino miały port szeregowy ( Arduino RS232 ), więc do zaprogramowania wielu z nich potrzebny był tylko jeden programista (były używane w szkole)
frarugi87,
1
@ frarugi87 to prawdopodobnie prawda, ale dla prawdziwych początkujących podłączenie kabla USB i użycie Arduino IDE do przesłania „szkiców” jest tak proste, jak to tylko możliwe. Myślę, że zrobili właściwy krok, aby uczynić go super dostępnym, szczególnie dla tych, którzy nie mają doświadczenia z mikrokontrolerem.
SnakeDoc,
4

Lubię Nano i Pro Mini. Lubię z nim pracować na płycie z innymi modułami. Jeśli w grę wchodzi więcej obwodów, uważam to za znacznie wygodniejsze niż używanie Uno. Są szybsze procesory, ale dla wielu projektów 16MHz 328 jest więcej niż wystarczające. I podobnie jak Uno, te dwie części są zasilane napięciem 5 V. Czasami to, z czym musisz się połączyć, nie działa dobrze z procesorami 3,3 V.

Pro Mini i Nano można łatwo wlutować w rozstawiony na 0,1 „rozstawionym” Veroboard (lub odpowiedniku) Jeśli nie masz nic przeciwko kupowaniu sklonowanych części, koszt Nano i Pro Mini to tylko kilka dolarów. Kupowanie części na Aliexpress , a nawet w serwisie eBay, możesz dużo zaoszczędzić, o ile będziesz cierpliwy, jeśli chodzi o dostawę.

Najczęściej używanym przeze mnie modułem jest ESP8266. Jest to potężna platforma WiFi, która kosztuje tylko kilka dolarów i ma dość dojrzałe środowisko Arduino. Często używam tego jako jedynego procesora w projekcie. Użyłem go nawet jako podstawy do rejestratora danych i całkowicie zignorowałem możliwość Wi-Fi. LCD 20x4 znaków, układ pomiaru prądu / napięcia (INA219) oraz karta pamięci SD, zasilana baterią litową 18650.

Istnieje wiele dobrych niedrogich opcji.

Rudy
źródło
3
warto zauważyć, że moduły ESP12 NIE mają rozstawu styków. 1 ", co jest nieco uciążliwe. Istnieją niedrogie płytki zrywalne, ale są one dość szerokie i trudne w użyciu z płytkami lutowniczymi bez lutowania. Poza tym, są bardzo przydatne. Za około 1 USD więcej niż czysty moduł ESP12 można uzyskać Wemos D1 mini (klon), który jest tak samo łatwy w użyciu jak Arduino Pro Mini lub Nano.
Llaves
Gdzie powiedziałem, żeby używać ESP-12? Nie wdałem się w zbyt wiele szczegółów na temat ESP8266, ponieważ tak naprawdę nie było to celem tego pytania. Pomyślałem, że warto o tym wspomnieć, ponieważ wiele osób nie zna go. Całkowicie wspieram osoby korzystające z mini platformy Wemos D1. Jest to rozwiązanie gotowe do pracy w przeciwieństwie do ESP01, ESP12 itp. USB na port szeregowy i wbudowany regulator to duża różnica. Ale nadal uważam, że Nano lub Pro Mini to najbardziej odpowiednia odpowiedź dla osoby, która zadała pytanie.
Rudy,
Trudno rozważyć dowolny system oparty na atmega w 2019 r. W porównaniu do systemów ESP, więc za 2 USD z ESP8266 można wspomnieć, że otrzymujesz procesor 40 MHz, pełną płytę programistyczną (nie chip), WiFi i programowanie oparte na USB i monitoring bez dodatkowych kabli. Wspomnij także o systemach ESP32, które są droższe od 7 do 10 USD, ale zawierają dwa procesory, pełny RTOS, wiele MB pamięci flash, dodaje BT do WIFI i natywną obsługę USB. Dołączona jest kompatybilność z Arduino, a nawet uruchamiając dostarczony RTOS, obejmują one biblioteki Arduino.
Brian Bulkowski
ESP8266 ma procesor 160 MHz. To świetna opcja, ale ma ograniczenia. Ma tylko jeden przetwornik A / C i zły. Cyfrowe piny IO mają również dziwactwa. Rezystory podciągające są domyślnie włączone przy włączaniu większości. Trzy styki we / wy ustawiają tryb pracy i należy zachować szczególną ostrożność. ESP8266 potrzebuje również przyzwoitego zasilacza. W ESP8266 jest dużo kodu działającego w tle i twój kod musi z nim współistnieć. Naprawdę podoba mi się ESP9266, ale nie jest to świetny mikrokontroler ogólnego zastosowania. ESP32 jest lepszy, ale także z problemami.
Rudy,
2

Klony Arduino Pro Micro są super tanie i wszystko, czego potrzebujesz, aby je zaprogramować, to zwykły kabel micro USB. Prawdopodobnie będziesz musiał przylutować nagłówki, aby zrobić coś pożytecznego. Są one dostępne w wersji 3,3 V / 8 MHz i 5 V / 16 MHz.

Pro Micro

AndreKR
źródło
ProMicro ma procesor 3.3v. Może to stanowić problem w przypadku niektórych projektów. To nie jest kropla zastępująca Uno. Ale to ciekawa część.
Rudy,
1
Nie, podobnie jak w Pro Mini jest wersja 5 V / 16 MHz i 3.3 V / 8 MHz.
AndreKR
Przepraszam, mój błąd.
Rudy,