Tải bản đầy đủ (.docx) (29 trang)

Báo cáo bài tập lớn phát triển ứng dụng Android

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.58 MB, 29 trang )

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
-Khoa Điện Tử-

BÁO CÁO BÀI TẬP LỚN
Môn: Phát Triển Ứng Dụng Cho Thiết Bị Di Động
Đề tài: Sử dụng cảm biến từ kế để dị tìm kim loại
Giáo viên hướng dẫn:
Nhóm thực hiện:
Thành viên:

Th.s Phạm Thị Quỳnh Trang
Nhóm 4






Năm 2019

1

Phí Phương Nam
Đỗ Văn Lợi
Nguyễn Trọng Sang
Nguyễn Hữu Đức
Đinh Văn Khoa


Mục Lục
Lời nói đầu.............................................................................3


Chương 1 Tổng quan.............................................................4
1. Tổng quan về lập trình Android......................................4
1.1. Android là gì?.............................................................4
1.2. Đặc tính mở của android............................................4
1.3. Kiến trúc của Android.................................................5
2. Ngơn ngữ lập trình và mơi trường lập trình Android......6
3. Tìm hiểu về cơng cụ lập trình trên Android Studio.........8
3.1. Bộ phát triển ngơn ngữ Java : Java Development
Kit (JDK).............................................................................8
3.2. Bộ Công cụ phát triển phần mềm : Software
Development Kit (SDK):....................................................8
Chương 2 Cảm biến và mơ phỏng chương trình.................10
1. Khái niệm về cảm biến.................................................10
2. Phân loại.......................................................................11
3. Vai trò...........................................................................12
4. Sensor trong Android Studio.........................................12
4.1. Sensor và SensorManager.......................................12
4.2. Các loại Sensor thông dụng.....................................13
4.3. Các bước và kinh nghiệm làm việc với Sensor........14
5. Cảm biến từ kế.............................................................15
5.1. Từ kế........................................................................15
5.2. Phân loại...................................................................16
5.3. Cảm biến từ kế trong Android Studio.......................16
6. Giới thiệu chương trình.................................................17
7. Chương trình.................................................................20
7.1. Các câu lệnh tạo giao diện.......................................20
7.2. Chương trình chính...................................................21
Tài liệu tham khảo ……………………….....…………………….
…24
2



3


Lời nói đầu
Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số
đầu phát HD, HD Player, TV) dựa trên nền tảng Linux kernel và các phần mềm mã
nguồn mở. Lập trình android là một lập trình ứng dụng di động phổ biến. Android
được xây dựng để cho phép các nhà phát triển tạo ra các ứng dụng di động hấp
dẫn, tận dụng tất cả các tính năng của một chiếc điện thoại đã cung cấp.
Android Studio là một phầm mềm bao gồm các bộ công cụ khác nhau dùng để
phát triển ứng dụng chạy trên thiết bị sử dụng hệ điều hành Android như các loại
điện thoại smartphone, các tablet...
Sau khi hoàn thành học phần Phát triển ứng dụng cho thiết bị di động, nhóm 5
chúng em xin xây dựng một chương trình ứng dụng Android điều khiển thiết bị thơng
qua WiFi. Đề tài được kết hợp giữa thiết bị di động sử dụng nền tảng hệ điều hành
Android và từ kế, nhằm ứng dụng dị tìm kim loại.

4


Chương 1 Tổng quan
1. Tổng quan về lập trình Android.
1.1.Android là gì?
Android là hệ điều hành trên điện thoại di động (và hiện
nay là cả trên một số đầu phát HD, HD Player, TV) dựa trên nền
tảng Linux kernel và các phần mềm mã nguồn mở. Lập trình
android là một lập trình ứng dụng di động phổ biến. Trước đây,
Android được phát triển bởi công ty liên hợp Android (sau đó được

Google mua lại vào năm 2005).
Android là hệ điều hành mở mã nguồn chính duy nhất với 12
triệu dịng mã bao
gồm 3 triệu dòng mã XML, 2,8 triệu mã C,
2,1 triệu dòng Java và 1,75 triệu dòng C++.
Các nhà phát triển viết ứng dụng cho Android dựa trên ngôn
ngữ Java. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007
gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở,
bao gồm 78 công ty phần cứng, phần mềm và viễn thơng nhằm
mục đính tạo nên một chuẩn mở cho điện thoại di động tzrong
tương lai.
 Được xây dựng trên nền tảng của mã nguồn mở.
 Không chỉ là hệ điều hành cho các thiết bị di động mà còn là
HĐH cho cả các thiết bị khác có sử dụng Internet.
 Là HĐH dễ sử dụng và cho phép người dùng dễ dàng publish
các ứng dụng.

1.2.Đặc tính mở của android
Android được xây dựng để cho phép các nhà phát triển tạo ra
các ứng dụng di động hấp dẫn, tận dụng tất cả các tính năng của
một chiếc điện thoại đã cung cấp. Android được xây dựng trên mã
nguồn mở Linux Kernel. Hơn nữa, nó sử dụng một máy ảo tùy
chỉnh được thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng
trong môi trường di động.
Android cung cấp truy cập đến một loạt các thư viện cơng cụ
hữu ích và có thể sử dụng để xây dựng các ứng dụng phong phú.
Ngoài ra, Android bao gồm một tập hợp đầy đủ công cụ đã được
5



xây dựng công phu, với việc cung cấp nền tảng phát triển, với
năng suất cao và cái nhìn sâu vào các ứng dụng.

1.3.Kiến trúc của Android
Sơ đồ kiến trúc của hệ điều hành Android với năm lớp và bốn
tầng cơ bản như sau:

 Tầng Applications: Đây là tầng mà được tích hợp sẵn một số
ứng dụng cần thiết cơ bản như: contact, brower, camera,
Phone,… Tất cả các ứng dụng chạy trên hệ điều hành
Android đều được viết bằng Java.
 Tầng Application Framework: Lớp Android Framework cung
cấp các dịch vụ cấp độ cao hơn cho các ứng dụng dưới dạng
các lớp Java. Các nhà phát triển ứng dụng được phép sử
dụng các dịch vụ này trong ứng dụng của họ.
Android Framework bao gồm các dịch vụ chính sau:
 Activitty Manager – Kiểm sốt tất cả khía cạnh của vịng đời
ứng dụng và ngăn xếp các Activity.
 Content Providers – Cho phép các ứng dụng chia sẽ dữ liệu
với các ứng dụng khác.
 Resource Manager – Cung cấp quyền truy cập vào các tài
nguyên như các chuỗi, màu sắc, các layout giao diện người
dùng…
6


 Notifications Manager – Cho phép các ứng dụng hiển thị
cảnh báo và các thông báo cho người dùng.
View System – Tập các thành phần giao diện (view) được sử dụng
để tạo giao diện người dùng.

 Tầng Libraries: Chứa các thư viện, API gần như là cốt lõi của
Android, bao gồm bộ quản lý bề mặt cảm ứng (Surface
Manager), OpenGL (phục vụ cho việc dựng đồ họa phức tạp),

 Tầng Android Runtime: Chứa các thư viện lõi của Android và
máy ảo Dalvik Virtual Machine (từ Android 4 trở lên chúng ta
có thêm máy ảo ART).
 Tầng Kernel: Là nhân lõi của hệ điều hành, chứa các tập
lệnh, driver giao tiếp giữa phần cứng và phần mềm của
Android.

2. Ngôn ngữ lập trình và mơi trường lập trình
Android
 Ngơn ngữ lập trình:
Một trong những ngơn ngữ lập trình tiêu biểu nhất của lập
trình android là Java. Nó là ngơn ngữ lập trình chính thức được sử
dụng rộng rãi nhất trên thế giới có ước tính khoảng 9 triệu nhà
phát triển.
Java được thiết kế để tương thích với nhiều mơi trường phát
triển vì thế mà nó linh hoạt hơn so với ngôn ngữ lập trình hướng
đối tượng C++ và ngơn ngữ lập trình C. Bên cạnh đó, Java còn có
hiệu suất cao nhờ vào trình thu gom rác, trình giải phóng bộ nhớ
với các đối tượng khơng được dùng đến. Ngồi ra, Java nâng cao
cịn có thể viết ra các chương trình thực thi nhiều các tác vụ cùng
một lúc với tính năng đa luồng của mình, đặc biệt đó là ở trong
lập trình game. Đặc biệt, ngơn ngữ lập trình Java cịn hỗ trợ bảo
mật rất tốt bởi các thuật toán mã hóa như public key hoặc mã one
way hashing…
Bên cạnh ngoài ngôn ngữ Java, có thể kể đến một số ngôn
ngữ lập trình android phổ biến hiện nay thường gặp như: C++,

C#, Kotlin, HTML5, CSS, JavaScript, Python, Lua,…
 Môi trường lập trình Android:
Mơi trường lập trình (IDE) chính thức của Android là Eclipse
(từ phiên bản 3.2) với sự hỗ trợ của plugin Android Development
7


Tools (ADT) trước đây. Tuy nhiên, người lập trình có thể sử dụng
bất kỳ 1 IDE hay trình soạn thảo văn bản nào để viết code Java và
XML rồi biên dịch nên ứng dụng hồn chỉnh bằng cách sử dụng
dịng lệnh (command lines).
Android Deverloper Tools Bundle (ADT) bao gồm:
Eclipse + ADT plugin.
Android SDK Tools.
Android Platform Tools.
Phiên bản hệ điều hành Android.
Tập tin cài đặt hệ điều hành cho máy ảo.
Ứng dụng Android được đóng gói thành các file .apk và đuợc
lưu trong thư mục /data/app của hệ điều hành Android.Java
Development Kit (JDK) 5.0.
 Ứng dụng lập trình Android và các thành phần liên
quan
Ứng dụng lập trình Android là các ứng dụng chỉ có thể được
viết bằng một vài ngôn ngữ đặc trưng, có thể kể đến như C++,
C#, Javacript, LUA, Python,…dành riêng cho nền tảng Android của
thiết bị di động. Sau khi viết code xong và chạy biên dịch chương
trình, bộ công cụ SDK Android sẽ biên dịch mã của chương trình cùng với bất kỳ tệp dữ liệu và tài nguyên nào—vào một APK:
một gói Android, đó là một tệp lưu trữ có hậu tố .apk. Một tệp APK
chứa tất cả nội dung của một ứng dụng Android và là tệp mà các
thiết bị dựa trên nền tảng Android sử dụng để cài đặt ứng dụng.

Các thành phần (component) cơ bản tạo nên một ứng
dụng Android như sau:
 Activity: là nền của 1 ứng dụng. Khi khởi động 1 ứng dụng
Android nào đó thì bao giờ cũng có 1 main Activity được gọi,
hiển thị màn hình giao diện của ứng dụng cho phép người
dùng tương tác.
 Service: là thành phần chạy ẩn trong Android. Service sử
dụng để update dữ liệu, đưa ra các cảnh báo (Notification)
và không bao giờ hiển thị cho người dùng thấy.
 Content Provider: được sử dụng để quản lý và chia sẻ dữ liệu
giữa các ứng dụng.

8


 Intent: là nền tảng để truyền tải các thông báo. Intent được
sử dụng để gửi các thông báo đi nhằm khởi tạo 1 Activity hay
Service để thực hiện công việc mong muốn.
 Broadcast Receiver: thành phần thu nhận các Intent bên
ngoài gửi tới.
 Notification: đưa ra các cảnh báo mà khơng làm cho các
Activity phải ngừng hoạt động.

3. Tìm hiểu về cơng cụ lập trình trên Android
Studio
3.1.Bộ phát triển ngôn
Development Kit (JDK)

9


ngữ

Java

:

Java


JDK viết tắt của Java Development Kit là một bộ phần mềm
cung cấp môi trường phát triển ứng dụng viết bằng ngôn ngữ Java.
JDK dùng để viết những applet Java hay những ứng dụng Java
hoặc ứng dụng Android. Bộ công cụ này được phát hành miễn phí
gồm có trình biên dịch, trình thơng dịch, trình giúp sửa lỗi
(debugger, trình chạy applet) và tài liệu nghiên cứu. Nó cũng là
một trong ba gói công nghệ cốt lõi được sử dụng trong lập trình
Java, cùng với JVM (Máy ảo Java - Java Virtual Machine) và JRE
(Java Runtime Environment - Môi trường Java Runtime) được sử
dụng phổ biến trong lập trình Java.
Có thể hiểu về JDK theo 2 cách như sau:
Định nghĩa chuyên ngành: JDK là một hệ tiêu chuẩn trong
việc triển khai nền tảng Java, bao gồm các trình thơng dịch và thư
viện lớp.
Định nghĩa thông thường: JDK là gói phần mềm bạn tải
xuống để tạo các ứng dụng dựa trên Java.
Trình biên dịch JDK & Java: Môi trường được sử dụng để chạy
các Source code Java, mỗi JDK đều chứa trình biên dịch Java. Trình
biên dịch là chương trình phần mềm có khả năng lấy các tệp .java
ở dạng thô - văn bản thuần túy - và hiển thị chúng thành các tệp
thực thi có đuôi .Class


3.2.Bộ Công cụ phát triển phần mềm : Software
Development Kit (SDK):
SDK là một tập hợp công cụ hỗ trợ cho việc phát triển phần
mềm thông qua một nền tảng nào đó. Hầu hết các nhà phát triển
ứng dụng đều cần dùng tới SDK để thêm vào các tính năng nâng
cao, hiển thị quảng cáo, thơng báo dạng đẩy (push notification)
cho ứng dụng. Chẳng hạn lập trình Android yêu cầu SDK cho Java,
với ứng dụng iOS thì SDK cho Swift, cịn lập trình ứng dụng
Windows u cầu có .NET Framework SDK đi kèm với .NET.
SDK có thể chứa các API dưới dạng thư viện để giao tiếp với
một ngôn ngữ nào đó hoặc để chứa một hệ thống phần cứng phức
tạp có thể giao tiếp với một hệ thống nhúng. Các công cụ phổ
biến bao gồm các tiện ích gỡ rối phần mềm (debugging), thường ở
dạng mơi trường phát triển tích hợp (IDE). SDK cũng thường hay
10


kèm theo các sample code và các ghi chú kỹ thuật hỗ trợ
(documentation) hay tài liệu để giúp làm rõ các tài liệu tham khảo
chính.

11


Về phân loại, SDK có ba phân loại chính như sau:
Windows SDK: bộ công cụ phát triển ứng dụng chạy trên nền
tảng Windows.
Android SDK: bộ công cụ phát triển ứng dụng trên nền tảng
android.

Java SDK: hay nói cách khác là JDK là một tập con mở rộng
của SDK hay nói cách khác JDK là SDK for Java hoặc Java SDK. Bộ
cơng cụ này bao gồm các tool hữu ích để xây dựng và phát triển
các Applications, Applets và Components viết bằng ngơn ngữ lập
trình Java (khơng dùng ngơn ngữ khác như C, C++, v.v…).
Về lợi ích của việc sử dụng SDK: SDK mang lại nhiều lợi ích
với tính năng khác nhau. Người dùng khi sử dụng có thể có được
các lợi ích tích cực, đem lại trải nghiệm thú vị cho người dùng.
Việc sử dụng SDK sẽ giúp cung cấp một cách chính xác các ứng
dụng, giúp người dùng có thể thực hiện tích hợp các cơng cụ một
cách nhanh chóng và dễ dàng. Từ đó tăng cường độ chính xác
giúp thực hiện dữ liệu, giúp triển khai và nâng cấp đường dẫn tốt
hơn, đồng thời thực hiện loại bỏ đi các thơng tin dư thừa, khơng
cần thiết.
Ngồi ra cũng có một số cơng cụ hỗ trợ lập trình Android tiêu
biểu:
SQLite Manager: Là một addon của Firefox giúp quản lí cơ sở
dữ liệu SQLite của Android.
DroidDraw: Giúp thiết kế file XML giao diện ứng dụng.
Balsamiq Mockups và AdobeFireworks: Giúp nhanh chóng
phác thảo ý tưởng và giao diện sơ bộ của ứng dụng.
StarUML: Vẽ các lược đồ UML hỗ trợ phân tích thiết kế.

12


Chương 2 Cảm biến và mơ phỏng chương
trình
1.Khái niệm về cảm biến
Cảm biến là thiết bị điện tử cảm nhận những trạng thái hay quá

trình vật lý, hóa học hay sinh học của môi trường cần khảo sát, và
biến đổi thành tín hiệu điện để thu thập thơng tin về trạng thái
hay q trình đó.
Thơng tin được xử lý để rút ra tham số định tính hoặc định
lượng của mơi trường, phục vụ các nhu cầu nghiên cứu khoa học
kỹ thuật hay dân sinh và gọi ngắn gọn là đo đạc, phục vụ trong
truyền và xử lý thông tin, hay trong điều khiển các quá trình khác.
Cảm biến thường được đặt trong các vỏ bảo vệ tạo thành đầu
thu hay đầu dò, có thể có kèm các mạch điện hỗ trợ và nhiều khi
trọn bộ đó lại được gọi luôn là "cảm biến".

2.Phân loại
Trên thực tế có vô vàn các loại cảm biến khác nhau nhưng
chúng ta có thể chia chúng thành 2 nhóm chính:
 Cảm biến vật lý: có thể kể đến một vài ví dụ dễ hình dung
như sóng điện từ, ánh sáng, tia hồng ngoại, tia X, nhiệt độ,
áp suất, âm thanh, từ trường gia tốc,…….
 Cảm biến hóa học: thường thấy độ ẩm, độ PH, ion, khói,
…….
Ngồi ra ta cũng có một số hình thức phân chia khác:
Cảm biến chủ động và bị động
 Cảm biến chủ động: không sử dụng điện năng bổ sung để
chuyển sang tín hiệu điện. Điển hình là cảm biến áp điện
13


làm bằng vật liệu gốm, chuyển áp suất thành điện tích
trên bề mặt.
 Cảm biến bị động: có sử dụng điện năng bổ sung để
chuyển sang tín hiệu điện. Điển hình là các photodiode khi

có ánh sáng chiếu vào thì có thay đổi của điện trở tiếp
giáp bán dẫn p-n đươc phân cực ngược.
Phân loại theo nguyên lý hoạt động
Theo nguyên lý hoạt động ta có thể kể đến những loại cảm
biến nổi bật như sau:
 Cảm biến điện trở: hoạt động dựa theo di chuyển của con
chạy hoặc góc quay của biến trở hoặc sự thay đổi của điện
trở do co giãn vật dẫn.
 Cảm biến cảm ứng: cảm biến biến áp vi phân, cảm biến cảm
ứng điện từ, cảm biến điện xoáy, cảm biến cảm ứng điện
động, ….
 Cảm biến điện trường: cảm biến từ giao, cảm biến điện áp,
….
Và một số cảm biến nổi bật khác như: cảm biến quang, cảm
biến huỳnh quang nhấp nháy, cảm biến điện hóa đầu dò ion và độ
pH, cảm biến nhiệt độ,…

3.Vai trò
Cảm biến có vai trò quan trọng trong các bài tốn điều khiển
q trình nói riêng và trong các hệ thống điều khiển tự động nói
chung.
 Là thiết bị có khả năng cảm nhận các tín hiệu điều khiển
vào, ra.
 Có vai trò đo đạc các giá trị.
 Giới hạn cảm nhận với đại lượng vật lý cần đo.

4.Sensor trong Android Studio

14



Hầu hết các thiết bị hỗ trợ Android đều có cảm biến tích hợp để
đo chuyển động, định hướng và các điều kiện môi trường khác
nhau. Các cảm biến này có khả năng cung cấp dữ liệu thơ với độ
chính xác và độ chính xác cao và rất hữu ích nếu bạn muốn theo
dõi chuyển động hoặc định vị của thiết bị ba chiều hoặc bạn
muốn theo dõi các thay đổi trong môi trường xung quanh gần
thiết bị.
Nền tảng Android hỗ trợ ba loại cảm biến:
 Cảm biến chuyển động: Những cảm biến này đo lực gia tốc
và lực quay dọc theo ba trục. Danh mục này bao gồm gia tốc
kế, cảm biến trọng lực, con quay hồi chuyển và cảm biến
vectơ quay.
 Cảm biến môi trường: Những cảm biến này đo các thông số
môi trường khác nhau, chẳng hạn như nhiệt độ và áp suất
khơng khí xung quanh, độ chiếu sáng và độ ẩm. Danh mục
này bao gồm áp kế, quang kế và nhiệt kế.
 Cảm biến vị trí: Những cảm biến này đo vị trí vật lý của một
thiết bị. Danh mục này bao gồm cảm biến định hướng và từ
kế.
Khung cảm biến Android cho phép bạn truy cập nhiều loại cảm
biến. Một số cảm biến này dựa trên phần cứng và một số dựa trên
phần mềm. Cảm biến dựa trên phần cứng là các thành phần vật lý
được tích hợp trong thiết bị cầm tay hoặc máy tính bảng. Họ lấy
được dữ liệu của mình bằng cách đo trực tiếp các đặc tính mơi
trường cụ thể, chẳng hạn như gia tốc, cường độ trường địa từ
hoặc thay đổi góc. Cảm biến dựa trên phần mềm không phải là
thiết bị vật lý, mặc dù chúng bắt chước cảm biến dựa trên phần
cứng.


4.1.Sensor và SensorManager
Sensor: chip cảm ứng nằm trong thiết bị cung cấp dữ liệu mà
nó đo được cho hệ điều hành.
Trong Android các sensor được quản lý chung bơi
SensorManager, một dịch vụ hệ thống.
SensorManager sm= (SensorManager)
getSystemService (SENSOR_SERVICE);
15


Thơng qua SensorManager lập trình viên có thể:
 Lấy danh sách các sensor có trong hệ thống hiện tại.
 Lấy đối tượng để làm việc trực tiếp với từng sensor.
Đăng kí listener để xử lý sự kiện do các sensor báo về.
Các Sensor được Android OS hỗ trợ:
TYPE_ACCELEROMETER: cảm biến gia tốc
TYPE_AMBIENT_TEMPERATURE: cảm biến nhiệt độ môi trường
TYPE_GRAVITY: cảm biến trọng lực
TYPE_GYROSCOPE: cảm biến con quay hồi chuyển
TYPE_LIGHT: cảm biến ánh sáng
TYPE_LINEAR_ACCELERATION: cảm biến gia tốc tuyến tính
TYPE_MAGNETIC_FIELD: cảm biến từ tính
TYPE_PRESSURE: cảm biến áp suất
TYPE_PROXIMITY: cảm biến khoảng cách gần
TYPE_RELATIVE_HUMIDITY: cảm biến độ ẩm
TYPE_ROTATION_VECTOR: cảm biến xoay
TYPE_GAME_ROTATION_VECTOR: cảm biến xoay 2D
TYPE_SIGNIFICANT_MOTION: cảm biến chuyển động

4.2.Các loại Sensor thông dụng

Cảm biến trong Android chia làm 3 nhóm:
 Cảm biến chuyển động.
 Cảm biến vị trí.
 Cảm biến mơi trường.
Mỗi loại Sensor có những đặc điểm vật lý khác nhau.
Một số Sensor là loại Virtual (ảo), tức là kết quả được tính tốn
hoặc nội suy từ nguồn khác.
Android SDK khơng có các class định sẵn cho từng loại sensor
mà chỉ có TYPE của sensor, dữ liệu do sensor trả về là float
(trường hợp cảm biến 1 đầu ra - chẳng hạn đo ánh sáng) hoặc
float[] (trường hợp cảm biến nhiều đầu ra).
TYPE_AMBIENT_TEMPERATURE: cảm biến nhiệt độ, đơn vị đo là độ
C.
TYPE_LIGHT: cảm biến ánh sáng, đơn vị đo là lx.
TYPE_PRESSURE: cảm biến áp suất khơng khí, đơn vị mbar.
TYPE_PROXIMITY:cảm biến khoảng cách đến đối tượng, đơn vị cm.
TYPE_RELATIVE_HUMIDITY: cảm biến độ ẩm, đơn vị đo là %.
16


TYPE_ACCELEROMETER/ TYPE_GRAVITY: cảm biến gia tốc/hấp dẫn
trong 3D(x,y,z), đơn vị m/s2
TYPE_GYROSCOPE: cảm biến tốc độ quay trong 3D, đơn vị rad/s.
TYPE_MAGNETIC_FIELD: cảm biến lực từ trong 3D.

4.3.Các bước và kinh nghiệm làm việc với Sensor
Các bước làm việc với Sensor
Bước 1: lấy SensorManager từ các dịch vụ hệ thống, thông
qua getSystemService(Context.SENSOR_SERVICE)
Bước 2: Từ SesorManager lấy đối tượng Sensor điều khiển

cảm biến cần sử dụng.
Sensor=sensorService.getDefaultSensor(TYPE);
Bước 3: Cài đặt các bộ nghe (listener) phù hợp để xử lý các
số liệu do cảm biến trả về.
Bước 4: Tắt Sensor trong những tình huống không cần thiết
để tránh thiết bị tiêu tốn năng lượng.
Bước 5: Xử lý lỗi hoặc thay đổi độ nhạy của thiết bị.
Các kinh nghiệm làm việc với Sensor
 Nhất thiết phải giải phóng sensor khi không cần thiết, nếu
không ứng dụng sẽ rất hao pin.
 Hệ thống không tự động tắt sensor kể cả khi tắt màn hình.
Chú ý:
 Khi làm việc với các thông số 3D: các chiều có thể bị hốn
đổi vị trí khi người sử dụng đặt thiết bị theo chiều âm (ví dụ:
máy bị lật úp).
 Nên kiểm thử trên thiết bị thật và hiệu chỉnh độ nhạy dần
dần.
 Kết hợp nhiều sensor để thiết bị “nhạy cảm” hơn.

5.Cảm biến từ kế
5.1.Từ kế
Từ kế là một thiết bị có các biện pháp từ tính -the hướng, sức
mạnh, hay sự thay đổi tương đối của một từ trường tại một địa
điểm cụ thể. Phép đo từ hóa của
vật liệu
từ
tính
(như ferromagnet ) là một ví dụ. Một la bàn là một thiết bị như
vậy, một trong các biện pháp chỉ đạo của một từ trường xung
quanh, trong trường hợp này, từ trường của Trái đất .

Từ kế đầu tiên có khả năng đo cường độ từ tuyệt đối được
phát minh bởi Carl Friedrich Gauss vào năm 1833 và những phát
17


triển đáng chú ý trong thế kỷ 19 bao gồm hiệu ứng Hall, vẫn được
sử dụng rộng rãi.
Từ kế được sử dụng rộng rãi để đo từ trường của Trái đất và
trong các khảo sát địa vật lý để phát hiện các dị thường từ
tính thuộc nhiều loại khác nhau. Trong thái độ và hệ thống tham
chiếu tiêu đề của máy bay, chúng thường được sử dụng làm tài
liệu tham khảo tiêu đề. Từ kế cũng được sử dụng trong quân đội
để phát hiện tàu ngầm. Do đó, một số quốc gia như Hoa Kỳ,
Canada và Úc, phân loại từ kế nhạy cảm hơn là công nghệ quân
sự và kiểm soát phân phối của họ.
Từ kế có thể được sử dụng làm máy dò kim loại: chúng chỉ có
thể phát hiện kim loại từ tính ( kim loại), nhưng có thể phát hiện
các kim loại như vậy ở độ sâu lớn hơn nhiều so với máy dị kim
loại thơng thường; chúng có khả năng phát hiện các vật thể lớn,
chẳng hạn như ô tô, ở độ cao hàng chục mét, trong khi phạm vi
của máy dò kim loại hiếm khi hơn 2 mét.

5.2.Phân loại
Phân loại theo công dụng:
 Từ kế trong phịng thí nghiệm có độ nhạy, độ chính xác cao,
đo được trường lớn hay cực nhỏ và tất nhiên có thể rất cồng
kềnh. Chúng phục vụ đo mẫu vật hay khảo sát các quá
trình vật lý, hóa học, sinh học,... trong quan hệ với từ trường.
 Từ kế di động có kích thước, độ nhạy, dải đo thích hợp để
đo từ trường Trái Đất hay trong vũ trụ.

Phân loại theo đo thành phần trường:
 Từ kế vô hướng đo giá trị trường toàn phần T.
 Từ kế vector đo giá trị thành phần trường dọc theo phương
nào đó, chẳng hạn phương thẳng đứng Z, phương nằm
ngang H, hay nằm ngang theo kinh vĩ tuyến X, Y.
Phân loại theo cách thức đo trường:
 Từ kế đo tuyệt đối (Absolute) cho ra giá trị thật.
 Từ kế đo tương đối (Relative) cho ra số đọc biểu kiến và phải
tính tốn theo các tham số kiểm chuẩn để thu được giá trị
trường.

5.3.Cảm biến từ kế trong Android Studio
public class
SensorActivityextends Activityimplements SensorEventListener
18


{
final SensorManager sm ;
final Sensor mf;
public SensorActivity()
{
sm = (SensorManager) getSystemService(SENSOR_SERVICE);
mf = sm.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD );
}
protected voidonResume()
{
super.onResume();
sm.registerListener(this,
mf,SensorManager.SENSOR_DELAY_NORMAL);

}
protected void onPause()
{ super.onPause();
sm.unregisterListener(this);
}
// khi độ chính xác của sensor thay đổi
public void onAccuracyChanged(Sensors, intaccuracy)
{
}
// khi thông số sensor cập nhật
public void onSensorChanged(SensorEventevent)
{
}}

6.Giới thiệu chương trình
Chương trình sẽ chia làm 3 phần:
Phần 1: Activity1 - Mở đầu ứng dụng.

19


Phần 2: Activity2 - Hướng dẫn sử dụng ứng dụng và chú ý với
nội dung được nhập từ Main2.

Phần 3: Activity3 – Chương trình sử dụng cảm biến.

20


7.Chương trình

7.1.Các câu lệnh tạo giao diện
Thiết lập câu lệnh mở chương trình tồn màn hình.
Để làm ẩn ActionBar, ta gọi
Và để ẩn thanh ActionBar này, ta chỉ cần gọi
.
Tạo hiệu ứng Animation rotate cho ImageView với số lần lặp
là vô hạn trong 500 millis:

Ở nút button, tạo thư mục xml trong drawable, ta sẽ chia
làm nút nhấn có 2 trạng thái: nhấn và khơng nhấn.
Nhấn với nút hình chữ nhật và thiết lập 3 thuộc tính stroke
(viền nút nhấn), corners (bo góc) và gradient (màu sắc hỗn hợp).

21


Khơng nhấn với nút hình chữ nhật và thuộc tính cũng giống
trạng thái nhấn, có thêm solid (màu nền).

Sử dụng một số hiệu ứng tạo Animation cho Intent, ta sử
dụng một số thư viện có sẵn trên GitHub, Cop
và Paste vào phần allprojects{} trong
Project, tiếp đến Paste đường dẫn vào dependencies trong
Module
Để thực hiện hiệu ứng này, ở các Button activity chuyển giữa
các activity, khai báo thêm thứ tự chuyển

. Trong main thực hiện chuyển bằng cách:

7.2.Chương trình chính

Chương trình có 3 activity.xml tương ứng với 3
MainActivity.java
Ở Main1 thực hiện với 2 nút nhấn và 1 ImageView, tạo âm
thanh cho nút nhấn bằng cách gọi MediaPlayer và thêm hiệu ứng
chuyển Intent :

22


Khi nhấn Button để chuyển sẽ chuyển sang Activity2, phần
Main2 với các nội dung ở dạng chuỗi String

Tại đây ta sẽ hiển thị các chuỗi đã khai báo ở trên cho các
TextView. Và sử dụng 2 Button với 1 nút là chuyển về Activity1 có
hiệu ứng chuyển “right-to-left” (phải sang trái), 1 nút là chuyển
sang Activity3 với Main3 hiệu ứng chuyển “left-to-right” (trái sang
phải).
23


Chương trình cảm biến từ kế được thực hiện ở Activity 3, ta
gọi cảm biến từ hệ thống và sử dụng 2 TextView để hiện thị các
giá trị mà cảm biến đo được

Hàm onResume được gọi khi Activity sẽ tương tác với người
dùng, hàm onPause được gọi khi Activity không hiển thị cho người
dùng.
24



Tiếp đến gọi đến hàm onSensorChanged khi thông số sensor
được cập nhật với 3 giá trị x,y,z. Tính tốn các giá trị này từ cảm
biến và hiển thị trên TextView.

Tại đây ta sẽ cho thanh ProgressBar hiển thị tiến trình mà
cảm biến đang đạt ở trị hiện thời, đổng thời chia các khoảng giá
trị để hiện thị các màu thể hiện mức độ của cảm biến.

25


×