Você está na página 1de 40

Sensor và Animation

trong
Nhóm ABC

Nguyễn Công Chiến


Tô Minh Đô
Lê Thành Được
Lương Bùi Trọng Nghĩa
Trần Thế Vĩnh
Nội dung

Tìm hiểu về SenSor. 1


Tìm hiểu Animation. 2
Mô tả ứng dụng
3
4
Demo ứng dụng

5
Giải đáp và mô tả ứng dụng
I.SENSOR

1.1 SENSOR là gì ?

Sensor hay còn gọi là cảm biến. Thiết bị này là một bộ cảm ứng được dùng
để biến đổi những thông tin ở môi trường bên ngoài thành những tín hiệu
điện để giúp điều khiển các thiết bị khác.
I.SENSOR
1.2 Cấu tạo của sensor

Bằng cách sử dụng những biến trở góc quay và những biến trở tuyến tính sẽ góp phần rất nhiều trong việc biến đổi các dịch
chuyển thành các cấp điện áp, ngoài ra thì nó cũng góp phần chuyển các cảm biến tiệm cận kiểu điện trở và cảm biến điện dung.
Nó sẽ hoạt động dựa trên một nguyên tắc chung trong việc đo lường các đại lượng không mang điện bằng cách biến đổi tất cả
thành các tín hiệu điện. Cấu tạo của một cảm biến thường được chia làm bốn phần như sau:
Phần thứ nhất chính là thành phần chuyển đổi, các cơ cấu đo điện hay các loại mạch trung gian hoặc các sơ đồ về mạch trung
gian hoặc là mạch lưu chỉnh. Vẫn còn một thành phần tương đối quan trọng nữa đó là cảm biến senxi – thành phần dùng để đo
lường trong hệ bám sát các gõ quay, và sau đó sẽ truyền các lệnh cho các góc quay ở cự ly xa mà bạn không thể thực hiện được
bằng cơ khí.
Phần thứ hai là biến áp quay có tác dụng chuyển đổi điện áp từ cuộn sơ cấp sang tín hiệu điện bên thứ cấp tương ứng.
Phần thứ ba là con quay hai bậc và con quay có ba bậc tự do, hai thành phần này có công dụng trong việc đo đạc các tốc độ góc
trong một hệ thống ổn định hay hay đo các sai lệch góc.
Phần thứ tư là cảm biến tốc độ: Trên bộ phận này có đĩa mã được khắc vạch và ánh sáng có thể đi qua được, ở phía sau đĩa được
đặt phototransistor và chịu được tác dụng của nguồn sáng.
I.SENSOR
1.3 Các loại cảm biến
I.SENSOR
1.3.1 Cảm biến điện dung

Đây là loại cảm biến được đặt bên dưới màn hình cảm ứng trên thiết bị di động của các bạn. Công
nghệ cảm ứng điện dung dùng một lưới các điện cực phủ trên màn hình, trên đó có một điện thế. Khi
ngón tay đến gần điện cực, điện dung của lưới thay đổi và có thể đo được. Bằng việc đo tất cả các
điện cực, ta sẽ nhận biết được vị trí ngón tay. Có hai loại điện dung dùng cho màn hình cảm ứng: điện
dung tương hổ (mutual capacitance) và điện dung riêng (self-capacitance).
I.SENSOR
1.3.2 Cảm biến tiệm cận
Đây là cách mà điện thoại biết khi nào bạn áp điện thoại lên tai để từ đó tắt hoặc mở màn hình. Cảm
biến tiệm cận (proximity sensor) thường phát ra một loại trường điện từ, một chùm bức xạ hoặc một loại
ánh sáng (như hồng ngoại chẳng hạn), sau đó nó sẽ giám sát sự thay đổi của trường hoặc những tín
hiệu trả về để quyết định xem bạn có đang smartphone lại gần hay không. Khoảng cách mà cảm biến
tiệm cận có thể nhận biết đối tượng vào khoảng 2-5cm (cũng có những loại sensor nhận biết được xa
hơn nhưng chủ yếu dùng trong lĩnh vực an ninh và công nghiệp).
I.SENSOR
1.3.3 Cảm biến ảnh
Cảm biến này thì quá phổ biến rồi. Nó là một tập hợp rất nhiều photodiode có chức năng nhận biết
ánh sáng đi từ môi trường vào. Sau đó, cảm biến ảnh sẽ chuyển thông tin ghi nhận được thành tín
hiệu số, áp dụng thêm một số thuật toán xử lý màu sắc rồi kết xuất thành một tấm ảnh hoàn chỉnh
cho chúng ta xem. Với ảnh định dạng JPEG thì một vài phương pháp nén và xử lí khác sẽ được áp
dụng trước khi máy ghi thành một tập tin. Cảm biến ảnh có nhiều kích thước khác nhau, thường thấy
trên thiết bị di động có loại 1/3", một số máy cao cấp hơn thì dùng cảm biến 1/2,3" hoặc 1/1,7". Như
các bạn đã biết, đơn vị nhỏ nhất dùng để đo độ chi tiết của ảnh đưa ra từ cảm biến là pixel và 1
megapixel = 1 triệu pixel.
I.SENSOR
1.3.4 Cảm biến ảnh
Loại cảm biến này xuất hiện lần đầu tiên trên iPhone 4 và tên tiếng Anh của nó là gyroscope. Theo định
nghĩa vật lí, con quay hồi chuyển là một thiết bị dùng để đo đạc hoặc duy trì phương hướng, dựa trên các
nguyên tắc bảo toàn mô men động lượng. Thực chất, con quay cơ học là một bánh xe hay đĩa quay với
các trục quay tự do theo mọi hướng. Phương hướng này thay đổi nhiều hay ít tùy thuộc vào mô men
xoắn bên ngoài hơn là liên quan đến con quay có vận tốc cao mà không cần mô men động lượng lớn. Vì
mô men xoắn được tối thiểu hóa bởi việc gắn kết thiết bị trong các khớp vạn năng (gimbal), hướng của nó
duy trì gần như cố định bất kể so với bất kỳ chuyển động nào của vật thể mà nó tựa lên.
I.SENSOR
1.3.5 Cảm biến vân tay

Đây là loại cảm biến mới lạ đang ngày càng được nhiều nhà sản xuất thiết bị di động quan
tâm. Thực chất cảm biến vân tay có hai loại, loại quang học và loại điện dung. Loại đầu
thường dùng ở các máy đọc vân tay gắn ngoài hoặc máy để check in vào cơ quan, còn loại
điện dung mới là thứ được các nhà sản xuất đưa lên smabrtphone. Thay vì sử dụng nguồn
sáng để nhận ra phần lồi lõm của vân tay, cảm biến quét điện dung sẽ dùng dòng điện để
ghi nhận thông tin này, sau đó đối chiếu với dữ liệu chứa trong bộ nhớ để xem người dùng
có phải là người đã đăng kí với hệ thống hay không.
I.SENSOR
2. Android Sensor API

Android cảm biến api cung cấp nhiều lớp và các giao diện. Các lớp học quan trọng và giao diện của
các cảm biến api như sau:

Android cảm biến api cung cấp nhiều lớp và các giao diện. Các lớp học quan trọng và giao
diện của các cảm biến api như sau:
Lớp SensorManager
Lớp android.hardware.SensorManager cung cấp phương pháp:
– Để có được sự cảm biến,
– Để truy cập các cảm biến và danh sách,
– Đăng ký và hủy đăng ký người nghe cảm biến vv
Bạn có thể lấy ví dụ của SensorManager bằng cách gọi phương thức getSystemService() và
đi qua các hằng số SENSOR_SERVICE trong đó.
I.SENSOR

Lớp cảm biến


Lớp android.hardware.Sensor cung cấp phương pháp để có được thông tin về các cảm biến như
cảm biến tên, kiểu cảm biến, độ phân giải cảm biến, kiểu cảm biến vv
Lớp SensorEvent
Cá thể của nó được tạo ra bởi hệ thống. Nó cung cấp thông tin về các cảm biến.
Giao diện SensorEventListener
Nó cung cấp hai phương pháp gọi lại để có được thông tin khi giá trị cảm biến (x, y, z) thay đổi hoặc
thay đổi cảm biến độ chính xác.
– Khoảng trống onAccuracyChanged (sensor cảm biến, int độ chính xác): nó được gọi là độ chính
xác khi cảm biến được thay đổi.
– Khoảng trống onSensorChanged (sự kiện SensorEvent): nó được gọi là khi giá trị cảm biến được
thay đổi.
I.SENSOR

Ứng dụng Sensor trong android


II.ANIMATION

1.Tổng quan:
Animation là các phép biến đổi màu sắc, vị trí, kích thước hay hướng của một đối
tượng trên màn hình theo thời gian. Android cung cấp các API hỗ trợ rất tốt cho việc
áp animation cho các thành phần UI và vẽ đồ họa 2D, 3D.
II.ANIMATION

2.Phân loại:

Layout and View Animation.


Frame-by-Frame Animation
Animation Animation View animation là loại phức tạp nhất
Layout animation dành riêng cho một số
loại view được bố trí một cách cụ thể. Sử trong ba loại animation. View
là quá trình đơn giản, dụng layout animation để thêm các hiệu animation cho phép ta tạo hiệu ứng
động với view tùy ý bằng việc thao
hiển thị một chuỗi các hình ứng trực quan cho mỗi item trong một
tác với ma trận biến đổi.
ảnh liên tiếp ListView hay GridView được hiển thị. Các phương thức preTranslate và
postTranslate sẽ thiết lập một ma trận
trong các khoảng thời gian Mỗi một view trong Android có một ma trước khi scale và sau khi scale.
ngắn để tạo ra hiệu ứng trận biến đổi để ánh xạ view tới màn
hình. Bằng cách thay đổi ma trận đó theo
cuối cùng là đối tượng di một số cách bạn có thể thực hiện phép co,
chuyển hoặc thay đổi. Nó phép quay, tịnh tiến,..
cũng giống như hoạt động Layout animation thuộc kiểu tweening
animation.
của các máy chiếu phim.
II.ANIMATION

Frame-by-Frame Animation

3.1 Tạo Activity

This template is designed to work with very little content, so you shouldn’t write much more
II.ANIMATION

3. Thêm Animation trong Activity:

Việc thực hiện frame-by-frame animation được thông qua một class
trong gói đồ họa có tên AnimationDrawable.
Để sử dụng class AnimationDrawable, đầu tiên chúng ta tạo file
XML định nghĩa danh sách các frame đặt trong /res/drawable.
II.ANIMATION

Khi đã có đối tượng AnimationDrawable, ta có thể sử dụng hai phương thức


start() và stop() để bắt đầu hay kết thúc animation. Hai phương thức
quan trọng khác là setOneShot() và addFrame() (thêm một frame mới sử
dụng một đối
tượng Drawable và thiết lập thời gian hiển thị của nó). Đặt chúng cạnh nhau
trong một đoạn mã hoàn chỉnh như sau:
II.ANIMATION

4. Layout Animation.

-Scale Animation(co): làm cho một view lớn hơn hoặc


nhỏ hơn
-Rotate Animation(Quay):quay một view quanh nột
điểm chốt theo một góc nhất định
-Translate Animation(Tịnh tiến):tịnh tiến view theo
trục dọc hoặc trục ngang
-Alpha Animation: thay đổi độ trong suốt của một
view.
II.ANIMATION

4.1 Các kiểu Tweening Animation cơ bản:

-Scale Animation(co): làm cho một view lớn hơn hoặc nhỏ hơn
-Rotate Animation(Quay):quay một view quanh nột điểm chốt theo
một góc nhất định
-Translate Animation(Tịnh tiến):tịnh tiến view theo trục dọc hoặc trục
ngang
-Alpha Animation: thay đổi độ trong suốt của một view.
II.ANIMATION
4.2. Tạo Activity và ListView

XML Layout định nghĩa ListView.

Đoạn mã cho Layout-Animation Activity


II.ANIMATION

4.2 Các kiểu Tweening Animation cơ bản:

-Scale Animation(co): làm cho một view lớn hơn hoặc nhỏ hơn
-Rotate Animation(Quay):quay một view quanh nột điểm chốt theo
một góc nhất định
-Translate Animation(Tịnh tiến):tịnh tiến view theo trục dọc hoặc trục
ngang
-Alpha Animation: thay đổi độ trong suốt của một view.
II.ANIMATION

4.3 Tạo Animation cho ListView


II.ANIMATION
5. View Animation
View animation là loại phức tạp nhất trong ba loại animation. View animation cho phép ta tạo
hiệu ứng động với view tùy ý bằng việc thao tác với ma trận biến đổi.
Các phương thức preTranslate và postTranslate sẽ thiết lập một ma trận trước khi scale và sau
khi scale.
II.ANIMATION

Gói đồ họa trong Android còn cung cấp cho ta class Camera cho
phép cảm nhận được độ sâu bằng cách chiếu một hình ảnh 2D di
chuyển trong không gian 3D vào một mặt 2D.
Di chuyển một ListView trở lại từ màn hình bằng việc dịch 1300
pixel theo trục z và quay 360 độ quanh trục y.
II.ANIMATION

Ma trận là chìa khóa để biến đổi view và animation. Dưới đây là một số
phương thức chủ yếu trên một ma trận:
-matrix.reset(): reset ma trận về một ma trận đơn vị.

-matrix.setScale(): thay đổi kích thước ma trận

-matrix.setTranslate(): thực hiện thay đổi vị trí để mô phỏng chuyển động.

-matrix.setRotate(): thực hiện việc thay đổi hướng.


II.ANIMATION
Một số Animation trong Android

Di chuyển lên với thời gian 5s


TranslateAnimation translateYAnimation = new
TranslateAnimation(0f, 0f, 0f, -2200f);

translateYAnimation.setDuration(5000l);

translateYAnimation.setRepeatCount(Animation
.INFINITE);

translateYAnimation.setRepeatMode(Animation.
REVERSE);
II.ANIMATION

Di chuyển sang phải


TranslateAnimation translateXAnimation = new
TranslateAnimation(0f, 1000f, 0f, 0f);

translateXAnimation.setDuration(2000l);

translateXAnimation.setRepeatMode(Animation.
RESTART);

translateXAnimation.setRepeatCount(Animation
.INFINITE);
II.ANIMATION
animation nhấp nháy liên tục với thời gian là 350ms
<set xmlns:android="http://schemas.android.com/apk/res/android">

<alpha
android:interpolator="@android:anim/accelerate_interpolator"

android:duration="350"

android:fromAlpha="0.0"

android:toAlpha="1.0"

android:fillBefore="true"

android:fillAfter="true"

android:repeatMode="reverse"

android:repeatCount="infinite"/>

</set>
II.ANIMATION
animation tự quay quanh bản thân 360 độ rồi lại quay quay tiếp

<set xmlns:android="http://schemas.android.com/apk/res/android"

android:fillAfter="true"

android:fillEnabled="true">

<rotate

android:duration="1000"

android:fromDegrees="0"

android:pivotX="50%"

android:pivotY="50%"

android:toDegrees="360"

android:repeatMode="restart"

android:repeatCount="infinite"/>

</set>
II.ANIMATION

cũng có thể là một amintion phóng to thu nhỏ nhấp nhô


<set
xmlns:android="http://schemas.android.com/apk/res/android
" android:toYScale="1.0"
android:interpolator="@android:anim/linear_interpolator"> android:pivotX="50%"
<scale
android:pivotY="50%"
android:interpolator="@android:anim/bounce_interpolator"
android:fillAfter="true"
android:fromXScale="0.0"
android:fillBefore="true"
android:toXScale="1.0"
android:duration="500"
android:fromYScale="0.0"
android:repeatMode="restart"

android:repeatCount="infinite"

/>

</set>
II.ANIMATION

để thực hiện các animation đã tạo ra như trên trong file xml thì
ta chỉ đơn giản là load nó lên và sử dụng

Animation animationRotale = AnimationUtils.loadAnimation(this,


R.anim.rotate);
imageViewRotate.startAnimation(animationRotale);
IV.Demo ứng dụng

next , backward, stop, play,


pause.
Giải đáp thắc
mắc
V.Tổng kết ứng dụng nghe nhạc

Tích hợp
sensor(lắc
nhạc)

Thêm
Animation vào
app

Phát được
nhạc

Chạy được lời


bài hát.
Nhiệm vụ nhóm
Chiến (Nhóm trưởng code)
Nghĩa, Được word SENSOR
Vĩnh, Đô word ANIMATION
Được file thuyết trình
Thanks!

Você também pode gostar