Sơ đồ chân HC-05 gồm có:
KEY: Chân này để chọn chế độ hoạt động AT Mode hoặc Data Mode. VCC
chân này có thể cấp nguồn từ 3.6V đến 6V bên trong module đã có một ic nguồn chuyển về điện áp 3.3V và cấp cho IC BC417.
GND: nối với chân nguồn GND.
TXD, RND: đây là hai chân UART để giao tiếp module hoạt động ở mức
logic 3.3V.
3.2.2 Các chế độ hoạt động
HC-05 có hai chế độ hoạt động là Command Mode và Data Mode. Ở chế độ Command Mode ta có thể giao tiếp với module thơng qua cổng serial trên module bằng tập lệnh AT quen thuộc. Ở chế độ Data Mode module có thể truyền nhận dữ liệu tới module bluetooth khác. Chân KEY dùng để chuyển đổi qua lại giữa hai chế độ này. Có hai cách để bạn có thể chuyển module hoạt động trong chế độ Data Mode.
Nếu đưa chân này lên mức logic cao trước khi cấp nguồn module sẽ đưa vào chế độ Command Mode với baudrate mặc định 38400. Chế độ này khá hữu ích khi bạn không biết baudrate trong module được thiết lập ở tốc độ bao nhiêu. Khi chuyển sang chế độ này đèn led trên module sẽ nháy chậm (khoảng 2s) và ngược lại khi chân KEY nối với mức logic thấp trước khi cấp nguồn module sẽ hoạt động chế độ Data Mode.
Nếu module đang hoạt động ở chế Data Mode để có thể đưa module vào hoạt động ở chế độ Command Mode, ta đưa chân KEY lên mức cao. Lúc này module sẽ vào chế độ Command Mode nhưng với tốc độ Baud Rate được ta thiết lập lần cuối cùng. Vì thế chúng ta phải biết baudrate hiện tại của thiết bị để có thể tương tác được với nó. Chú ý nếu module chưa thiết lập lại lần nào thì mặc định của nó như sau:
Baudrate 9600, data 8 bits, stop bits 1, parity: none, handshake: none Passkey: 1234
3.3 Module hiển thị LCD Text 16023.3.1 Tổng quan về LCD Text 1602 3.3.1 Tổng quan về LCD Text 1602
Màn hình text LCD1602 xanh dương sử dụng driver HD44780, có khả năng hiển thị 2 dịng với mỗi dịng 16 ký tự, màn hình có độ bền cao, rất phổ biến. LCD 1602 gồm 16 chân:
Hình 3. 7: Module LCD 1602
Bảng 3. 2: Chức năng của các chân LCD
Chân Ký
hiệu
Mô tả
1 Vss Chân nối đất cho LCD, khi thiết kế mạch ta nối chân này với GND của mạch điều khiển
2 VDD Chân cấp nguồn cho LCD, khi thiết kế mạch ta nối chân này với VCC=5V của mạch điều khiển
3 VEE Điều chỉnh độ tương phản của LCD.
4 RS Chân chọn thanh ghi (Register select). Nối chân RS với logic “0” (GND) hoặc logic “1” (VCC) để chọn thanh ghi.
+ Logic “0”: Bus DB0-DB7 sẽ nối với thanh ghi lệnh IR của LCD (ở chế độ “ghi” - write) hoặc nối với bộ đếm địa chỉ của LCD (ở chế độ “đọc” - read)
+ Logic “1”: Bus DB0-DB7 sẽ nối với thanh ghi dữ liệu DR bên trong LCD.
5 R/W Chân chọn chế độ đọc/ghi (Read/Write). Nối chân R/W với logic“0” để LCD hoạt động ở chế độ ghi, hoặc nối với logic “1” để LCD ở chế độ đọc.
6 E Chân cho phép (Enable). Sau khi các tín hiệu được đặt lên bus DB0-DB7, các lệnh chỉ được chấp nhận khi có 1 xung cho phép của chân E
+ Ở chế độ ghi: Dữ liệu ở bus sẽ được LCD chuyển vào (chấp nhận) thanh ghi bên trong nó khi phát hiện một xung (high-to- low transition) của tín hiệu chân E.
+ Ở chế độ đọc: Dữ liệu sẽ được LCD xuất ra DB0-DB7 khi phát hiện cạnh lên (low-to-high transition) ở chân E và được LCD giữ ở bus đến khi nào chân E xuống mức thấp.
7 - 14 DB0 - DB7
Tám đường của bus dữ liệu dùng để trao đổi thơng tin với MPU.
Có 2 chế độ sử dụng 8 đường bus này:
+ Chế độ 8 bit: Dữ liệu được truyền trên cả 8 đường, với bit MSB là bit DB7.
+ Chế độ 4 bit: Dữ liệu được truyền trên 4 đường từ DB4 tới DB7, bit MSB là DB7
15 - Nguồn dương của đèn nền
Hình 3. 8: Các chân của module LCD 1602
3.3.2 Thông số kĩ thuật của LCD 1602:
Điện áp hoạt động là 5 V. Kích thước: 80 x 36 x 12.5 mm Chữ trắng, nền xanh dương
Khoảng cách giữa hai chân kết nối là 0.1 inch tiện dụng khi kết nối với Breadboard.
Tên các chân được ghi ở mặt sau của màn hình LCD hổ trợ việc kết nối, đi dây điện.
Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn.
Hình 3. 9: Thông số LCD 1602
3.3.3 Các thanh ghi của chip HD44780
Chíp HD44780 có 2 thanh ghi 8 bit quan trọng: Thanh ghi lệnh IR (Instructor Register) và thanh ghi dữ liệu DR (Data Register).
Thanh ghi IR: Để điều khiển LCD, người dùng phải “ra lệnh” thông qua tám đường bus DB0-DB7. Mỗi lệnh được nhà sản xuất LCD xác định rõ ràng. Người dùng chỉ việc cung cấp địa chỉ lệnh bằng các nạp vào thanh ghi IR. Nghĩa là, khi ta nạp vào thanh ghi IR một chuỗi 8 bit, chíp HD44780 sẽ tra bảng mã lệnh tại địa chỉ mà IR cung cấp và thực hiện lệnh đó.
VD: Lệnh “hiển thị màn hình” có địa chỉ lệnh là 00001100 (DB7…DB0)
Lệnh “hiển thị màn hình và con trỏ” có mã lệnh là 00001110
Thanh ghi DR: Thanh ghi DR dùng để chứa dữ liệu 8 bit để ghi vào vùng RAM DDRAM hoặc CGRAM (ở chế độ ghi) hoặc dùng để chứa dữ liệu từ 2 vùng RAM này gởi ra cho MPU (ở chế độ đọc). Nghĩa là, khi MPU ghi thông tin vào DR, mạch nội bên trong chíp sẽ tự động ghi thơng tin này vào DDRAM hoặc CGRAM.
Hoặc khi thông tin về địa chỉ được ghi vào IR, dữ liệu ở địa chỉ này trong vùng RAM nội của HD44780 sẽ được chuyển ra DR để truyền cho MPU.
=> Bằng cách điều khiển chân RS và R/W chúng ta có thể chuyển qua lại giữ 2 thanh ghi này khi giao tiếp với MPU. Bảng sau đây tóm tắt lại các thiết lập đối với hai chân RS và R/W theo mục đích giao tiếp.
Bảng 3. 3: Chức năng chân RS và R/W theo mục đích sử dụng
RS R/W Chức năng
0 0 Ghi vào thanh ghi IR để ra lệnh cho LCD
0 1 Đọc cờ bận ở DB7 và giá trị của bộ đếm địa chỉ ở DB0-DB6
1 0 Ghi vào thanh ghi DR
1 1 Đọc dữ liệu từ DR
3.3.4 Khởi tạo LCD
Khởi tạo là việc thiết lập các thông số làm việc ban đầu. Đối với LCD, khởi tạo giúp ta thiết lập các giao thức làm việc giữa LCD và MPU. Việc khởi tạo chỉ được thực hiện 1 lần duy nhất ở đầu chương trình điều khiển LCD và bao gồm các thiết lập sau:
Display clear: Xóa/khơng xóa tồn bộ nội dung hiển thị trước đó.
Function set: Kiểu giao tiếp 8bit/4bit, số hàng hiển thị 1hàng/2hàng, kiểu kí tự 5x8/5x10.
Display on/off control: Hiển thị/tắt màn hình, hiển thị/tắt con trỏ, nhấp nháy/không nhấp nháy.
Entry mode set: các thiết lập kiểu nhập kí tự như: Dịch/khơng dịch, tự tăng/giảm (Increment).
GIỚI THIỆU PHẦN MỀM APP INVENTOR 2 4.1 Sơ lược về nền tảng kéo thả - MIT App Inventor
MIT App Inventor dành cho Android là một ứng dụng web nguồn mở ban đầu được cung cấp bởi Google và hiện tại được duy trì bởi Viện Công nghệ Massachusetts (MIT).
Nền tảng cho phép nhà lập trình tạo ra các ứng dụng phần mềm cho hệ điều hành Android (OS). Bằng cách sử dụng giao diện đồ họa, nền tảng cho phép người dùng kéo và thả các khối mã (blocks) để tạo ra các ứng dụng có thể chạy trên thiết bị Android. Đến thời điểm hiện tại 07/2017, phiên bản iOS của nền tảng này đã bắt đầu được đưa vào thử nghiệm bởi Thunkable, là một trong các nhà cung cấp ứng dụng web cho ngôn ngữ này.
Nền tảng App Inventor được đưa ra thông qua yêu cầu vào ngày 12 tháng 7 năm 2010 và được phát hành công khai vào ngày 15 tháng 12 năm 2010. Nhóm App Inventor được dẫn dắt bởi Hal Abelson và Mark Friedman. Trong nửa sau của năm 2011, Google công bố mã nguồn, chấm dứt máy chủ và cung cấp tài trợ cho việc thành lập Trung tâm Nghiên cứu Điện thoại Di động MIT, do Hal Abelson và các giáo sư Eric Klopfer và Mitchel Resnick sáng lập để duy trì hoạt động của App Inventor. Phiên bản MIT được ra mắt vào tháng 3 năm 2012.
Vào ngày 6 tháng 12 năm 2013, MIT đã phát hành App Inventor 2, đổi tên từ tên gốc "App Inventor Classic".
Tính đến tháng 5 năm 2014, nền tảng đã có 87 nghìn người dùng hoạt động hàng tuần và 1,9 triệu đăng ký từ 195 quốc gia với tổng số 4,7 triệu ứng dụng được xây dựng.
Vào tháng 12 năm 2015, có 140 nghìn người sử dụng hoạt động hàng tuần và 4 triệu đăng ký tại 195 quốc gia với tổng số 12 triệu ứng dụng được xây dựng.
Hiện nay, mỗi tháng MIT App Inventor có hơn 400.000 người dùng đến từ 195 quốc gia và đã tạo ra gần 22 triệu ứng dụng, MIT App Inventor đang thay đổi cách thế giới tạo ra các ứng dụng và cách mà học sinh nhỏ tuổi bắt đầu học về máy tính.
Hình 4. 1: Logo phần mềm App Inventor 2
4.2 Những tính năng có trên MIT App Inventor
Cho phép xây dựng nhanh chóng những thành phần cơ bản (components) của một ứng dụng Android: Nút bấm, nút lựa chọn, chọn ngày giờ, ảnh, văn bản, thơng báo, kéo trượt, trình duyệt web.
Sử dụng nhiều tính năng trên điện thoại: Chụp ảnh, quay phim, chọn ảnh, bật video hoặc audio, thu âm, nhận diện giọng nói, chuyển lời thoại thành văn bản, dịch.
Hỗ trợ xây dựng game bằng các components: Ball, Canvas, ImageSprite. Cảm biến: đo gia tốc (Accelerometer Sensor), đọc mã vạch, tính giờ, con quay hồi chuyển (gyroscope Sensor), xác định địa điểm (location Sensor), NFC, đo tốc độ (pedometer), đo khoảng cách xa gần với vật thể (proximity Sensor).
Kết nối: Danh bạ, email, gọi điện, chia sẻ thông qua các ứng dụng mạng xã hội khác trên thiết bị, nhắn tin, sử dụng twitter qua API, bật ứng dụng khác, bluetooth, bật trình duyệt.
Lưu trữ: đọc hoặc lưu tệp txt, csv, sử dụng FusiontablesControl, tạo cơ sở dữ liệu đơn giản trên điện thoại hoặc trên đám mây thông qua server tự tạo hoặc Firebase.
4.3 Giao diện trong App Inventor 2
Hình 4. 2: Giao diện trong AI2
Cửa sổ thiết kế gồm 4 khung chức năng chính:
4.3.1 Pallete:
Chứa các thành phần có thể đặt lên Screen nhìn thấy được trong mục User Interface: Button, Label, Image, TextBox, … Còn các thành phần chức năng khơng nhìn thấy được: Bluetooth, Clock, …
4.3.2 Viewer:
Hiển thị giao diện Screen như trên điện thoại. Kéo thả các thành phần từ khung Pallete sang để thiết kế giao diện cho phần mềm.
Hình 4. 4: Vùng làm việc Viewer
4.3.3 Components:
Hình 4. 5: Vùng làm việc Components
4.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ột đối tượng trong Components sẽ có những thuộc tính khác nhau.
4.4 Cách sử dung App Inventor 2 4.4.1 Khởi tạo App Inventor:
4.4.1.1 Sử dung 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.4.1.2 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.
Hình 4. 7: Giao diện App Inventor 2
4.4.2 Tạo project mới
Sau khi giao diện App Inventor 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
Hình 4. 8: Cách tạo project mới
Tại đây sẽ đặt tên cho project mình muốn tạo (lưu ý tên được đặt khơng có dấu).
Hình 4. 9: Đặt tên cho project
Hình 4. 10: Giao diện làm việc của App
4.4.3 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 thuộc tính của đối tượng Button sẽ hiển thị lên vùng Properties.
Hình 4. 11: Sử dụng đối tượng
Theo đó chỉ cần thiết kế dự án theo ý tưởng mà mình mong muốn.
Trong AI2 code chính là các Blocks, chỉ cần kéo thả các Blocks sang khung Viewer và kết nối chúng theo chức năng mong muốn mà khơng cần gõ từng dịng code. Đây là điểm đặc biệt trong AI2.
Blocks gồm 2 nhóm chính:
Các Blocks chức năng cơ bản trong 1 chương trình như: điều khiển, if… then, while…do, ký tự, khởi tạo biến, list, …
Hình 4. 12: Blocks chức năng trong AI2
Các Blocks chức năng theo từng Components trong ứng dụng: mỗi Component có các Block chức năng tương ứng.
Hình 4. 13: Blocks trong Components
Nhóm này gồm 3 kiểu :
Kiểu thuộc tính (Properties):
Kiểu phương thức (Method):
Hình 4. 15: Blocks Method
Kiểu sự kiện (Events):
4.4.5 Build chương trình và chạy thử
Để chạy chương trình viết trên AI2 có 2 cách:
Sử dụng phần mềm MIT Companion. Với cách này, cần cài đặt phần mềm MIT Companion trên điện thoại. Sau đó, kết nối với project của để tự động download về và chạy bên trong phần mềm MIT Companion.
Xuất ra file.apk và cài đặt online thông mã QR code. Để thực hiện, ta chọn Build => App (provide QR code for .apk). Sau đó sẽ xuất hiện mã QR code quét để tải file apk về và cài đặt.
Hình 4. 17: Xuất file .apk
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.
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.
Hình 4. 19: Mã QR
Đồ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.
Hình 4. 20: Quét mã QR
CHƯƠNG 5
5.1 Sơ lược về phần mềm lập trình Arduino IDE
Thiết kế bo mạch nhỏ gọn, trang bị nhiều tính năng thông dụng mang lại nhiều lợi thế cho Arduino, tuy nhiên sức mạnh thực sự của Arduino nằm ở phần mềm. Mơi trường lập trình đơn giản dễ sử dụng, ngơn ngữ lập trình Wiring dễ hiểu và dựa trên nền tảng C/C++ rất quen thuộc với người làm kỹ thuật. Và quan trọng hơn là số lượng thư viện code được viết sẵn và chia sẻ bởi cộng đồng nguồn mở là cực kỳ lớn. Hình ảnh 5.1 khi mở giao diện Arduino IDE lên sử dụng.
Hình 5. 1: Giao diện phần mềm Arduino IDE.
Arduino là phần mềm dùng để lập trình cho arduino. Mơi trường lập trình cho arduino là IDE có thể chạy trên ba nền tảng phổ biến nhất hiện nay là Windows, Macintosh OSX và Lunix. Do có tính chất nguồn mở nên mơi trường lập trình này hồn tồn miễn phí và có thể mở rộng hơn bởi người dùng có kinh nghiệm.