HC-06 pin DRF 1609H pin Mạch nguồn pin
TX RX
RX TX
VCC +5v
GND -5v
3.5 Mạch chuyển USB UART CP 2102: 3.5.1 Giới thiệu: 3.5.1 Giới thiệu:
Mạch chuyển USB UART CP2102 sử dụng chip CP2102 của hãng SILICON LABS được dùng để chuyển giao tiếp từ USB sang UART TTL và ngược lại. Mạch chuyển USB UART CP2102 có thể nhận trên tất cả các hệ điều hành Windows, Mac, Linux, Android,... rất dễ sử dụng và giao tiếp. Hỗ trợ các tốc độ truyền như: 300, 600, 1200, 1800, 2400, 4000, 4800, 7200, 9600 , 14400, 16000, 19200, 28800, 38400, 51200, 56000, 57600, 64000, 76800, 115200 , 128.000, 153.600, 230.400 , 250.000, 256.000, 460.800, 500.000, 576.000, 921.600 và các loại tốc độ khác. CP2102 không sử dụng thạch anh ngoài như các chip PL2303. Module có sẵn ngõ ra điện áp 3.3V. Trên mạch có 6 cổng đầu ra: 3.3V DTR 5V Tx Rx Gnd. Trong đó chân DTR được sử dụng để reset vi điều khiển trong quá trình nạp (tương thích với Arduino Promini). LED nguồn sáng khi gắn vơ máy tính và LED báo hiệu Tx / Rx, LED này sẽ sáng khi module nhận, gửi dữ liệu.
3.5.2 Mơ tả chân:
• TXD: chân truyền dữ liệu UART, dùng kết nối đến chân Rx của các module
khác, không kết nối trực tiếp đến mức của RS232.
• RXD: chân nhận dữ liệu UART, dùng kết nối đến chân Tx của các module
khác, không kết nối trực tiếp đến mức của RS232
• GND: chân mass hoặc nối đất.
• 5V: nguồn điện áp dương (tối đa 500mA).
58
• 3.3V: nguồn điện áp dương 3.3V.
59
CHƯƠNG 4: GIỚI THIỆU PHẦN MỀM APP INVENTOR2 4.1 Giới thiệu: 4.1 Giới thiệu:
Ngày 12/7/2010, Google chính thức giới thiệu cơng cụ lập trình trực quan App Inventor2 dùng để phát triển phần mềm ứng dụng trên hệ điều hành Android. App Inventor2 là cơng cụ lập trình dành cho mọi người, kể cả trẻ em.
Với công cụ App Inventor2, Google tạo điều kiện để mọi người có thể tự xây dựng phần mềm ứng dụng cho thiết bị di động dùng hệ điều hành Android.
App Inventor thực chất là một ứng dụng web, chạy bởi trình duyệt trên máy tính cá nhân. Tuy nhiên, người dùng vẫn phải cài đặt một phần mềm Java mang tên App Inventor2 Extras, có nhiệm vụ điều khiển điện thoại Android (kết nối với máy tính thơng qua cổng USB). Nhờ vậy, người dùng có thể nhanh chóng chuyển ứng dụng từ máy tính cá nhân qua điện thoại Android để chạy thử.
Hình 4.1: Giao diện và kết nối với điện thoại. 4.2 Cách sử dụng: 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
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.