Một trongđa số sản phẩm công nghệ cơ mà tôi cảm thấy tuyệt vời nhất so với một chiếc điện thoại thông minh là nó có tác dụng chạm màn hình vận động cùng hướng. Với các đồ vật của Apple chúng ta có thể sử dụng cảm biến gia tốc(Accelerometers) cùng cảm biến bé xoay hồi chuyển(Gyroscopes) theo 3 trục x, y, z. Trong bài viết này bọn họ sẽ cùng cả nhà tạo thành một áp dụng bé dại nhằm tò mò qua về chúng.quý khách đã xem: Accelerometer là gì

I)Tạo giao diện

-Giao diện của họ vẫn làm một giải pháp dễ dàng duy nhất để hoàn toàn có thể hiển thị 12 vía trị. Chúng ta sẽ theo dõi và quan sát được giá trị cao nhất cực hiếm hiện giờ của Acceleration và góc luân phiên theo hướng trục X, Y, Z.

Bạn đang xem: Accelerometer là gì

-Sau lúc chế tác project new chúng ta vào storyboards.

-Tại storyboards các bạn kéo 25 labels vào view. Chúng ta đã lấy ra 12 labels để hiển thị dữ liệu về mỗi trục X, Y, Z. Các chúng ta chúng ta biến đổi tên những labels và thêm 1cái nút ít theo hình tiếp sau đây.


*

Tiếp theo bọn họ sẽ liên kết những đối tượng ngoại trừ view vào vào file viewcontroller. Các bặt đánh tên tương xứng với những song tượng kế bên viewcùng action của nút ít chúng ta viết tên resetMaxValue.

import CoreMotionclass ViewController: UIViewController IBOutlet weak var rollLabel: UILabel! IBOutlet weak var pinchLabel: UILabel! IBOutlet weak var yawLabel: UILabel! IBOutlet var accX: UILabel! IBOutlet var accY: UILabel! IBOutlet var accZ: UILabel! IBOutlet var maxAccX: UILabel! IBOutlet var maxAccY: UILabel! IBOutlet var maxAccZ: UILabel! IBOutlet var rotX: UILabel! IBOutlet var rotY: UILabel! IBOutlet var rotZ: UILabel! IBOutlet var maxRotX: UILabel! IBOutlet var maxRotY: UILabel! IBOutlet var maxRotZ: UILabel! IBkích hoạt func resetMaxValues(sender: AnyObject)

II) Cảm vươn lên là gia tốc(Accelerometer) cùng Cảm trở nên nhỏ tảo hồi chuyển(Gyroscope)

Cảm biến gia tốc(Accelerometer)

-Cảm thay đổi vận tốc nó được áp dụng để đo tốc độ theo 3 chiều Có nghĩa là ví dụ bạn rung lắc lắp thêm mạnhthì giá trị các trục của nó cao và fan lại.

-khi sản phẩm của người tiêu dùng để lên trên bàn cùng với khía cạnh hình phía lên trên mặt thì máy đo tốc độ sẽ có được quý hiếm là -1G theo chiều Z, cùng giả dụ phương diện điện thoại cảm ứng thông minh úp xuống thì nó có mức giá trị 1G theo hướng Z.


*

Cảm biến chuyển con tảo hồi chuyển(Gyroscope)

-Con quay hồi chuyển cảm biến được góc xoay thân những trục XYZ. Cùng cùng với accelerometer là 2 vẻ ngoài cơ bạn dạng nhằm cảm ứng hành động.

Xem thêm: Oil Seal Là Gì - Giới Thiệu Về Phớt Chắn Dầu

III)Viết mã nhằm test

Trong bài lý giải này bọn họ sẽ thực hiện CoreMotion. Để thêm Vi xử lý Core Motion vào áp dụng sinh hoạt target của áp dụng nghỉ ngơi Linked Frameworks & Libraries các bạn thêm Core Motion.

Bây giờ đồng hồ chúng ta import Chip Core Motion vào tệp tin ViewController. Tixay theo họ đang thêm một số thay đổi toàn bộ gồm dạng hình double nhằm lưu giữ quý hiếm max của cảm biến gia tốc cùng sau đó chúng ta tạo nên thêm một trực thuộc tính có hình dạng CMMotionManager.

Dưới đấy là đoạn mã của file ViewController:

//Instance Variables var currentMaxAccelX: Double = 0.0 var currentMaxAccelY: Double = 0.0 var currentMaxAccelZ: Double = 0.0 var currentMaxRotX: Double = 0.0 var currentMaxRotY: Double = 0.0 var currentMaxRotZ: Double = 0.0 var movementManager = CMMotionManager() //Outlets IBOutlet var accX: UILabel! IBOutlet var accY: UILabel! IBOutlet var accZ: UILabel! IBOutlet var maxAccX: UILabel! IBOutlet var maxAccY: UILabel! IBOutlet var maxAccZ: UILabel! IBOutlet var rotX: UILabel! IBOutlet var rotY: UILabel! IBOutlet var rotZ: UILabel! IBOutlet var maxRotX: UILabel! IBOutlet var maxRotY: UILabel! IBOutlet var maxRotZ: UILabel! IBkích hoạt func resetMaxValues(sender: AnyObject) Tiếp theo họ sẽ khởi tạo giá trị cho các biến:

override func viewDidLoad() currentMaxAccelX = 0 currentMaxAccelY = 0 currentMaxAccelZ = 0 currentMaxRotX = 0 currentMaxRotY = 0 currentMaxRotZ = 0 movementManager.gyroUpdateInterval = 0.2 movementManager.accelerometerUpdateInterval = 0.2 //Start Recording Data movementManager.startAccelerometerUpdatesToQueue(NSOperationQueue.currentQueue()!) (accelerometerData: CMAccelerometerData?, NSError) -> Void in self.outputAccData(accelerometerData!.acceleration) if(NSError != nil) print("(NSError)") movementManager.startGyroUpdatesToQueue(NSOperationQueue.currentQueue()!, withHandler: (gyroData: CMGyroData?, NSError) -> Void in self.outputRotData(gyroData!.rotationRate) if (NSError != nil) print("(NSError)") ) Trong đoạn mã này, họ đâu tiên mix quý hiếm 0 cho vẻ bên ngoài double. Sau kia bọn họ khởi tạo ra biến hóa motionManager, tiếp sau bọn họ cập nhật khoảng thời gian update theo mini giây.

Tiếp theo họ gọi cách thức startAccelerometerUpdatesToQueue tự trở nên motionManager, thủ tục bên trên vẫn nói đến ở trong tính motionManger bước đầu gửi các cảm ứng vận tốc....

Tiếp theo chúng ta đang gọi những phương thức outputAccelertionData để cập nhật dữ liệu lên bối cảnh.

Xem thêm: Thân Gửi ^^ Svc Là Gì - Thân Gửi ^^ Svc Trên Facebook Là Gì

Dưới đó là code của 2 phương thơm thức:

func outputAccData(acceleration: CMAcceleration) accX?.text = "(acceleration.x).2fg" if fabs(acceleration.x) > fabs(currentMaxAccelX) currentMaxAccelX = acceleration.x accY?.text = "(acceleration.y).2fg" if fabs(acceleration.y) > fabs(currentMaxAccelY) currentMaxAccelY = acceleration.y accZ?.text = "(acceleration.z).2fg" if fabs(acceleration.z) > fabs(currentMaxAccelZ) currentMaxAccelZ = acceleration.z maxAccX?.text = "(currentMaxAccelX).2f" maxAccY?.text = "(currentMaxAccelY).2f" maxAccZ?.text = "(currentMaxAccelZ).2f" func outputRotData(rotation: CMRotationRate) rotX?.text = "(rotation.x).2fr/s" if fabs(rotation.x) > fabs(currentMaxRotX) currentMaxRotX = rotation.x rotY?.text = "(rotation.y).2fr/s" if fabs(rotation.y) > fabs(currentMaxRotY) currentMaxRotY = rotation.y rotZ?.text = "(rotation.z).2fr/s" if fabs(rotation.z) > fabs(currentMaxRotZ) currentMaxRotZ = rotation.z maxRotX?.text = "(currentMaxRotX).2f" maxRotY?.text = "(currentMaxRotY).2f" maxRotZ?.text = "(currentMaxRotZ).2f" Và ở đầu cuối chúng ta vẫn cần là viết mã mang lại nút ít resetMaxValues:


*

Nguồn bài xích viết

Kchất hóa học lập trình di động tại tekkenbasara.mobi:

Đểsetup MacOSX lên phần cứng không phải Apple liên hệ chuyên gia cài Hackintosh:

Nguyễn Minh Sơn: 01287065634Huỳnh Minch Sơn: 0936225565Tmê say gia ngaykhoá học thiết kế iOS, vẻ ngoài học hành rất linh thiêng hoạt cho chính mình lựa chọn với sẽ sở hữu được nút chi phí khóa học khác nhau tuỳ theo bạn lựa chọn học tập Online, Offline hoặc FlipLearning(Kết hòa hợp thân Online và Offline). Trong khi chúng ta có thể tmê say giathực tập toàn thời gian tại tekkenbasara.mobinhằm tinh giảm thời hạn học và tăng cơ hội câu hỏi có tác dụng.Chulặng mục: Hỏi Đáp

Chuyên mục: KHÁI NIỆM LÀ GÌ
Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *