Professional Documents
Culture Documents
Đề tài:
VÌ VĂN THƠ
VŨ HỒNG CÔNG
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).
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
15
CHƯƠNG 2. PHÂN TÍCH CÔNG NGHỆ THIẾT KẾ
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.
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.
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".
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.
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.
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
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:
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
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
31
Trên raspberry Pi đã ra sẵn ổ cắm nguồn
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:
35
Hình 3.7 Giải nén file
Tiếp đến, chọn ổ SD card (select target).
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ý:
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
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