Nội dung nghiên cứu
Tìm hiểu về cách viết ứng dụng trên SmartPhone
Thiết kế, lập trình viết ứng dụng nhận dạng giọng nói cho SmartPhone
Lựa chọn khung Robot, các linh kiện điện tử, động cơ, …
Thiết kế sơ đồ khối, sơ đồ nguyên lý, lưu đồ giải thuật cho Robot
Lắp ráp, kiểm tra hoạt động của Robot
Viết báo cáo kết quả đạt được sau khi thực hiện đồ án.
Giới hạn
Sử dụng mã nguồn mở để viết ứng dụng nhận diện giọng nói
Khi hoạt động phải có kết nối 3G hoặc Internet
Phần mềm nhận diện giọng nói có khả năng nhận diện tất cả các từ mà Google hỗ trợ, trong khi đó, xe robot chỉ có thể thực hiện 6 lệnh cơ bản để điều khiển, bao gồm: tự động, xe chạy, lùi, quay trái, quay phải và dừng xe.
Khoảng cách nói tốt nhất là khoảng từ 10cm tới 20cm
Thiết kế, chế tạo robot di chuyển theo lệnh điều khiển đã lập trình sẵn.
Bố cục đề tài
- Chương 1: Dẫn nhập, trình bày về lý do chọn đề tài, nội dung nghiên cứu, bố cục đồ án và giới hạn của đồ án
Chương 2: Cơ sở lý thuyết trình bày tổng quan về các loại board mạch được sử dụng trong robot, bao gồm bộ xử lý và phần truyền tín hiệu Nội dung chương này giúp người đọc hiểu rõ hơn về cấu trúc và chức năng của các thành phần quan trọng trong hệ thống robot.
Robot, động cơ sử dụng, các phần mềm viết ứng dụng, phần mềm lập trình
Chương 3: Thiết kế và tính toán tập trung vào việc phát triển ứng dụng điều khiển giọng nói, bao gồm sơ đồ khối hệ thống và lưu đồ cho cả ứng dụng lẫn robot Bài viết cũng giới thiệu các bộ thư viện cần thiết để lập trình ứng dụng, đồng thời trình bày chi tiết về phần cứng và thiết kế robot.
Chương 4: Kết quả nghiên cứu trình bày sản phẩm đã hoàn thiện và những kết quả đạt được từ đồ án Đồng thời, phần này cũng nêu rõ hướng phát triển tương lai của đồ án.
Chương 5: Kết luận và hướng phát triển tổng kết những thành tựu đã đạt được và những khía cạnh chưa hoàn thành so với mục tiêu đề ra Bên cạnh đó, chương này cũng đề xuất những hướng đi tương lai cho đồ án, nhằm nâng cao hiệu quả và đáp ứng tốt hơn các yêu cầu thực tiễn.
CƠ SỞ LÝ THUYẾT
Giới thiệu bo mạch Arduino
2.1.1 Giới thiệu về bo mạch Arduino UNO R3
Khi nói đến lập trình với mạch Arduino, Arduino UNO luôn là cái tên được nhắc đến đầu tiên Hiện tại, dòng mạch này đã phát triển đến thế hệ thứ 3, được gọi là Arduino Uno R3.
Bảng 2.1 Các thông số của Board Arduino UNO R3
Vi điều khiển ATmega328 họ 8bit Điện áp hoạt động 5V DC (chỉ được cấp qua cổng USB)
Tần số hoạt động 16 MHz
Dòng tiêu thụ khoảng 30mA Điện áp vào khuyên dùng 7-12V DC Điện áp vào giới hạn 6-20V DC
Số chân Digital I/O 14 (6 chân hardware PWM)
Số chân Analog 6 (độ phân giải 10bit)
Dòng tối đa trên mỗi chân I/O 30 mA
Dòng ra tối đa (5V) 500 mA
Dòng ra tối đa (3.3V) 50 mA
Bộ nhớ flash 32 KB (ATmega328) với 0.5KB dùng bởi bootloader
Hình 2.1 Bo mạch Arduino UNO R3
Sơ lượt về các chân của bo Arduino UNO
GND (Ground) là cực âm của nguồn điện cung cấp cho Arduino UNO Khi sử dụng các thiết bị với nguồn điện riêng biệt, cần phải nối các chân GND này lại với nhau để đảm bảo hoạt động ổn định.
5V: cấp điện áp 5V Dòng tối đa cho phép ở chân này là 500mA
3.3V: cấp điện áp 3.3V Dòng tối đa cho phép ở chân này là 50mA
Vin (Voltage Input): để cấp nguồn ngoài cho Arduino UNO, ta phải nối cực dương của nguồn với chân này và cực âm của nguồn với chân GND
Điện áp hoạt động của vi điều khiển trên Arduino UNO được đo tại chân IOREF, với giá trị luôn là 5V Tuy nhiên, cần lưu ý rằng chân này không được sử dụng để cấp nguồn 5V cho các thiết bị khác.
RESET: việc nhấn nút Reset trên board để reset vi điều khiển tương đương với việc chân RESET được nối với GND qua 1 điện trở 10KΩ
Chân Serial: 0 (RX) và 1 (TX): dùng để gửi (transmit – TX) và nhận
Arduino Uno có khả năng giao tiếp với các thiết bị khác thông qua hai chân nhận dữ liệu TTL Serial (RX) Kết nối Bluetooth thường được sử dụng như một hình thức kết nối Serial không dây.
Chân PWM (3, 5, 6, 9, 10, và 11) cho phép xuất xung PWM với độ phân giải 8 bit, tương ứng với giá trị từ 0 đến 255, điều này có nghĩa là điện áp đầu ra có thể điều chỉnh từ 0V đến 5V thông qua hàm analogWrite().
Chân giao tiếp SPI bao gồm 10 (SS), 11 (MOSI), 12 (MISO) và 13 (SCK), không chỉ đảm nhiệm các chức năng thông thường mà còn hỗ trợ truyền phát dữ liệu qua giao thức SPI với các thiết bị khác.
LED 13 trên Arduino UNO là một đèn LED màu cam (kí hiệu chữ L) nằm trên bo mạch Khi nhấn nút Reset, đèn LED này sẽ nhấp nháy để thông báo trạng thái Đèn LED được kết nối với chân số 13, và khi chân này được sử dụng, LED sẽ phát sáng.
2.1.2 Phần mềm lập trình Đi cùng với Board Arduino là một phần mềm hỗ trợ phát triển tích hợp : IDE (Integrated Development Environment) cho phép người dùng viết các chương trình cho Arduino bằng ngôn ngữ C hoặc C++
Hình 2.2 Giao diện chính của phần mềm
Giới thiệu về mạch giao tiếp Bluetooth HC 05
Hình 2.3 Mạch giao tiếp Bluetooth HC05
Bảng 2.2 Mô tả về mạch giao tiếp Bluetooth HC05 Điện áp hoạt động 3.3V
Dòng điện khi hoạt động khi Pairing 30 mA sau khi pairing hoạt động truyền nhận bình thường 8 mA
Dải tần sóng hoạt động 2.4GHz
Kích thước 26.9mm x 13mm x 2.2 mm
Module có hai chế độ làm việc ( có thể lựa chọn chế độ bằng cách thay đổi trạng thái chân 34 KEY)
Tự động kết nối Đáp ứng theo lệnh: Khi làm việc ở chế độ này, ta có thể gửi các lệnh AT để giao tiếp với module
2.2.2 Giao tiếp của Bluetooth HC05
To communicate with the HC05 module using AT commands, install the Hercules Setup Utility on your PC Once the software is installed, launch the application and select the Serial option to access the serial communication interface.
Ta kết nối module Bluetooth với PC bằng USB TO COM PL2303 như sau + RX -> TX của module HC05
+ TX -> RX của module HC05
Cắm vào máy tính, nối KEY lên 3.3V (ở ngay trên HC05 có chân 3.3V)
Hình 2.4 Giao diện của phần mềm Hercules Setup Untility trên PC
Switch to the serial tab and select the COM port (check the computer management to identify the PL2303 port) Set the baud rate to 38400, data size to 8 bits, parity to None, handshake to OFF, and mode to Free Then, click OPEN.
- Gõ AT rồi ấn SEND, hiện OK là được, nếu hiên ERROR, ấn tiếp lần nữa
- Gõ AT+ORGL, ấn SEND
- Gõ AT+RMAAD, ấn SEND
- Gõ AT+NAME= MASTER (có thể đổi tên khác, ko nhất thiết MASTER)
- Gõ AT+UARTW600,0,0 (có thể số khác không nhất thiết tốc độ baud là
- Gõ AT+PSWDcd (abcd là số nhé), ấn SEND
- Gõ AT+ROLE=1, ấn SEND
- Gõ AT+CMODE=1, ấn SEND (Kết nối vs mọi module kể cả khác địa chỉ, miễn cùng PSWD)
- Gõ AT+INIT, ấn SEND để master bắt đầu tìm kiếm
- Gõ AT+INQ, ấn SEND
- AT+NAME=SLAVE, ấn SEND, đặt tên
- AT+PSWDcd, ấn SEND, phải giống vs MASTER nếu muốn kết nối 2 cái
Chuẩn truyền dữ liệu
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, đây là một chuẩn điện tử
Công nghệ Bluetooth là một hệ thống truyền thông dựa trên tần số vô tuyến, cho phép các thiết bị tích hợp công nghệ này giao tiếp với nhau trong một khoảng cách nhất định Công nghệ này thường được sử dụng để kết nối và truyền dữ liệu giữa hai thiết bị khác nhau, đảm bảo hiệu suất trong việc phát và nhận sóng.
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
Khoảng cách giao tiếp giữa hai thiết bị kết nối qua Bluetooth có thể lên tới 100m Bluetooth hoạt động trên băng tần 2.4GHz và cho phép tốc độ truyền dữ liệu đạt tối đa 1Mbps mà không cần các thiết bị phải nhìn thấy nhau trực tiếp.
Bluetooth đơn giản hóa quá trình phát triển ứng dụng bằng cách kết nối các ứng dụng với nhau thông qua chuẩn Bluetooth, cho phép chúng hoạt động độc lập với phần cứng và hệ điều hành khác nhau.
Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm hỗ trợ
Khoảng cách kết nối còn ngắn so với công nghệ mạng không dây khác
Chỉ kết nối được hai thiết bị với nhau, không kết nối thành mạng.
Giới thiệu về Android Studio
Android Studio is a free Integrated Development Environment (IDE) developed by Google for Android application developers Built on IntelliJ IDEA, which is one of the best IDEs for Java, Android Studio provides an optimal environment for developing Android applications.
Bộ công cụ của Google giúp đơn giản hóa quy trình phát triển ứng dụng Android Người dùng chỉ cần cài đặt Java SDK và Android Studio để bắt đầu quá trình phát triển ứng dụng một cách nhanh chóng và hiệu quả.
SDK (Bộ Công Cụ Phát Triển Phần Mềm) là tập hợp các công cụ cần thiết để phát triển ứng dụng, bao gồm nhiều API, công cụ lập trình, tài liệu hướng dẫn và các thành phần khác Những công cụ này cho phép lập trình viên tạo ra ứng dụng cho các nền tảng hoặc gói phần mềm thông qua các ngôn ngữ lập trình như Java, C#, C++.
Objective-C là một ngôn ngữ lập trình được sử dụng bởi nhiều công ty như Microsoft và Sun Microsystems Các bộ công cụ phát triển phần mềm (SDK) phổ biến bao gồm: Android SDK, dùng để phát triển ứng dụng trên nền tảng Android; Windows SDK, dành cho ứng dụng chạy trên hệ điều hành Windows; và Java SDK, hay còn gọi là JDK, là một tập con mở rộng của SDK, phục vụ cho lập trình Java.
API (Giao diện lập trình ứng dụng) là một công cụ quan trọng giúp lập trình viên truy xuất đến các hàm thường sử dụng, cung cấp những hàm dựng sẵn để hỗ trợ quá trình lập trình Thông thường, API là một phần của bộ SDK và có nhiều loại API phổ biến như API Java (javax.servlet, java.sql, javax.xml), API NET (gói System, ADO.NET), và API Android (các hàm input/output, SQLITE).
2.4.1 Sơ lượt về sử dụng Android Studio
Hình 2.5 Đặt tên cho Project trong Android studio
Application Name: Tên ứng dụng muốn đặt
Company Domain: Tên domain công ty, thường được dùng để kết hợp với tên Application để tạo thành Package (chú ý viết thường hết và có ít nhất 1 dấu chấm)
Package name: Nó sẽ tự động nối ngược Company Domain với Application name
Project location: Là nơi lưu trữ ứng dụng
Sau đó nhấp Next để tiếp tục
Trong hộp thoại chọn phiên bản Android, người dùng có thể xác định thiết bị mà ứng dụng sẽ hỗ trợ, bao gồm điện thoại và máy tính bảng, TV, và thiết bị đeo Ngoài ra, mục Minimum SDK cho phép quy định phiên bản Android tối thiểu cần thiết để ứng dụng hoạt động.
Hiện nay bản API14 Android 4.0 (IceCreamSandwich) vẫn đứng đầu về số lượng thiết bị sử dụng chiếm tới hơn 90%) nên ta thường được hỗ trợ tối đa
Android Studio cung cấp nhiều Layout mặc định giúp người dùng dễ dàng thiết kế và phát triển ứng dụng Người lập trình có thể lựa chọn các Layout phù hợp cho việc hiển thị bản đồ, duyệt web, hoặc quản lý danh sách.
Màn hình này cho phép người dùng chọn loại layout Activity mặc định, mang đến một layout cơ bản dễ dàng thực hiện các chỉnh sửa theo nhu cầu của người sử dụng.
Hình 2.7 Chọn loại Activity xuất hiện ban đầu
Ta chon Blank Activity rồi bấm Next:
Hình 2.8 Đặt tên cho Activity và Layout
Activity Name: Tên class Activity (java) để ta viết mã lệnh
Layout Name: Tên file XML làm giao diện cho Activity Name
Title: Tiêu đề hiển thị khi kích hoạt Activity trên thiết bị
Sau khi cấu hình xong, ta bấm Finish
2.4.2 Cấu trúc một project trong Android Studio
Ta tiến hành mở Project mặc, định activity_main.xml sẽ được chọn ta có màn hình như sau:
Hình 2.9 Giao diện làm việc của phần mềm Android Studio
Có 6 vùng làm việc mà khi lập trình thường được tương tác nhất
Hệ thống thông tin của ứng dụng được cấu trúc tại đây, cho phép thay đổi cách hiển thị, thường mặc định là Android File AndroidManifest.xml, nằm trong vị trí này, đóng vai trò cực kỳ quan trọng trong việc cấu hình ứng dụng.
Trong ứng dụng, thư mục drawable chứa các tệp hình ảnh và XML, trong khi thư mục layout lưu trữ các giao diện màn hình được thiết kế dưới dạng XML Thư mục values chứa các tệp lưu trữ giá trị như màu sắc, kích thước và chuỗi.
Hình 2.10 Vùng làm việc thứ 1
Vùng này rất quan trọng cho việc lập trình, nó hiển thị các Control mà Android hỗ trợ, cho phép người dùng kéo thả trực tiếp vào giao diện ứng dụng để thiết kế một cách dễ dàng.
Vùng làm việc thứ 2 bao gồm hai tab: Design và Text Tab Design cho phép người dùng thao tác bằng cách kéo thả các thành phần giao diện như Button và Listview Trong khi đó, tab Text cho phép thiết kế giao diện thông qua việc viết các câu Tag XML.
Là vùng giao diện thiết bị, cho phép các Control kéo thả vào đây và đồng thời cho chúng ta hiệu chỉnh control
Vùng làm việc thứ 3 cho phép người dùng tùy chỉnh hiển thị theo hướng nằm ngang hoặc đứng, cùng với khả năng phóng to, thu nhỏ, căn chỉnh control và lựa chọn loại thiết bị hiển thị phù hợp.
Khi màn hình làm việc có nhiều control, vùng 4 trở nên hữu ích vì nó hiển thị giao diện theo dạng cấu trúc Cây, giúp người dùng dễ dàng quan sát và lựa chọn control khi chúng bị chồng lấp trong vùng 3 Vùng 4 sẽ hiển thị nhiều hơn khi người dùng kéo thả nhiều đối tượng vào vùng số 3.
Hình 2.13 Vùng làm việc thứ 4
Vùng này rất quan trọng vì nó cho phép thiết lập trạng thái và thuộc tính cho các Control trên giao diện Nó nằm ngay phía dưới vùng thứ 4.
Hình 2.14 Vùng làm việc thứ 5
Là vùng rất tiện lợi giúp ta thao tác nhanh chóng: Chạy ứng dụng và Debug ứng dụng Và hiển thị các điều chỉnh cần thiết cho Project
Giới thiệu về cảm biến siêu âm SRF-05
Cảm biến SRF05 là thiết bị đo khoảng cách sử dụng công nghệ siêu âm, bao gồm bộ phát và bộ thu sóng siêu âm Sóng siêu âm được phát ra sẽ di chuyển trong không khí, khi gặp vật cản, chúng sẽ phản xạ trở lại và được đầu thu ghi nhận, cho phép xác định khoảng cách đến vật thể cần đo.
Hình 2.16 Cảm biến siêu âm SRF-05
Vận tốc truyền âm thanh trong không khí là giá trị ổn định, cho phép xác định khoảng cách từ cảm biến đến vật thể bằng cách đo thời gian từ khi sóng siêu âm phát ra đến khi phản xạ về đầu thu Cảm biến SRF05 có khả năng đo khoảng cách tối đa lên tới 3-4 mét.
Thông số kỹ thuật o Điện áp hoạt động: 5VDC o Dòng cung cấp: