Cách làm con quay hồi chuyển

      64

Trong nội dung bài viết lần này, mình vẫn hướng dẫn chúng ta tạo áp dụng la bàn đơn giản dễ dàng trên chính smartphone của bạn nhờ vào cảm biến con xoay hồi chuyển

Phần 1. Tìm hiểu về nhỏ quay hồi chuyển

Con quay hồi chuyển là gì?

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


Nguyên lí hoạt động

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

Bạn đang xem: Cách làm con quay hồi chuyển


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

Phần độc đáo nhất của video đó là lúc bánh xe đạp treo lơ lửng trên không. Đó chính là Tiến động. Bánh xe đạp trong khi có khả năng chống lại trọng lực! lấy ví dụ trên bánh xe pháo đạp, treo lên trần bằng 1 sợi dây thừng buột ở 1 đầu trục xoay bánh xe, hiện tượng kỳ lạ Tiến động xảy ra như sau:Xét riêng biệt bánh xe đạp, bánh xe hoạt động quanh trục của chính nó với lực F phía xuống cùng momen xoắn (torque) hướng 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 rượu cồn lượng (angular momentum) càng to 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 chức năng lên trục bánh xe tạo ra momen rượu cồn lượng vuông góc, khi ta buông tay ra, cả hệ bánh xe đã đánh võng nhằm đi về trạng thái thăng bằng (do ma sát).

*

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

*

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

Con tảo hồi chuyển được dùng kết phù hợp với gia tốc kế trong những thiết bị di động tân tiến ngày nay, nhất là điện thoại thông minh và laptop bảng. Vận tốc kế cung cấp việc giám sát và đo lường gia tốc con đường tính kha khá so với size 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ừ kia điều chỉnh khung người thành chế độ portrait hoặc landscape và áp dụng vào những trò nghịch cần cảm ứng chuyển động như đua xe cộ hoặc những trò chơi liên can ảo (Wii).

Xem thêm: Vì Sao Trong Thời Cổ Đại Người Ai Cập Thảo Về Hình Học Và Tính Được Số Pi?

Vậy trên sao chúng ta phải bắt buộc đến con quay hồi chuyển?

Gia tốc kế chỉ hoàn toàn có thể đo được vận tốc tuyến tính của thiết bị, trong những khi con tảo hồi chuyển có thể nhận biết được vị trí hướng của thiết bị, hệ thống rất có thể dễ dàng ghi dấn những chuyển động theo cả phương ngang hoặc phương trực tiếp đứng. Vậy nên con cù hồi đưa được ứng dụng tương đối nhiều vào các phần mềm cần đến kỹ năng điều hướng, nhất là các game trên các thiết bị di động. Mang ví dụ một game hành vi bắn súng, ứng dụng tốc độ kế, bạn có thể để đến nhận trang bị chạy nhanh bằng phương pháp nghiên sản phẩm công nghệ về phía trước, giới hạn lại bằng cách lật trang bị về phía sau. Tuy vậy nếu không có con con quay hồi chuyển, tín đồ chơi lại phải thực hiện 4 nút điều hướng cảm ứng như trên các game hệ console để điều chỉnh hướng chạy của dìm vật, điều này hết sức phiền toái, vì dĩ nhiên phím cảm ứng không thể nhạy và dễ điều khiển và tinh chỉnh như phím cứng bên trên tay cầm. Với nhỏ quay hồi chuyển, fan lập trình rất có thể cho nhân trang bị đổi hướng 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ậy mà người chơi rất có thể rảnh tay tiến hành các thao tác như kéo thả, hoặc lựa chọn để bắn.


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

*

Trong những thiết bị di động, dĩ nhiên họ không thể tích phù hợp được con quay hồi chuyển cơ học tập vào, ráng vào đó, họ dùng thiết bị gọi là MEMS (MicroElectroMechanical System – khối hệ thống vi cơ điện tử), gần tương tự như system-on-chip ngày nay, mô phỏng chủ yếu xác buổi giao lưu của các trang bị cơ học trong một con chip nhỏ dại gọn duy nhất, với size chỉ vài micromet. Nhỏ quay MEMS được tìm kiếm 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à bé quay lượng tử khôn cùng nhạy.

*

Phần 2: lí giải tạo ứng dụng la bàn

Bước 1

Vào File chọn New rồi chọn New Project, kế tiếp nhập tên ứng dụng

*

Bước 2

Chọn loại thiết bị đề xuất build và phiên bạn dạng SDK của Android

Bước 3

Sau đó lựa chọn Empty Activty

*

Bước 4

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

*

Bước 5

Mở file res/layout/activity_main.xml tiếp đến sửa mã code như sau:

Bước 6

Mở file MainActivity.java tiếp đến kế quá 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, họ khai báo SensorManager để có thể sử dụng cảm ứng ở trong smartphone

mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

Bước 8

Sau kia override lại cách thức onSensorChanged và xúc tiế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 ở cách làm onResume với hủy đăng ký ở cách làm 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à chúng ta có được 1 áp dụng la bàn 1-1 giản.