Nguyên lý con quay hồi chuyển

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

Phần 1. Mày mò về con quay hồi chuyển

Con xoay hồi đưa là gì?

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


Nguyên lí hoạt động

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

Bạn đang xem: Nguyên lý 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 điện treo lửng lơ trên không. Đó đó là Tiến động. Bánh xe cộ đạp hình như có kĩ năng chống lại trọng lực! rước ví dụ bên trên bánh xe đạp, treo lên trần bằng 1 gai dây thừng buột tại 1 đầu trục xoay bánh xe, hiện tượng lạ Tiến động xảy ra như sau:Xét riêng bánh xe pháo đạp, bánh xe vận động quanh trục của chính nó với lực F hướng xuống và momen xoắn (torque) hướng ra theo hướng trục quay, vuông góc với lực F. Lực F ảnh hưởng càng lớn, momen đụng lượng (angular momentum) càng phệ theo phương của momen xoắn.

*

Xét cả hệ bánh xe với dây thừng, lực công dụng trong trường hợp này là trọng lực, momen xoắn công dụng lên trục bánh xe tạo thành 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 để đi về trạng thái cân bằng (do ma sát).

*

Xét cả hệ bánh xe và dây thừng, khi ta quay bánh xe bành ảnh hưởng 1 lực nhẹ để tạo momen xoắn theo hướng vuông góc với momen hễ lượng, bánh xe pháo sẽ hoạt độ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 sử dụng kết hợp với gia tốc kế trong các thiết bị di động tiến bộ ngày nay, đặc biệt là điện thoại tối ưu và máy vi tính bảng. Vận tốc kế hỗ trợ việc đo lường gia tốc đườ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ị sẽ nằm ngang hay sẽ đứng, từ đó điều chỉnh khung hình thành cơ chế portrait hoặc landscape và vận dụng vào các trò chơi cần cảm biến chuyển cồn như đua xe pháo hoặc các trò chơi can hệ ảo (Wii).

Xem thêm: Hướng Dẫn Cách Tìm Địa Chỉ Ip Của Máy Tính Windows, Cách Xem Địa Chỉ Ip, Kiểm Tra Ip Của Máy Tính

Vậy trên sao bọn họ phải buộc phải đến bé 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 cù hồi chuyển có thể nhận biết được hướng của thiết bị, hệ thống rất có thể dễ dàng ghi dấn những hoạt động theo cả phương ngang hoặc phương trực tiếp đứng. Vậy đề nghị con xoay hồi gửi đượ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. Rước ví dụ một game hành vi bắn súng, ứng dụng tốc độ kế, bạn cũng có thể để cho nhận thiết bị chạy nhanh bằng cách nghiên vật dụng về phía trước, ngừng lại bằng cách lật lắp thêm về phía sau. Mặc dù nếu không có con tảo hồi chuyển, bạn chơi lại phải áp dụng 4 nút điều hướng chạm màn hình như trên những game hệ console để kiểm soát và điều chỉnh hướng chạy của dấn vật, vấn đề đó hết sức phiền toái, vì đương nhiên phím chạm màn hình không thể nhạy với dễ điều khiển và tinh chỉnh như phím cứng trên tay cầm. Với con quay hồi chuyển, người lập trình rất có thể cho nhân đồ gia dụng đổi hướng di chuyển bằng cách nghiên thiết bị theo hướng mong muốn, rất là đơn giản, và bởi vậy mà người chơi hoàn toàn có thể rảnh tay thực hiện các thao tác như kéo thả, hoặc lựa chọn để bắn.


Ngoài ứng dụng trong những trò nghịch điện tử, nhỏ quay hồi chuyển còn được dùng kết 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. Với sự phối hợp này, chúng ta có chiếc la bàn bao gồm độ nhạy bén và đúng đắn cao, lại không bị phụ thuộc vào vào từ trường xung quanh. Dĩ nhiên trước khi sử dụng, bọn họ phải thực hiện thao tác làm việc gọi là “calibrate” – chỉnh sửa để điều phối cho thiết bị.

*

Trong những thiết bị di động, dĩ nhiên họ không thể tích vừa lòng được nhỏ quay hồi chuyển cơ học tập vào, nắm vào đó, chúng ta dùng thiết bị gọi là MEMS (MicroElectroMechanical System – hệ thống vi cơ năng lượng điện tử), gần giống như như system-on-chip ngày nay, tế bào phỏng thiết yếu xác hoạt động vui chơi của các sản phẩm công nghệ cơ học trong một con chip nhỏ dại gọn duy nhất, với size chỉ vài ba micromet. Con quay MEMS được tìm thấy trên những thiết bị sử dụng điện, tia laze vòng trạng thái rắn, nhỏ quay sợi quang học, và con quay lượng tử khôn cùng nhạy.

*

Phần 2: chỉ dẫn tạo ứng 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 tên ứng dụng

*

Bước 2

Chọn một số loại thiết bị phải build cùng 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, bọn họ sẽ tạo nên một activity mới, thông tin này, chúng ta nên nhằm mặc định và tiếp tục bấm Finish để tạo nên một project trong apk Studio.In hành lang 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 kế tiếp kế vượt class AppCompatActivity với implements SensorEventListener nhằm sử dụng cảm biến 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 ở vào smartphone

mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);

Bước 8

Sau kia override lại cách tiến hành 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à đừng quên đăng ký lắng nghe sự kiện ở cách tiến hành onResume và 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 áp dụng và chúng ta có được 1 áp dụng la bàn 1-1 giản.

Leave a Reply

Your email address will not be published. Required fields are marked *