Raspberry Pi Pico là bo vi điều khiển rẻ nhất trong hệ sinh thái Raspberry Pi, nhưng nó không phải một chiếc máy tính thu nhỏ. Không hệ điều hành, không màn hình, không SSH. Cắm điện là chương trình trong bộ nhớ chạy ngay, chỉ vài mili giây, và đó là lý do dòng bo này thành lựa chọn mặc định cho các dự án cần điều khiển phần cứng thật: đọc cảm biến, bật relay, quay động cơ bước, đếm xung encoder.

Bài này đi từ con số 0 đến một mạch LED hoàn chỉnh: nhận diện bo, hiểu sơ đồ chân, nạp MicroPython bằng Thonny, chạy chương trình đầu tiên, điều khiển LED onboard rồi dựng mạch ba LED trên breadboard. Phần cuối là bảng xử lý sự cố cho những lỗi người mới gặp nhiều nhất và cách chọn giữa các phiên bản Raspberry Pi Pico đang bán.

Raspberry Pi Pico là gì

Raspberry Pi Pico dùng chip RP2040, vi điều khiển đầu tiên do chính Raspberry Pi thiết kế. Thông số cần nhớ: hai nhân Arm Cortex-M0+ chạy tới 133 MHz, 264 KB SRAM, 2 MB flash QSPI gắn trên bo, 26 chân GPIO trong đó ba chân có ADC 12 bit (500 nghìn mẫu/giây), 2 UART, 2 SPI, 2 I2C, 16 kênh PWM, USB 1.1 và 8 máy trạng thái PIO. Bo đo 21 x 51 mm, mép có lỗ bán nguyệt để hàn trực tiếp lên board mạch in khác.

Khác biệt lớn nhất so với Raspberry Pi 4 hay Pi 5: máy tính nhúng chạy hệ điều hành, khởi động mất vài chục giây, tắt điện đột ngột là hỏng thẻ nhớ. Raspberry Pi Pico chạy trực tiếp chương trình, không có gì để hỏng khi mất điện, và đánh thức được từ chế độ ngủ bằng một ngắt ngoài. Với dự án chạy pin nhiều tháng, khoảng cách về điện năng tiêu thụ là hàng trăm lần.

Bo mạch Raspberry Pi Pico H màu xanh với hai hàng header 40 chân hàn sẵn
Raspberry Pi Pico H: phiên bản đã hàn sẵn header, cắm thẳng vào breadboard được ngay.
Cận cảnh Raspberry Pi Pico H nhìn ngang thấy chip RP2040, nút BOOTSEL và cổng Micro-USB
Chip RP2040 nằm giữa bo, cạnh đó là nút BOOTSEL và cổng Micro-USB cấp nguồn kiêm đường nạp code.

Chuẩn bị

Mức tối thiểu chỉ gồm hai thứ: một bo Raspberry Pi Pico và một cáp Micro-USB có truyền dữ liệu. Nếu làm phần LED của bài thì thêm breadboard, ba LED 5 mm, ba điện trở 330 ohm và một ít dây jumper. Thiếu cáp đúng chuẩn thì lấy cáp nguồn USB-A sang Micro USB 1 m, còn breadboard thì dùng đế test 400 lỗ là vừa đủ cho cả bo lẫn ba LED.

Nên chọn bản Pico H vì header 40 chân đã hàn sẵn. Bản Pico trơn rẻ hơn vài chục nghìn nhưng phải tự hàn, và mối hàn đầu tiên của người mới thường không đủ chắc để cắm vào breadboard. Bản Pico W có Wi-Fi nhưng người mới chưa dùng tới trong vài tuần đầu.

Một lưu ý hay gây mất thời gian: rất nhiều cáp Micro-USB ngoài thị trường chỉ có hai dây nguồn, không có dây dữ liệu. Cắm vào thì bo lên đèn nhưng máy tính không thấy thiết bị nào. Nếu làm đúng mọi bước mà vẫn không thấy ổ RPI-RP2, thử ngay một cáp khác trước khi nghi ngờ bo.

Sơ đồ chân Raspberry Pi Pico

Hai bên bo Raspberry Pi Pico là 40 chân, đánh số từ 1 đến 40 ngược chiều kim đồng hồ, bắt đầu từ chân trên cùng bên trái khi nhìn từ mặt có chip. Trong 40 chân đó chỉ có 26 chân là GPIO thật (GPIO0 đến GPIO25), phần còn lại là nguồn và đất. Ba nhóm màu cần phân biệt trên sơ đồ chân Raspberry Pi Pico chính thức:

  • Xanh lá: chân GPIO, dùng làm đầu vào hoặc đầu ra tùy cấu hình trong code
  • Đỏ: chân nguồn, dùng nhiều nhất là 3V3(OUT) – đầu ra 3,3 V từ mạch buck-boost trên bo, cấp cho cảm biến và module ngoài
  • Đen: GND. Có tới tám chân GND rải khắp bo, nối tất cả về cùng một điểm đất

Ba chân hay dùng: VBUS là 5 V lấy trực tiếp từ cổng USB, VSYS là đầu vào nguồn chính chịu được 1,8 đến 5,5 V nên rất tiện khi chạy pin, 3V3_EN dùng để tắt nguồn 3,3 V bằng tín hiệu ngoài. Riêng GPIO25 không đưa ra mép bo mà nối thẳng vào LED nhỏ trên mạch, nên chương trình phần cứng đầu tiên của hầu hết tài liệu Raspberry Pi Pico đều là bật LED onboard.

Sơ đồ chân Raspberry Pi Pico 40 chân với các nhóm màu GPIO, GND, nguồn và chân ADC
Sơ đồ 40 chân của Raspberry Pi Pico: xanh lá là GPIO, đen là GND, đỏ là chân nguồn, hồng là chân chức năng đặc biệt.

Cài Thonny và nạp MicroPython

Raspberry Pi Pico lập trình được bằng C/C++ với SDK chính thức, bằng Arduino, bằng CircuitPython, nhưng MicroPython phổ biến nhất vì cú pháp giống Python 3 và mọi ví dụ trên mạng đều dùng nó. MicroPython là bản Python 3 rút gọn, bỏ phần lớn thư viện chuẩn để nhét vừa vài trăm KB flash của vi điều khiển. Công cụ soạn thảo là Thonny, một IDE nhẹ, và quan trọng nhất: nó có sẵn chức năng nạp firmware cho bo, không cần dùng dòng lệnh.

Cài Thonny

Vào thonny.org, tải bản dành cho hệ điều hành đang dùng. Với Windows 10/11 64 bit thì chọn bản 64 bit, trang web sẽ tự gợi ý. Cứ để mặc định trong lúc cài, mất chưa tới một phút. Trên Linux cần thêm quyền nhóm dialout để mở được cổng USB. Cài xong, gõ Thonny ở Start Menu là mở được chương trình.

Khung tải phần mềm Thonny trên trang thonny.org
Trang chủ thonny.org, khung tải phần mềm nằm ngay đầu trang.
Rê chuột vào tên hệ điều hành trên trang tải Thonny để hiện các bản cài
Rê chuột lên tên hệ điều hành, trang sẽ gợi ý bản cài phù hợp với máy đang dùng.
Biểu tượng Thonny hiện trong Start Menu của Windows 10 và 11
Sau khi cài, gõ “Thonny” ở Start Menu là mở được chương trình.

Đưa bo vào chế độ nạp firmware

Cắm cáp Micro-USB vào bo trước, đầu còn lại chưa cắm vào máy tính. Tìm nút BOOTSEL hình bầu dục màu trắng trên mặt bo, giữ nút đó, đồng thời cắm đầu USB còn lại vào máy tính, giữ thêm khoảng một giây rồi thả ra.

Lúc này bo không chạy chương trình nào cả. Nó khởi động vào bootloader UF2 có sẵn trong ROM của RP2040 và hiện ra với máy tính như một ổ USB tên RPI-RP2. Đây là cơ chế nạp firmware của dòng RP2040: không cần đầu nạp, không cần phần mềm riêng, chỉ cần copy một tệp .uf2 vào ổ đó, bootloader tự ghi vào flash và khởi động lại.

Nút BOOTSEL hình bầu dục màu trắng trên bo Raspberry Pi Pico H
Nút BOOTSEL: giữ nút này trong lúc cắm cáp USB để bo vào chế độ nạp firmware.

Nạp MicroPython bằng Thonny

Trong Thonny, nhìn góc dưới bên phải cửa sổ, sẽ thấy dòng chữ dạng MicroPython (Raspberry Pi Pico) kèm tên cổng COM. Bấm vào đó, chọn Install MicroPython. Hộp thoại yêu cầu ba thông tin: ổ đích (RPI-RP2), dòng chip (RP2) và biến thể bo. Chọn Raspberry Pi Pico / Pico H, để phiên bản firmware mới nhất, bấm Install.

Góc dưới bên phải cửa sổ Thonny có menu chọn phiên dịch MicroPython Raspberry Pi Pico
Góc dưới phải cửa sổ Thonny, bấm vào dòng MicroPython để mở menu cài firmware.

Con số phiên bản trong ảnh chỉ đúng ở thời điểm bài gốc được viết; MicroPython hiện đã lên các bản 1.2x và danh sách biến thể trong Thonny mới có thêm Pico 2, Pico 2 W. Nếu không thấy đúng bo đang dùng, cách chắc chắn hơn là tải tệp .uf2 từ trang chủ MicroPython rồi kéo thả vào ổ RPI-RP2 trong File Explorer, kết quả giống hệt nhau.

Hộp thoại Install MicroPython của Thonny chọn ổ RPI-RP2, biến thể Raspberry Pi Pico và phiên bản firmware
Hộp thoại nạp firmware: chọn ổ RPI-RP2, đúng biến thể bo và phiên bản MicroPython mới nhất.

Nạp xong, bo tự khởi động lại. Vào Run, chọn Configure interpreter, đặt dòng đầu là MicroPython (Raspberry Pi Pico) và chọn đúng cổng COM. Nếu danh sách cổng có nhiều mục, ghi lại các cổng đang có, rút bo ra, mở lại hộp thoại – cổng nào biến mất chính là cổng của Raspberry Pi Pico.

Hộp thoại Configure interpreter của Thonny để chọn cổng COM của Raspberry Pi Pico
Mục Run > Configure interpreter: chọn MicroPython (Raspberry Pi Pico) rồi chọn đúng cổng COM.

Khi mọi thứ đúng, cột trái của Thonny hiện cây tệp của Raspberry Pi Pico, khung Shell bên dưới hiện thông tin firmware. Từ đây bo hoạt động như một ổ đĩa nhỏ: tệp boot.py chạy mỗi lần cấp nguồn, tệp main.py chạy ngay sau đó. Muốn bo tự chạy chương trình khi rút khỏi máy tính, lưu code vào main.py trên bo.

Cửa sổ Thonny hiện cây thư mục Raspberry Pi Pico bên trái và Shell bên phải
Khi Thonny nhận bo, cột trái hiện cây tệp của Pico và khung Shell hiện thông tin firmware.

Chương trình đầu tiên

Bài kiểm tra nhỏ nhất để chắc chắn toàn bộ đường truyền hoạt động: in một chuỗi ký tự ra Shell. Gõ hoặc dán dòng sau vào khung soạn thảo phía trên, rồi bấm nút Run màu xanh:

print("This is my Pico talking")

Kết quả hiện ở khung Shell bên dưới, đúng nguyên văn chuỗi vừa nhập. Hai điểm cần nhớ ngay từ dòng code đầu tiên: chuỗi ký tự luôn nằm trong cặp nháy kép và bên trong cặp ngoặc đơn, và Python phân biệt hoa thường – print viết thường, không phải Print.

Khung Shell của Thonny hiện dòng chữ This is my Pico talking
Chương trình đầu tiên chạy xong: chuỗi ký tự được in ra khung Shell.

Hàm print là công cụ gỡ lỗi rẻ nhất khi làm việc với Raspberry Pi Pico. Không có màn hình, không có log hệ thống, nên muốn biết chương trình dừng ở đâu hay biến đang giữ giá trị gì thì in nó ra Shell. Người mới thường bỏ qua bước này rồi mất hàng giờ đoán mò.

Điều khiển LED onboard

GPIO có hai chế độ: đầu vào và đầu ra. Đầu vào dùng khi có thứ gì đó gửi tín hiệu vào bo – nút bấm, cảm biến, xung encoder. Đầu ra dùng khi bo điều khiển thứ khác – LED, buzzer, relay. LED onboard là ví dụ gọn nhất của đầu ra trên Raspberry Pi Pico: một chân GPIO, một mức điện áp, không có linh kiện ngoài.

Cần import lớp Pin từ module machine để dùng được GPIO trên Raspberry Pi Pico. Import trong MicroPython giống Python: kéo code từ module khác vào, chỉ khác là các module ở đây gắn chặt với phần cứng. Với bo Pico và Pico H, LED nối với GPIO25:

from machine import Pin
onboardLED = Pin(25, Pin.OUT)
onboardLED.value(1)

Ba dòng, ba việc: lấy lớp Pin, khai báo GPIO25 là đầu ra và đặt tên cho nó là onboardLED, rồi gán giá trị 1 – tức mức cao, LED sáng. Đổi số 1 thành 0 rồi chạy lại, LED tắt. Trên Raspberry Pi Pico, 1 luôn là bật và 0 luôn là tắt.

Với Pico W, đoạn code trên không sáng đèn. Trên Raspberry Pi Pico W, LED không nối vào GPIO25 mà nối vào một chân của chip không dây CYW43439, và MicroPython đặt tên cho chân đó là LED. Cách viết đúng:

from machine import Pin
onboardLED = Pin('LED', Pin.OUT)
onboardLED.value(1)

Đây là lỗi rất hay gặp: chép code từ bài hướng dẫn Raspberry Pi Pico bản thường rồi chạy trên Pico W, thấy không có phản ứng gì và tưởng bo hỏng. Chỉ cần đổi số 25 thành chuỗi 'LED', kể cả cặp nháy đơn. Cách viết Pin('LED', ...) cũng chạy được trên Pico 2 W vì firmware xử lý tên chân đặc biệt này.

Vị trí LED onboard màu xanh lá cạnh cổng USB trên Raspberry Pi Pico, nối với GPIO25
LED onboard nối với GPIO25, nằm ngay cạnh cổng USB.

Mạch 3 LED trên breadboard

Trước khi cắm dây, rút cáp USB ra. Nguyên tắc khi làm mạch với Raspberry Pi Pico: mọi thay đổi phần cứng đều thực hiện khi bo đã mất điện, vì chập chân nguồn xuống đất trong lúc bo đang chạy có thể làm hỏng chân GPIO hoặc cả chip.

Breadboard hoạt động thế nào

Breadboard có hai ray ngang chạy dọc hai bên, ký hiệu màu đỏ và xanh. Toàn bộ lỗ trên một ray đỏ nối với nhau, tương tự với ray xanh, nhưng ray bên trái và bên phải hoàn toàn tách rời. Người ta dùng ray đỏ cho nguồn và ray xanh cho GND.

Phần giữa là các rãnh dọc, mỗi rãnh gồm năm lỗ nối liền, và rãnh giữa chia breadboard làm hai nửa không thông nhau. Hiểu đúng hai quy tắc này là đủ để không phải hỏi tại sao mạch không chạy: linh kiện cắm cùng một rãnh dọc thì nối với nhau, khác rãnh hoặc khác nửa thì không. Ấn Raspberry Pi Pico xuống hết cỡ sao cho không còn nhìn thấy phần kim loại của chân header, và bo phải bắc qua rãnh giữa, mỗi bên header nằm trên một nửa breadboard.

Raspberry Pi Pico H cắm sâu xuống breadboard trắng, hai hàng chân nằm hai bên rãnh giữa
Ấn bo xuống hết cỡ để chân header ăn sâu vào breadboard, không còn thấy phần kim loại.

Đấu LED và điện trở

Đặt ba LED xuống nửa dưới của breadboard, cách nhau một lỗ, chân dài quay sang phải. Chân dài là anode (cực dương), chân ngắn là cathode (cực âm), nhìn kỹ sẽ thấy một cạnh phẳng ở phía chân ngắn. LED phân cực, cắm ngược thì không sáng, và đây là lỗi số một của người mới.

Ba LED xanh lá, vàng và đỏ cắm trên breadboard, chân dài quay sang phải
Ba LED xanh lá, vàng, đỏ đặt cách nhau một lỗ, chân dài (anode) quay sang phải.

Mỗi LED cần một điện trở nối tiếp để giới hạn dòng. Tính nhanh: chân GPIO của Raspberry Pi Pico phát 3,3 V, LED đỏ sụt áp khoảng 2,0 V, còn lại 1,3 V rơi trên điện trở. Với 330 ohm, dòng qua LED là 1,3 chia 330, tức khoảng 4 mA – đủ sáng rõ trong nhà và an toàn cho chân GPIO. Bỏ điện trở, dòng chỉ bị giới hạn bởi nội trở của chân chip, LED có thể cháy và chân GPIO hỏng vĩnh viễn. Đặt điện trở từ chân trái của mỗi LED xuống ray xanh phía dưới; ray này sẽ nối về GND nên toàn bộ cathode chung một điểm đất.

Ba điện trở 330 ohm nối từ chân trái của mỗi LED xuống ray âm màu xanh trên breadboard
Mỗi LED một điện trở 330 ohm, nối từ chân trái xuống ray âm (ray xanh) của breadboard.

Dùng một dây jumper nối ray xanh về chân GND của bo, chân vật lý số 38 là lựa chọn thuận tay vì nằm cùng phía. Ba dây còn lại nối chân phải của từng LED lên ba chân GPIO: LED xanh lá vào GPIO18 (chân 24), LED vàng vào GPIO19 (chân 25), LED đỏ vào GPIO20 (chân 26). Màu dây không ảnh hưởng gì đến hoạt động, nhưng nên giữ thói quen đen cho GND và đỏ cho nguồn để sau này đọc lại mạch không bị nhầm.

Mạch LED hoàn chỉnh trên breadboard với dây jumper nối ray âm và các chân GPIO18, GPIO19, GPIO20 của Raspberry Pi Pico
Mạch hoàn chỉnh: ray âm nối về chân 38 (GND), ba chân phải của LED nối lên GPIO18, GPIO19, GPIO20.

Code điều khiển ba LED

Đoạn code dưới đây bật cả ba LED, đợi 5 giây rồi tắt. Nó cần thêm module time, module tạo độ trễ trong chương trình – thứ gần như dự án Raspberry Pi Pico nào cũng dùng, từ nhấp nháy LED đến chờ cảm biến ổn định sau khi cấp nguồn.

from machine import Pin
import time

led1 = Pin(18, Pin.OUT)
led2 = Pin(19, Pin.OUT)
led3 = Pin(20, Pin.OUT)

led1.value(1)
led2.value(1)
led3.value(1)

time.sleep(5)

led1.value(0)
led2.value(0)
led3.value(0)

Chạy xong, đổi thứ tự các dòng value() thành hiệu ứng chạy lần lượt trên ba LED, hoặc thay time.sleep(5) bằng time.sleep(0.2) trong một vòng lặp while True để có đèn nháy. Code mẫu chỉ là điểm xuất phát, giá trị nằm ở việc sửa nó và quan sát phần cứng phản ứng.

Làm mờ LED bằng PWM

Bật và tắt là mức thấp nhất của điều khiển. Muốn LED sáng yếu, sáng mạnh hay mờ dần, cần điều chế độ rộng xung (PWM): chân GPIO của Raspberry Pi Pico bật tắt rất nhanh, tỷ lệ thời gian bật quyết định độ sáng trung bình. RP2040 có 16 kênh PWM độc lập, mỗi kênh chia sẻ giữa hai chân GPIO. Ví dụ mở rộng, cho LED ở GPIO18 mờ dần:

from machine import Pin, PWM
import time

led = PWM(Pin(18))
led.freq(1000)

while True:
    for duty in range(0, 65536, 2048):
        led.duty_u16(duty)
        time.sleep_ms(20)

duty_u16 nhận giá trị từ 0 đến 65535, trong đó 0 là tắt hoàn toàn và 65535 là sáng hết mức. Tần số 1000 Hz đủ cao để mắt không thấy nhấp nháy. Với động cơ DC thì cần tần số thấp hơn, khoảng 50 đến 100 Hz, và phải qua mạch cầu H vì chân GPIO không đủ dòng.

Xử lý sự cố

Bảng dưới tổng hợp các lỗi gặp nhiều nhất khi mới làm quen với Raspberry Pi Pico, xếp theo thứ tự từ lúc cắm cáp đến lúc mạch chạy.

Hiện tượng Nguyên nhân Cách xử lý
Máy tính không thấy ổ RPI-RP2 Cáp chỉ có hai dây nguồn, hoặc thả nút BOOTSEL trước khi cắm cáp Đổi sang cáp có truyền dữ liệu; giữ nút BOOTSEL rồi mới cắm cáp, giữ thêm một giây sau khi cắm
Thonny báo không tìm thấy cổng, danh sách cổng trống Chưa nạp firmware MicroPython, hoặc chọn sai cổng trong Configure interpreter Nạp lại MicroPython, rút cắm lại cáp, mở Configure interpreter và chọn đúng cổng COM
Nạp firmware lỗi SSL, không kết nối được tới server Mạng chặn HTTPS, proxy nội bộ, chứng chỉ hết hạn Tải tệp .uf2 từ trang MicroPython rồi kéo thả vào ổ RPI-RP2, cách này không cần mạng trong Thonny
Nút Run không phản hồi gì Chưa chọn đúng interpreter nên Thonny chạy code trên máy tính Run > Configure interpreter, đặt MicroPython (Raspberry Pi Pico), chọn lại cổng
Code chạy nhưng không thấy gì trong Shell Cửa sổ Shell bị thu gọn, hoặc tệp chưa được lưu View > Shell để mở lại; lưu tệp trước khi bấm Run
LED onboard không sáng dù code đúng Đang dùng Pico W nhưng khai báo Pin(25) Đổi thành Pin('LED', Pin.OUT) vì LED trên bản W nối qua chip không dây
LED ngoài không sáng, bo vẫn chạy bình thường Cắm ngược chiều LED, sai chân GPIO, hoặc quên nối ray xanh về GND Chân dài là anode, nối về GPIO qua điện trở; kiểm tra dây GND bằng đồng hồ vạn năng ở chế độ thông mạch
LED sáng rất yếu hoặc bo nóng, tự reset Thiếu điện trở hạn dòng, hoặc chập ray nguồn với ray GND Thêm điện trở 330 ohm cho mỗi LED, rút cáp và kiểm tra lại dây trước khi cấp nguồn
Rút cáp ra cắm lại, bo chạy chương trình cũ Tệp main.py trên bo tự chạy mỗi lần cấp nguồn Xóa hoặc đổi tên main.py trong cây tệp của bo ở cột trái Thonny

Ứng dụng thực tế

Ba LED là bài tập, nhưng kiến trúc đằng sau nó mở ra gần như toàn bộ phần nhúng trên Raspberry Pi Pico. Cùng một cách khai báo chân, thay LED bằng relay là có mạch điều khiển thiết bị 220 V (nhớ dùng optocoupler cách ly, đừng nối relay trực tiếp vào GPIO). Thay bằng MOSFET là điều khiển dải LED 12 V hoặc bơm nước. Thay bằng cảm biến DHT22 trên một chân GPIO là trạm đo nhiệt độ, độ ẩm ghi log ra thẻ nhớ.

Phần thú vị nhất của RP2040 là PIO: tám máy trạng thái lập trình được, chạy độc lập với hai nhân chính, cho phép tạo ra giao thức nối tiếp mà phần cứng không có sẵn. Điều khiển dải WS2812 với thời gian chính xác tới hàng chục nanosecond, đọc xung encoder tần số cao, giả lập cổng VGA, hoặc giao tiếp với chip cũ chỉ có một dây dữ liệu đều nằm trong khả năng của nó. Với vi điều khiển thông thường, mỗi việc như vậy phải viết bằng ngắt và đánh đổi độ chính xác thời gian; với PIO, nó chỉ là một chương trình nhỏ nạp vào máy trạng thái.

Ba chân ADC 12 bit đọc được biến trở, cảm biến ánh sáng, cảm biến dòng. Hai bus I2C và hai bus SPI cho phép gắn màn hình, RTC, cảm biến chất lượng không khí, module thẻ nhớ cùng lúc trên một bo duy nhất.

Pico, Pico W hay Pico 2

Thời điểm bài gốc được viết, dòng Raspberry Pi Pico chỉ có ba bản. Hiện tại có bốn lựa chọn phổ biến, khác nhau ở chip và khả năng kết nối:

Bo Chip Xung nhịp SRAM Flash Không dây Cách bật LED
Pico / Pico H RP2040 133 MHz 264 KB 2 MB Không Pin(25)
Pico W RP2040 + CYW43439 133 MHz 264 KB 2 MB Wi-Fi, Bluetooth Pin('LED')
Pico 2 RP2350A 150 MHz 520 KB 4 MB Không Pin(25)
Pico 2 W RP2350A + CYW43439 150 MHz 520 KB 4 MB Wi-Fi, Bluetooth Pin('LED')

RP2350 trên Raspberry Pi Pico 2 dùng nhân Cortex-M33, gấp đôi SRAM và flash, thêm khả năng chạy nhân RISC-V. Toàn bộ code MicroPython trong bài này chạy nguyên xi trên Pico 2 mà không phải sửa dòng nào, vì lớp machine giữ nguyên API. Người mới nên chọn Pico H nếu chỉ học cơ bản, chọn Pico W khi đã có ý tưởng dự án cần gửi dữ liệu lên mạng, và chọn Pico 2 khi cần xử lý ảnh, âm thanh hoặc chạy nhiều tác vụ song song.

Ba điểm cần nắm sau khi đọc xong: Raspberry Pi Pico là vi điều khiển chứ không phải máy tính, nên chương trình chạy ngay khi cấp nguồn và không sợ mất điện đột ngột. Nạp code gồm hai lớp riêng biệt – firmware MicroPython nạp một lần qua chế độ BOOTSEL, sau đó code Python nạp qua Thonny mỗi lần sửa. Và mọi thứ từ LED onboard đến mạch ba LED đều xoay quanh một thao tác duy nhất: khai báo chân GPIO là đầu ra rồi gán mức 1 hoặc 0, phần còn lại chỉ là ghép nhiều lần thao tác đó lại với nhau.

Phần cứng không đoán được ý người viết code. Nếu mạch Raspberry Pi Pico không chạy, gần như luôn là sai chân, ngược chiều linh kiện, hoặc thiếu một dây GND, và ba nguyên nhân đó giải thích phần lớn thời gian gỡ lỗi của người mới. Cắm đúng, đo lại bằng đồng hồ vạn năng, rồi hãy sửa code.

Nguồn: The Pi Hut