Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.01 MB, 37 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<small>TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCMKHOA ĐÀO TẠO CHẤT LƯỢNG CAO</small>
<small>BÁO CÁO CUỐI KỲ</small>
<small>MÔN HỌC: HỆ THỐNG NHÚNG TRONG CÔNG NGHIỆPXE ĐIỀU KHIỂN TỪ XA DÙNG RASPBERRY PI PICO THÔNG QUA</small>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><small>MỤC LỤC</small>
<small>PHẦN A: MỞ ĐẦU...5</small>
<small>1.Giới thiệu đề tài:...5</small>
<small>2.Mục tiêu nghiên cứu...5</small>
<small>PHẦN B: NỘI DUNG...6</small>
<small>CHƯƠNG I: RASPBERRY PI PICO...6</small>
<small>1.1 Khái Niệm...6</small>
<small>1.2 Thơng Số Kỹ Thuật Và Cấu Hình Chân...7</small>
<small>CHƯƠNG 2:MODULE ĐIỀU KHIỂN ĐỘNG CƠ L298N...11</small>
<small>2.1 Khái Niệm...11</small>
<small>2.2 Cấu Hình Sơ Đồ Chân...11</small>
<small>2.3 Thông Số Kỹ Thuật...12</small>
<small>CHƯƠNG III: MODULE BLUETOOTH HC-05...13</small>
<small>3.1 Khái Niệm Về Công Nghệ Bluetooth...13</small>
<small>3.2 Đặc Điểm Của Công Nghệ Bluetooth...14</small>
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><small> 5.3.1 Sơ Đồ Khối...21</small>
<small> 5.3.2 Cách Kết Nối Phần Cứng...22</small>
<small>CHƯƠNG VI: THIẾT KẾ PHẦN MỀM...24</small>
<small>6.1 Cài Đặt Cho Raspberry Pi Pico ...24</small>
<small>6.2 Nạp Code Cho Raspberry Pi Pico...29</small>
<small> 6.2.1 Thiết Kế Ứng Dụng Điều Khiển…….………32</small>
<small>CHƯƠNG VII: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI...33</small>
<small>7.1 Kết Quả...33</small>
<small>7.2 Hướng Phát Triển Của Đề Tài...34</small>
<small> 7.2.1 Kết Luận………...34</small>
<small> 7.2.3 Hướng Phát Triển Của Đề Tài………...35</small>
<small>TÀI LIỆU THAM KHẢO………...36</small>
<small>3</small>
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">NHẬN XÉT CỦA GIẢNG VIÊN
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">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. Q 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
<small>5</small>
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">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: + Hiệu suất cao, đặc biệt đối với khối lượng công việc dựa trên số
+ 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 tố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.
<small>6</small>
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">- 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.
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.
<small>7</small>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">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
- 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
<small>8</small>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">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
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><small>10</small>
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">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 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
<small>11</small>
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13"><small>13</small>
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">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.
<small>14</small>
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">- Tính tương thích cao, được nhiều nhà sản xuất phần cứng
Bluetooth là chuẩn kết nối không dây tầm ngắn, thiết kế cho các kết nối thiết bị cá nhân hay mạng cục bộ nhỏ trong phạm vi băng tần từ 2.4GHz đến 2.485GHz. Bluetooth được thiết kế hoạt động trên 79 tần số đơn lẻ. Khi kết nối , nó sẽ tự động tìm ra tần số tương thích để di chuyển đến thiết bị cần kết nối trong khu vực nhằm đảm bảo sự liên tục.
- Module Bluetooth HC-06 được thiết kế để chuyển đổi giao tiếp nối tiếp không đồng bộ và thành giao tiếp không dây Bluetooth và ngược lại.
- HC-05 là thiết bị Bluetooth tốt nhất sử dụng giao thức truyền thông UART. HC-05 Bluetooth có nhiều tính năng khác biệt so với tất cả các thiết bị Bluetooth khác vì có nhiều chân và chức năng.
<small>15</small>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">- 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ó.
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
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">- Stop bit: 1 - Pairing code: 1234
Chân VCC: Giống như mọi thiết bị khác, HC05 Modules cũng phụ thuộc vào nguồn điện để hoạt động và chân VCC cấp nguồn điện từ bên ngoài.
Chân GND: Chân nối đất module.
Chân TX: Chân truyền dữ liệu giao thức UART Chân RX: Chân nhận dữ liệu trong giao tiếp UART. Chân State: Báo trạng thái kết nối của Bluetooth.
Chân Enable/key: Chân Enable / Key là chân thay đổi chế độ giữa chế độ dữ liệu và chế độ dịng lệnh bằng cách cấp tín hiệu bên ngoài. Cấp logic cao sẽ chuyển sang chế độ dòng lệnh và trạng thái logic thấp sẽ chuyển sang chế độ dữ liệu. Chế độ thiết bị mặc định là chế độ dữ liệu. Chân button: Các chế độ dữ liệu và lệnh có thể thay đổi thơng qua một nút nhấn có trên module.
Chân LED: Đèn LED hiển thị trạng thái của Module HC-05.
<small>17</small>
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">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
<small>18</small>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">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
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.
<small>19</small>
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">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 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
<small>20</small>
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">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.
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. 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ơ. <small>21</small>
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">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.
<small>22</small>
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">5.3.2 Cách Kết Nối Phần Cứng
<small>23</small>
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Kết nối mạch cầu H với Raspberry Pi Pico: Công suất động cơ một chiều không cao, ta chọn mạch cầu H-L298 để điều khiển 2 động cơ này.
Chân IN1 nối vào GPIO7 (PIN 10). Chân IN2 nối vào GPIO6 (PIN 19). Chân IN3 nối vào GPIO4 (PIN 6). Chân IN4 nối vào GPIO3 (PIN 5).
Chân OUT1, OUT2 nối vào dộng cơ 1. Chân OUT3, OUT4 nối vào động cơ 2. Chân VCC nối với 5V(PIN 2). Chân GND nối vào GROUND(PIN 6).
<small>24</small>
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">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)
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:
<small>25</small>
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">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
- Nhấn giữ nút BOOTSEL (nút nhấn màu trắng trên board) rồi cắm cáp kết nối vào board, sau đó cắm vào cổng USB của máy tính (PC, Raspbery Pi,...).
- Pi Pico board sẽ được kết nối máy tính như là ổ cứng lưu trữ và có tên là RPI-RP2, bạn click chuột kéo file .uf2 mẫu vừa tải vào thư mục RPI-RP2 và reset lại board là đã hoàn thành nạp MicroPython cho board, lúc này là có thể lập trình thơng qua các IDE hỗ trợ.
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: 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.
<small>26</small>
</div>