Skip to main content

Bắt đầu với Raspberry Pi Pico

Raspberry Pi Pico sử dụng chip RP2040, 32 bit Cortex M0+ dual core, 133 MHz, 2 Mb flash, 264 Kb ram, 12 bit ADC, điện áp hoạt động 1.8-3.3V, PIO, I2C, SPI, USB 1.1. Đây là một con chip rất mạnh mẽ chỉ với mức giá vào khoảng $4.

Raspberry Pi Pico

Raspberry Pico Schematic

Cách đơn giản nhất để bắt đầu với Pico là sử dụng MicroPython. Đầu tiên bạn cần tải phần mềm Thonny từ địa chỉ https://thonny.org, sau đó click vào Download (phiên bản hiện tại là 3.3.10 có thể tải về trực tiếp từ đây). Sau khi tải về, bạn hãy tiến hành cài đặt Thonny với các tùy chọn mặc định và kết quả là sẽ có giao diện chương trình như hình dưới đây.

Thonny

Cài đặt MicroPython cho Pico bằng cách nhấn giữ nút BOOTSEL đồng thời kết nối board Pico với máy tính bằng cáp USB. Khi đó bạn sẽ thấy trên máy tính xuất hiện thêm một ổ đĩa với nhãn là RPI-RP2.

RPI-RP2

Trên Thonny vào menu Tools > Options... trên cửa sổ hiện ra chọn tab Interpreter, chọn trình thông dịch là MicroPython (Raspberry Pi Pico). Sau đó click vào "Install or update firmware".

Thonny install micropython raspberry pico

Thông tin về phiên bản MicroPython sắp cài đặt sẽ hiện lên, click vào nút Install để cài đặt.

Install micropython thonny

Sau khi cài đặt xong, đóng các cửa sổ lại để quay về giao diện chính của Thonny, click vào nút "Stop", lúc này dưới khung cửa sổ Shell sẽ hiện ra dấu nhắc sẵn sàng như hình dưới là bạn đã cài đặt MicroPython thành công.

Micropython ready on raspberry pico

Viết chương trình main.py như sau, lưu ý với Python các thụt đầu dòng phải chính xác.

import time
from machine import Pin

led = Pin(25, Pin.OUT)

while True:
    led.toggle()
    time.sleep(1)

Lưu chương trình vào Raspberry Pico và nhấn nút chạy chương trình có biểu tượng hình tam giác màu xanh lá cây (hoặc nhấn phím F5). Nếu đèn led trên Pico nhấp nháy với tốc độ 1s là bạn đã thành công

Pico Run

Các bạn xem video ở đây nhé

Comments

Popular posts from this blog

Arduino Nano nạp code không được

Tình trạng Khi bạn nạp code cho arduino nano, IDE sẽ hiển thị là Uploading... rất lâu sau đó báo lỗi: avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x5c avrdude: stk500_recv(): programmer is not responding avrdude: s

Dùng mạch nạp USBasp để nạp code cho Arduino

Arduino có thể dễ dàng nạp code và chạy chương trình chỉ với thao tác đơn giản cắm board mạch vào máy tính chọn cổng COM và nhấn nút Upload. Để làm được như vậy, bên trong chip vi xử lý được nạp sẵn một đoạn mã lệnh gọi là boot loader. Boot loader luôn luôn được chạy lên đầu tiên, sau đó mới chuyển quyền điều khiển lại cho phần mã của người dùng nạp vào.   Như vậy để các Chip Arduino có thể làm việc được với Arduino IDE thông qua giao tiếp USB-COM thì trong vi điều khiển phải được nạp sẵn boot loader. Các board mạch Arduino bán sẵn trên thị trường như Arduino Uno, Arduino Nano, Arduino Mega 2560,... đều được nạp sẵn boot loader. Như vậy ưu điểm của boot loader là để người dùng dễ dàng tiếp cận, thử nghiệm, và làm ra được sản phẩm nhanh chóng, dễ dàng. Nhưng nhược điểm là boot loader luôn luôn cần một khoảng thời gian từ 1.6s đến 2s để khởi động. Nếu bạn không muốn mất 1.6 - 2s đầu tiên mà muốn chương trình chạy gần như ngay lập tức khi cấp nguồn hoặc reset thì dùng mạch nạp USBasp để n

Thử giao tiếp Arduino với NRF24L01

Module NRF24L01 được điều khiển thông qua giao tiếp SPI và tần số sóng được sử dụng là 2.4GHz để truyền dữ liệu. Mỗi module NRF24L01 có tại một thời điểm chỉ có thể phát tín hiệu trên một kênh. Tuy nhiên cùng một lúc module NRF24L01 lại có thể nhận tín hiệu trên 6 kênh khác nhau, có nghĩa là một module có thể nhận tính hiệu từ 6 module khác. Module này hoạt động trên điện áp 3.3V, nếu bạn cấp nguồn 5V có thể làm hỏng module. Tuy nhiên các chân SPI của module là 5V tolerance, nên bạn vẫn có thể kết nối các chân SPI với Arduino Nano hay UNO.   Chúng ta sẽ sử dụng 3 module NRF24L01, 2 Arduino Nano, 1 Arduino Uno để giao tiếp không dây với nhau. Hình dưới là thứ tự các chân của module NRF24L01 Kết nối với Arduino Nano (Bên trái là NRF24, bên phải là Nano, chân IRQ không dùng) GND <===> GND CE <===> D7 SCK <===> D13 MISO <===> D12 3.3V <===> 3.3V CSN <===> D8 MOSI <===> D11 Kết nối với Arduino UNO GND <===> GND CE <===> 7 SCK <===>