Sau khi dịch xong thì 1 file .apk sẽ được tự động Download về. Việc tiếp theo chỉ cần copy file này sang điện thoại rồi cài đặt để sử dụng.
Một cách khác đơn giản để sử dụng ứng dụng mà mình tạo ra khơng cần phải xuất file APK đó là truy cập vào CH Play, cài đặt ứng dụng MIT AI2 Companion. Mỗi khi muốn sử dụng ứng dụng chỉ cần Click Connect=>AI Companion.
Hình 4.13: Cách chọn kết nối khơng cần xuất file APK.
Ngay lập tức, 1 mã code QR được hiện lên tương ứng với ứng dụng mà mình đang xây dựng.
66
Đồng thời mở App vừa cài đặt trên điện thoại Click vào scan QR code. Lúc đó,
điện thoại sẽ tự đọc được mã code. Ứng dụng đang xây dựng tự động được cập nhật trên màn hình điện thoại. [2]
67
CHƯƠNG 5: THIẾT KẾ MẠCH VÀ THI CÔNG.
Sau khi đã chọn được các thiết bị chính sử dụng trong đề tài, dựa vào chức năng của từng thiết bị để lập 1 sơ đồ khối hoàn chỉnh làm nền tảng cho việc thi cơng mạch, lập trình đo và điều khiển.
5.1 Sơ đờ khới:
Hình 5.1: Sơ đồ khối mạch tổng quát
5.1.1 Sơ đồ khối phá t dữ liê ̣u của xe:
Hình 5.2: Sơ đồ khối phát dữ liệu của xe
NGUỒN 3.3V (từ ECU đơ ̣ng cơ)
ECU ĐIỀU KHIỂN ĐỢNG CƠ Module RF Zigbee UART DRF 1609H (Coordinator)
KHỐI ĐIỀU KHIỂN ĐỘNG CƠ
Khối phát dữ liệu của xe
Zigbee Coordinator
Khối nhận dữ liệu của xe Khối nhận dữ liệu của xe
Zigbee Router Zigbee Router
SmartPhone SmartPhone
(vị trí thành viên) (vị trí đô ̣i trưởng)
Zigbee Router
SmartPhone
(vị trí lái xe) Khối nhận dữ liệu của xe
68
5.1.2 Sơ đồ khối nhận dữ liê ̣u của xe:
Hình 5.3: Sơ đồ khối nhận dữ liệu của xe 5.2 nhiệm vu ̣ của từng khối: 5.2 nhiệm vu ̣ của từng khối:
5.2.1 khối điều khiển động cơ:
Khối điều khiển đô ̣ng cơ có chức năng chính đó chính là điều khiển thời gian phun và lưu lượng phun của đô ̣ng cơ mô ̣t cách tiết kiê ̣m nhất. Đây là điểm nổi bật và quan trọng nhất trong tiêu chí tiết kiệm nhiên liệu cho động cơ, bỡi ECU được lập trình để nhận biết, phân tích các tín hiệu từ các cảm biến, và độ mở bướm ga ở nhiều chế độ để sau đó quyết định thời gian phun và lượng phun hợp lý nhất giúp tiết kiệm được lượng nhiên liệu và tăng công suất động cơ một cách đáng kể so với bộ chế hịa khí.
Trên thực tế trên xe chỉ sử dụng những cảm biến sau: bộ cảm biến tích hợp(IAT,MAP,TP), cảm biến nhiệt độ động cơ, cảm biến tốc độ, cảm biến cốt cam (hall) và bộ van IACV vì vậy mạch điều khiển cũng được thay đổi để thích hợp và tối ưu hơn. Và dưới đây là sơ đồ đấu mạch của hệ thống.
Module RF Zigbee UART DRF 1609H (Router) Smarth phone Module RF Zigbee UART DRF 1609H (Coordinator) Mạch ng̀n cho TestBoard Module HC-06
69
Hình 5.4: Sơ đồ mạch điện của hệ thống 5.2.2 khối phá t dữ liê ̣u của xe: 5.2.2 khối phá t dữ liê ̣u của xe:
Khối này có chức năng là thu thâ ̣p dữ liê ̣u của xe và truyền đến các tra ̣m nhâ ̣n tín thông tin xe thông qua hệ thống ma ̣ng Zigbee. Khối này sử du ̣ng nguồn 3.3v của ECU điều khiển đô ̣ng cơ để cấp cho Module RF Zigbee UART DRF 1609H. Module Zigbee này được thiết lâ ̣p cấu hình hoa ̣t đô ̣ng là Coordinator. Nhờ chức năng điều khiển từ xa không dây, truyền dữ liệu ổn định, tiêu thụ năng lượng cực thấp, công nghệ mở đã giúp công nghệ ZigBee trở nên hấp dẫn sử dụng cho các ứng dụng, đặc biệt là ứng dụng trong nhà thông minh công nghệ zigbee hiện nay. Module RF Zigbee UART DRF 1609H có khoảng cách truyền xa trong điều kiện lý tưởng có thể lên đến 1.6Km. Nên chúng em quyết đi ̣nh cho ̣n thiết bi ̣ này để thi cơng.
Hình 5.5: Module Zigbee 5.2.3 khối nhận dữ liê ̣u của xe (vi ̣ trí người lái): 5.2.3 khối nhận dữ liê ̣u của xe (vi ̣ trí người lái):
Khối này có chức năng là nhâ ̣n dữ liê ̣u của xe từ module Zigbee tổng thông qua mạng zigbee. Để giao tiếp giữa module zigbee với các thiết bi ̣ ngoa ̣i vi như laptop,
70
smartphone thì cách giao tiếp qua bluetooth là phương án giao tiếp thuâ ̣n tiê ̣n và có tính hiệu quả cao. Vì thế nhóm chúng em đã quyết đi ̣nh sử du ̣ng module HC-06 để kết nối giữa module zigbee và điê ̣n thoa ̣i.
Hình 5.6: Module HC-06
Đa phần các module, thiết bị điện tử và các linh kiện điện tử đều hoạt động ở nguồn 5V hoă ̣c 3.3V để cấp vào. Vì vâ ̣y, để có thể ta ̣o ra 2 nguồn điê ̣n 3.3V và 5V cấp cho Module HC-06 và Module RF Zigbee UART DRF 1609H nên việc chọn 1 bộ module nào đó có chức năng chuyển đổi nguồn 6~12V thành nguồn 3.3V và 5V là quan trọng hơn hết. Chính lẽ đó, module ma ̣ch ng̀n cấp cho TestBoard được sử dụng bởi nó đảm bảo được điều trên.
Hình 5.7: Module chuyển đổi mạch nguồn
Tương tự như khối nhâ ̣n dữ liê ̣u của xe (vi ̣ trí người lái) thì 2 khối nhâ ̣n dữ liê ̣u củ a xe (vi ̣ trí đô ̣i trưởng và thành viên ) cũng được kết nối như vâ ̣y chỉ khác phần app hiển thị các thông tin của xe.
71
5.3 Thiết kế lưu đồ thuật toán chương trình: 5.3.1 Lưu đồ khối phá t dữ liê ̣u:
Hình 5.8: Lưu đồ khối phát dữ liệu khối phát dữ liệu Cấp nguồn Module Zigbee (Coordinator) ECU hoạt đô ̣ng
Truyền tín hiê ̣u đến Zigbee Router Bật công tắc máy
sai sai
đúng
Zigbee Coordinator kết nối với Zigbee Router
72
5.3.2 Lưu đờ khới nhận dữ liê ̣u:
Hình 5.9: Lưu đồ khối nhận dữ liệu
Bật công tắc nguồn
Cấp nguồn cho HC-06 & Zigbee Router
HC-06 kết nối Smart Phone
kết nối tín hiê ̣u vớ i Zigbee Coordinator
Hiển thị thông số lên màn hình Smart Phone
sai sai
73
5.4 Thiết kế và thi công:
5.4.1 Thiết kế và thi công khối phát dữ liê ̣u của xe:
Hình 5.10: Sơ đồ khối phát dữ liệu của xe
5.4.2 Thiết kế và thi công khối nhâ ̣n dữ liê ̣u của xe:
Hình 5.11: Sơ đồ khối nhận dữ liệu của xe
ECU
74
5.4.4 Mô hình thực tế khối phát dữ liê ̣u của xe:
Hình 5.12: Mơ hình thực tế khối phát dữ liệu 5.4.5 Mô hình thực tế khối nhâ ̣n dữ liê ̣u của xe: 5.4.5 Mô hình thực tế khối nhâ ̣n dữ liê ̣u của xe:
75
5.5 Thiết kế app hiển thi ̣ thông tin xe trên điê ̣n thoa ̣i:
Hình 5.14: Thiết kế các khối lệnh
Đới với viê ̣c thiết kế app hiển thi ̣ thông tin xe trên điê ̣n thoa ̣i thông qua phần mềm App Inventor2 chú ng ta cần thiết kế 2 phần đó là:
- phần Designer hay còn có thể hiểu đây là phần chúng ta sẽ thiết kế các giao diê ̣n, các hình ảnh khi sử du ̣ng app.
- phần Blocks hay còn có thể hiểu là phần lâ ̣p trình hoa ̣t đô ̣ng cho app.
5.5.1 kết nối HC-06 và điê ̣n thoa ̣i:
5.5.1.1.Phần Designer
Để kết nối HC-06 và điê ̣n thoa ̣i chúng ta cần đới tượng ListPicker
Hình 5.15: Đối tượng ListPicker
ListPicker là mô ̣t nút nhấn có chức năng là khi nhấn vào sẽ hiển thi ̣ mô ̣t danh sách những lựa cho ̣n như là đi ̣a chỉ Bluetooth, các danh sách có thể được xác định thơng qua
Designer hoặc Blocks Editor bằng cách thiết lập thuộc tính Elements cho sự ghép nối bằng cách tách chuỗi hoặc bằng cách thiết lập thuộc tính Element cho một List trong bộ biên tập Blocks.
76
Đối với đối tượng Listpicker này chúng ta có thể thay đổi các tính chất như: màu nền (BackgroupColor), chiều cao (Height), chiều rô ̣ng (Width), hình ảnh (Image), màu chữ (TextColor), ...
5.5.1.2.Phần Blocks
Đối với phần lâ ̣p trình, chúng ta cần thiết lâ ̣p 2 chế đô ̣ trước và sau khi nút ListPicker này được nhấn.
Chế đô ̣ trước khi nút ListPicker được nhấn: ở chế đô ̣ này chúng ta sẽ thiết lâ ̣p thuộc tính Elements sẽ go ̣i tất cả những đi ̣a chỉ Bluetooth đã ghép nới từ trước với điê ̣n thoại.
Hình 5.16: Khối lệnh kết nối với HC-06
Chế đô ̣ sau khi nút ListPicker được nhấn: ở chế đô ̣ này chúng ta sẽ thiết lâ ̣p thuô ̣c tính Selection của ListPicker sẽ kết nối với đi ̣a chỉ Bluetooth mà chúng ta đã cho ̣n.
Hình 5.17: Khối lệnh kết nối với HC-06
Sau khi nú t ListPicker được nhấn sẽ hiển thi ̣ các đi ̣a chỉ Bluetooth đã được ghép nối trước với điê ̣n thoa ̣i như này:
Hình 5.18: Địa chỉ bluetooth của thiết bị kết nối
Bên cạnh viê ̣c lâ ̣p trình cho app như vâ ̣y chúng ta cũng có thể nâng cấp phần kết nối này lên bằng viê ̣c thêm các công cu ̣ như là:
- Notifier : công cụ này có chức năng sẽ thông báo mô ̣t text lên màn
77
-TextToSpeech : công cụ này có chức năng là đo ̣c các kí tự mà chú ng ta cài đă ̣t
Hình 5.19: Khối lệnh hiển thị thơng báo khi chưa bật bluetooth
Trước khi nút ListPicker này được nhấn nếu điê ̣n thoa ̣i chưa bâ ̣t Bluetooth thì TextToSpeech sẽ thông báo câu lê ̣nh là “hãy bâ ̣t bluetooth lên” và ngoài ra trên màn hình điê ̣n thoa ̣i cũng sẽ thông báo câu “bâ ̣t bluetooth” như thế này.
Hình 5.20: Thơng báo khi bluetooth chưa bật 5.5.2 Tá ch dữ liê ̣u và hiển thi ̣ dữ liê ̣u: 5.5.2 Tá ch dữ liê ̣u và hiển thi ̣ dữ liê ̣u:
Sau khi kết nối được với thiết bi ̣ HC-06 viê ̣c tiếp theo sẽ là thu nhâ ̣n dữ liê ̣u từ hô ̣p ECU, xử lý dữ liê ̣u và hiển thi ̣ dữ liê ̣u lên điê ̣n thoa ̣i. Để làm được việc này chúng ta cần có mô ̣t cái Clock để xử lý. Đối với Clock1 này chúng ta cái đă ̣t thời gian là 200 mili giây.
78
Hình 5.21: Đối tượng Clock
Về phần Blocks chúng ta sẽ thiết lâ ̣p điều kiê ̣n là:
Nếu Bluetooth đã được kết nối và đối tượng BluetoothClient1 đã nhâ ̣n dữ liê ̣u thì sẽ dùng 1 biến tên là “input” để nhâ ̣n dữ liê ̣u từ đối tượng BluetoothClient1, dữ liê ̣u biến này có da ̣ng là byte1| byte2| byte3| byte4| byte5| byte6| byte7| byte8| byte9| byte10. Sau đó nếu biến “input” không bi ̣ trống sẽ thực hiê ̣n câu lê ̣nh là tách chuỗi dữ liê ̣u ngay ta ̣i vi ̣ trí có dấu “|” và lưu những dữ liê ̣u đã được tách vào trong biến “list”. Sau đó nếu chuỗi dữ liê ̣u này có đô ̣ dài bằng 10 byte sẽ cho hiển thi ̣ lên các lable đã được thiết kế ở phần Designer.
79
5.5.3 Tạo đồng hồ đếm thời gian:
Để ta ̣o đồng hồ đếm thời gian này chúng ta cần 1 cái Clock2. Thời gian hoa ̣t đô ̣ng củ a Clock2 là 1000 mili giây. Ngoài ra cần ta ̣o thêm 2 biến để thiết lâ ̣p. Khi Clock2 hoa ̣t đô ̣ng thì biến tên “data” sẽ tăng lên 1 đơn vi ̣ và đồng thời sẽ hiển thi ̣ vào lable tên “giaylap”. Nếu giá tri ̣ của biến tên “data” bằng 60 sẽ tăng biến tên “data2” lên 1 đơn vi ̣ và hiển thị giá tri ̣ biến “data2” vào lable “phutlap”, đồng thời thiết lâ ̣p biến tên “data” về giá tri ̣ 0.
Hình 5.23: Khối lệnh tạo đồng hồ đếm thời gian
Tương tự viê ̣c ta ̣o Clock2 ta ta ̣o thêm 1 Clock4 cho app. Đối với Clock4 này chú ng ta vẫn ta ̣o 2 biến (data3, data4) để lưu giá tri ̣, vẫn thiết lâ ̣p thời gian hoa ̣t đô ̣ng của Clock4 này là 1000 mili giây. Nhưng chúng ta không hiển thi ̣ giá tri ̣ các biến ở da ̣ng Text trong lable như Clock2 mà chúng ta sẽ hiển thi ̣ giá tri ̣ các biến bằng hình ảnh. Để làm được điều này chúng ta cần ta ̣o các hình ảnh từ 1 đến 9 tương ứng với giá tri ̣ của các biến.
80
Sau khi tạo được những con số từ 1 đến 9 chúng ta lưu từng con số với tên trùng vớ i con số Vd hình chúng sẽ lưu tên là 00.png để tiê ̣n cho viê ̣c go ̣i hình khi lâ ̣p trình. Tiếp sau đó chúng ta sẽ upload tất cả các file ảnh của các con số lên app để sử du ̣ng. Chú ng ta click vào nút Upload File ... trong mu ̣c Media tiếp theo click vào nút Choose File vào cho ̣n file cần tải lên.
Hình 5.25: Cách chèn file ảnh
Chú ng ta cần đă ̣t 4 đối tượng Image để hiển thi ̣ lên điê ̣n thoa ̣i.
Hình 5.26: Đồng hồ đếm thời gian
Khi Clock4 hoạt đô ̣ng biến “data3” sẽ tăng lên 1 đơn vi ̣ và sẽ hiển thi ̣ giá tri ̣ lên Image12 và Image13.
1
81
Hình 5.27: Khối lệnh thiết lập hiển thị thời gian
Đối với Image12 sẽ thiết lâ ̣p hiển thi ̣ phần dư giá tri ̣ của biến “data3” còn Image13 sẽ thiết lâ ̣p hiển thi ̣ phần nguyên giá tri ̣ của biến “data3”.
Tương tự như Clock2 chúng ta lâ ̣p trình được đoa ̣n code như thế này.
Hình 5.28: Khối lệnh thiết lập hiển thị thời gian
Sau khi hoàn thành viê ̣c thiết kế phần Designer và phần Blocks chúng ta sẽ được phần hiển thi ̣ trên app như thế này.
82
Hình 5.29: Đồng hồ hiển thị thời gian tổng và thời gian từng vòng đấu 5.5.4 Tạo đồng hồ báo vâ ̣n tốc và tua máy của xe: 5.5.4 Tạo đồng hồ báo vâ ̣n tốc và tua máy của xe:
Để ta ̣o được mô ̣t đồng hồ báo vâ ̣n tốc và tua máy cho xe đe ̣p, sinh đô ̣ng và dễ nhìn hơn chúng ta cần thiết kế mô ̣t mă ̣t đồng hồ. Nhóm em đã ta ̣o mô ̣t mă ̣t đồng hồ bằng phần mềm Photoshop CC 2017. Mă ̣t đồng hồ này được sử du ̣ng để làm nền cho các giá tri ̣ cần hiển thị như vâ ̣n tốc và tua máy của xe
Hình 5.30: Đồng hồ vận tốc và tua máy
Đến với phần Designer, chúng ta cần sử du ̣ng các đối tượng là:
- Canvas trong mục Drawing and Animation
- ImageSprite trong mục Drawing and Animation
Hình 5.31: Đối tượng dùng để thiết lập đồng hồ vận tốc và tua máy
Đồng hồ báo tổng thời gian thi đấu (Clock4)
Đồng hồ báo thời gian thi đấu từng vòng (Clock2)
83
Sau khi thiết kế và kết hợp với tất cả các phần trên nhóm em đã thiết kế ra mô ̣t app sử dụng trên điê ̣n thoa ̣i.
Hình 5.32: Ứng dụng hiển thi ̣ thông số của xe được thiết kế bằng App Inventor2
84
CHƯƠNG 6: KẾT LUẬN VÀ ĐỀ NGHỊ 6.1 Kết luận: 6.1 Kết luận:
Sau hơn 3 tháng nghiên cứu và thực hiện đồ án tốt nghiệp, bằng sự cố gắng của nhóm cùng với sự hướng dẫn tận tình của GVHD ThS. Nguyễn Trọng Thức, nhóm thực hiện đã hoàn thành đưa ra sản phẩm cuối cùng và thử nghiệm thành công trong điều kiện thực tế.
Đề tài đã mang lại cho chúng em những trải nghiệm mới, những kiến thức mới mà chỉ trong quá trình tự tìm hiểu, tự nghiên cứu mới có được. Đây cũng là tiền đề quan trọng để mỗi thành viên trong nhóm tích lũy những kiến thức mới, những kĩ năng mới chuẩn bị hành trang bước vào doanh nghiệp.
Kết quả đã ta ̣o ra 3 ứng du ̣ng trên điê ̣n thoa ̣i để hiển thi ̣ thông sớ của xe. Đồng thời, nhóm cũng đã gửi được dữ liê ̣u của xe ra bên ngoài ở khoảng cách tối đa có thể đa ̣t được là 1km với điều kiê ̣n ít vâ ̣t cản, cây xanh và nhà cao tầng.
6.2 Đề nghị:
Cuộc thi Shell Eco-marathon là mô ̣t cuô ̣c thi không còn xa la ̣ gì đối với sinh viên khoa Cơ khí Động lực trường ĐH Sư phạm Kỹ thuật TP.HCM nhưng viê ̣c truyền thông tin và thông số của xe giữa lái xe và thành viên bên ngoài còn rất ha ̣n chế. Vì thế, đề tài