Bộ vi điều khiển là một loại thiết bị khác với Máy tính bo mạch đơn SBC – Sigle Board Computer như Raspberry Pi 4 và các thế hệ trước của Pi, chúng không chạy hệ điều hành và chúng thườn
RASPBERRY PI PICO
Khái Niệm
- Vào ngày 21 tháng 1 năm 2021, Raspberry Pi Foundation ra mắt sản phẩm vi điều khiển đầu tiên của mình: Raspberry Pi Pico Với mức giá chỉ 4$, bo mạch này được xây dựng trên RP2040 – chip vi điều khiển đầu tiên được thiết kế bới chính Raspberry Pi
- Raspberry Pi Foundation có ba mục tiêu thiết kế chính cho RP2040: + Hiệu suất cao, đặc biệt đối với khối lượng công việc dựa trên số nguyên.
+ I/O linh hoạt, cho phép giao tiếp với hầu hết mọi thiết bị ngoại vi + Chi phí thấp
- Đây là bo mạch vi điều khiển đầu tiên của Raspberry Pi, được thiết kế đặc biệt cho tính toán vật lý Bộ vi điều khiển là một loại thiết bị khác với Máy tính bo mạch đơn (SBC – Sigle Board Computer) như
Raspberry Pi 4 và các thế hệ trước của Pi, chúng không chạy hệ điều hành và chúng thường được lập trình để chỉ thực hiện một tác vụ – mặc dù tác vụ đó có thể khá phức tạp
- Bo mạch nhỏ này sẽ được dùng cho việc điều khiển nút bấm, nhận lệnh, ghi nhận dữ liệu và xử lý đơn giản, không cần kết nối mạng.
- Chúng hoàn hảo để thử nghiệm với phần cứng và sử dụng như bộ não của các thiết bị, máy móc Nó có thể được lập trình lại dễ dàng qua USB từ Raspberry Pi hoặc máy tính khác sử dụng C/C++ hoặc MicroPython
- Mạch vi điều khiển Raspberry Pi Pico RP2040 sử dụng MCU RP2040 được chính Raspberry Pi thiết kế dựa trên kiến trúc dual-core ARM Cortex-M0+ với xung nhịp tối đa lên đến 133Mhz, RP2040 còn có 264KB RAM nội và hỗ trợ bộ nhớ Flash ngoài lên đến 16MB cũng như đầy đủ các giao tiếp cơ bản UART, I2C, SPI,
- Mạch Vi Điều Khiển Raspberry Pi Pico RP2040 được Raspberry Pi hỗ trợ lập trình trên IDE với ngôn ngữ C và Python cũng như khả năng kết hợp hoàn hảo với máy tính Raspberry Pi sẽ mang đến cho bạn một công cụ dễ dàng sử dụng cho vô số các ứng dụng khác nhau.
Thông Số Kỹ Thuật Và Cấu Hình Chân
Bo mạch Microcontroller Development đầu tiên đến từ Raspberry
Silicon (IC) đầu tiên, RP2040 MCU được thiết kế bởi các kỹ sư của Raspberry Pi Foundation.
Bộ xử lý Dual-Core, 32-bit ARM Cortex M0+
Xung nhịp 48MHz (default), có thể cấu hình tối đa lên tới 133MHz.
264KB SRAM và 2MB bộ nhớ Flash
Cấp nguồn và truyền dữ liệu qua Micro USB B
Hỗ trợ USB 1.1 Host and Device
Kết nối qua USB port dưới dạng USB Mass Storage không cần Driver
Hỗ trợ các ngôn ngữ lập trình MicroPython, C and C++
Lập trình kéo thả một cách nhanh chóng và dễ dàng Đi kèm với PCB 40-pin 21x51 'DIP' dày 1mm với các chân xuyên lỗ 0,1"
Chân cắm header chưa được hàn sẵn
Hỗ trợ thiết bị ngoại vi :
- 3 x 12-bit ADC capable of 500Ksps, Analog to Digital Converter
- 2 x UART (Universal Asynchronous Receiver/Transmitter)
- 2 x Programmable IO (PIO) có thể mô phỏng các high-speed interfaces như SD card hoặc VGA
- Tích hợp cảm biến nhiệt độ 12-bit ADC
3-pin ARM Serial Wire Debug (SWD) port Đèn LED trên bo mạch có thể lập trình được, GP25
Cách thức cấp điện đơn giản nhưng rất linh hoạt
Hỗ trợ cấp nguồn qua USB, nguồn ngoài (2 - 5VDC) hoặc nguồn bằng PIN
Hỗ trợ bởi các SDK và tài liệu tham khảo
Sản phẩm chính hãng đến từ Raspberry Pi Foundation
Tương thích với hầu hết các máy tính có cổng USB, Windows, macOS, Linux
Có khả năng làm việc với Raspberry Pi 4 Model B, Raspberry Pi
Kích thước : 51mm x 21mm x 1mm
ĐIỀU KHIỂN ĐỘNG CƠ L298N
Module điều khiển động cơ L298N này là module điều khiển động cơ công suất cao để điều khiển Động cơ DC và Động cơ bước Mô-đun này bao gồm IC điều khiển động cơ L298 và bộ điều chỉnh 78M05 5V, điện trở, tụ điện, đèn LED nguồn Module L298N có thể điều khiển tối đa 4 động cơ DC hoặc 2 động cơ DC có điều khiển hướng và tốc độ
2.2 Cấu Hình Sơ Đồ Chân
- IN1 & IN2: Chân đầu vào động cơ A Dùng để điều khiển hướng quay của Motor A
- IN3 & IN4: Chân đầu vào động cơ B Dùng để điều khiển hướng quay của Motor B
MODULE BLUETOOTH HC-05
Khái Niệm Về Công Nghệ Bluetooth
- Bluetooth là một công nghệ cho phép truyền thông giữa các thiết bị với nhau mà không cần dây dẫn Nó là một chuẩn điện tử, điều đó có nghĩa là các hãng sản xuất muốn có đặc tính này trong sản phẩm thì họ phải tuân theo các yêu cầu của chuẩn này cho sản phẩm của mình Những tiêu chuẩn kỹ thuật này đảm bảo cho các thiết bị có thể nhận ra và tương tác với nhau khi sử dụng công nghệ Bluetooth Ngày nay phần lớn các nhà máy đều sản xuất các thiết bị có sử dụng công nghệ Bluetooth Các thiết bị này gồm có điện thoại di động, máy tính và thiết bị hỗ trợ cá nhân PDA (Prosonal Digital Assistant).
- Công nghệ Bluetooth là một công nghệ dựa trên tần số vô tuyến và bất cứ một thiết bị nào có tích hợp bên trong công nghệ này đều có thể truyền thông với các thiết bị khác với một khoảng cách nhất định về cự ly để đảm bảo công suất cho việc phát và nhận sóng Công nghệ này thường được sử dụng để truyền thông giữa hai loại thiết bị khác nhau.
Đặc Điểm Của Công Nghệ Bluetooth
- Tiêu thụ năng lượng thấp.
- Cho phép ứng dụng được nhiều loại thiết bị bao gồm các thiết bị cầm tay và điện thoại di động.
- Giá thành ngày một giảm.
- Dễ dàng trong việc phát triển ứng dụng: Bluetooth kết nối một ứng dụng này với một ứng dụng khác thông qua chuẩn Bluetooth, do đó có thể độc lập về phần cứng cũng như hệ điều hành sử dụng
- Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm
Khoảng cách kết nối còn ngắn so với các công nghệ kết nối không dây khác.
Hoạt Động
Bluetooth là chuẩn kết nối không dây tầm ngắn, thiết kế cho các kết nối thiết bị cá nhân hay mạng cục bộ nhỏ trong phạm vi băng tần từ 2.4GHz đến 2.485GHz Bluetooth được thiết kế hoạt động trên 79 tần số đơn lẻ Khi kết nối , nó sẽ tự động tìm ra tần số tương thích để di chuyển đến thiết bị cần kết nối trong khu vực nhằm đảm bảo sự liên tục.
Module Bluetooth HC-05
- Module Bluetooth HC-06 được thiết kế để chuyển đổi giao tiếp nối tiếp không đồng bộ và thành giao tiếp không dây Bluetooth và ngược lại.
- HC-05 là thiết bị Bluetooth tốt nhất sử dụng giao thức truyền thông UART HC-05 Bluetooth có nhiều tính năng khác biệt so với tất cả các thiết bị Bluetooth khác vì có nhiều chân và chức năng.
- Module thường sử dụng giao tiếp nối tiếp UART với các chân TX và
RX ở tốc độ baund 9600 Có giao tiếp truyền dữ liệu hai chiều và có thể hoạt động như một slave và master.
- Module Bluetooth chỉ cung cấp khả năng giao tiếp trong khoảng cách ngắn do có giới hạn, hầu hết do đảm bảo tốc độ và tính bảo mật của nó.
- Điện thế hoạt động của UART 3.3 - 5V.
- Dòng điện khi hoạt động: khi Pairing 30 mA, sau khi pairing hoạt động truyền nhận bình thường 8 mA
- Baudrate UART có thể chọn được: 1200, 2400, 4800, 9600, 19200,
- Kích thước của module chính: 28 mm x 15 mm x 2.35 mm
- Dải tần sóng hoạt động: 2.4GHz
- Bluetooth protocol: Bluetooth Specification v2.0+EDRo
3.4.3 Mô tả sơ đồ chân
Chân VCC: Giống như mọi thiết bị khác, HC05 Modules cũng phụ thuộc vào nguồn điện để hoạt động và chân VCC cấp nguồn điện từ bên ngoài.
Chân GND: Chân nối đất module.
Chân TX: Chân truyền dữ liệu giao thức UART
Chân RX: Chân nhận dữ liệu trong giao tiếp UART.
Chân State: Báo trạng thái kết nối của Bluetooth.
Chân Enable/key: Chân Enable / Key là chân thay đổi chế độ giữa chế độ dữ liệu và chế độ dòng lệnh bằng cách cấp tín hiệu bên ngoài Cấp logic cao sẽ chuyển sang chế độ dòng lệnh và trạng thái logic thấp sẽ chuyển sang chế độ dữ liệu Chế độ thiết bị mặc định là chế độ dữ liệu.
Chân button: Các chế độ dữ liệu và lệnh có thể thay đổi thông qua một nút nhấn có trên module.
Chân LED: Đèn LED hiển thị trạng thái của Module HC-05.
Module Bluetooth HC-05 cung cấp hai giao tiếp trong khoảng cách ngắn hơn với tốc độ nhanh.
Có chân enale cho phép chuyển đổi giữa chế độ dòng lệnh và dữ liệu.
Module có giao thức UART dễ dàng giao tiếp với bất kỳ bộ vi điều khiển hoặc hệ thống nào.
Phạm vi giao tiếp lên đến 8 – 10 mét nhưng sẽ giảm xuống khi có vật cản.
Thiết bị sử dụng nguồn điện 5V.
Module có thể làm Master hoặc Slave.
Hỗ trợ tốc độ truyền
Các ô tô điều khiển từ xa cho trẻ em.
Trong tai nghe và chuột không dây, HC05 khả dụng cho giao tiếp không dây tốc độ nhanh.
Trong IoT thay vì dùng mạng WiFi, một số thiết bị cũng có Bluetooth
NGÔN NGỮ LẬP TRÌNH PYTHON
Khái Niệm
Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng Ngôn ngữ lập trình Python được tạo bởi Guido van Rossum và lần đầu ra mắt vào năm 1991 Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu.
Chức Năng Chính
Ngôn ngữ lập trình đơn giản, dễ học: Python có cú pháp rất đơn giản, rõ ràng Nó dễ đọc và viết hơn rất nhiều khi so sánh với những ngôn ngữ lập trình khác như C++, Java, C# Python làm cho việc lập trình trở nên thú vị, cho phép bạn tập trung vào những giải pháp chứ không phải cú pháp.
Miễn phí, mã nguồn mở: Bạn có thể tự do sử dụng và phân phối Python, thậm chí là dùng cho mục đích thương mại Vì là mã nguồn mở, bạn không những có thể sử dụng các phần mềm, chương trình được viết trong Python mà còn có thể thay đổi mã nguồn của nó Python có một cộng đồng rộng lớn, không ngừng cải thiện nó mỗi lần cập nhật.
Khả năng di chuyển: Các chương trình Python có thể di chuyển từ nền tảng này sang nền tảng khác và chạy nó mà không có bất kỳ thay đổi nào Nó chạy liền mạch trên hầu hết tất cả các nền tảng như Windows, macOS, Linux.
Khả năng mở rộng và có thể nhúng: Giả sử một ứng dụng đòi hỏi sự phức tạp rất lớn, bạn có thể dễ dàng kết hợp các phần code bằng C, C++ và những ngôn ngữ khác (có thể gọi được từ C) vào code Python. Điều này sẽ cung cấp cho ứng dụng của bạn những tính năng tốt hơn cũng như khả năng scripting mà những ngôn ngữ lập trình khác khó có thể làm được.
Ngôn ngữ thông dịch cấp cao: Không giống như C/C++, với Python, bạn không phải lo lắng những nhiệm vụ khó khăn như quản lý bộ nhớ, dọn dẹp những dữ liệu vô nghĩa, Khi chạy code Python, nó sẽ tự động chuyển đổi code sang ngôn ngữ máy tính có thể hiểu Bạn không cần lo lắng về bất kỳ hoạt động ở cấp thấp nào.
Thư viện tiêu chuẩn lớn để giải quyết những tác vụ phổ biến: Python có một số lượng lớn thư viện tiêu chuẩn giúp cho công việc lập trình của bạn trở nên dễ thở hơn rất nhiều, đơn giản vì không phải tự viết tất cả code Ví dụ: Bạn cần kết nối cơ sở dữ liệu MySQL trên Web server? Bạn có thể nhập thư viện MySQLdb và sử dụng nó Những thư viện này được kiểm tra kỹ lưỡng và được sử dụng bởi hàng
20 trăm người Vì vậy, bạn có thể chắc chắn rằng nó sẽ không làm hỏng code hay ứng dụng của mình.
Hướng đối tượng: Mọi thứ trong Python đều là hướng đối tượng Lập trình hướng đối tượng (OOP) giúp giải quyết những vấn đề phức tạp một cách trực quan Với OOP, bạn có thể phân chia những vấn đề phức tạp thành những tập nhỏ hơn bằng cách tạo ra các đối tượng.
THIẾT KẾ PHẦN CỨNG
Yêu Cầu Phần Cứng
Yêu cầu đề ra là thiết kế ra một chiếc xe điều khiển từ xe thông qua điện thoại chạy hệ điều hành Android Kích thước xe nhỏ gọn.
Xe có thể chạy: tới, lùi, sang trái, sang phải.
Yêu Cầu Phần Mềm
Chương trình điều khiển, thiết kế phần mềm để kết nối Bluetooth trên MIT app Inventor, điện thoại.
Phương Án Thiết Kế
Vi điều khiển trung tâm là Raspberry Pi Pico với thiết kế nhỏ gọn. Các module kết nối vào Raspberry Pi Pico gồm:
Module Bluetooth HC-05 kết nối với vi điều khiển trung tâm Động cơ một chiều gắn vào 2 bánh xe.
Mạch công suất điều khiển và bảo vệ các động cơ.
Các module kết nối với vi điều khiển thông qua các chân GPIO.
Bằng việc điều khiển vi điều khiển xuất và nhận tín hiệu tại các chân GPIO, ta điều khiển được các module hoạt động theo ý muốn mình. 5.3.1 Sơ Đồ Khối
Khối nguồn: dùng 2 pin Cell 18650 2600mAh 3.7V để cung cấp cho khối công suất để điều khiển động cơ
Khối công suất: dùng mạch cầu H-L298 kết nối với chân GPIO của Raspberry Pi Pico , khi Raspberry Pi ra lệnh điều khiển cho xe chạy thì mạch cầu H sẽ điều khiển cho 2 động cơ hoạt động.
Khối bluetooth: dùng để kết nối để điều khiển xe
Khối điều khiển: là Raspberry Pi Pico, chịu trách nhiệm điều khiển các khối công suất, khối cảm biến.
5.3.2 Cách Kết Nối Phần Cứng
Kết nối mạch cầu H với Raspberry Pi Pico: Công suất động cơ một chiều không cao, ta chọn mạch cầu H-L298 để điều khiển 2 động cơ này. Chân IN1 nối vào GPIO7 (PIN 10).
Chân IN2 nối vào GPIO6 (PIN 19).
Chân IN3 nối vào GPIO4 (PIN 6).
Chân IN4 nối vào GPIO3 (PIN 5).
Chân OUT1, OUT2 nối vào dộng cơ 1.
Chân OUT3, OUT4 nối vào động cơ 2.
Chân VCC nối với 5V(PIN 2).
Chân GND nối vào GROUND(PIN 6).
Kết nối khối Bluetooth với Raspberry Pi Pico:
Chân VCC nối với VSYS (PIN 39)
Chân GND nối với GND
Chân TXD nối với GPIO1 (PIN 2)
Chân RXD nối với GPIO0 (PIN 1)
THIẾT KẾ PHẦN MỀM
Cài Đặt Cho Raspberry Pi Pico
Raspberry Pi Pico có thể được lập trình dễ dàng thông qua ngôn ngữ C/C++ hoặc MicroPython, đây cũng chính là 2 ngôn ngữ lập trình cơ bản hỗ trợ cho loại board vi điều khiển này. Để thuận tiện cho việc học cũng như lập trình thì chúng ta sẽ sử dụng MicroPython để lập trình cho Raspberry Pi Pico
Nạp File Mirco Python: Pi Pico hỗ trợ lập trình bằng
MicroPython thông qua nạp file (.uf2) Tải file https://www.raspberrypi.com/documentation/microcontrollers/micropyth on.html Để tiến hành nạp MicroPython cho vi điều khiển
- Nhấn giữ nút BOOTSEL (nút nhấn màu trắng trên board) rồi cắm cáp kết nối vào board, sau đó cắm vào cổng USB của máy tính (PC, Raspbery Pi, ).
- Pi Pico board sẽ được kết nối máy tính như là ổ cứng lưu trữ và có tên là RPI-RP2, bạn click chuột kéo file uf2 mẫu vừa tải vào thư mục RPI- RP2 và reset lại board là đã hoàn thành nạp MicroPython cho board, lúc này là có thể lập trình thông qua các IDE hỗ trợ.
IDE khuyên dùng để lập trình cho Pi Pico bằng Python là Thonny, các bạn tải về Thonny IDE tại đây: https://thonny.org/ Thonny khả dụng trên cả 3 hệ điều hành Windows, Mac và Linux Thonny hỗ trợ viết code MircoPython, tự động xuất file thực thi và nạp trực tiếp vào board Pi Pico.
- Sau khi cài đặt Thonny, bạn kết nối board đến máy tính và mở IDE lên.
Nạp Code Cho Raspberry Pi Pico
Ta mở phần mềm Thonny Python lên:
Khi đó ta sẽ viết code như sau:
Bắt đầu bằng cách nhập tất cả các thư viện và mô-đun
Chúng ta có thể thiết lập tốc độ Baud của mình (Tốc độ baud là tốc độ truyền thông tin trong kênh liên lạc )
Chúng ta thiết lập tất cả các chân kết nối với trình điều khiển động cơ L298n trong phần code này Chúng ta xác định tần số của PWM và đặt
30 chu kỳ tối đa là 65025, chúng ta sẽ điều khiển chu kỳ này bằng thanh trượt ngón tay cái trên Ứng dụng của mình
Sau đó, chúng ta tạo năm chức năng để điều khiển chuyển động và hướng của ô tô trong đó chúng ta điều khiển các nút ở mức cao hoặc thấp Thao tác này sẽ điều khiển hướng quay của động cơ
Trong vòng lặp chính, chúng ta liên tục kiểm tra Bluetooth để xem nút nào được nhấn bằng cách xem dữ liệu nhận được từ Ứng dụng của chúng ta sau khi nhấn nút Chức năng liên quan sẽ được thực thi tùy thuộc vào dữ liệu nhận được qua Bluetooth Chúng tôi cũng kiểm tra tốc độ được đặt ở mức nào và nếu không có gì được gửi qua, chức năng mặc định được gọi sẽ bị dừng.
6.2.1 Thiết Kế Ứng Dụng Điều Khiển
MIT App Inventor là một môi trường phát triển tích hợp ứng dụng web ban đầu được cung cấp bởi Google và hiện được duy trì bởi Viện Công nghệ Massachusetts.
Chúng tôi tạo một giao diện đơn giản nơi bạn có thể kết nối với mô-đun Bluetooth bằng cách chọn một thiết bị và có các nút để điều khiển chuyển động và thanh trượt cho tốc độ. Đối với các khối, chúng tôi kiểm tra nút nào được nhấn và tùy thuộc vào nút nào, chúng tôi sẽ gửi một văn bản mà Pico của chúng tôi sẽ thực thi bằng cách gọi đúng chức năng để điều khiển ô tô Nếu chúng ta buông nút, nó sẽ gọi chức năng dừng.
KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI
Kết Quả
Sau thực hiện đề tài “ THIẾT KẾ XE ĐIỀU KHIỂN TRÊN BOARD RASPBERRY PI PICO ” đề tài đã hoàn thành các nội dung chính như sau:
- Nắm được về cấu trúc Raspberry Pi.
- Tìm hiểu và phân tích các đặc tính kỹ thuật của Raspberry Pi.
- Trình bày các giao tiếp Raspberry Pi với các thiết bị ngoại vi.
- Trình bày tổng quát ngôn ngữ lập trình Python
Về thiết kế xe điều khiển:
- Tìm hiểu đặc tính của các linh kiện sử dụng.
- Thiết kế xe điều khiển: cơ bản đã hoạt động và điều khiển không dây bằng điện thoại thông qua Bluetooth.
Hướng Phát Triển Của Đề Tài
Sau khoảng thời gian nghiên cứu và tìm hiểu tài liệu chuyên môn, tài liệu tiếng anh, nghiên cứu tài liệu trên Internet, đồ án của các anh chị đi trước cùng với sự giúp đỡ tận tình của giáo viên hướng dẫn TS. NGUYỄN THANH NGHĨA, chúng em đã đạt được những kết quả như mong muốn :
Nắm bắt được hệ thống phần cứng của Board Raspberry Pi và các kết nối của nó.
Tìm hiểu ngôn ngữ lập trình Python và ứng dụng nó lên BoardRaspberry Pi.
Thiết kế được xe điều khiển từ xa thông qua Bluetooth.
Tuy nhiên do sự hạn chế về kiến thức của bản thân, nguồn tài liệu tham khảo chủ yếu từ nước ngoài nên trong chương trình vẫn còn gặp phải một số lỗi và 1 số hạn chế :
Nguồn tài liệu chủ yếu từ nước ngoài nên vẫn còn 1 số ý chưa hoàn toàn hiểu rõ, hiểu sâu.
Hoạt động của xe còn tương đối đơn giản, chưa có những tính năng lạ
7.2.2 Hướng phát triển của đề tài:
Sau khi hoàn thành đề tài, nhóm thực hiện muốn xem đây như 1 phần kiến thức cơ bản để các bạn có đam mê công nghệ Lập Trình Nhúng, các sinh viên khóa sau có thể phát triển đề tài theo một hướng rộng hơn, sâu hơn:
Tiếp tục phát triển các ứng dụng từ cơ bản đến nâng cao của Board Raspberry Pi
Thiết kế xe tự tránh vật cản tích hợp thêm cánh tay Robot, định vị toàn cầu GPS, …
Mở rộng ứng dụng của Raspberry Pi trong nhiều lĩnh vực khác như: xử lý tín hiệu số (DSP), xử lý ảnh, video, xử lý âm thanh… Tìm hiểu và khai thác các kit ứng dụng mới của Raspberry Pi các phiên bản sau này.