4.2 Cách sử dụng:
4.2.1 Khởi chạy App Inventor:
4.2.1.1. Sử dụng Online:
Truy cập vào trang web: http://ai2.appinventor.mit.edu Lần đầu tiên đăng nhập vào thì trang này sẽ yêu cầu một tài khoản Google để đăng nhập.
Sau khi đăng nhập thành công, chấp nhận các điều khoản từ trang web, cập nhật phiên bản mới thì giao diện của App hiện lên.
60
Hình 4.2: Giao diện của App Inventor 2
4.2.1.2. Sử dụng offline:
Truy cập website: nguoithanhmien.blogspot.com download phần mềm App Inventor2 về máy (lưu ý có 2 phiên bản dành cho Windows 64 bit và Windows 32 bit). Sau khi cài đặt xong chương trình, truy cập địa chỉ localhost:8888 để sử dụng. Giao diện tương tự như Online, khơng khác gì phiên bản Online.
4.2.2 Tạo project mới.
Sau khi giao diện của App hiện lên, click chọn vào Start new project để tạo được một project mới hoặc click vào Projects sau đó chọn Start new project.
Hình 4.3: Cách tạo 1 project
61
Hình 4.4: Đặt tên cho project.
Sau khi đặt tên cho project xong, giao diện làm việc của App sẽ hiện lên đầy đủ.
Hình 4.5: Giao diện làm việc của App. 4.2.3 Giới thiệu các vùng làm việc. 4.2.3 Giới thiệu các vùng làm việc.
Có 4 vùng làm việc chính: Palete, Viewer, Components, Properties.
4.2.3.1. Palete.
Là vùng chứa đựng các đối tượng dùng để đưa vào dự án của mình như: Nút bấm, hình ảnh, cảm biến, đồng hồ…
62
Hình 4.6: Vùng làm việc Palete.
4.2.3.2.Viewer.
Là vùng mơ phỏng màn hình điện thoại trên App, khi muốn hiển thị gì thì chỉ việc sắp xếp vào vùng này. Mọi thông tin sẽ được xem trực tiếp ở đây. Các đối tượng trên vùng Palete sẽ được sắp xếp và trình bày trên vùng này.
Hình 4.7: Vùng làm việc Viewer.
4.2.3.3. Components.
Là vùng chứa các đối tượng được kéo thả từ vùng Palete sang vùng Viewer. Đối tượng được chọn sẽ hiển thị ngay lập tức.
63
Hình 4.8: Vùng làm việc Components.
4.2.3.4. Properties.
Là vùng thuộc tính của các đối tượng trong Components, trong đó sẽ có các tùy chọn cho các đối tượng đó như tên, kích thước, hướng căn chỉnh, màu nền….. Mỗi một đối tượng trong Components sẽ có những thuộc tính khác nhau.
Hình 4.9: Vùng làm việc Properties.
4.2.4 Sử dụng các đối tượng.
Để đưa đối tượng vào dự án, chỉ cần kéo đối tượng cần lấy ở vùng Palete sang vùng Viewer rồi thả chúng vào đó.
Ví dụ: Sử dụng đối tượng là Button, sau khi kéo thả vào vùng làm việc Viewer,
ngay lập tức trên vùng Components sẽ hiển thị đối tượng Button. Có thể đổi tên đối
tượng vừa chọn bằng cách Click vào Rename phía bên dưới. Ngay lập tức kế bên đó các
64
Hình 4.10: Sử dụng đối tượng.
Theo đó chỉ cần thiết kế dự án theo ý tưởng mà mình mong muốn.
4.2.4.1.Block.
Là nơi ra lệnh cho điện thoại thực hiện 1 hành động nào đó và cũng là nơi tiếp nhận các thao tác từ điện thoại, sau đó sẽ xử lí thơng tin và thực hiện hành động yêu cầu.
Hình 4.11: Giao diện Blocks.
Góc trái là vùng chứa các khối lệnh.
Để thực hiện các lệnh điều khiển, chuyển sang Blocks bằng cách Click vào Blocks
65
khối Blocks chứa các lênh cơ bản, để thiết kế các hành động chỉ cần kéo thả các Blocks và ghép chúng lại với nhau.
4.2.4.2. Xuất file APK.
Sau khi thực hiện xong các cơng việc theo như ý tưởng, để có 1 ứng dụng chạy trên Android thì cần tạo ra file APK.
Chọn Build =>App (save.apk to my computer).
Hình 4.12: Cách chọn để xuất file APK.
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
NG̀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 nguồ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