Trang 5 TÓM TẮT DỰ ÁN Hiện nay việc các ứng dụng ngày càng trở nên phổ biến, từ những cái đơngiản như điều khiển cột đèn giao thông định thời, đếm sản phẩm dây chuyền sảnxuất, điều khiển
GIỚI THIỆU
Đề tài
Mục đích nghiên cứu của đề tài này là nghiên cứu về Arduino cụ thể hơn làArduino uno, cải thiện kỹ năng thực hành, phương pháp lập trình cho Arduino bằng ngôn ngữ Arduino (được xây dựng trên ngôn ngữ C), để biên dịch chương trình và chuyển chương trình lên board là phần mềm Arduino IDE Lập trình ứng dụngAndroid dùng SDK, giao tiếp thông qua Bluetooth…
Giới thiệu mạch Adruino
Arduino là một nền tảng mã nguồn mở được sử dụng để xây dựng các ứng dụng điện tử tương tác với nhau hoặc với môi trường được thuận lợi hơn.Arduino giống như một máy tính nhỏ để người dùng có thể lập trình và thực hiện các dự án điện tử mà không cần phải có các công cụ chuyên biệt để phục vụ việc nạp code.
Arduino tương tác với thế giới thông qua các cảm biến điện tử, đèn, và động cơ.
Phần cứng gồm một board mạch mã nguồn mở (thường gọi là vi điều khiển): có thể lập trình được.
Các phần mềm hỗ trợ phát triển tích hợp IDE (Integrated DevelopmentEnvironment) dùng để soạn thảo, biên dịch code và nạp chương cho board.
Hình 1.2: Một số thành viên trong gia đình Adruino
1.2.1 Vai trò của mạch Adruino:
Adruino giống như một máy tính nhỏ để người dùng có thể lập trình và thực hiện các dự án điện tử mà không cần phải có các công cụ chuyên biệt để phục vụ việc nạp code.
1.2.2 Một số ứng dụng dễ thấy của Adruino:
- Làm Robot Arduino có khả năng đọc các thiết bị cảm biến, điều khiển động cơ,… nên nó thường được dùng để làm bộ xử lý trung tâm của rất nhiều loại robot.
- Game tương tác: Arduino có thể được sử dụng để tương tác với Joystick, màn hình,… khi chơi các game như Tetrix, phá gach, Mario…
- Máy bay không người lái.
- Điều khiển đèn tín hiệu giao thông, làm hiệu ứng đèn Led nhấp nháy trên các biển quảng cáo…
- Điều khiển các thiết bị cảm biến ánh sáng, âm thanh.
Hình1.2.2 Máy bay được điều khiển từ xa bằng mạch Adruino
- Arduino có thể hoạt động độc lập.
- Arduino có thể kết nối với một máy tính Máy tính của bạn được phép truy cập dữ liệu cảm biến từ thế giới bên ngoài và cung cấp thông tin phản hồi.
- Các Arduino có thể kết nối với nhau.
- Arduino có thể kết nối với thiết bị điện tử khác.
- Arduino có thể kết nối với các chip điều khiển.
Arduino là một công cụ học tập, sáng tạo tuyệt vời giúp bạn thực hiện bất cứ dự án nào một cách dễ dàng.
Hình 1.2.3 Một phần của ngành lập trình
Mạch Adruino mà nhóm sẽ sử dụng để vận hành sản phẩm là Adruino Uno R3 SMD Cùng tìm hiểu một số đặc điểm cơ bản và nổi trội của dòng Adruino này sở hữu. a) Là một sản phẩm phổ biến trên thị trường:
Nhắc tới dòng mạch Arduino dùng để lập trình,cái đầu tiên mà người ta thường nói tới chính là dòng Arduino UNO Hiện dòng mạch này đã phát triển tới thế hệ thứ 3 (R3) Bên cạnh dòng Adruino nano ta có thể dễ dàng tiếp cận với sản phẩm này tại các cửa hàng bán đồ điện tử
Hình1.2.4 Mạch Adruino Uno R3 SMD b) Một số thông số của mạch
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
Bảng 1.2.4 Thông số của adruino c) Các chân năng lượng
GND (Ground): cực âm của nguồn điện cấp cho Arduino UNO Khi bạn dùng các thiết bị sử dụng những nguồn điện riêng biệt thì những chân này phải được nối với nhau.
5V: cấp điện áp 5V đầu ra Dòng tối đa cho phép ở chân này là 500mA.
3.3V: cấp điện áp 3.3V đầu ra 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, bạn 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.
IOREF: điện áp hoạt động của vi điều khiển trên Arduino UNO có thể được đo ở chân này Và dĩ nhiên nó luôn là 5V Mặc dù vậy bạn không được lấy nguồn 5V từ chân này để sử dụng bởi chức năng của nó không phải là cấp nguồn.
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Ω d) Một số lưu ý
Arduino UNO không có bảo vệ cắm ngược nguồn vào Do đó bạn phải hết sức cẩn thận, kiểm tra các cực âm – dương của nguồn trước khi cấp cho Arduino UNO
Các chân 3.3V và 5V trên Arduino là các chân dùng để cấp nguồn ra cho các thiết bị khác, không phải là các chân cấp nguồn vào Việc cấp nguồn sai vị trí có thể làm hỏng board Điều này không được nhà sản xuất khuyến khích.
Cấp nguồn ngoài không qua cổng USB cho Arduino UNO với điện áp dưới 6V có thể làm hỏng board.
Cấp điện áp trên 13V vào chân RESET trên board có thể làm hỏng vi điều khiển ATmega328.
Cường độ dòng điện vào/ra ở tất cả các chân Digital và Analog của Arduino UNO nếu vượt quá 200mA sẽ làm hỏng vi điều khiển.
Cấp điệp áp trên 5.5V vào các chân Digital hoặc Analog của Arduino UNO sẽ làm hỏng vi điều khiển.
TÌM HIỂU VỀ ĐIỀU KHIỂN TỪ XA
Khái niệm điều khiển từ xa
+Điều khiển từ xa là việc điều khiển thiết bị hoặc hệ thống ở khoảng cách xa mà không cần phải điều chỉnh trực tiếp trên thiết bị hoặc hệ thống đó Khoảng cách đó tùy thuộc vào từng hệ thống có mức độ phức tạp khác nhau, phụ thuộc vào mục đích thiết kế hệ thống.
+Hệ thống điều khiển từ xa là hệ thống cho phép ta điều khiển các thiết bị từ khoảng cách xa Ví dụ như hệ thống điều khiển bằng vô tuyến, hệ thống điều khiển từ xa bằng hồng ngoại, hệ thống điều khiển từ xa bằng cáp quang
Hình2.1 Điều khiển là thiết bị phổ biến trong việc điều khiển từ xa
Kết cấu của hệ thống điều khiển từ xa
+Thiết bị phát: biến đổi lệnh điều khiển thành tin tức tín hiệu và gửi đi.
+Đường truyền: đưa tín hiệu điều khiển từ thiết bị phát đến thiết bị thu.
+Thiết bị thu: nhận tín hiệu điều khiển và biến đổi thành lệnh điều khiển để thi hành.
Yêu cầu của hệ thống điều khiển từ xa
➤ Tốc độ làm việc nhanh.
➤ Thiết bị và đường truyền phải an toàn tin cậy.
➤ Kết cấu phải đơn giản
➤ Hiệu quả và năng suất làm việc cao với độ chính xác đúng nhiệm vụ đề ra.
Điều khiển từ xa thông qua sóng Bluetooth
Cùng với sự phát triển của khoa học kỹ thuật và công nghệ thông tin, nhu cầu điều khiển các thiết bị từ xa nhờ các hệ thống thông minh ngày càng được quan tâm Các hệ thống có dây cũng đang được thay thế dần bằng công nghệ không dây vớ imục đích giảm bớt sự cồng kềnh, phức tạp mà vẫn có thể đáp ứng nhu cầu truyền, nhận thông tin Hiệnnay có nhiều công nghệ truyền nhận không dây như RF (RF, Radio Frequency), Wifi, Bluetooth, vv Đã có rất nhiều nghiên cứu sử dụng công nghệ này để điều khiển thiết bị cho gia đình
Nguyên lý, ứng dụng của Bluetooth
Khi kết nối, Bluetooth 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ự ổn định trong quá trình kết nối giữa các thiết bị với nhau. b) Ứng dụng
Truyền tải dữ liệu không dây giữa điện thoại di động và máy tính
Truyền tải tập tin giữa các máy tính.
Chia sẻ kết nối mạng qua Bluetooth
Kết nối các thiết bị ngoại vi như: tai nghe, smartwatch, chuột, Gamepad, máy
in Trang bị kết nối Bluetooth cho máy tính để bàn
Ứng dụng trong các doanh nghiệp như: định vị, kết nối
Hình2.5 Bluetooth kết nối với các thiết bị trong đời sống
CÁC THIẾT BỊ NGOẠI VI KHÁC
Hệ điều hành Android
3.1.1 Hệ điều hành Android là gì?
Android là hệ điều hành được phát triển bởi Tổng công ty Android, với sự hỗ trợ tài chính từ Google Mãi đến năm 2005, được chính Google mua lại và cho ra mắt vào năm 2007.
Android là hệ điều hành nguồn mở dựa trên nền tảng Linux, chủ yếu dành cho các thiết bị có màn hình cảm ứng như điện thoại, máy tính bảng.
Hiện nay Android đang là đối thủ cạnh tranh trực tiếp của các hệ thống IOS củaApple về mảng điều hành Mobile
3.1.2 Giao diện và ứng dụng Android
Giao diện của Android sử dụng cảm ứng chạm, tác động trực tiếp lên màn hình như vuốt, chạm, phóng to và thu lại để xử lý các đối tượng trên màn hình.
Sau khi khởi động các thiết bị Android màn hình chính sẽ hiển thị gồm nhiều biểu tượng (icon) và tiện ích (widget) Giao diện của Android cho phép người dùng tự do sắp xếp hình dáng, biểu tượng, tiện ích tùy theo ý thích của mình Ứng dụng
Các ứng dụng do bên thứ ba có trên Google Play để người dùng có thể tải về
Các ứng dụng trên Play Store cho phép người dùng tải về và cập nhật các ứng dụng do Google và các nhà phát triển phát hành.
Các ứng dụng cho Android được phát triển bằng ngôn ngữ Java và sử dụng Bộ phát triển phần mềm Android (SDK) Bộ phát triển này gồm có công cụ gỡ lỗi, thư viện phần mềm, hỗ trợ với công suất tối đa cho nhu cầu của các thiết bị.
Ngoài ra, các công cụ phát triển khác như bộ phát triển gốc dành cho các ứng dụng cũng được tích hợp sẵn Đặc biệt Androi cho phép cập nhật các ứng dụng ngoài và ko đòi hỏi quá cao về bảo mật.
Hình3.2.1 Kho ứng dụng đa dạng
Bluetooth HC05
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
HC-05 có nhiều chân và đèn báo, giúp điều khiển các chức năng khác nhau và xem trạng thái
Hình 3.2.1 Sơ đồ chân của Bluetooth
3.2.2 Một số đặc tính ấn tượng
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
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.
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
3.2.4Cách sử dụng Bluetooth HC05
Việc sử dụng module Bluetooth HC-05 rất đơn giản đối với mọi bộ vi điều khiển có giao thức UART Module có hai chân giao tiếp dữ liệu nối tiếp, TX sẽ giao tiếp với RX của bộ điều khiển và RX sẽ giao tiếp với TX của vi điều khiển.
Dữ liệu sẽ được truyền với tốc độ truyền được xác định trong bộ vi điều khiển
3.2.5 Ưu và nhược điểm a) Ưu điểm
- Tiêu thụ năng lượng thấp, cho phép ứng dụng được trong nhiều loại thiết bị khác nhau bao gồm các thiết bị cầm tay và điện thoại di động.
- Khoảng cách giao tiếp cho phép giữa hai thiết bị đầu cuối có thể lên đến 10m, khoảng cách giữa thiết bị đầu cuối và access point có thể lên tới 100m
- Bluetooth sử dụng băng tần 2.4GHz Tốc độ truyền dữ liệu có thể đạt tới mức tối đa 1Mbps mà các thiết bị không cần phải trực tiếp thấy nhau
- 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 profiles, do đó có thể độc lập về phần cứng cũng như hệ điều hành sử dụng
- Tính tương thích cao, được nhiều nhà sản xuất phần cứng cũng như phần mềm hỗ trợ. b) Nhược điểm
Tốc độ truyền tải khá thấp, tối đa khoảng 720Kbps.
Trường hợp có vật cản, Bluetooth sẽ bắt sóng khá kém.
Thời gian thiết lập khá lâu.
Mạch L298
78M05 Module L298N có thể điều khiển tối đa 4 động cơ DC hoặc 2 động cơ
DC với khả năng điều khiển hướng và tốc độ.
3.3.2 Cấu hình sơ đồ chân L298N
IN1 & IN2 Các chân đầu vào điều khiển hướng quay động cơ A
IN3 & IN4 Các chân đầu vào điều khiển hướng quay của Động cơ B
ENA Kích hoạt tín hiệu PWM cho Động cơ A
VIB Kích hoạt tín hiệu PWM cho Động cơ B
OUT1 & OUT2 Chân đầu ra cho động cơ A
OUT3 & OUT4 Chân đầu ra cho Động cơ B
5V Cấp nguồn cho mạch logic bên trong IC L298N
Bảng 3.3.2 mô tả và tên chân của mạch
3.3.3 Đặc điểm và thông số kỹ thuật module L298
Chip điều khiển: Cặp H-Bridge L298N
Điện áp cấp cho động cơ (Tối đa): 46V
Dòng điện cấp động cơ (tối đa): 2A
Điện áp hoạt động của IC: 5-35V
Dòng điện hoạt động IC: 2A
Cảm biến dòng điện cho mỗi động cơ
Có tản nhiệt cho hiệu suất tốt hơn
Có đèn báo LED bật nguồn
TIẾN HÀNH CHẾ TẠO SẢN PHẨM
Chuẩn bị khung xe
Hình 4.1 Khung xe hoàn thiện
Khung xe 2 tầng làm bằng Mica, được lắp từ 2 bản xe, 4 động cơ TT Gear Motor, 4 bánh xe và cố định bằng ốc vít
Cố định các Module vào khung xe
Hình 4.2.1 Cố định và sắp xếp linh kiện
Lần lượt đặt các Module: Adruino Uno, Mạch L298, Thẻ pin dán lên trên thân xe, chú ý kết nối các thiết bị cùng lắp đặt Bluetooth HC-05
Hình 4.2.2 Sơ đồ mạch kết nối mạch L298,Adruino cùng 2 động cơ và thẻ Pin
Hình 4.2.3 Kết hợp với Module Bluetooth HC 05
Tiến hành nạp Code cho Adruino
Nạp code thông qua phần mềm Python.exe kết nối vơi Aduino thông qua dây cap, nhận code trên các nguồn Adruino.com
#define in4 7 int motorSpeedA = 0; int motorSpeedB = 0; void setup() { pinMode(enA, OUTPUT); pinMode(enB, OUTPUT); pinMode(in1, OUTPUT); pinMode(in2, OUTPUT); pinMode(in3, OUTPUT); pinMode(in4, OUTPUT);
} void loop() { int xAxis = analogRead(A0); // Read Joysticks X-axis int yAxis = analogRead(A1); // Read Joysticks Y-axis
// Y-axis used for forward and backward control if (yAxis < 470) {
// Set Motor A backward digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
// Set Motor B backward digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
// Convert the declining Y-axis readings for going backward from 470 to 0 into 0 to
255 value for the PWM signal for increasing the motor speed motorSpeedA = map(yAxis, 470, 0, 0, 255); motorSpeedB = map(yAxis, 470, 0, 0, 255);
// Set Motor A forward digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
// Set Motor B forward digitalWrite(in3, LOW); digitalWrite(in4, HIGH); motorSpeedA = map(yAxis, 550, 1023, 0, 255); motorSpeedB = map(yAxis, 550, 1023, 0, 255);
// If joystick stays in middle the motors are not moving else { motorSpeedA = 0; motorSpeedB = 0;
// X-axis used for left and right control if (xAxis < 470) {
// Convert the declining X-axis readings from 470 to 0 into increasing 0 to 255 value int xMapped = map(xAxis, 470, 0, 0, 255);
// Move to left - decrease left motor speed, increase right motor speed motorSpeedA = motorSpeedA - xMapped; motorSpeedB = motorSpeedB + xMapped;
// Confine the range from 0 to 255 if (motorSpeedA < 0) { motorSpeedA = 0;
// Convert the increasing X-axis readings from 550 to 1023 into 0 to 255 value int xMapped = map(xAxis, 550, 1023, 0, 255);
// Move right - decrease right motor speed, increase left motor speed motorSpeedA = motorSpeedA + xMapped; motorSpeedB = motorSpeedB - xMapped;
// Confine the range from 0 to 255 if (motorSpeedA > 255) { motorSpeedA = 255;
// Prevent buzzing at low speeds (Adjust according to your motors My motors couldn't start moving if PWM value was below value of 70) if (motorSpeedA < 70) { motorSpeedA = 0;
} analogWrite(enA, motorSpeedA); // Send PWM signal to motor A analogWrite(enB, motorSpeedB); // Send PWM signal to motor B}
Tải lại phần mềm hệ thống và cho chạy xe
Hình 4.5.1 Ứng dụng Bluutooth RC Car trên CH Play
Hình 4.5.2 Giao diện trên màn hình
KẾT QUẢ VÀ THU HOẠCH
Đánh gia đề tài, kết quả thu được
Về đề tài: Đề tài xe điều khiển từ xa bằng điện thoại, là một đề tài phổ biến và đã được thực hiện bởi nhiều sinh viên khác nhau, bản chất đề tài chính là nghiên cứu ứng dụng của mạch Adruino, Module Bluetooth, bước đầu cho việc nhập môn kĩ thuật.
Vì đây là một công nghệ cơ bản và đơn giản nên tính ứng dụng của sản phẩm là rất cao, công nghệ phổ biến, dễ tiếp cận có khả năng cải tiến cao. Để hoàn thiện được dự án nhóm đã cần trang bị những kiến thức và kĩ năng:
Tìm kiếm trang thiết bị
Kiến thức về thiết kế, điều khiển từ xa, kết nối
Kĩ năng về làm việc nhóm, phân chia hỗ trợ công việc
Kĩ năng viết báo cáo, thuyết trình
Biết thêm về các linh kiện điện tử
Tìm hiểu về các hệ điều hành, những tính năng của những thiết bị
Ngôn ngữ Python, lập trình nhúng
Thực hiện kết nối và trao đổi dữ liệu giữa Smartphone và Module Bluetooth
Viết chương trình xử lý dùng Arduino
Thiết kế mạch driver cho động cơ DC
Hoạt động nhóm cùng các kĩ năng hoạt động nhóm
Học về Viết báo cáo sản phẩm, trình bày sản phẩm
- Xe thiết kế khá đơn giản, chứa nhiều tính năng
Tài liệu tham khảo từ các nguồn: http://arduino.vn/ https://www.arduino.cc/en/software https://newptcsitedaily.com/cach-che-tao-xe-dieu-khien-tu-xa/ https://www.youtube.com/watch?v=J0D9bakXWzA http://arduino.vn/bai-viet/209-dieu-khien-toc-do-motor-dc https://hc.com.vn/ords/ni cach-su-dung-usb-bluetooth-cho-laptop http://arduino.vn/bai-viet/893-cach-dung-module-dieu-khien-dong-co-l298n-cau-h-de- dieu-khien-dong-co-dc https://taimienphi.vn/download-arduino-21997 https://vietmachine.com.vn/dieu-khien-arduino-dc-l298n-pwm-mach-cau-h.html https://revup.vn/cach-viet-bao-cao-thuc-tap/ https://glints.com/vn/blog/5-luu-y-can-nho-cho-bai-bao-cao-thuc-tap/