You are on page 1of 48

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

KHOA CÔNG NGHỆ ĐIỆN TỬ VÀ TRUYỀN THÔNG




BÁO CÁO TIỂU LUẬN MÔN


MÁY TÍNH NHÚNG VÀ ỨNG DỤNG

Đề tài:

XÂY DỰNG HỆ THỐNG ĐIỀU KHIỂN ĐỘNG CƠ

Sinh viên thực hiện: NGUYỄN VĂN ĐẠT

VÌ VĂN THƠ

VŨ HỒNG CÔNG

HOÀNG THỊ KIỀU TRINH

Lớp: ĐTƯD - K19A

Hệ: ĐẠI HỌC CHÍNH QUY

Giáo viên hướng dẫn: ThS. NGUYỄN XUÂN KIÊN

THÁI NGUYÊN - 2023

1
LỜI NÓI ĐẦU
Cùng với sự tiến bộ của khoa học và công nghệ, các thiết bị tử đang và sẽ
tiếp tục được ứng dụng ngày càng rộng rãi và mang lại hiệu quả cao trong hầu hết
các lĩnh vực kinh tế kỹ thuật cũng như đời sống xã hội. Raspberry Pi là máy tính giá
35USD kích cỡ như iPhone và chạy HĐH Linux. Với mục tiêu chính của chương
trình là giảng dạy máy tính cho trẻ em. Được phát triển bởi Raspberry Pi
Foundation, tổ chức phi lợi nhuận với tiêu chí xây dựng hệ thống mà nhiều người có
thể sử dụng được trong những công việc tùy biến khác nhau. Raspberry Pï sản xuất
bởi 3 OEM: Sony, Qsida, Egoman. Và được phân phối chính bởi lement14. RS
Components và Egoman.
Nhiệm vụ ban đầu của dự án Raspberry Pi là tạo ra máy tính rẻ tiền có khả
năng lập trình cho những sinh viên, nhưng Pi đã được sự quan tầm từ nhiều đối
tượng khác nhau. Đặc tính của Raspberry PI xây dựng xoay quanh bộ xử lý SoC
Broadcom BCM2835(là chip xử lí mobile mạnh mẽ có kích thước nhỏ hay được
dùng trong điện thoại di động) bao gồm CPU, GPU, bộ xử lí ầm thanh/video, và các
tính năng khác,... tất cả được tích hợp bên trong chip có điện năng thấp này.
Raspberry Pi là một thiết bị đa năng đáng ngạc nhiên với nhiều phần cứng có giá
thảnh rẻ nhưng rất hoàn hảo cho những hệ thống điện tử, những dự án DIY, thiết lập
hệ thống tính toán rẻ tiền cho những bài học trải nghiệm lập trình.
Mặc dù nhóm thực hiện đề tài đã hoàn thiện được quyển báo cáo và sản
phẩm, nhưng do còn hạn chế về kiến thức nên chắc chắn còn thiểu sót. Nhóm em
mong nhận nhận được sự đóng góp ý kiến của quý thầy cô cùng các bạn sinh viên.
Ngày ....., Tháng 2, Năm 2023
SINH VIÊN THỰC HIỆN

2
MỤC LỤC
LỜI NÓI ĐẦU..............................................................................................................2
MỤC LỤC.....................................................................................................................3
DANH MỤC HÌNH ẢNH............................................................................................5
CHƯƠNG 1. CƠ SỞ THỰC HIỆN ĐỀ TÀI................................................................7
1.1. Đặt vấn đề..............................................................................................................7
1.2. Tính cấp thiết của đề tài.........................................................................................7
1.3. Mục tiêu nghiên cứu...............................................................................................8
1.4. Nội dung nghiên cứu..............................................................................................8
1.5 Giới thiệu về Raspberry Pi......................................................................................9
1.5.1. Lịch sử ra đời và phát triển.................................................................................9
1.5.2. Raspberry Pi 4B................................................................................................11
1.5.3. Một số ứng dụng của Raspberry Pi 4B.............................................................13
CHƯƠNG 2. PHÂN TÍCH CÔNG NGHỆ THIẾT KẾ..............................................16
2.1. Phần mềm và hệ điều hành...................................................................................16
a. Cấu trúc phần mềm..................................................................................................16
b. Hệ điều hành của Raspberry Pi...............................................................................17
2.2. Ngôn ngữ lập trình...............................................................................................21
2.3. Các phần mềm hỗ trợ...........................................................................................22
2.3.1. Phần mềm putty.................................................................................................22
2.3.2. Phần mềm VNC................................................................................................23
2.3.3. Phần mềm Blynk...............................................................................................25
2.4. Linh kiện sử dụng trong mạch.............................................................................26
2.4.1. Động cơ:............................................................................................................26
2.4.2. Nguồn................................................................................................................27
CHƯƠNG 3. THỰC THI THIẾT KẾ PHẦN CỨNG................................................29
3.1. Hướng dẫn kết nối phụ kiện, khởi động Rasspberry pi........................................29
3.1.1. Kết nối phụ kiện................................................................................................29
3.1.2. Khởi động, cài đặt hệ điều hành cho Raspberry Pi...........................................31
3.3. Thiết kế phần cứng...............................................................................................37
ĐÁNH GIÁ KẾT QUẢ...............................................................................................41
TÀI LIỆU THAM KHẢO...........................................................................................43
PHỤ LỤC....................................................................................................................44
3
4
DANH MỤC HÌNH ẢNH
Hình 1.1. Board Rasperberry Pi 3 Model B ............................................................14
Hình 1.2 Rasberry Pi ...............................................................................................14
Hình 1.3 Tổng quan về Raspberry Pi 4 Model B .....................................................15
Hình 1.4 Vị trí của các chân chức năng của Raspberry Pi 4B ................................16
Hình 1.5 Chức năng từng chân của Raspberry Pi 4B .............................................17
Hình 1.6 Sơ đồ kết nối PI .........................................................................................19
Hình 1.7 Hệ điều hành Raspbian .............................................................................20
Hình 1.8 Hệ điều hành MATE Ubuntu .....................................................................21
Hình 1.9 Hệ điều hành Ubuntu ................................................................................21
Hình 1.10 Hệ điều hành Pidora ...............................................................................22
Hình 1.11 Hệ điều hành ARM Linux ARM ..............................................................22
Hình 1.12 Hệ điều hành Gentoo Linux ....................................................................23
Hình 1.13 Hệ điều hành Android............................................................................. 23
Hình 1.14 Giao diện Chromium OS .........................................................................23
Hình 1.15 Ngôn ngữ python .....................................................................................24
Hình 1.16 Giao diện làm việc .................................................................................25
Hình 1.17 Proteus Labcenter Electronics ................................................................27
Hình1.18 Giao diện chính của Proteus ....................................................................28
Hình 2.1 Led đơn .....................................................................................................29
Hình 2.2 Nút nhấn 2 chân ........................................................................................30
Hình 2.3 Module L298 .............................................................................................30
Hình 2.4 động cơ DC giảm tốc vàng .......................................................................31
Hình 2.5 Cảm biến DHT 11..................................................................................... 32
Hình 2.6 DHT11 pino out. ......................................................................................33
Hình 2.7 cảm biến siêu âm HY-SRF05.................................................................... 33
Hình 2.8 Module Pi camera .....................................................................................34
Hình 2.9 nguồn adapter ...........................................................................................35
Hình 3.1 Màn hình 7inch .........................................................................................37
Hình 3.2 Kết nối nguồn, HDMI giữa Raspberry Pi với màn hình ...........................38

5
Hình 3.3 Kết nối chuột và bàn phím với Raspberry Pi ............................................38
Hình 3.4 Kết nối đầy đủ các phụ kiện với Raspberry PI .........................................39
Hình 3.5 Bộ nguồn chính hãng của Raspberry Pi................................................... 39
Hình 3.6 Kết nối nguồn cho Raspberry Pi ...............................................................40
Hình 3.7 Module thực hành chính ...........................................................................45
Hình 3.8 Khối GPIO và Pi .......................................................................................46
Hình 3.9 Màn hình hiển thị ......................................................................................46
Hình 3.10 Khối led đơn ............................................................................................47
Hình 3.11 Khối phím bấm ........................................................................................47
Hình 3.12 Khối động cơ ...........................................................................................47
Hình 3.13 Khối cảm biến siêu âm ............................................................................47
Hình 3.14 Khối DHT 11 ...........................................................................................48
Hình 3.15 Khối nguồn ..............................................................................................48
Hình 3.16 giao tiếp 8 Led đơn .................................................................................48
Hình 3.17 Lưu đồ thuật toán điều khiển 8 Led .......................................................49
Hình 3.18 Sơ đồ nguyên lý giao tiếp 8 nut bấm .......................................................51
Hình 3.19: Lưu đồ thuật toán giao tiếp 8 nút bấm ..................................................51
Hình 3.20 Sơ đồ nguyên lý giao tiế L298N ..............................................................53
Hình 3.21 Lưu đồ thuật toán giao tiếp L298N .........................................................54
Hình 3.22 Sơ đồ nguyên lý bài 2 .............................................................................57
Hình 3.23 Lưu đồ thuật toán bài 2 ...........................................................................57
Hình 3.24 sơ đồ nguyên lý .......................................................................................58
Hình 3.25 Lưu đồ thuật toán bài 3 ...........................................................................58
Hình 3.26 chân cắm module máy ảnh ......................................................................60
Hình 3.27 module máy ảnh ......................................................................................60
Hình 3.28 Logo phpmyAdmin ..................................................................................63
Hình 3.29 Kết quả cấu hình thành công cơ sở dữ liệu ............................................70
Hình 3.30 thiết lập trang web server thành công .....................................................73

6
CHƯƠNG 1. CƠ SỞ THỰC HIỆN ĐỀ TÀI
1.1. Đặt vấn đề
Xã hội ngày càng phát triển, đồng nghĩa với việc những nhu cầu xã hội cũng
ngày càng nâng cao. Trong đời sống sinh hoạt, ngày càng xuất hiện nhiều những
thiết bị thông minh, xuất hiện nhiều những robot giúp việc làm đời sống hàng ngày
của người dân được tiện lợi hơn, thoải mái hơn an toàn và tiện nghi hơn. Không
dừng ở đó, trong y tế, giáo dục, quốc phòng và cả rất nhiều lĩnh vực khác đặc biệt là
trong công nghiệp sản xuất, vi điều khiển, máy tính, tự động hóa được áp dụng rất
nhiều nhằm mục đích đó là thay thế phần nào được sức lao động của con người.
Trong thời đại kỹ thuật số hiện nay, việc tự động hóa và điều khiển các động
cơ đã trở thành một phần quan trọng của nhiều lĩnh vực, từ công nghiệp đến gia
đình thông minh, y tế và nông nghiệp. Điều khiển động cơ không chỉ cải thiện hiệu
suất mà còn tạo ra tiện ích và tiết kiệm thời gian cho con người. Một công nghệ
quan trọng trong việc xây dựng hệ thống điều khiển động cơ là Raspberry Pi, một
máy tính nhỏ gọn, mạnh mẽ và hiệu quả từ một góc độ chi phí.
Đề tài mở ra cơ hội để nghiên cứu và phát triển các giải pháp sáng tạo sử
dụng Raspberry Pi để điều khiển động cơ và đóng góp vào việc tự động hóa và tiết
kiệm trong nhiều lĩnh vực khác nhau.
1.2. Tính cấp thiết của đề tài
Trong thời đại số hóa hiện nay, Internet of Things (IoT) và các ứng dụng
Thông tin số đang trở nên phổ biến. Các hệ thống điều khiển động cơ là một phần
quan trọng của nhiều ứng dụng IoT, từ thiết bị gia dụng thông minh đến quản lý tự
động trong công nghiệp. Sự phát triển của các giải pháp IoT đòi hỏi các hệ thống
điều khiển động cơ hiệu quả. Không những thế, Raspberry Pi còn là một nền tảng
phù hợp cho giáo dục và nghiên cứu. Việc xây dựng các hệ thống điều khiển động
cơ sử dụng Raspberry Pi có thể giúp sinh viên, học sinh, và nghiên cứu sinh hiểu rõ
hơn về lĩnh vực điều khiển và tự động hóa.
Các hệ thống điều khiển động cơ có tiềm năng giúp tối ưu hóa tiêu thụ năng
lượng và cải thiện hiệu suất trong nhiều ứng dụng. Điều này quan trọng trong bối
cảnh tăng cường bảo vệ môi trường và tiết kiệm năng lượng. Ngoài ra, các hệ thống
7
điều khiển động cơ là một phần quan trọng của tự động hóa công nghiệp. Việc phát
triển các giải pháp điều khiển động cơ hiệu quả có thể cải thiện quy trình sản xuất
và tiết kiệm chi phí trong các ứng dụng công nghiệp. Hệ thống điều khiển động cơ
sử dụng Raspberry Pi có thể được áp dụng trong nhiều lĩnh vực khác nhau, từ nhà
thông minh, robot, máy in 3D đến tự động hóa nông nghiệp và quản lý năng lượng.
Cơ hội cho sáng tạo và phát triển cá nhân: Đề tài này cung cấp cơ hội cho
các cá nhân, nhà phát triển, và học sinh trải nghiệm và phát triển các ứng dụng sáng
tạo. Raspberry Pi là một nền tảng tiết kiệm chi phí và phù hợp để thực hiện các dự
án động cơ.
Tóm lại, tính cấp thiết của đề tài "XÂY DỰNG HỆ THỐNG ĐIỀU KHIỂN
ĐỘNG CƠ" được thể hiện qua vai trò quan trọng của hệ thống điều khiển động
cơ trong thế giới số hóa và IoT, cũng như qua tiềm năng giáo dục, nghiên cứu,
tối ưu hóa năng lượng, và ứng dụng rộng rãi trong nhiều lĩnh vực.
1.3. Mục tiêu nghiên cứu
Xây dựng một hệ thống điều khiển động cơ sử dụng Raspberry Pi, với khả
năng tương tác và kiểm soát động cơ thông qua giao diện người dùng. Phạm vi của
dự án bao gồm tìm hiểu về phần cứng, phát triển phần mềm, và kiểm tra hệ thống
trong nhiều ứng dụng khác nhau.
Đề tài giúp cho sinh viên:
- Nẵm rõ kiến thức tổng quan kiến trúc về Raspberry Pi và cách hoạt động.
- Có kiến thức nền tảng về lập trình nhúng và quy trình giải quyết bài toán.
- Các sinh viên có điều kiện được thực hành trực tiếp thực hành trên phần cứng.
1.4. Nội dung nghiên cứu
- Tìm hiểu về Raspberr pi và các linh kiện trên các module ngoại vi.
- Tìm hiểu về phần mềm thiết kế mạch điện tử và trình biên dịch Raspberry pi
- Thiết kế và xây dựng sản phẩm để điều khiển động cơ.
- Khảo sát và nghiên cứu các ứng dụng cụ thể của hệ thống điều khiển động
cơ, bao gồm việc sử dụng trong tự động hóa nhà thông minh, robot, máy in 3D,
hoặc bất kỳ ứng dụng nào khác liên quan đến điều khiển động cơ.

8
1.5 Giới thiệu về Raspberry Pi
1.5.1. Lịch sử ra đời và phát triển
Raspberry Pi là từ để chỉ các máy tính bo mạch đơn (hay còn gọi là máy tính
nhúng) kích thước chỉ bẳng một thẻ tín dụng, được phát triển tại Anh bởi Raspberry
Pi Foundation với mục đích ban đầu là thúc đẩy việc giảng dạy về khoa học máy
tính cơ bản trong các trường học và các nước đang phát triển.
Raspberry Pi gốc và Raspberry Pi gốc 2 được sản xuất theo nhiều cấu hình
khác nhau thông qua các thỏa thuận cấp phép sản xuất với Newark element14
(Premier Farnell), RS Components và Egoman. Các công ty này bán Raspberry Pi
trực tuyến. Egoman sản xuất một phiên bản phân phối duy nhất tại Đài Loan, có thể
được phân biệt với các bản Pi khác bởi màu đỏ của chúng và thiếu dấu FCC/CE.
Phần cứng là như nhau đối với tất cả các nhà sản xuất.
Raspberry Pi ban đầu được dựa trên hệ thống trên một vi mạch (SoC)
BCM2835 của Broadcom, bao gồm một vi xử lý ARM1176JZF-S 700 MHz,
VideoCore IV GPU, và ban đầu được xuất xưởng với 256 MB RAM, sau đó được
nâng cấp (model B và B +) lên đến 512 MB. Board này cũng có socket Secure
Digital (SD) (model A và B) hoặc MicroSD (model A + và B +) dùng làm thiết bị
khởi động và bộ lưu trữ liên tục.
Trong năm 2014, Raspberry Pi Foundation đã phát hành Mô-đun Compute,
đóng gói một BCM2835 với 512 MB RAM và một flash chip eMMC vào một
module để sử dụng như một phần của hệ thống nhúng. Tổ chức này cung cấp
Debian và Arch Linux ARM để người dùng tải về. Các công cụ có sẵn cho Python
như là ngôn ngữ lập trình chính, hỗ trợ cho BBC BASIC (thông qua RISC OS
image hoặc Brandy Basic clone cho Linux), C, C++, Java, Perl và Ruby. Tính đến
ngày 08/06/2015, khoảng 5-6.000.000 mạch Raspberry Pi đã được bán. Khi đã trở
thành máy tính cá nhân bán chạy nhanh nhất của Anh, Raspberry Pi là thiết bị được
giao nhiều thứ hai sau Amstrad PCW, "Personal Computer Word-processor", bán
được 8 triệu chiếc.
Vào đầu tháng 2 năm 2015, thế hệ tiếp theo của Raspberry Pi, Raspberry Pi
2, đã được phát hành. Board máy tính mới này đầu tiên chỉ có một cấu hình (model
9
B) và trang bị SoC Broadcom BCM2836, với một nhân ARM Cortex-A7 CPU 4 lõi
và một VideoCore IV dual-core GPU; 1 GB bộ nhớ RAM với thông số kỹ thuật còn
lại tương tự như của các thế hệ model B+ trước đó. Raspberry Pi 2 vẫn giữ nguyên
giá $35 so với model B, với model A+ giá $20 vẫn còn được bán.[cần dẫn nguồn]
Hầu hết các mạch Pi được sản xuất tại một nhà máy Sony tại Pencoed, Wales; một
số được sản xuất tại Trung Quốc hoặc Nhật Bản.
Ngày 29/01/2016, Raspberry Pi Foundation chính thức ra mắt Raspberry Pi 3
với rất nhiều điểm cải tiến mới, hỗ trợ Wifi và Bluetooth sẵn trên board
mạch. Thông
tin cấu hình đặc trưng của Raspberry Pi 3:
- Broadcom BCM2837 chipset running at 1.2 GHz.
- 64-bit quad-core ARM Cortex-A53.
- 802.11 b/g/n Wireless LAN; Bluetooth 4.1 (Classic & Low Energy).
- Dual core Videocore IV® Multimedia co-processor; 1 GB LPDDR2
memory.
- Hỗ trợ ARM GNU/Linux distributions và Windows 10 IoT.
- MicroUSB connector for 2.5 A power supply.
- 1 x 10/100 Ethernet port; 1 x HDMI video/audio connector.
- 1 x RCA video/audio connector; 4 x USB 2.0 ports; 40 GPIO pins.
- Chip antenna; DSI display connector; MicroSD card slot.
- Dimensions: 85 x 56 x 17 mm.

10
Hình 2.1. Board Rasperberry Pi 3 Model B
1.5.2. Raspberry Pi 4B
Raspberry Pi 4B là một sản phẩm mới nhất trong họ máy tính nhúng
Raspberry Pi, nó được ra đời vào cuối tháng 6/2019. Cấu hình của Raspberry Pi 4B
nổi bật với vi mạch Broadcom BCM2711, Cortex-A72 (ARM v8) 4 nhân 64 bit với
tốc độ xử lý là 1,5GHz, đây là dòng vi mạch có tốc độ xử lý nhanh nhất từ trước đến
nay của họ máy tính nhúng này. Phiên bản máy tính nhúng Raspberry Pi này hỗ trợ
hai cổng micro-HDMI, hỗ trợ 2 cổng USB 2.0 và 2 cổng USB 3.0, hỗ trợ Wifi
chuẩn IEEE 802.11ac với Dual-Band 2,4GHz và 5GHz, hỗ trợ Bluetooth 5.0, hỗ trợ
cổng Ethernet tốc độ cao (Gigabit Ethernet) và hỗ trợ PoE (Power over Ethernet).

Hình 2.2 Rasberry Pi


Thông số kỹ thuật của Raspberry Pi 4 Model B:
- Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz.
- Có 3 lựa chọn RAM: 2GB, 4GB hoặc 8GB LPDDR4-2400 SDRAM.
- Wifi chuẩn 2.4 GHz và 5.0 GHz IEEE 802.11ac. Bluetooth 5.0, BLE.
- Cổng mạng Gigabit Ethernet.
- 2 cổng USB 3.0 và 2 cổng USB 2.0.
- Chuẩn 40 chân GPIO, tương thích với các phiên bản trước.
- Hỗ trợ 2 cổng ra màn hình chuẩn Micro HDMI với độ phân giải lên tới
4K.
11
- Cổng MIPI DSI.
- Cổng MIPI CSI.
- Cổng AV 4 chân.
- H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode).
- OpenGL ES 3.0 graphics.
- Khe cắm Micro-SD cho hệ điều hành và lưu trữ.
- Nguồn điện DC 5V – 3A DC chuẩn USB-C.
- 5V DC via GPIO header (minimum 3A*).
- Hỗ trợ Power over Ethernet (PoE) (yêu cầu có PoE HAT).

Hình 2.3 Tổng quan về Raspberry Pi 4 Model B


Một số điểm nâng cấp của Raspberry Pi 4 Model B
- CPU mạnh hơn.
- Hỗ trợ chuẩn USB 3.0.
- RAM DDR4 thay vì DDR2 như cũ.
- Cổng mạng Ethernet Gigabit.
- Có 2 cổng ra màn hình với độ phân giải 4K.
- Nguồn điện yêu cầu 5V – 3A thay vì 5V 2.5A như cũ.
- Bluetooth nâng cấp từ phiên bản 4.0 lên 5.0.

12
Raspberry Pi 4B được tích hợp sẵn một đầu nối có 40 chân chức năng, bao
gồm: 26 chân xuất/nhập đa chức năng (GPIO) có một số chân tích hợp thêm các
tính năng đặc biệt (như là PWM, UART, SPI, I2C), 2 chân ID cho I2C EEPROM, 2
chân nguồn 5V, 2 chân nguồn 3,3V, 8 chân GND.

Hình 2.4 Vị trí của các chân chức năng của Raspberry Pi 4B

Hình 2.5 Chức năng từng chân của Raspberry Pi 4B


1.5.3. Một số ứng dụng của Raspberry Pi 4B
Mục đích của Eben Upton - người sáng tạo ra Raspberry Pi là tạo ra thiết bị
với mức phí thấp nhưng có thể nâng cao kỹ năng lập trình và hiểu biết phần cứng
cho học sinh trong các trường học. Với kích thước nhỏ gọn và mức giá phù hợp,
13
Raspberry Pi đã nhanh chóng được các nhà sản xuất và những người đam mê điện
tử chấp nhận và sử dụng trong các dự án đòi hỏi nhiều hơn một vi điều khiển cơ bản
(chẳng hạn như thiết bị Arduino). Ngoài ra trên thực tế Raspberry Pi còn có vô vàn
những ứng dụng hữu ích khác
Raspnerry Pi có thể được dùng như máy tính để bàn:
Ngoài Raspberry Pi ta cần có thẻ microSD, nguồn cung cấp điện và cáp
HDMI cùng màn hình hiển thị phù hợp. Thêm vào đó để có thể sử dụng như một
máy tính ta cần có bàn phím và chuột. Với các phiên bản Raspberry Pi 3 đã được
tích hợp sẵn tính năng Wifi, Bluetooth và cổng Ethernet để đáp ứng tối đa nhu cầu
người sử dụng.
Bộ điều khiển robot:
Chúng ta có thể sử dụng một gói robot dành riêng cho máy Pi, sử dụng pin
và được dùng để giao tiếp và điều khiển robot. Hoặc có thể tự thiết kế, xây dựng từ
các thành phần đã có. Với robot thì ta chỉ có thể chọn Pi Zero W bởi nó có tính năng
kết nối không dây lí tưởng cho các robot nhẹ.
Các ứng dụng cho máy in:
Với những chiếc máy in cũ kĩ ta hoàn toàn vẫn có thể giúp nó kết nối không
dây thông qua việc sử dụng Raspberry Pi cùng với một số phần mềm máy chủ in cơ
bản. Thậm chí với việc kết hợp này ta còn có thể thêm tính năng AirPrint cho máy
in để hỗ trợ được nhiều thiết bị khác như máy tính bảng hay smart phone.
Các tiện ích với camera:
Chỉ với một module máy ảnh chuyện dụng kết hợp với Raspberry Pi hoàn
toàn có thể tạo ra các video stop motion, xu thế đang rất phổ biến trên mạng xã hội
hiện nay. Hơn thế nữa nếu như bạn kết hợp thêm chúng với một script khác chúng ta
hoàn toàn có thể tạo các video time lapse. Người dùng có thể thực hiện quay bất cứ thứ
gì như hoa trong vườn, trái cây trong bát, người đi ngang đường, đám mây trên bầu trời
hoặc thời tiết thay đổi, tất cả tùy thuộc vào sức sáng tạo của người dùng.
Raspberry Pi và game:
Với những game thủ hay những người đam mê các trò chơi thì Raspberry Pi
thật sự có nhiều ý nghĩa trong lĩnh vực này. Raspberry Pi hoàn toàn có thể trở thành
14
một chiếc máy chơi game với sự gọn nhẹ và mạnh mẽ đáp ứng các mục đích sử
dụng khác nhau. Không đơn giản là máy trò chơi những game đơn giản, Raspberry
Pi với raspbian có thể được sử dụng như một máy chủ game.
Hệ thống an ninh, giám sát mạng:
Với module camera được đính kèm trong Raspberry Pi Camera hoặc một
webcam USB thông thường, ta có thể xây dựng hệ thống an ninh chuyển động để
biết được ai đang đột nhập vào nhà. Những thẻ nhớ dung lượng cao sẽ được sử
dụng để có thể lưu trữ mọi cảnh quay từ thiết bị. Thậm chí ta cũng có thể thiết lập
để hệ thống an ninh gửi cảnh báo qua email.
Bên cạnh đó Raspberry Pi góp phần tích cực trong việc xây dựng các giải pháp
giám sát mạng. ta có thể giám sát thời gian, xem hình ảnh của các thiết bị trên mạng.
Những chiếc Smart TV:
Hoàn toàn có thể biến những chiếc TV cũ của nhà mình thành những smart
TV. Để TV trở nên "thông minh", nó có thể phát các phương tiện từ thiết bị lưu trữ
USB hoặc flash, phát trực tuyến từ Netflix, YouTube, các trang web tương tự và
cung cấp điều khiển từ xa. Smart TV cũng cung cấp tin tức và thời tiết và hỗ trợ
PVR, mà một Raspberry Pi có thể quản lý nhờ thẻ USB TV.
Ngoài những ứng dụng tiêu biểu kể trên Raspberry Pi còn có rất nhiều các
ứng dụng khác như: làm máy chủ Web, giúp tự làm hộp NAS, xây dựng hệ thống tự
động hóa giá đình, xây dựng máy thu AirPlay,…

15
CHƯƠNG 2. PHÂN TÍCH CÔNG NGHỆ THIẾT KẾ

2.1. Phần mềm và hệ điều hành


a. Cấu trúc phần mềm
Thiết bị Raspberry Pi sử dụng hệ điều hành dựa trên nền tảng Linux. Phần
cứng GPU được truy cập thông qua Image Firmware được nạp vào GPU vào lúc
khởi động từ thẻ SD. Image Firmware được gọi là đốm màu nhị phân (Binary
Blob), trong khi ARM liên kết với mã trình điều khiển Linux ban đầu được dựa vào
nguồn đóng. Một phần của mã điều khiển đã được giải phóng, tuy nhiên nhiều
chương trình điều khiển thực tế được thực hiện bằng cách sử dụng mã nguồn đóng
GPU. Phần mềm ứng dụng sử dụng các cuộc gọi đến thư viện thời gian chạy nguồn
đóng (OpenMax, OpenGL ES hay OpenVG). Nó sẽ gọi một trình điều khiển nguồn
mở bên trong lõi Linux, sau đó gọi mã điều khiển nguồn đóng GPU VideoCore IV.
Các API của trình điều khiển lõi là cụ thể cho những thư viện đóng. Các ứng dụng
Video sử dụng OpenMax, ứng dụng 3D sử dụng OpenGL ES và ứng dụng 2D sử
dụng OpenVG và cả hai lần lượt sử dụng EGL.OpenMax và EGL sử dụng trình
điều khiển nền tảng mã nguồn mở.

Hình 2.6 Sơ đồ kết nối PI

16
Nhà sản xuất Raspberry sẽ cung cấp một tập hợp các thư viện mã nguồn
đóng cho phép chúng ta truy cập vào các tính năng tăng tốc GPU. Các thư viện sẽ
có sẵn là:
OpenGL ES 2.0 (opengl) là một thư viện 3D, rất thường được sử dụng trên
máy tính để bàn và các hệ thống nhúng. Nó được định nghĩa bởi Khronos Group.
OpenVG là một thư viện bản vẽ véc tơ 2D, cũng thường được sử dụng trên
máy tính để bàn và các hệ thống nhúng. Một lần nữa, được định nghĩa bởi Khronos
Group.
EGL là một giao diện lập trình ứng dụng giữa Khronos và API như OpenGL
ES hay OpenVG và hệ thống cửa sổ nền tảng nguồn gốc cơ bản.
Openmax cung cấp một tập hợp các API với khái niệm trừu tượng của người
dùng cho những thói quen sử dụng trong âm thanh, video, và xử lý hình ảnh tĩnh.
OpenMax định nghĩa ba lớp, đây là lớp IL, cung cấp một giao diện giữa các khuôn
khổ đa phương tiện như Gstreamer và một tập hợp các thành phần đa phương tiện
(như bảng mã).
Openmax IL không có một API chuẩn ở giai đoạn này, vì vậy đó là một cài
đặt tùy chỉnh. Các thư viện này được cung cấp bởi chip SoC Broadcom.

b. Hệ điều hành của Raspberry Pi


Hệ điều hành Raspbian:
Một hệ điều hành dựa trên Debian miễn phí được tối ưu hóa cho phần cứng
của Raspberry Pi, Raspbian đi kèm với tất cả các chương trình và tiện ích cơ bản
bạn mong đợi từ một hệ điều hành có mục đích chung. Được hỗ trợ chính thức bởi
nền tảng Raspberry, HĐH này nổi tiếng với hiệu năng nhanh và hơn 35.000 gói.

17
Hình 2.7 Hệ điều hành Raspbian
Hệ điều hành MATE Ubuntu:
Ubuntu MATE là một hệ điều hành ổn định và đơn giản, mang đến một cấu
hình nhưng vẫn nhẹ về tài nguyên MATE máy tính để bàn cho người dùng của nó.
Nó đặc biệt tốt cho các thiết bị thiếu thông số kỹ thuật phần cứng, làm cho nó hoàn
hảo cho các thiết bị Raspberry Pi không thể chạy máy tính để bàn tổng hợp. Máy
tính để bàn MATE đi kèm ứng dụng thiết yếu như trình quản lý tệp, trình soạn thảo
văn bản, trình xem ảnh, giám sát hệ thống, trình xem tài liệu và thiết bị đầu cuối.

Hình 2.8 Hệ điều hành MATE Ubuntu


Hệ điều hành Ubuntu:
Một phiên bản nhẹ của hệ điều hành Ubuntu phổ biến nhắm vào các đám
mây và thiết bị, Snappy Ubuntu Core sử dụng hình ảnh máy chủ tối thiểu với cùng

18
các thư viện hệ thống. Các ứng dụng chạy nhanh hơn đáng kể và đáng tin cậy và an
toàn hơn do quản lý hệ thống giao dịch (như Docker); do đó thuật ngữ "Snappy".

Hình 2.9 Hệ điều hành Ubuntu


Hệ điều hành Pidora:
Pidora là một bản phối lại của hệ điều hành Fedora nổi tiếng dành cho
Raspberry Pi. Được thiết kế từ bản dựng Fedora mới nhất cho kiến trúc ARMv6,
Pidora cho phép tốc độ cao hơn và mang các ứng dụng và thành phần từ bộ gói
Fedora 20.

Hình 2.10 Hệ điều hành Pidora


Hệ điều hành ARM Linux ARM
Một phiên bản Arch Linux được chuyển cho máy tính ARM, Arch Linux
ARM cung cấp phiên bản 6 và 7 cho Raspberry Pi và Raspberry Pi 2 tương ứng.
Triết lý thiết kế của nó thúc đẩy sự đơn giản và tập trung vào người dùng, đảm bảo
rằng người dùng Linux có toàn quyền kiểm soát hệ thống.

19
Hình 2.11 Hệ điều hành ARM Linux ARM
Hệ điều hành Gentoo Linux:
Một hệ điều hành máy tính dựa trên Linux nguồn mở, Gentoo Linux biên
dịch mã nguồn cục bộ theo sở thích của người dùng để nâng cao hiệu suất. Vì lý do
này, các bản dựng của Gentoo Linux thường được tối ưu hóa cho một loại máy tính
cụ thể, chẳng hạn như Raspberry Pi.

Hình 2.12 Hệ điều hành Gentoo Linux


Android: Các phiên bản Android khác nhau có sẵn cho Pi, với các phiên bản
hiện tại dựa trên Android 7.0 Nougat.

Hình 2.13 Hệ điều hành Android


20
Chromium OS: Chromium OS có thể được cài đặt trên netbook, máy tính
xách tay và cả Raspberry Pi nữa. Với Chromium OS được cài đặt, bạn sẽ có quyền
truy cập vào cùng các công cụ dựa trên đám mây, như trong Chrome OS.

Hình 2.14 Giao diện Chromium OS


2.2. Ngôn ngữ lập trình
Ngôn ngữ Python được Guido van Rossum tạo ra cuối năm 1990. Python khá
giống Perl, Ruby, Scheme, Smalltalk và Tcl. Python được phát triển trong một dự
án mã mở do một tổ chức phi lợi nhuận Python Software Foundation quản lý.
Python được phát triển để chạy trên nền Unix. Nhưng theo thời gian, nó đã "bành
trướng" sang mọi hệ điều hành từ MS-DOS đến MAC OS, OS/2, Windows, Linux
và một số điều hành khác thuộc họ Unix. Python có thể làm những việc sau:
- Lập trình ứng dụng web.
- Khoa học và tính toán.
- Tạo nguyên mẫu phần mềm.
- Ngôn ngữ tốt để dạy lập trình.
- Python là một ngôn ngữ lập trình thông dịch (interpreted).
- Không quá khắt khe.
- Viết code ít hơn.
- Cộng đồng lớn, hỗ trợ tốt.
- Python là ngôn ngữ ưa thích trong ngành khoa học về dữ liệu (data
science), trí tuệ nhân tạo, machine learning.
- Python là ngôn ngữ dễ học, dễ hiểu.
- Python có tương thích cao (highly portable).

21
- Python là một ngôn ngữ có cấu trúc rõ ràng, cú pháp ngắn gọn.
- Đặc biệt, ngôn ngữ lập trình Python với tốc độ xử lý cực nhanh.

Hình 2.15 Ngôn ngữ python


Một ứng dụng viết bằng ngôn ngữ Python có thể bao gồm một hoặc nhiều
tập tin khác nhau. Các tập tin chứa mã lệnh Python sẽ có phần mở rộng là .py
Mã lệnh Python được viết tuân theo các quy tắc được quy định bởi ngôn ngữ
Python. Chúng ta sẽ lần lượt tìm hiểu các quy tắc này ở các bài học tiếp theo.
Bên cạnh những ứng dụng thực tế nổi bật trên, ngôn ngữ lập trình Python
còn được sử dụng để:
- Làm web: Django framework. Udacity, youtube, dropbox được xây dựng
(một phần lớn) sử dụng python.
- Làm game: Pygame. Có một game do người Việt làm, gần đây khá nổi (nếu
bạn là người mê anime/manga/VN sẽ biết) là Millia 44 cũng được xây dựng bằng
python, đương nhiên python không phải là lựa chọn tốt nhất để xây dựng game.
- Máy học: Theano, tensorflow, scikit-learn...
- Khoa học máy tính: Python Opencv, numpys, panda, scipy...
- Lập trình cho bo mạch: Ardruino, raspberry pi
2.3. Các phần mềm hỗ trợ
2.3.1. Phần mềm putty
PuTTY là một ứng dụng mã nguồn mở và miễn phí được sử dụng rộng rãi
trong lĩnh vực công nghệ thông tin và mạng để thiết lập kết nối từ xa và quản lý
máy chủ thông qua các giao thức như SSH (Secure Shell), Telnet, và Seria.
Tính năng chính của PuTTY:

22
- SSH, Telnet và Serial Connection: PuTTY cho phép bạn kết nối và truy cập
máy chủ và thiết bị từ xa thông qua các giao thức như SSH (Secure Shell) để kết nối
an toàn, Telnet cho kết nối bình thường và kết nối Serial (COM) để kết nối với các
thiết bị như router và switch mạng.
- Đa nền tảng: PuTTY có sẵn cho nhiều hệ điều hành khác nhau, bao gồm
Windows, Linux, macOS và nhiều nền tảng khác.
- Giao diện đồ họa và dòng lệnh: PuTTY cung cấp cả giao diện đồ họa
(PuTTY GUI) và phiên bản dòng lệnh (command-line) (plink) để tương tác với máy
chủ và thiết bị từ xa, cho phép bạn lựa chọn giao diện tùy theo nhu cầu.
- Bảo mật dữ liệu: PuTTY sử dụng các giao thức bảo mật như SSH để đảm
bảo dữ liệu được truyền qua mạng là an toàn và được mã hóa.
- Tùy chỉnh cấu hình: Bạn có thể tùy chỉnh nhiều cài đặt trong PuTTY để
điều chỉnh kết nối và phiên làm việc theo cách bạn muốn.
- Xử lý kết nối hàng loạt: PuTTY cho phép bạn quản lý danh sách các kết nối
đã lưu trữ, giúp bạn quản lý nhiều máy chủ và thiết bị từ xa một cách dễ dàng.
PuTTY là một công cụ quan trọng cho các chuyên gia mạng, quản trị hệ
thống, và những người làm việc với các máy chủ và thiết bị từ xa. Nó giúp họ truy
cập và quản lý hệ thống từ xa một cách hiệu quả và an toàn.
PuTTY thường được sử dụng để kết nối và quản lý các máy chủ Linux và
Unix qua giao thức SSH, một giao thức an toàn và được mã hóa.
Ngoài ra, PuTTY cũng hỗ trợ Telnet, một giao thức không an toàn hơn, và
kết nối Serial, phù hợp cho việc kết nối với các thiết bị mạng như router và switch.
PuTTY là một phần mềm mã nguồn mở, do Simon Tatham và cộng đồng
người dùng phát triển, cho phép người dùng đóng góp và tùy chỉnh theo nhu cầu cụ
thể. Điều này đã giúp PuTTY trở thành một công cụ phổ biến và mạnh mẽ cho việc
quản lý máy chủ và kết nối từ xa.
2.3.2. Phần mềm VNC
VNC (Virtual Network Computing) là một hệ thống phần mềm và giao thức
cho phép bạn từ xa kiểm soát và quản lý máy tính hoặc thiết bị từ bất kỳ đâu thông
qua mạng. Dưới đây là một giới thiệu tổng quan về VNC:
23
Cách hoạt động:
VNC cho phép bạn truy cập và kiểm soát một máy tính từ xa từ máy tính
hoặc thiết bị khác thông qua mạng.
Một máy tính hoặc thiết bị làm máy chủ (server) chạy phần mềm VNC
server, và máy tính hoặc thiết bị từ xa làm máy khách (client) chạy phần mềm VNC
client.
Dữ liệu màn hình và các sự kiện nhập liệu như bàn phím và chuột được mã
hóa và truyền qua mạng.
Ứng dụng phổ biến của VNC:
- Quản lý từ xa: VNC cho phép người dùng quản lý và sửa lỗi máy tính hoặc
server từ xa mà không cần phải ở cùng vị trí với máy tính đó.
- Hỗ trợ từ xa: IT professionals thường sử dụng VNC để hỗ trợ người dùng
cuối từ xa, giúp họ giải quyết vấn đề kỹ thuật.
- Mô phỏng và kiểm thử: VNC có thể được sử dụng để mô phỏng và kiểm
thử phần mềm trên nhiều nền tảng khác nhau.
Phần mềm VNC phổ biến:
- RealVNC: Là một trong những phần mềm VNC phổ biến, RealVNC cung
cấp phiên bản miễn phí và phiên bản trả phí với nhiều tính năng mở rộng.
- TightVNC: Một phiên bản mã nguồn mở của VNC với hiệu suất tốt và tích
hợp khá đơn giản.
- UltraVNC: Một phiên bản VNC chuyên dụng cho hệ điều hành Windows
với tính năng mở rộng và đặc biệt tập trung vào hiệu suất.
VNC có ưu điểm là cho phép truy cập từ xa vào máy tính và hệ thống dễ
dàng và đơn giản.
Tuy nhiên, nó yêu cầu một kết nối mạng ổn định để hoạt động hiệu quả và có
thể cần cấu hình và bảo mật thêm để đảm bảo tính bảo mật.
Với sự phát triển của công nghệ, VNC đã trở thành một công cụ quan trọng
trong việc quản lý và hỗ trợ từ xa, đặc biệt trong các môi trường máy chủ và công
nghiệp, giúp giảm thiểu thời gian và chi phí của việc duyệt từ xa và sửa lỗi máy
tính.
24
2.3.3. Phần mềm Blynk
Blynk là một nền tảng phát triển ứng dụng di động và IoT (Internet of
Things) mạnh mẽ và dễ sử dụng cho các dự án IoT cá nhân hoặc thương mại. Nó
cho phép người dùng thiết kế giao diện ứng dụng di động tùy chỉnh để kiểm soát và
giám sát các thiết bị IoT từ xa. Dưới đây là một giới thiệu về phần mềm Blynk:
Tính năng chính của Blynk:
- Thiết kế Giao Diện Dễ Dàng: Blynk cho phép bạn thiết kế giao diện ứng
dụng di động bằng cách kéo và thả các phần tử như nút, thanh trượt và biểu đồ để
tạo ra giao diện tùy chỉnh để điều khiển các thiết bị IoT.
- Hỗ Trợ Đa Nền Tảng: Blynk hỗ trợ nhiều nền tảng di động, bao gồm iOS
và Android, và có sẵn trên cả Windows và Linux.
- Kết Nối với Các Thiết Bị IoT: Blynk cho phép bạn kết nối và kiểm soát các
thiết bị IoT như Arduino, Raspberry Pi, ESP8266, ESP32, Particle, và nhiều thiết bị
khác. Nó hỗ trợ nhiều giao thức kết nối, bao gồm Wi-Fi, Bluetooth, và Ethernet.
- Tương Tác Nâng Cao: Blynk cho phép bạn tạo các logic và quy tắc tương
tác phức tạp giữa các thiết bị. Bạn có thể thực hiện các tác vụ tự động dựa trên các
sự kiện như thời gian, nhiệt độ, ánh sáng, và nhiều yếu tố khác.
- Bảo Mật: Blynk chú trọng đến tính bảo mật. Dữ liệu truyền qua mạng được
mã hóa để đảm bảo tính riêng tư và an toàn.
- Cộng Đồng và Thư Viện Mở Rộng: Blynk có một cộng đồng đông đảo, và
người dùng có thể chia sẻ các dự án và thư viện tùy chỉnh để tạo ra các ứng dụng
IoT đa dạng.
Blynk được sử dụng rộng rãi trong các dự án IoT cá nhân và thương mại, từ
việc kiểm soát đèn chiếu sáng, hệ thống tưới cây, đèn và quạt thông minh cho nhà ở
đến các ứng dụng công nghiệp như giám sát hệ thống và máy móc.
Nó là một công cụ quan trọng cho những người muốn tạo ra các ứng dụng
IoT cá nhân theo cách dễ dàng, mà không cần có kiến thức lập trình sâu.
Blynk đã giúp cho việc phát triển các ứng dụng IoT trở nên đơn giản và thú
vị. Nó kết hợp tích hợp ứng dụng di động và khả năng kết nối với các thiết bị IoT để
tạo ra các giải pháp thông minh và hiệu quả.
25
2.4. Linh kiện sử dụng trong mạch
2.4.1. Động cơ:
Động cơ được điều khiển thông qua module L298.
a. Module L298

Hình 2.16 Module L298


Mạch điều khiển động cơ L298 DC Motor Driver có khả năng điều khiển 2
động cơ DC, dòng tối đa 2A mỗi động cơ, mạch tích hợp diod bảo vệ và IC nguồn
7805 giúp cấp nguồn 5VDC cho các module khác.
Thông số kỹ thuật:
+ IC chính: L298
+ Điện áp hoạt động: 5~30VDC
+ Công suất tối đa: 25W 1 cầu (lưu ý công suất = dòng điện x điện áp nên áp cấp
vào càng cao, dòng càng nhỏ, công suất có định 25W).
+ Dòng tối đa cho mỗi cầu H là: 2A
+ Mức điện áp logic: Low -0.3V~1.5V, High: 2.3V~Vss
+ Kích thước: 43x43x27mm
b. Động cơ 5V DC.

26
Hình 2.17 động cơ DC giảm tốc vàng
Động cơ DC giảm tốc vàng là mẫu động cơ được sử dụng rộng rãi trong thiết
kế robot, mô hình DIY, phục vụ nghiên cứu học tập chế tạo, với dải điện áp từ 3-9v,
với 2 trục, Số vòng/1phút: 125 vòng/ 1 phút tại 3VDC. 208 vòng/ 1 phút tại 5VDC.
Thông số kỹ thuật:
+ Điện áp: 3-12VDC, khuyến nghị ở giải điện áp (6-8VDC)
+ Dòng: 70mA (250mA Max) ở 3V
+ Mô men xoắn: 800gfcm
+ Tỷ số truyền: 1:48
+ Tốc độ:
125 rpm 3VDC (bánh 66mm: 26rpm)
208 rpm 5VDC (bánh 66mm: 44rpm)
+ Kích thước: 64 * 19 * 22.6mm (L * W * H)
+ Trọng lượng: 27g
2.4.2. Nguồn
Adapter là một thiết bị điện tử dùng để chuyển đổi dòng điện có điện áp cao
(220V) xuống dòng điện có điện áp thấp (24V,19V,12V,5V) hơn. Thiết bị này gọi
là adapter.

27
Hình 2.18 Nguồn adapter
Một adapter có 2 thông số chính đó là điện áp và cường độ dòng điện. Mình
sẽ giải thích các thông số này như sau:
Điện Áp:
Đây là mức điện áp tối đa để một thiết bị hoạt động. Ví dụ trên cục nguồn camera
nó ghi 12V thì điều đó có nghĩa là . Một dòng điện xoay chiều (AC) 220V qua cục
adapter nó sẽ chuyển đổi xuống thành dòng điện 1 chiều (DC) 12V. Để cung cấp
cho thiết bị hoạt động bình thường.
Thông số thứ 2 đó là Cường Độ Dòng Điện:
Cường đồ dòng điện đo bằng đơn vi Ampe (A). Chỉ số 2A được ghi trên adaptor
(adapter) được hiểu là cường độ dòng điện phải đạt 2A thì thiết bị của bạn mới hoạt
động ổn định được.

28
CHƯƠNG 3. THỰC THI THIẾT KẾ PHẦN CỨNG
3.1. Hướng dẫn kết nối phụ kiện, khởi động Rasspberry pi
3.1.1. Kết nối phụ kiện
Cũng như các máy tính thông thường khác, để làm việc, tương tác với
Raspberry Pi ta cần phải kết nối các phụ kiện cơ bản như: Màn hình, bàn phím,
chuột…
- Kết nối màn hình:

Hình 3.1 Màn hình 7inch


Raspberry Pi tương thích với tất cả các màn hình có sẵn cổng kết nối HDMI
hoặc chuyển dổi HDMI to VGA để kết nối với các màn hình cũ không có cổng kết
nối HDMI.

29
Hình 3.2 Kết nối nguồn, HDMI giữa Raspberry Pi với màn hình
Kết nối bàn phím, chuột cho Rasberry pi:
Ngày nay phát triển rất nhiều các loại bàn phím và chuột hiện đại và
Raspberry Pi thì không thể thiếu những món phụ kiện này. Trên Raspberry Pi trang
bị tới 4 cổng USB và không khó khăn để ta kết nối Pi và bàn phím, chuột

Hình 3.3 Kết nối chuột và bàn phím với Raspberry Pi


Sau khi kết nối thành công màn hình, bàn phím và chuột cho Raspberry Pi là
ta đã có thể khởi động và làm việc với Pi

30
Hình 3.4 Kết nối đầy đủ các phụ kiện với Raspberry PI
3.1.2. Khởi động, cài đặt hệ điều hành cho Raspberry Pi
a. Kết nối nguồn – khởi động Raspberry Pi
Sau khi kết nối thành công màn hình, bàn phím và chuột cho Raspberry Pi ta
tiếp tục cấp nguồn cho Raspberry Pi

Hình 3.5 Bộ nguồn chính hãng của Raspberry Pi

31
Trên raspberry Pi đã ra sẵn ổ cắm nguồn

Hình 3.6 Kết nối nguồn cho Raspberry Pi


b. Cài đặt hệ điều hành cho Raspberry Pi
Giới thiệu các hệ điều hành mà Raspberry Pi hỗ trợ:
Các hệ điều hành hỗ trợ cho Raspberry Pi bao gồm : Raspbian, Arch Linux
ARM, OSMC, OpenELEC, Snappy Ubuntu Core, Ubuntu MATE, Debian Jessie,
Windows and Android.
Raspbian : Đây là một hệ điều hành thuận tiện cho việc cài đặt và sử dụng
với sự hỗ trợ lớn từ cộng đồng mã nguồn mở trên thế giới. Raspbian là một hệ điều
hành đơn giản và thân thiện.
Bạn có thể download và sử dụng Raspbian ở 2 dạng : NOOBS hoặc file Raspbian.
Với NOOBS (New Out of Box Software), khi thực hiện cài đặt bạn sẽ được
lựa chọn giữa các hệ điều hành khác nhau cho Raspberry Pi, khi đó bạn cũng có thể
lựa chọn Raspbian.
Với file Raspbian, khi đó sẽ không có quá trình lựa chọn giữa các hệ điều
hành, mà Raspbarry Pi sẽ tự thực hiện nhiệm vụ của mình để chuyển tới việc khởi
32
động của Linux kernel. (nói tới ở mục 2 : Hoạt động của Raspberry Pi sau khi cắm
nguồn)
Debian Jessie : Debian OS thể hiện cho sự phát triển của UNIX trên Raspberry Pi
qua 4 version.
V1. Version đầu tiên của Debian cho Pi có tên Debian Squeeze.
V2. Sau Squeeze, đó là Debian Wheezy.
V3. Raspbian (Debian Wheezy cải tiến) là phiên bản 3 của Debian cho Pi
V4. Phiên bản hiện tại của Debian là Debian Jessie. (Debian 8.0)
Ubuntu MATE : Ubuntu MATE được hỗ trợ cho Pi 2,3.
Window 10 : Hỗ trợ cho các dòng Pi 2,3 . Window 10 là phiên bản free, hỗ
trợ cho cả Raspberry Pi và Intel Galileo. Đây là điều lý tưởng cho các nhà phát triển
ứng dụng có sử dụng các bộ công cụ phát triển của Microsoft. Đây là một platform
linh hoạt hỗ trợ cho số lượng lớn các thiết bị bao gồm : tablet. Smartphone, PC,
Xbox, Internet of Things.
Hoạt động của Raspberry Pi sau khi cắm nguồn
Raspberry Pi thực hiện the power-on self-tests (POSTs) theo các bước như sau :
+ Khi Raspberry Pi đã được shutdown, hoặc không được cấp nguồn : ARM core
không hoạt động, ngừng việc truy cập vào SDRAM.
+ Khi Raspberry Pi được cấp nguồn : GPU (Graphics Processing Unit) được khởi
động.
+ GPU bắt đầu thực hiện chương trình the first-stage boot loader trong SoC
package. (đây là chương trình không thể sửa hoặc thay đổi)
+ Chương trình first-stage boot loader đọc chương trình second-stage boot loader
trong L2 cache ánh xạ tới GPU : chương trình second-stage boot loader còn được
gọi là bootcode.bin.
+ Bootcode.bin cho phép truy cập tới SDRAM. The bootcode.bin đọc chương trình
third-stage bootloader, hay loader.bin. Loader.bin được lấy từ SD card vào trong
SDRAM.
+ Loader.bin đọc file start.elf trong SD card.
+ start.elf đọc các file : config.txt ; cmdline.txt; và Linux kernel.img từ SD card.
33
+ Quá trình khởi động giờ là việc của Linux kernel.
Chuẩn bị thiết bị phần cứng và phần mềm hỗ trợ cài đặt
Thiết bị phần cứng:
+ 1 board mạch Raspberry Pi : trong bài viết này mình sử dụng Raspberry Pi 3
Model B.
+ 1 Thẻ nhớ Micro SD 16GB Class 10. Pi có thể làm việc với thẻ nhớ lên tới 32Gb.
Dung lượng thẻ nhớ tối thiểu 8GB. Tốc độ của thẻ nhớ nên từ Class 10 trở lên để
hiệu năng sử dụng bộ nhớ của Pi là tốt nhất.
+ 1 Cable HDMI (có thể sử dụng 1 Cable HDMI - VGA)
+ 1 màn hình có cổng HDMI (Có thể sử dụng màn hình desktop với đầu vào là cổng
VGA)
+ 1 bộ nguồn cấp 5V/2A micro-USB cho Raspberry Pi.
+ Bàn phím và chuột : sử dụng trong quá trình setup ban đầu cho Raspberry Pi.
Phần mềm cần thiết
+ Phần mềm format thẻ nhớ.
Trong Window :
Sử dụng phần mềm SD Formatter 4.0 : SD Formatter 4.0
Trong Ubuntu : Các bạn tìm hiểu phần mềm GParted
Phần mềm ghi file .img của hệ điều hành lên thẻ nhớ : Win32DiskImager
File hệ điều hành với version phù hợp với Model của Pi.
Các bước thực hiện:
Kết nối thẻ nhớ với máy tính window và tải xuống hệ điều hành Raspberry Pi
OS (Raspbian) trực tiếp từ Website của nhà sản xuất:
https://www.raspberrypi.org/downloads/raspberry-pi-os/. Tùy chọn phiên bản phù
hợp với nhu cầu sử dụng của bạn để tải xuống. Ở đây, mình chọn bản RP OS (32-
bit) with desktop and recommended software. Download bản Zip. 3.2

34
Hình 3.7 Hệ điều hành Raspberry Pi OS (Raspbian)
Khi đã tải xong, ta cần Flash image vào thẻ nhớ SD để cài hệ điều hành. Có
nhiều phần mềm hỗ trợ chúng ta làm điều này như: Win32DiskImage,Raspberry Pi
Imager, BalenaEtcher (download ở đây: https://www.balena.io/etcher/),… Mình hay
dùng Balena vì nó khá đơn giản để cài đặt và sử dụng, nó hỗ trợ Format thẻ nhớ
trong khi ghi nên bạn không cần dùng đến SD formatter. Đây là giao diện của
BalenaEtcher:

Hình 3.7 Phần mềm hỗ trợ BalenaEtcher


Tiếp theo, ghi image vào SD card (không cần giải nén file image).
Chọn Flash from file, hướng đến thư mục mà bạn đã lưu image, chọn file UnZip,
chọn Open.

35
Hình 3.7 Giải nén file
Tiếp đến, chọn ổ SD card (select target).

Hình 3.8 Chọn ổ SD card


Sau khi chọn xong thì click FLASH. Quá trình này sẽ mất khoảng 5-10 phút tùy vào
máy của bạn.
Sau khi cài xong thẻ, rút thẻ ra khỏi máy tính và cắm vào Raspberry Pi. Bạn
sẽ cần một màn hình hiển thị để thực hiện các thiết lập cơ bản ban đầu cho
Raspberyr Pi . Lưu ý nên kết nối HDMI, Touch đến màn hình, cắm thẻ nhớ rồi mới
cắm và cấp nguồn cho Raspberry. Thời gian boot lần đầu tiên sẽ lâu hơn một chút
so với các lần khởi động sau này.
Giao diện Desktop khi khởi động lần đầu tiên.

36
Hình 3.9 Giao diện Desktop khi khởi động lần đầu
Như vậy là ta đã cài đặt xong hệ điều hành cho Raspberry Pi
3.3. Thiết kế phần cứng
Sơ đồ nguyên lý:

Hình 3.10 Sơ đồ nguyên lý giao tiếp L298N


Sơ đồ nguyên lý kết nối như sau: chân in1 -> GPIO15; in2 -> GPIO 18; en_a ->
GPIO 14;chân in3 -> GPIO16; in2 -> GPIO 20; en_b -> GPIO 21; out1, out2 kết
nối với động cơ DC 1 .out3, out4 kết nối với động cơ DC 2 .
Chức năng của các bộ phận :

37
-Raspberry Pi : Kết nối với module L298N thông qua chân GPIO để truyền lệnh
điều khiển.
Triển khai chương trình viết bằng Python để lắng nghe và xử lý sự kiện từ ứng dụng
Blynk.Chuyển đổi sự kiện thành tín hiệu điều khiển cho module L298N.
-Module điều khiển động cơ L298N: Kết nối với động cơ xe và Raspberry Pi.
Chuyển đổi tín hiệu điều khiển từ Raspberry Pi thành tín hiệu điều khiển cho động
cơ.Quản lý hướng quay và tốc độ của động cơ.
-Động cơ: Chịu trách nhiệm thực hiện chuyển động của xe dựa trên lệnh điều khiển
từ module L298N.
Phản ứng với tín hiệu điều khiển để di chuyển theo hướng và tốc độ mong muốn.
-Nguồn : Cung cấp điện cho module L298N, và động cơ. Đảm bảo rằng hệ thống có
đủ nguồn để hoạt động ổn định.
Nguyên lý hoạt động :
Raspberry Pi được liên kết với module điều khiển động cơ L298N thông qua
các chân GPIO. Module L298N này tiếp tục kết nối với động cơ của xe, đảm
bảo quản lý hướng và tốc độ chuyển động của xe.
Chương Trình Điều Khiển:
Trên Raspberry Pi, triển khai một chương trình viết bằng ngôn ngữ Python
để kết nối và giao tiếp với ứng dụng Blynk qua internet. Chương trình này
nghe và phản hồi các sự kiện từ ứng dụng Blynk, sau đó chuyển đổi chúng
thành tín hiệu điều khiển cho module L298N.
Ứng Dụng Blynk:
Người dùng sử dụng ứng dụng Blynk để tương tác với Raspberry Pi từ xa
qua internet. Trong ứng dụng Blynk, tạo các nút hoặc để gửi lệnh điều khiển
đến Raspberry Pi.
Gửi Lệnh Điều Khiển:
Khi người dùng tương tác với ứng dụng Blynk, các tín hiệu điều khiển tương
ứng được chuyển từ ứng dụng Blynk đến Raspberry Pi qua kết nối internet.
Xử Lý Tín Hiệu Từ Blynk:

38
Raspberry Pi lắng nghe các sự kiện từ Blynk. Khi một sự kiện được kích
hoạt, chương trình xử lý tín hiệu và chuyển đổi chúng thành lệnh điều khiển
cho module L298N.
Điều Khiển Module L298N:
Module L298N, khi nhận được lệnh điều khiển từ Raspberry Pi, tự động
chuyển đổi chúng thành tín hiệu đặc biệt để kiểm soát hướng và tốc độ của
động cơ. Điều này đảm bảo xe chuyển động theo ý muốn được truyền từ ứng
dụng Blynk qua Raspberry Pi và module L298N.
Chuyển Động của Xe:
Cuối cùng, động cơ của xe sẽ chuyển động theo lệnh được gửi từ ứng dụng
Blynk, điều này được truyền qua Raspberry Pi và module L298N, đảm bảo
chuyển động linh hoạt và hiệu quả của xe

39
Lập trình:
Lưu đồ thuật toán

Hình 3.11 Lưu đồ thuật toán giao tiếp L298N


Giải thích: bắt đầu chương trình, khởi tạo các tiền xử lý. Tiếp theo sẽ tiến
hành đọc dữ liệu điều khiển từ app blynk . Nếu nút V0 được ấn thì 2 động cơ quay
thuận(xe tiến). Nếu nút V1 được ấn thì động cơ bên phải quay thuận ,động cơ bên
trái dừng (xe rẽ trái ).Nếu nút V2 được ấn ấn thì động cơ bên trái quay thuận ,động
cơ bên phải dừng (xe rẽ phải). Nếu nút V3 được ấn thì 2 động cơ quay ngược(xe
lùi). Nếu nút V4 được ấn thì 2 động cơ điều chỉnh tốc độ.

40
ĐÁNH GIÁ KẾT QUẢ
Báo cáo “ Xây dụng hệ thống điều khiển động cơ” đã đáp ứng được mục tiêu, yêu
cầu đặt ra của đề tài là xây dựng được hệ thống điều khiển động cơ thông qua
module L298 với Raspberry. Bằng cách xây dựng phần cứng và các chương trình
ứng dụng trên nền tảng Raspberry và các phần mềm phụ trợ khác giúp người học
lập trình dễ dàng tiếp cận với thực tế khi được thực hành trên phần cứng. Dựa vào
đó người dùng có thể sử dụng để điều khiển động cơ trong nhiều lĩnh vực khác nhau
Ưu điểm:
+ Các linh kiện sử dụng tiết kiệm năng lượng.
+ Phần mềm lập trình thân thiện, dễ sử dụng.
Nhược điểm:
+ Chưa ứng dụng được hết các chức năng, phương thức giao tiếp với
Raspberry PI.

41
42
TÀI LIỆU THAM KHẢO
1]. Bài giảng Thực hanh hệ thống đo lường và điều khiển nhúng Khoa Công nghệ
điện tử và truyền (tài liệu lưu hành nội bô).
[2]. https://projects.raspberrypi.org/en/projects/raspberry-pi-setting-up/4.
[3]. Bài giảng máy tính nhúng và ứng dụng Khoa Công nghệ điện tử và truyền
thông (Tài liệu lưu hành nội bộ).
[4]. Bài giảng môn Cấu kiện điện tử Khoa Công nghệ điện tử và truyền thông (Tài
liệu lưu hành nội bộ).
[9]. https://dientutuonglai.com/

43
PHỤ LỤC
import BlynkLib
import RPi.GPIO as GPIO
BLYNK_AUTH_TOKEN = 'e21KydSfbHgW8a7Bkh4sHTL_cGsQ-mxw'
blynk = BlynkLib.Blynk(BLYNK_AUTH_TOKEN)
GPIO.setwarnings(False)

# Right Motor
in1 = 15
in2 = 18
en_a = 14
# Left Motor
in3 = 16
in4 = 20
en_b = 21

GPIO.setmode(GPIO.BCM)
GPIO.setup(in1,GPIO.OUT)
GPIO.setup(in2,GPIO.OUT)
GPIO.setup(en_a,GPIO.OUT)

GPIO.setup(in3,GPIO.OUT)
GPIO.setup(in4,GPIO.OUT)
GPIO.setup(en_b,GPIO.OUT)

q=GPIO.PWM(en_a,100)
p=GPIO.PWM(en_b,100)
44
p.start(30)
q.start(30)
GPIO.output(in1,GPIO.LOW)
GPIO.output(in2,GPIO.LOW)
GPIO.output(in4,GPIO.LOW)
GPIO.output(in3,GPIO.LOW)
@blynk.on("V0")
def v0(value):
if int(value[0]) == 1:
GPIO.output(in1,GPIO.HIGH)
GPIO.output(in2,GPIO.LOW)

GPIO.output(in4,GPIO.HIGH)
GPIO.output(in3,GPIO.LOW)
p.ChangeDutyCycle(30)
q.ChangeDutyCycle(30)
print("tien")
else:
GPIO.output(in1,GPIO.LOW)
GPIO.output(in2,GPIO.LOW)

GPIO.output(in4,GPIO.LOW)
GPIO.output(in3,GPIO.LOW)
print("stop")
@blynk.on("V3")
def v3(value):
if int(value[0]) == 1:
GPIO.output(in2,GPIO.HIGH)

45
GPIO.output(in1,GPIO.LOW)

GPIO.output(in3,GPIO.HIGH)
GPIO.output(in4,GPIO.LOW)
p.ChangeDutyCycle(30)
q.ChangeDutyCycle(30)
print("lui")
else:
GPIO.output(in1,GPIO.LOW)
GPIO.output(in2,GPIO.LOW)

GPIO.output(in4,GPIO.LOW)
GPIO.output(in3,GPIO.LOW)
print("stop")
@blynk.on("V2")
def v2(value):
if int(value[0]) == 1:
GPIO.output(in1,GPIO.LOW)
GPIO.output(in2,GPIO.LOW)

GPIO.output(in4,GPIO.HIGH)
GPIO.output(in3,GPIO.LOW)
p.ChangeDutyCycle(30)
q.ChangeDutyCycle(30)
print("phai")
else:
GPIO.output(in1,GPIO.LOW)
GPIO.output(in2,GPIO.LOW)

46
GPIO.output(in4,GPIO.LOW)
GPIO.output(in3,GPIO.LOW)
print("stop")
@blynk.on("V1")
def v1(value):
if int(value[0]) == 1:
GPIO.output(in1,GPIO.HIGH)
GPIO.output(in2,GPIO.LOW)

GPIO.output(in4,GPIO.LOW)
GPIO.output(in3,GPIO.LOW)
p.ChangeDutyCycle(30)
q.ChangeDutyCycle(30)
print("trai")
else:
GPIO.output(in1,GPIO.LOW)
GPIO.output(in2,GPIO.LOW)

GPIO.output(in4,GPIO.LOW)
GPIO.output(in3,GPIO.LOW)
print("stop")
@blynk.on("V4")
def v4(value):
if int(value[0]) == 1:
GPIO.output(in1,GPIO.HIGH)
GPIO.output(in2,GPIO.LOW)

47
GPIO.output(in4,GPIO.HIGH)
GPIO.output(in3,GPIO.LOW)
p.ChangeDutyCycle(60)
q.ChangeDutyCycle(60)
print('trungbinh')
else:
GPIO.output(in1,GPIO.HIGH)
GPIO.output(in2,GPIO.LOW)

GPIO.output(in4,GPIO.HIGH)
GPIO.output(in3,GPIO.LOW)
p.ChangeDutyCycle(100)
q.ChangeDutyCycle(100)
print('cao')
@blynk.on("connected")
def blynk_connected():
print("Raspberry Pi Connected to New Blynk")

while True:
blynk.run()

48

You might also like