Bài báo cáo môn Hệ thống nhúng trong công nghiệp đề tài "Xe điều khiển từ xa dùng Raspberry Pico thông qua Bluetooth"

Bài báo cáo môn Hệ thống nhúng trong công nghiệp đề tài "Xe điều khiển từ xa dùng Raspberry Pico thông qua Bluetooth" của Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh với những kiến thức và thông tin bổ ích giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học vào thực tiễn cuộc sống. Mời bạn đọc đón xem!

 

lOMoARcPSD|36991220
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
BÁO CÁO CUỐI KỲ
MÔN HỌC: HỆ THỐNG NHÚNG TRONG CÔNG NGHIỆP
XE ĐIỀU KHIỂN TỪ XA DÙNG RASPBERRY PI PICO THÔNG QUA
BLUETOOTH
MỤC LỤC
PHẦN A: MỞ ĐẦU..................................................................................................5
1.Giới thiệu đề tài:............................................................................................5
2.Mục tiêu nghiên cứu......................................................................................5
PHẦN B: NỘI DUNG..............................................................................................6
CHƯƠNG I: RASPBERRY PI
PICO.............................................................6
1.1 Khái Niệm..................................................................................................6
1.2 Thông Số Kỹ Thuật Và Cấu Hình Chân.................................................7
CHƯƠNG 2:MODULE ĐIỀU KHIỂN ĐỘNG CƠ L298N........................11
2.1 Khái Niệm.................................................................................................11
lOMoARcPSD|36991220
2.2 Cấu Hình Sơ Đồ Chân.............................................................................11
2.3 Thông Số Kỹ Thuật..................................................................................12
CHƯƠNG III: MODULE BLUETOOTH HC-05.......................................13
3.1 Khái Niệm Về Công Nghệ Bluetooth......................................................13
3.2 Đặc Điểm Của Công Nghệ Bluetooth.....................................................14
3.3 Hoạt Động…………………………………………………………..........14
3.4 Module Bluetooth HC-05……………………………………………….15
3.4.1 Khái Niệm…………………………………………………………….15
3.4.2 Thông Số Kỹ Thuật…………………………………………………..16
3.4.3 Mô Tả Sơ Đồ Chân…………………………………………………..16
3.4.4 Đặc Tính……………………………………………………………...17
3.4.5 Ứng Dụng…………………………………………………………….18
CHƯƠNG IV: NGÔN NGỮ LẬP TRÌNH PYTHON.................................18
4.1 Khái Niệm.................................................................................................18
4.2 Chức Năng Chính.....................................................................................19
CHƯƠNG V: THIẾT KẾ PHẦN CỨNG.....................................................20
5.1 Yêu Cầu Phần Cứng................................................................................20
5.2 Yêu Cầu Phần Mềm.................................................................................21
5.3 Phương Án Thiết Kế................................................................................21
5.3.1 Sơ Đồ Khối...........................................................................................21
5.3.2 Cách Kết Nối Phần Cứng...................................................................22
CHƯƠNG VI: THIẾT KẾ PHẦN MỀM.....................................................24
6.1 Cài Đặt Cho Raspberry Pi Pico .............................................................24
6.2 Nạp Code Cho Raspberry Pi Pico...........................................................29
6.2.1 Thiết Kế Ứng Dụng Điều Khiển…….………………………………32
CHƯƠNG VII: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI...33
7.1 Kết Quả.....................................................................................................33
7.2 Hướng Phát Triển Của Đề Tài................................................................34
7.2.1 Kết Luận……………………………………………………………...34
7.2.3 Hướng Phát Triển Của Đề Tài……………………………………...35
TÀI LIỆU THAM KHẢO………………………………………………….........36
lOMoARcPSD|36991220
PHẦN A: MỞ ĐẦU
1. Giới Thiệu Đề Tài:
Công nghiệp hóa là một trong những nhiệm vụ quan trọng hàng
đầu của nhà nước. Quá trình phát triển đó đưa cả nền sản xuất
vật chất và đời sống văn hóa - xã hội của đất nước lên trình độ
mới. Đến nay, lịch sử nhân loại đã chứng kiến 4 cuộc cách mạng
công nghiệp, cũng là các cuộc cách mạng khoa học - kỹ thuật nói
chung.
Tất cả các thiết bị công nghệ đang dần được đưa vào đời sống
của con người. Các công trình nghiên cứu, các dự án khoa học
ngày càng được phát triển. Để hưởng ứng chung với sự phát
triển đó nhóm chúng em đã chọn đề tài liên quan đến “Hệ thống
nhúng trong công nghiệp” đó là Xe điều khiển từ xa dùng
Raspberry Pi Pico thông qua Bluetooth kết nối với điện thoại.
2. Mục Tiêu Nghiên Cứu
a. Vi điều khiển Raspberry Pi Pico
b. Module điều khiển động cơ L298N
c. Ngôn ngữ lập trình Python
d. Module Bluetooth HC-05
PHẦN B: NỘI DUNG
CHƯƠNG I: RASPBERRY PI PICO
1.1 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:
lOMoARcPSD|36991220
+ 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.
lOMoARcPSD|36991220
1.2 Thông Số Kỹ Thuật Và Cấu Hình Chân
Bo mạch Microcontroller Development đầu tiên đến từ Raspberry
Pi Foundation.
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"
lOMoARcPSD|36991220
Chân cắm header chưa được hàn sẵn Hỗ trợ thiết bị ngoại vi :
- 26 GPIO 3.3V đa chức năng
- 23 GPIO are digital-only
- 3 x 12-bit ADC capable of 500Ksps, Analog to Digital
Converter
- 2 x UART (Universal Asynchronous Receiver/Transmitter)
- 2 x SPI (Serial Peripheral Interface)
- 2 x I2C (Inter IC)
- 16 x PWM (Pulse Width Modulation)
- 1 x Timer with 4 alarms
- 1 x Real Time Counter
- 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
400 và Raspberry Pi OS
Kích thước : 51mm x 21mm x 1mm
lOMoARcPSD|36991220
lOMoARcPSD|36991220
CHƯƠNG 2: MODULE ĐIỀU KHIỂN ĐỘNG CƠ
L298N
2.1 Khái Niệm
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
lOMoARcPSD|36991220
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
- ENA: Kích hoạt tín hiệu PWM cho Motor A
- ENB: Kích hoạt tín hiệu PWM cho Motor B
- OUT1 & OUT2: Chân đầu ra của Motor A
- OUT3 & OUT4: Chân ra của Motor B
- 12V: Đầu vào 12V từ nguồn DC
- 5V: Cấp nguồn cho mạch logic chuyển mạch bên trong IC L298N
- GND: Chân nối đất
lOMoARcPSD|36991220
2.3 Thông Số Kỹ Thuật
- Trình điều khiển Model: L298N 2A
- Chip điều khiển: Cầu đôi H L298N
- Điện áp cung cấp cho động cơ (Tối đa): 46V
- Dòng điện cung cấp cho động cơ (Tối đa): 2A
- Điện áp logic: 5V
- Điện áp trình điều khiển: 5-35V
- Trình điều khiển hiện tại: 2A
- Dòng điện logic: 0-36mA
- Công suất tối đa (W): 25W
lOMoARcPSD|36991220
CHƯƠNG III: MODULE BLUETOOTH HC-05
3.1 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.
3.2 Đặc Điểm Của Công Nghệ Bluetooth
ƯU ĐIỂM
- 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
lOMoARcPSD|36991220
NHƯỢC ĐIỂ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.
3.3 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.
3.4 Module Bluetooth HC-05
3.4.1 Khái Niệm:
- Module Bluetooth HC-06 được thiết kế để chuyển đổi giao tiếp nối
tiếpkhô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ó.
lOMoARcPSD|36991220
3.4.2 Thông Số Kỹ Thuật:
- Đ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,
38400, 57600, 115200
- 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 Thiết
lập mặt định:
- Baud rate: 9600
- Check parity: None
- Bits: 8
- Stop bit: 1
- Pairing code: 1234
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.
lOMoARcPSD|36991220
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.
lOMoARcPSD|36991220
3.4.4 Đặc tính
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
3.4.5 Ứng dụng
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
CHƯƠNG IV: NGÔN NGỮ LẬP TRÌNH PYTHON
4.1 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.
lOMoARcPSD|36991220
4.2 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
lOMoARcPSD|36991220
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 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.
CHƯƠNG V:
THIẾT KẾ PHẦN CỨNG
5.1 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.
lOMoARcPSD|36991220
5.2 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.
5.3 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
Chức năng các 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.
lOMoARcPSD|36991220
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).
lOMoARcPSD|36991220
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)
lOMoARcPSD|36991220
CHƯƠNG VI: THIẾT KẾ PHẦN MỀM
6.1 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 Bước 1:
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
Bước 2:
Nạp file thực thi:
- Nhấn giữ nút BOOTSEL (nút nhấn màu trắng trên board) rồi cắm
cápkết nối vào board, sau đó cắm vào cổng USB của máy tính (PC,
Raspbery Pi,...).
lOMoARcPSD|36991220
- Pi Pico board sẽ được kết nối máy tính như là ổ cứng lưu trữ và có tênlà
RPI-RP2, bạn click chuột kéo file .uf2 mẫu vừa tải vào thư mục
RPIRP2 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ợ. Bước 3:
IDE khuyên dùng đlập trình cho Pi Pico bằng Python Thonny,
các bạn tải vThonny IDE tại đây: https://thonny.org/. Thonny khả dụng
trên cả 3 hệ điều hành Windows, Mac 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.
lOMoARcPSD|36991220
lOMoARcPSD|36991220
6.2 Nạp Code Cho Raspberry Pi Pico
Ta mở phần mềm Thonny Python lên:
lOMoARcPSD|36991220
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à -đ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
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.
lOMoARcPSD|36991220
Sau đó, chúng ta tạo năm chức năng để điều khiển chuyển động
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ơ.
lOMoARcPSD|36991220
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.
lOMoARcPSD|36991220
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 -đ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.
lOMoARcPSD|36991220
CHƯƠNG VII: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ
TÀI
7.1 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:
Về Raspberry Pi:
lOMoARcPSD|36991220
- 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.
7.2 Hướng Phát Triển Đề Tài
7.2.1 Kết Luận:
Sau khoảng thời gian nghiên cứu và 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 Board
Raspberry 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ạ ... .
lOMoARcPSD|36991220
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 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.
TÀI LIỆU THAM KHẢO
- RASPBERRY PI.ORG
- https://www.instructables.com/Simple-Bluetooth-Controlled-Car-
Raspberry-Pi-Pico/
- https://github.com/Guitarman9119/Raspberry-Pi-Pico-
-
- Python.org
| 1/31

Preview text:

lOMoARcPSD| 36991220
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO BÁO CÁO CUỐI KỲ
MÔN HỌC: HỆ THỐNG NHÚNG TRONG CÔNG NGHIỆP
XE ĐIỀU KHIỂN TỪ XA DÙNG RASPBERRY PI PICO THÔNG QUA BLUETOOTH MỤC LỤC
PHẦN A: MỞ ĐẦU..................................................................................................5
1.Giới thiệu đề tài:............................................................................................5
2.Mục tiêu nghiên cứu......................................................................................5
PHẦN B: NỘI DUNG..............................................................................................6
CHƯƠNG I: RASPBERRY PI
PICO.............................................................6
1.1 Khái Niệm..................................................................................................6
1.2 Thông Số Kỹ Thuật Và Cấu Hình Chân.................................................7
CHƯƠNG 2:MODULE ĐIỀU KHIỂN ĐỘNG CƠ L298N........................11
2.1 Khái Niệm.................................................................................................11 lOMoARcPSD| 36991220
2.2 Cấu Hình Sơ Đồ Chân.............................................................................11
2.3 Thông Số Kỹ Thuật..................................................................................12
CHƯƠNG III: MODULE BLUETOOTH HC-05.......................................13
3.1 Khái Niệm Về Công Nghệ Bluetooth......................................................13
3.2 Đặc Điểm Của Công Nghệ Bluetooth.....................................................14
3.3 Hoạt Động…………………………………………………………..........14
3.4 Module Bluetooth HC-05……………………………………………….15
3.4.1 Khái Niệm…………………………………………………………….15
3.4.2 Thông Số Kỹ Thuật…………………………………………………..16
3.4.3 Mô Tả Sơ Đồ Chân…………………………………………………..16
3.4.4 Đặc Tính……………………………………………………………...17
3.4.5 Ứng Dụng…………………………………………………………….18
CHƯƠNG IV: NGÔN NGỮ LẬP TRÌNH PYTHON.................................18
4.1 Khái Niệm.................................................................................................18
4.2 Chức Năng Chính.....................................................................................19
CHƯƠNG V: THIẾT KẾ PHẦN CỨNG.....................................................20
5.1 Yêu Cầu Phần Cứng................................................................................20
5.2 Yêu Cầu Phần Mềm.................................................................................21

5.3 Phương Án Thiết Kế................................................................................21
5.3.1 Sơ Đồ Khối...........................................................................................21
5.3.2 Cách Kết Nối Phần Cứng...................................................................22
CHƯƠNG VI: THIẾT KẾ PHẦN MỀM.....................................................24
6.1 Cài Đặt Cho Raspberry Pi Pico .............................................................24
6.2 Nạp Code Cho Raspberry Pi Pico...........................................................29
6.2.1 Thiết Kế Ứng Dụng Điều Khiển…….………………………………32
CHƯƠNG VII: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI...33
7.1 Kết Quả.....................................................................................................33
7.2 Hướng Phát Triển Của Đề Tài................................................................34
7.2.1 Kết Luận……………………………………………………………...34
7.2.3 Hướng Phát Triển Của Đề Tài……………………………………...35
TÀI LIỆU THAM KHẢO………………………………………………….........36 lOMoARcPSD| 36991220 PHẦN A: MỞ ĐẦU
1. Giới Thiệu Đề Tài:
• Công nghiệp hóa là một trong những nhiệm vụ quan trọng hàng
đầu của nhà nước. Quá trình phát triển đó đưa cả nền sản xuất
vật chất và đời sống văn hóa - xã hội của đất nước lên trình độ
mới. Đến nay, lịch sử nhân loại đã chứng kiến 4 cuộc cách mạng
công nghiệp, cũng là các cuộc cách mạng khoa học - kỹ thuật nói chung.
• Tất cả các thiết bị công nghệ đang dần được đưa vào đời sống
của con người. Các công trình nghiên cứu, các dự án khoa học
ngày càng được phát triển. Để hưởng ứng chung với sự phát
triển đó nhóm chúng em đã chọn đề tài liên quan đến “Hệ thống
nhúng trong công nghiệp” đó là Xe điều khiển từ xa dùng
Raspberry Pi Pico thông qua Bluetooth kết nối với điện thoại.
2. Mục Tiêu Nghiên Cứu
a. Vi điều khiển Raspberry Pi Pico
b. Module điều khiển động cơ L298N
c. Ngôn ngữ lập trình Python d. Module Bluetooth HC-05 PHẦN B: NỘI DUNG
CHƯƠNG I: RASPBERRY PI PICO 1.1 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: lOMoARcPSD| 36991220
+ 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. lOMoARcPSD| 36991220
1.2 Thông Số Kỹ Thuật Và Cấu Hình Chân
Bo mạch Microcontroller Development đầu tiên đến từ Raspberry Pi Foundation.
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" lOMoARcPSD| 36991220
Chân cắm header chưa được hàn sẵn Hỗ trợ thiết bị ngoại vi :
- 26 GPIO 3.3V đa chức năng - 23 GPIO are digital-only
- 3 x 12-bit ADC capable of 500Ksps, Analog to Digital Converter
- 2 x UART (Universal Asynchronous Receiver/Transmitter)
- 2 x SPI (Serial Peripheral Interface) - 2 x I2C (Inter IC)
- 16 x PWM (Pulse Width Modulation) - 1 x Timer with 4 alarms - 1 x Real Time Counter
- 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 400 và Raspberry Pi OS
Kích thước : 51mm x 21mm x 1mm lOMoARcPSD| 36991220 lOMoARcPSD| 36991220
CHƯƠNG 2: MODULE ĐIỀU KHIỂN ĐỘNG CƠ L298N 2.1 Khái Niệm
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 lOMoARcPSD| 36991220
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
- ENA: Kích hoạt tín hiệu PWM cho Motor A
- ENB: Kích hoạt tín hiệu PWM cho Motor B
- OUT1 & OUT2: Chân đầu ra của Motor A
- OUT3 & OUT4: Chân ra của Motor B
- 12V: Đầu vào 12V từ nguồn DC
- 5V: Cấp nguồn cho mạch logic chuyển mạch bên trong IC L298N - GND: Chân nối đất lOMoARcPSD| 36991220
2.3 Thông Số Kỹ Thuật
- Trình điều khiển Model: L298N 2A
- Chip điều khiển: Cầu đôi H L298N
- Điện áp cung cấp cho động cơ (Tối đa): 46V
- Dòng điện cung cấp cho động cơ (Tối đa): 2A - Điện áp logic: 5V
- Điện áp trình điều khiển: 5-35V
- Trình điều khiển hiện tại: 2A - Dòng điện logic: 0-36mA
- Công suất tối đa (W): 25W lOMoARcPSD| 36991220
CHƯƠNG III: MODULE BLUETOOTH HC-05
3.1 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.
3.2 Đặc Điểm Của Công Nghệ Bluetooth ƯU ĐIỂM -
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 lOMoARcPSD| 36991220 NHƯỢC ĐIỂ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. 3.3 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.
3.4 Module Bluetooth HC-05 3.4.1 Khái Niệm:
- Module Bluetooth HC-06 được thiết kế để chuyển đổi giao tiếp nối
tiếpkhô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ó. lOMoARcPSD| 36991220
3.4.2 Thông Số Kỹ Thuật:
- Đ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, 38400, 57600, 115200
- 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 Thiết lập mặt định: - Baud rate: 9600 - Check parity: None - Bits: 8 - Stop bit: 1 - Pairing code: 1234
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. lOMoARcPSD| 36991220
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. lOMoARcPSD| 36991220 3.4.4 Đặc tính
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 3.4.5 Ứng dụng
• 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
CHƯƠNG IV: NGÔN NGỮ LẬP TRÌNH PYTHON 4.1 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. lOMoARcPSD| 36991220 4.2 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 lOMoARcPSD| 36991220
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 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.
CHƯƠNG V: THIẾT KẾ PHẦN CỨNG
5.1 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. lOMoARcPSD| 36991220
5.2 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.
5.3 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 Chức năng các 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. lOMoARcPSD| 36991220
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). lOMoARcPSD| 36991220
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) lOMoARcPSD| 36991220
CHƯƠNG VI: THIẾT KẾ PHẦN MỀM
6.1 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 Bước 1:
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 Bước 2: Nạp file thực thi:
- Nhấn giữ nút BOOTSEL (nút nhấn màu trắng trên board) rồi cắm
cápkết nối vào board, sau đó cắm vào cổng USB của máy tính (PC, Raspbery Pi,...). lOMoARcPSD| 36991220
- Pi Pico board sẽ được kết nối máy tính như là ổ cứng lưu trữ và có tênlà
RPI-RP2, bạn click chuột kéo file .uf2 mẫu vừa tải vào thư mục
RPIRP2 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ợ. Bước 3:
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. lOMoARcPSD| 36991220 lOMoARcPSD| 36991220
6.2 Nạp Code Cho Raspberry Pi Pico
Ta mở phần mềm Thonny Python lên: lOMoARcPSD| 36991220
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
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. lOMoARcPSD| 36991220
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ơ. lOMoARcPSD| 36991220
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. lOMoARcPSD| 36991220
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. lOMoARcPSD| 36991220
CHƯƠNG VII: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN ĐỀ TÀI 7.1 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: Về Raspberry Pi: lOMoARcPSD| 36991220 -
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.
7.2 Hướng Phát Triển Đề Tài 7.2.1 Kết Luận:
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 Board Raspberry 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ạ ... . lOMoARcPSD| 36991220
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.
TÀI LIỆU THAM KHẢO - RASPBERRY PI.ORG
- https://www.instructables.com/Simple-Bluetooth-Controlled-Car- Raspberry-Pi-Pico/
- https://github.com/Guitarman9119/Raspberry-Pi-Pico- - - Python.org