Thay thế nhỏ hơn và rẻ hơn cho Arduino Uno cho các dự án vĩnh viễn


14

Tôi đã chơi một chút xung quanh với một Arduino Uno đi kèm trong một bộ với bánh mì và các thành phần. Tôi sẽ sớm làm một số thứ lâu dài hơn.

Tôi thích một đơn vị nhỏ hơn và rẻ hơn Arduino Uno nhưng điều đó gần như dễ sử dụng như Arduino Uno, và rất giống với việc sử dụng.

Arduino Pro Mini 328 - 5V / 16MHz có phải là bước tiếp theo hợp lý không? Với 1/6 kích thước của Arduino Uno, nó rất nhỏ. Ở mức 10 đô la một mảnh giá cũng tốt.

Tôi hiểu rằng tôi phải hàn để làm cho nó hoạt động. Đó không phải là một vấn đề.

Tôi cũng sẽ cần một bảng nối tiếp USB để lập trình đơn vị chứ?


2
nhỏ hơn tiếp theo với 328p là Nano
Juraj

1
Chip ATmega32u4 cũng là một bước đi tốt (giống như Leonardo) cho micro 8 bit. Mã hóa hơi khác so với UNO / 328p (đặc biệt là nối tiếp), nhưng bạn tránh bộ chuyển đổi USB / nối tiếp. Cuối cùng, bạn có thể tạo PCB của riêng mình và sử dụng chip SMD, cho một dự án thực sự nhỏ gọn.
MichaelT

1
Mô-đun Pro Mini, 5V 16 MHz với Bộ tạo dao động tinh thể ($ 2,18CDN): AliExpress.com/item/ . Bộ chuyển đổi USB sang UART PL2303HX ($ 0,70CDN): AliExpress.com/item/ ,.
VE7JRO

Câu trả lời:


8

Tôi nghĩ rằng sự lựa chọn tốt nhất đầu tiên là loại bỏ chip ATMega328p-pu khỏi Arduino UNO của bạn và kết hợp nó vào mạch cuối cùng của bạn. Các chip chỉ khoảng $ 1,50.

Bằng cách đó, bạn chỉ có thể sử dụng UNO của mình như một lập trình viên thay vì thiết bị cuối cùng mà bạn triển khai.

Tôi không chắc tại sao không có thêm tài liệu về cách thích hợp để loại bỏ chip ATMega328p-pu và sử dụng nó trên bảng mạch của bạn sau khi hoàn thành chương trình của bạn.

Tôi giải thích chính xác làm thế nào để làm điều này trên blog của mình: http://raddev.us/arduino/post/2018/07/03/arduino-uno-USE-your-atmega328p-u-as-stand-alone

Nhưng, đây là những điều cơ bản. Đầu tiên bạn gỡ chip. Nó sẽ trông giống như sau khi bạn làm như vậy. (Lưu ý: Tôi đang sử dụng bản sao Elegoo của UNO).

loại bỏ chip atmega328p-pu

Tiếp theo, bạn cấp nguồn cho chân 7 và kết nối chân 8 với GND.

Cần một tinh thể 16 MHz

Nhưng, con chip dường như sẽ không chạy bản phác thảo của bạn vào thời điểm này. Đó là bởi vì bạn thực sự cần một tinh thể để chạy ở 16 MHz.

Hội đồng UNO đã cài đặt chip đó và đó là lý do tại sao nó hoạt động. Bạn có thể thấy nó ở đây:

Tinh thể 16 MHz trên UNO

Cuối cùng, bạn thêm tinh thể 16 MHz và một vài mũ 22pF và chip của bạn sẽ chạy độc lập (không có UNO).

Bạn thêm tinh thể vào chân 9 & 10. Bạn có thể xem tất cả các chi tiết bằng cách đọc mục blog của tôi hoặc đọc biểu dữ liệu atmega328 .

pha lê trên bánh mì

Cuối cùng, chỉ cần dây mọi thứ khác

Sau đó, chỉ cần nối phần còn lại của mạch với các chân thích hợp và bạn có thể chạy độc lập ATMega328p-pu của mình.

Đó thực sự là một kinh nghiệm học tập tốt đẹp quá.
Chỉ cần mua chip thay thế atmega328p-pu cho UNO của bạn và bạn có thể tạo tất cả các dự án bạn muốn với giá rất rẻ.


2
Bạn sẽ được phục vụ tốt để thêm một số bảo vệ mạch trong đó, vì 328p không có bất kỳ thứ gì thuộc sở hữu của nó. Nếu không, đây là một cách tuyệt vời để đi.
SnakeDoc

1
@duskwuff, tôi tin rằng chỉ khi bạn làm DAC. Đây chỉ là một ví dụ đơn giản để khiến ai đó bắt đầu theo hướng sử dụng chip dưới dạng độc lập. Tôi đảm bảo với bạn mã để nhấp nháy đèn LED trong mẫu không chạy. Ngoài ra, khi tôi bắt đầu, tôi đã tạo ra mạch tôi đã đề cập trong một nhận xét ở trên và tôi chưa bao giờ kết nối AVCC và GND và mạch đã chạy trong hai năm. Tất nhiên, tôi không nói rằng điều đó sẽ luôn luôn đúng. Chỉ cần đề cập đến cách thức hoạt động của chip. Như mọi khi, hãy kiểm tra biểu dữ liệu để biết thông số kỹ thuật chính xác và đặc biệt nếu bạn trải nghiệm điều gì đó khác biệt. Cảm ơn.
raddevus

1
@raddevus Tham khảo Bảng 28.8 trong biểu dữ liệu: "AVCC tuyệt đối tối thiểu / tối đa: 1.8V / 5.5V". Rời khỏi AVCC không có nguồn lực là điều không thể, và có thể gây ra thiệt hại. Chân GND trên chân 22 không được liên kết cụ thể với ADC và phải được kết nối với GND.
duskwuff

1
@duskwuff Cảm ơn cuộc thảo luận khai sáng. Tôi đồng ý với những gì bạn đang nói và sẽ sớm thay đổi tài liệu và mạch của tôi để đảm bảo luôn được kết nối. FYI - Tôi đã bắt đầu làm việc với ATMega328p-pu thông qua cuốn sách tuyệt vời Lập trình AVR: Học cách viết phần mềm cho phần cứng ( amzn.to/2PS9OOA ) và trong các mạch đầu tiên đó, tác giả Elliott Williams cũng không kết nối các chân đó. Tôi nghĩ rằng tôi đã bị ảnh hưởng bởi điều đó. Cuốn sách thực sự là tuyệt vời mặc dù và tác giả có kiến ​​thức. Cảm ơn một lần nữa, cuộc thảo luận tuyệt vời.
raddevus

1
@reddevus. Nói chính xác hơn, tinh thể mà bạn chỉ ra trong hộp màu đỏ trong câu trả lời này là tinh thể được sử dụng bởi vi điều khiển xử lý giao tiếp USB, chứ không phải bởi chip ATmega328p-pu. Bạn có thể thấy từ sơ đồ Uno rằng chip ATmega328p-pu thực sự sử dụng một bộ cộng hưởng: mouser.com / ProducttDailail / Serata
Kavka

7

Kiểm tra bảng phát triển STM32F103C8T6, giá khoảng 1,5 đô la, và nhanh hơn / có nhiều bộ nhớ hơn Arduino Uno và nhỏ hơn nhiều.

Nó có thể hoạt động với Arduino IDE, nhưng không phải tất cả các thư viện đều được hỗ trợ, vì vậy hãy kiểm tra trước khi bạn muốn sử dụng nó nếu các thư viện đã sử dụng của bạn được hỗ trợ hoặc nếu có các thư viện khác bạn có thể sử dụng thay thế.

Cập nhật

Sự khác biệt:

                       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

Lưu ý: như được viết trước đó, mặc dù thông số kỹ thuật tốt hơn, không phải tất cả các thư viện đều được hỗ trợ. Ngoài ra một lập trình viên cần phải được mua (chỉ một lần, chi phí khoảng 5 đô la).


1
Bạn cũng có thể tránh nhận được lập trình viên nếu bạn nhận được các bản sao Maple Mini (cùng uC, gần như cùng một CTNH, nhưng với bộ tải khởi động đã được flash)
frarugi87

1
@ frarugi87 Hoặc bạn có thể sử dụng bộ tải khởi động UART dựng sẵn (được kích hoạt bằng cách đặt BOOT0 cao) để lập trình ban đầu.
duskwuff

STM32F103C8T6 là một phần tuyệt vời. Nhưng nó vẫn chỉ là 3,3v. Nó không phải là một sự thay thế cho Uno. Hãy thử kết nối nó với màn hình LCD 5v ký tự và bạn sẽ gặp vấn đề, nếu nó hoạt động hoàn toàn. (LCD)
Rudy

6

Đối với sản phẩm của tôi, tôi đã đi từ một Arduino Uno :

Arduino Uno R3

với Arduino Pro Mini :

Arduino Pro Mini

Có, bạn sẽ cần cáp FTDI để lập trình và nối tiếp cho PC, nhưng với điều kiện bạn không cần coms mọi lúc, bạn sẽ chỉ cần một cáp để tải chương trình lên từng thiết bị. Họ có thể được tìm thấy khá rẻ quá.

Tuy nhiên tôi nhận thấy rằng Arduino Pro Mini đã ngừng hoạt động, vì vậy nó có thể khó tìm nguồn hơn một chút (nó vẫn có sẵn trên AliExpress ). Vì vậy, vì lý do này, tôi khuyên bạn nên thử Arduino Nano :

Arduino Nano

có lợi thế bổ sung của USB trên bo mạch, có nghĩa là bạn không còn cần cáp FTDI để lập trình hoặc coms.

ATMega328P là bộ xử lý của 3 bo mạch này không có USB gốc, điều đó có nghĩa là bo mạch cũng cần bao gồm IC FTDI FT 232RL được sử dụng trong cáp FTDI. Có IC này có thể thêm chi phí bổ sung cho dòng dưới cùng của bạn.

Đối với một vài đô la rẻ hơn cho mỗi thiết bị, bạn có thể sử dụng một bộ vi điều khiển (chẳng hạn như ATMega32U4) có coms USB gốc (và do đó bạn tiết kiệm được IC FTDI). Một sản phẩm như vậy là Arduino Micro :

Arduino vi

Tất cả các bảng được đề cập đều có nguồn gốc trong Hệ sinh thái Arduino và (ngoài Pro Mini đã nghỉ hưu) nên dễ dàng tìm nguồn trực tuyến hoặc tại cửa hàng điện tử địa phương của bạn. Chương trình Arduino Uno của bạn sẽ hoạt động cho tất cả các lựa chọn thay thế này - bạn chỉ cần thay đổi bảng trong Arduino IDE:

Lựa chọn bảng Arduino

Có một bảng nữa mà tôi muốn đề cập - DigiSpark :

Công viên đào

Nó chỉ phù hợp với các chương trình nhỏ hơn, bị hạn chế trong một số tính năng của nó và không phải là một bo mạch Arduino chính thức. Phải nói rằng, có rất nhiều hỗ trợ Arduino - và giá rẻ của nó!


4

Nếu bạn muốn gắn bó với việc sử dụng Arduino và đó là toolchain, bạn có thể đặt mua một ATmega 328p (bộ vi điều khiển ở trung tâm của Arduino Uno) và sử dụng nó!

Chúng có chi phí khá thấp (khoảng $ 1,50- $ 3,00) và thân thiện với bánh mì. Đối với một giải pháp lâu dài hơn, bạn có thể hàn chúng vào một bảng proto (perfboard), hoặc thậm chí một bảng mạch được thiết kế tùy chỉnh một khi thiết kế của bạn đạt đến mức đó.

Đây là một hướng dẫn tuyệt vời từ những người yêu thích Arduino về việc thiết lập Arduino trên bảng mạch, chỉ sử dụng các thành phần thô như ATmega 328p. Thiết kế này sử dụng một tinh thể đồng hồ 16 MHz bên ngoài, giống như Arduino Uno.

Nếu bạn ổn với việc sử dụng đồng hồ 8 MHz bên trong trên 328p, bạn có thể loại bỏ hầu hết các thành phần bổ sung và chỉ chạy chip thô như trong hướng dẫn này (sử dụng Bộ tải khởi động Arduino Lilypad thay vì bộ tải khởi động Arduino mặc định). Điều này sẽ tiết kiệm nhiều tiền hơn!

Dù bằng cách nào, bạn sẽ cần một đơn vị Lập trình AVR, vì không có cổng USB được tích hợp trong 328p. Đây sẽ là phần đắt nhất của thiết lập này, nhưng tin tốt là bạn chỉ cần một cái, và nó có thể lập trình bất kỳ 328p nào bạn cần. Chúng cũng có thể được sử dụng để lập trình các chip không chuẩn có khả năng được lập trình qua các chân Tx / Rx nối ​​tiếp, chẳng hạn như các chip ESP (bạn chỉ cần nối dây chúng). Rất hữu ích để có một trong số này nếu bạn nghiêm túc về các loại vi điều khiển này.

Chip vi điều khiển ATmega 328p

Dán pin ATMega

Vách ngăn

Lập trình viên AVR


1
Nếu bạn đặt hàng ATMEGA328P-PU với bộ tải khởi động đã được cài đặt: ebay.ca/itm/ , thì một bộ chuyển đổi USB sang UART PL2303HX ($ 0,70CDN) sẽ hoạt động để tải lên "mã": AliExpress.com/item/ Thẻ
VE7JRO

Tôi luôn thấy kỳ lạ là Arduino sử dụng bộ tải khởi động đặc biệt để lập trình thay vì sử dụng giao diện lập trình tích hợp.
dùng253751

@immibis không chắc ý chính xác của bạn là gì, nhưng bộ tải khởi động arduino làm rất nhiều việc giúp làm việc với arduino (và chip Atmel) dễ dàng hơn nhiều, bao gồm đặt lại chân, chuyển sang đồng hồ bên ngoài, chuyển sang mã của bạn, v.v.
SnakeDoc

1
@immibis Tôi nghĩ rằng có một giao diện cổng nối tiếp dễ dàng hơn nhiều so với giao diện lập trình từ PC. Hơn nữa, đặc biệt là vào lúc đầu, tôi nghĩ (ý kiến ​​cá nhân) rằng họ muốn có một hệ thống hoàn chỉnh trên một bảng, và việc tích hợp một lập trình viên trên PCB khó hơn nhiều so với việc viết một bộ tải khởi động nối tiếp. Hãy xem xét rằng các bảng arduino đầu tiên có cổng nối tiếp ( Arduino RS232 ), vì vậy chỉ cần một lập trình viên để lập trình rất nhiều trong số chúng (chúng được sử dụng ở trường)
frarugi87

1
@ frarugi87 điều đó có thể đúng, nhưng đối với những người mới bắt đầu thực sự, việc cắm cáp USB và sử dụng Arduino IDE để tải lên "bản phác thảo" dễ dàng nhất có thể. Tôi nghĩ rằng họ đã thực hiện đúng động thái để làm cho nó siêu dễ tiếp cận, đặc biệt là đối với những người không có kinh nghiệm vi điều khiển.
SnakeDoc

4

Tôi thích Nano và Pro Mini. Tôi thích làm việc với nó trên một bảng mạch với các mô-đun khác. Nếu có nhiều mạch liên quan tôi thấy nó thuận tiện hơn nhiều so với sử dụng Uno. Có bộ xử lý nhanh hơn nhưng đối với rất nhiều dự án, 16Mhz 328 là quá đủ. Và giống như Uno, hai bộ phận này là các bộ phận hỗ trợ 5 volt. Đôi khi những gì bạn cần kết nối không hoạt động tốt với bộ xử lý 3,3 volt.

Pro Mini và Nano dễ dàng được hàn thành "Veroboard" cách nhau 0,1 "(hoặc tương đương) Nếu bạn không ngại mua các bộ phận nhân bản, chi phí của Nano và Pro Mini chỉ là một vài đô la. hoặc thậm chí Ebay, có thể giúp bạn tiết kiệm rất nhiều, miễn là bạn kiên nhẫn khi giao hàng.

Mô-đun mà tôi hiện đang sử dụng thường xuyên nhất là ESP8266. Nó là một nền tảng WiFi mạnh mẽ, chỉ tốn một vài đô la và có một khung Arduino khá trưởng thành. Thường thì tôi sử dụng nó như là bộ xử lý duy nhất trong thiết kế. Tôi thậm chí đã sử dụng nó làm cơ sở cho một bộ ghi dữ liệu và hoàn toàn bỏ qua khả năng WiFi. LCD 20x4 ký tự, chip đo dòng điện / điện áp (INA219) và thẻ nhớ SD, được cung cấp bởi pin lithium 18650.

Có rất nhiều lựa chọn tốt không tốn kém.


3
bạn có thể muốn chỉ ra rằng các mô-đun ESP12 KHÔNG có khoảng cách pin .1 ", điều này hơi phiền toái. Có những bảng đột phá rẻ tiền, nhưng chúng khá rộng và khó sử dụng với các bảng mạch không hàn. Nó khá tiện dụng. Với khoảng hơn 1 đô la so với mô-đun ESP12 trần, bạn có thể nhận được Wemos D1 mini (bản sao) dễ sử dụng như Arduino Pro Mini hoặc Nano.
Llaves

Tôi đã nói sử dụng ESP-12 ở đâu? Tôi đã không đi sâu vào nhiều chi tiết trên ESP8266 vì đó thực sự không phải là trọng tâm của câu hỏi. Tôi nghĩ rằng nó đáng được đề cập vì nhiều người không quen thuộc với nó. Tôi hoàn toàn hỗ trợ mọi người sử dụng nền tảng mini Wemos D1. Đó là một giải pháp sẵn sàng để sử dụng không giống như ESP01, ESP12, v.v. USB sang nối tiếp và bộ điều chỉnh trên bo mạch tạo ra sự khác biệt lớn. Nhưng tôi vẫn cảm thấy Nano hay Pro Mini là câu trả lời thích hợp nhất cho người đặt câu hỏi.
Rudy

Thật khó để xem xét bất kỳ hệ thống dựa trên atmega nào vào năm 2019 so với các hệ thống ESP, vì vậy bạn có thể đề cập với giá 2 đô la với một chiếc ESP8266 bạn có bộ xử lý 40MHZ, bảng phát triển đầy đủ (không phải chip), wifi và lập trình dựa trên USB và giám sát mà không cần thêm cáp. Và cũng đề cập đến các hệ thống ESP32, đắt hơn ở mức 7 đến 10 đô la, nhưng chứa hai CPU, RTOS đầy đủ, nhiều MB flash, thêm BT vào WIFI và hỗ trợ USB gốc. Khả năng tương thích với Arduino được bao gồm, và thậm chí chạy RTOS được cung cấp, chúng bao gồm các thư viện Arduino.
Brian Bulkowski

ESP8266 có bộ xử lý 160 MHz. Đó là một lựa chọn tuyệt vời nhưng nó có những hạn chế. Nó chỉ có một bộ chuyển đổi A / D và một bộ chuyển đổi xấu ở đó. Các chân IO kỹ thuật số cũng có quirks. Các điện trở kéo lên được bật theo mặc định khi bật nguồn hầu hết. Ba chân IO đặt chế độ vận hành và phải được chăm sóc đặc biệt. ESP8266 cũng cần một nguồn cung cấp năng lượng tốt. Với ESP8266, có rất nhiều mã đang chạy trong nền và mã của bạn phải cùng tồn tại với nó. Tôi thực sự thích ESP9266 nhưng nó không phải là một vi điều khiển có mục đích chung tuyệt vời. Các ESP32 là tốt hơn nhưng cũng có vấn đề.
Rudy

2

Bản sao Arduino Pro Micro có giá siêu rẻ và tất cả những gì bạn cần để lập trình chúng là cáp micro USB bình thường. Bạn có thể sẽ phải hàn các tiêu đề để làm bất cứ điều gì hữu ích. Chúng có sẵn trong phiên bản 3,3V / 8 MHz và 5V / 16Mhz.

Pro vi


ProMicro có bộ xử lý 3.3v. Đó có thể là một vấn đề với một số thiết kế. Nó không phải là một sự thay thế cho một Uno. Nhưng nó là một phần thú vị.
Rudy

1
Không, giống như với Pro Mini, có phiên bản 5V / 16 MHz và 3.3V / 8 MHz.
AndreKR

Xin lỗi, lỗi của tôi.
Rudy
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.