Tự làm con quay hồi chuyển

Trong bài viết lần này, mình vẫn hướng dẫn các bạn tạo ứng dụng la bàn dễ dàng và đơn giản trên thiết yếu smartphone của bạn nhờ vào cảm ứng con quay hồi chuyển

Phần 1. Khám phá về bé quay hồi chuyển

Con con quay hồi gửi là gì?

Nhiều bạn sẽ phải bối rối khi lần đầu thấy được con tảo hồi chuyển, bởi vì nó trong khi chuyển động theo phong cách chống lại trọng lực. Tính chất đặc trưng này của con quay hồi đưa giúp nó trở đề nghị rất đặc trưng trong thực tế, từ số đông thứ dễ dàng và đơn giản như xe pháo đạp cho tới những thứ phức hợp như khối hệ thống dẫn đường tiên tiến trên tàu nhỏ thoi đều vận dụng đặc tính của bé quay hồi chuyển. Theo khái niệm vật lí, con quay hồi chuyển là một trong thiết bị dùng để làm đo đạc hoặc duy trì phương hướng, dựa trên các nguyên tắc bảo toàn tế bào men rượu cồn lượng. Thực chất, con quay cơ học là 1 trong những bánh xe xuất xắc đĩa cù với những trục quay tự do thoải mái theo đông đảo hướng. Phương phía này đổi khác nhiều giỏi ít tùy thuộc vào tế bào men xoắn bên ngoài hơn là tương quan đến con quay có vận tốc cao nhưng không đề xuất mô men rượu cồn lượng lớn. Bởi mô men xoắn được tối thiểu hóa vày việc gắn kết thiết bị trong những khớp vạn năng (gimbal), hướng của nó bảo trì gần như cố định bất nói so với ngẫu nhiên chuyển hễ nào của thứ thể mà nó tựa lên.”


Nguyên lí hoạt động

Con tảo hồi chuyển đặc thù bởi một số ứng xử như tiến hễ và chương động. Nếu như khách hàng đã từng đùa đồ chơi áp dụng con xoay hồi chuyển, như Yo-yo, con quay,… chẳng hạn, cứng cáp hẳn bạn sẽ hứng thú với câu hỏi nó có thể giữ thăng bởi trên dây hoặc bên trên ngón tay, kháng lại chuyển động quanh trục quay một phương pháp rất lạ, tuy vậy hiệu ứng quan trọng nhất trên con quay hồi chuyển đó là Tiến động. Mời chúng ta xem video video clip dưới phía trên để dễ hình dung về Tiến động nếu như bạn chưa từng được hội chứng kiến.

Bạn đang xem: Tự làm con quay hồi chuyển


yotube:https://www.youtube.com/watch?time_continue=228&v=ty9QSiVC2g0

Phần thú vị nhất của video chính là lúc bánh xe đạp treo lửng lơ trên không. Đó đó là Tiến động. Bánh xe pháo đạp bên cạnh đó có kĩ năng chống lại trọng lực! lấy ví dụ bên trên bánh xe cộ đạp, treo lên trần bằng 1 tua dây thừng buột tại một đầu trục con quay bánh xe, hiện tượng Tiến động xẩy ra như sau:Xét riêng bánh xe cộ đạp, bánh xe chuyển động quanh trục của chính nó với lực F hướng xuống và momen xoắn (torque) phía ra theo phía trục quay, vuông góc cùng với lực F. Lực F ảnh hưởng tác động càng lớn, momen hễ lượng (angular momentum) càng béo theo phương của momen xoắn.

*

Xét cả hệ bánh xe cùng dây thừng, lực chức năng trong trường vừa lòng này là trọng lực, momen xoắn công dụng lên trục bánh xe tạo nên momen hễ lượng vuông góc, khi ta buông tay ra, cả hệ bánh xe vẫn đánh võng để đi về trạng thái cân bằng (do ma sát).

*

Xét cả hệ bánh xe với dây thừng, lúc ta tảo bánh xe pháo bành tác động 1 lực vơi để tạo nên momen xoắn theo hướng vuông góc cùng với momen cồn lượng, bánh xe pháo sẽ vận động như lửng lơ trên không.

*

Ứng dụng vào trong số thiết bị di động:

Con xoay hồi chuyển được dùng kết hợp với gia tốc kế trong những thiết bị di động hiện đại ngày nay, đặc biệt là điện thoại logic và máy tính bảng. Vận tốc kế cung ứng việc thống kê giám sát gia tốc đường tính tương đối so với form tham chiếu – hệ qui chiếu (frame of reference). Nó dùng để làm nhận biết thiết bị vẫn nằm ngang hay vẫn đứng, từ đó điều chỉnh cơ thể thành chế độ portrait hoặc landscape và áp dụng vào các trò chơi cần cảm ứng chuyển rượu cồn như đua xe pháo hoặc những trò chơi thúc đẩy ảo (Wii).

Xem thêm: Khôi Phục Dữ Liệu Từ Icloud, Phục Hồi Dữ Liệu Icloud Trên Iphone, Ipad

Vậy tại sao họ phải cần đến con quay hồi chuyển?

Gia tốc kế chỉ có thể đo được vận tốc tuyến tính của thiết bị, trong những lúc con con quay hồi chuyển hoàn toàn có thể nhận biết được hướng của thiết bị, hệ thống có thể dễ dàng ghi dìm những chuyển động theo cả phương ngang hoặc phương thẳng đứng. Vậy nên con con quay hồi chuyển được ứng dụng tương đối nhiều vào các phần mềm cần đến năng lực điều hướng, nhất là các game trên những thiết bị di động. Lấy ví dụ một game hành vi bắn súng, ứng dụng tốc độ kế, bạn có thể để mang đến nhận vật dụng chạy nhanh bằng phương pháp nghiên thứ về phía trước, ngừng lại bằng phương pháp lật sản phẩm về phía sau. Mặc dù nếu không tồn tại con quay hồi chuyển, fan chơi lại phải sử dụng 4 nút điều hướng chạm màn hình như trên những game hệ console để điều chỉnh hướng chạy của nhấn vật, điều đó hết sức phiền toái, vì đương nhiên phím cảm ứng không thể nhạy và dễ tinh chỉnh và điều khiển như phím cứng trên tay cầm. Với con quay hồi chuyển, bạn lập trình có thể cho nhân thứ đổi phía di chuyển bằng cách nghiên thiết bị theo phía mong muốn, rất là đơn giản, và bởi vì vậy mà bạn chơi có thể rảnh tay thực hiện các thao tác làm việc như kéo thả, hoặc lựa chọn để bắn.


Ngoài ứng dụng trong các trò đùa điện tử, nhỏ quay hồi chuyển còn được dùng kết phù hợp với gia tốc kế vào la bàn điện tử ở những thiết bị di động. Cùng với sự phối hợp này, chúng ta có cái la bàn tất cả độ tinh tế và chính xác cao, lại không bị phụ thuộc vào vào từ trường xung quanh. Tất nhiên trước khi sử dụng, bọn họ phải thực hiện làm việc gọi là “calibrate” – căn chỉnh để điều hướng cho thiết bị.

*

Trong các thiết bị di động, dĩ nhiên bọn họ không thể tích vừa lòng được con quay hồi đưa cơ học vào, cố vào đó, chúng ta dùng thiết bị hotline là MEMS (MicroElectroMechanical System – hệ thống vi cơ điện tử), gần giống như như system-on-chip ngày nay, tế bào phỏng chủ yếu xác buổi giao lưu của các sản phẩm công nghệ cơ học trong một con chip bé dại gọn duy nhất, với size chỉ vài ba micromet. Nhỏ quay MEMS được search thấy trên các thiết bị thực hiện điện, laser vòng tinh thần rắn, con quay sợi quang học, và con quay lượng tử rất nhạy.

*

Phần 2: chỉ dẫn tạo vận dụng la bàn

Bước 1

Vào File chọn New rồi lựa chọn New Project, sau đó nhập thương hiệu ứng dụng

*

Bước 2

Chọn các loại thiết bị yêu cầu build và phiên phiên bản SDK của Android

Bước 3

Sau đó chọn Empty Activty

*

Bước 4

Trong cửa sổ mới, bọn họ sẽ tạo nên một activity mới, tin tức này, họ nên nhằm mặc định và liên tục bấm Finish để tạo thành một project trong apk Studio.In hành lang cửa số mới

*

Bước 5

Mở tệp tin res/layout/activity_main.xml kế tiếp sửa mã code như sau:

Bước 6

Mở tệp tin MainActivity.java tiếp đến kế vượt class AppCompatActivity với implements SensorEventListener để sử dụng cảm ứng hồi quy

public class MainActivity extends AppCompatActivity implements SensorEventListener

Bước 7

Ở hàm onCreate, bọn họ khai báo SensorManager để rất có thể sử dụng cảm biến ở trong smartphone

mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

Bước 8

Sau đó override lại cách làm onSensorChanged và thực hiện đoạn mã sau:


Overridepublic void onSensorChanged(SensorEvent sensorEvent) final float alpha = 0.97f; synchronized (this) if (sensorEvent.sensor.getType() == Sensor.TYPE_ACCELEROMETER) mGravity<0> = alpha * mGravity<0> + (1 - alpha) * sensorEvent.values<0>; mGravity<1> = alpha * mGravity<1> + (1 - alpha) * sensorEvent.values<1>; mGravity<2> = alpha * mGravity<2> + (1 - alpha) * sensorEvent.values<2>; if (sensorEvent.sensor.getType() == Sensor.TYPE_MAGNETIC_FIELD) mGeomagnetic<0> = alpha * mGeomagnetic<0> + (1 - alpha) * sensorEvent.values<0>; mGeomagnetic<1> = alpha * mGeomagnetic<1> + (1 - alpha) * sensorEvent.values<1>; mGeomagnetic<2> = alpha * mGeomagnetic<2> + (1 - alpha) * sensorEvent.values<2>; float R<> = new float<9>; float I<> = new float<9>; boolean success = SensorManager.getRotationMatrix(R, I, mGravity, mGeomagnetic); if (success) float orientation<> = new float<3>; SensorManager.getOrientation(R, orientation); azimuth = (float) Math.toDegrees(orientation<0>); azimuth = (azimuth + 360) % 360; Animation anim = new RotateAnimation(-currectAzimuth, -azimuth, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); currectAzimuth = azimuth; anim.setDuration(500); anim.setRepeatCount(0); anim.setFillAfter(true); imageView.startAnimation(anim);

Bước 9

Và hãy nhớ là đăng cam kết lắng nghe sự kiện ở phương thức onResume cùng hủy đk ở thủ tục onPause


Overrideprotected void onResume() super.onResume(); mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_MAGNETIC_FIELD), SensorManager.SENSOR_DELAY_GAME); mSensorManager.registerListener(this, mSensorManager.getDefaultSensor(Sensor.TYPE_ACCELEROMETER), SensorManager.SENSOR_DELAY_GAME);
Overrideprotected void onPause() super.onPause(); mSensorManager.unregisterListener(this);

Bước 10

Build vận dụng và họ có đc 1 vận dụng la bàn đơn giản.