Một trongphần nhiều thiết bị mà lại tôi Cảm Xúc tuyệt vời nhất duy nhất đối với một dòng điện thoại thông minh là nó có chức năng chạm màn hình vận động cùng hướng. Với những đồ vật của Apple bạn cũng có thể sử dụng cảm biến gia tốc(Accelerometers) với cảm biến con tảo hồi chuyển(Gyroscopes) theo 3 trục x, y, z. Trong nội dung bài viết này chúng ta đã cùng cả nhà tạo thành một áp dụng nhỏ để khám phá qua về chúng.Quý khách hàng sẽ xem: Accelerometer là gì

I)Tạo giao diện

-Giao diện của họ đã làm một biện pháp đơn giản dễ dàng tốt nhất nhằm hoàn toàn có thể hiển thị 12 vía trị. Chúng ta vẫn quan sát và theo dõi giá tốt trị tối đa cực hiếm bây chừ của Acceleration và góc chuyển phiên theo chiều trục X, Y, Z.

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

-Sau khi chế tác project bắt đầu các bạn vào storyboards.

-Ở storyboards chúng ta kéo 25 labels vào view. Chúng ta sẽ lấy ra 12 labels nhằm hiển thị tài liệu về từng trục X, Y, Z. Các bạn các bạn chuyển đổi tên các labels với thêm 1mẫu nút theo như hình tiếp sau đây.


*

Tiếp theo chúng ta sẽ liên kết những đối tượng người dùng bên cạnh view vào vào tệp tin viewcontroller. Các bặt đặt tên tương ứng với những đôi tượng xung quanh viewcùng action của nút chúng ta khắc 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 biến gia tốc(Accelerometer) với Cảm đổi thay bé con quay hồi chuyển(Gyroscope)

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

-Cảm trở nên tốc độ nó được sử dụng để đo gia tốc theo 3D Tức là ví dụ chúng ta rung lắc vật dụng mạnhthì giá trị các trục của nó cao và fan lại.

-Lúc máy của người sử dụng đặt lên trên bàn với mặt hình hướng lên phía trên thì đồ vật đo gia tốc sẽ sở hữu được quý hiếm là -1G theo chiều Z, cùng trường hợp mặt điện thoại thông minh úp xuống thì nó có giá trị 1G theo chiều Z.


*

Cảm đổi thay nhỏ quay hồi chuyển(Gyroscope)

-Con tảo hồi đưa cảm ứng được góc cù giữa các trục XYZ. Cùng với accelerometer là 2 mức sử dụng cơ bạn dạng nhằm cảm biến hành động.

Xem thêm: Download Microsoft Project 2010/2013/2016 Full Cracks, Visio Full Crack Sinhvienit

III)Viết mã nhằm test

Trong bài xích hướng dẫn này chúng ta sẽ thực hiện CoreMotion. Để thêm Chip Core Motion vào áp dụng làm việc target của áp dụng sống Linked Frameworks and Libraries chúng ta thêm Chip Core Motion.

Bây giờ đồng hồ chúng ta import Vi xử lý Core Motion vào file ViewController. Tinghiền theo bọn họ vẫn thêm một số thay đổi toàn cục bao gồm hình dạng double để giữ quý hiếm max của cảm ứng tốc độ cùng tiếp đến chúng ta tạo thêm một trực thuộc tính tất cả thứ hạng CMMotionManager.

Dưới đó là đoạn mã của tệp tin 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! IBAction func resetMaxValues(sender: AnyObject) Tiếp theo chúng ta sẽ tạo cực hiếm 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, chúng ta đâu tiên phối quý giá 0 mang lại kiểu double. Sau đó bọn họ khởi chế tạo biến hóa motionManager, tiếp theo sau họ update khoảng thời hạn cập nhật theo mini giây.

Tiếp theo chúng ta điện thoại tư vấn cách làm startAccelerometerUpdatesToQueue trường đoản cú trở nên motionManager, cách thức bên trên sẽ nói mang đến thuộc tính motionManger bước đầu gửi các cảm biến gia tốc....

Tiếp theo bọn họ vẫn Call những cách tiến hành outputAccelertionData để cập nhật dữ liệu lên đồ họa.

Dưới đấy là code của 2 pmùi hương 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 họ đã bắt buộc là viết mã mang lại nút resetMaxValues:


*

Nguồn bài viết

Kchất hóa học thiết kế cầm tay trên aviarus-21.com:

Đểthiết lập MacOSX lên phần cứng không phải Apple tương tác Chuyên Viên mua Hackintosh:

Nguyễn Minc Sơn: 01287065634Huỳnh Minch Sơn: 0936225565Tsi gia ngaykhoá học lập trình iOS, hiệ tượng học hành rất linh hoạt cho chính mình sàng lọc với sẽ có được nút học phí khác biệt tuỳ theo các bạn lựa chọn học Online, Offline hoặc FlipLearning(Kết đúng theo giữa Online cùng Offline). Hình như bạn cũng có thể tsay mê giathực tập toàn thời gian tại aviarus-21.comđể rút ngắn thời hạn học tập cùng tăng thời cơ bài toán làm.Chuyên ổn mục: Hỏi Đáp
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 *