Một trongcác trang bị mà tôi cảm giác tuyệt vời tốt nhất so với một mẫu điện thoại thông minh là nó có tác dụng cảm ứng vận động và hướng. Với các máy của Apple chúng ta cũng có thể áp dụng cảm biến gia tốc(Accelerometers) và cảm ứng nhỏ xoay hồi chuyển(Gyroscopes) theo 3 trục x, y, z. Trong nội dung bài viết này bọn họ sẽ bên nhau tạo thành một áp dụng nhỏ dại để tìm hiểu qua về chúng.

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

I)Tạo giao diện

-Giao diện của bọn họ sẽ làm một bí quyết dễ dàng duy nhất để có thể hiển thị 12 vía trị. Chúng ta đang quan sát và theo dõi giá tốt trị tối đa giá trị hiện giờ của Acceleration với góc chuyển phiên theo hướng trục X, Y, Z.

-Sau lúc tạo thành project bắt đầu các bạn vào storyboards.

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

*

Tiếp theo chúng ta đang links những đối tượng người dùng bên cạnh view vào trong file viewcontroller. Các bặt đặt tên tương xứng với những đôi tượng ngoài viewvới action của nút các bạn đặ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!
IBAction func resetMaxValues(sender: AnyObject)

II) Cảm đổi mới gia tốc(Accelerometer) và Cảm thay đổi con con quay hồi chuyển(Gyroscope)

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

-Cảm biến đổi gia tốc nó được áp dụng nhằm đo vận tốc theo 3D có nghĩa là ví dụ các bạn nhấp lên xuống máy mạnhthì giá trị các trục của chính nó cao cùng bạn lại.

-Lúc trang bị của người tiêu dùng bỏ lên bàn cùng với khía cạnh hình phía lên trên thì thứ đo tốc độ sẽ có cực hiếm là -1G theo hướng Z, với ví như khía cạnh điện thoại cảm ứng úp xuống thì nó có giá trị 1G theo hướng Z.

-Nếu bạn duy trì trực tiếp đứng chiếc điện thoại thì giá trị đã là -1G theo trục Y và luân phiên ngược chở lại thì đã là 1G. Tương từ khi bạn nhằm màn hình hiển thị điện thoại cảm ứng trước mặt mà lại luân chuyển 1 góc 90 độ về bên trái thì các bạn sẽ nhận giá tốt trị -1G theo trục X cùng ngược chở lại nếu quay bên buộc phải các bạn sẽ thừa nhận quý hiếm là 1G.

Xem thêm: Calvin Hiệp Là Ai - Thiết Kế Thời Trang Calvin Klein

*

Cảm biến chuyển bé xoay hồi chuyển(Gyroscope)

-Con tảo hồi gửi cảm biến được góc tảo thân những trục XYZ. Cùng với accelerometer là 2 vẻ ngoài cơ phiên bản nhằm cảm ứng hành động.

III)Viết mã nhằm test

Trong bài bác gợi ý này bọn họ đã thực hiện CoreMotion. Để thêm Vi xử lý Core Motion vào vận dụng ở target của vận dụng làm việc Linked Frameworks and Libraries các bạn thêm bộ vi xử lý Core Motion.

Bây giờ chúng ta import Vi xử lý Core Motion vào tệp tin ViewController. Tiép theo bọn họ đã thêm một số đổi mới toàn thể bao gồm kiểu dáng double để giữ giá trị max của cảm ứng tốc độ và kế tiếp chúng ta tạo thành thêm 1 ở trong tính bao gồm hình trạ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!
IBkích hoạt func resetMaxValues(sender: AnyObject) Tiếp theo bọn họ sẽ tạo quý hiếm cho những 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, bọn họ đâu tiên phối quý giá 0 mang lại hình dáng double. Sau đó chúng ta khởi tạo thành thay đổi motionManager, tiếp theo sau chúng ta cập nhật khoảng thời hạn cập nhật theo mini giây.

Tiếp theo họ điện thoại tư vấn phương thức startAccelerometerUpdatesToQueue tự đổi thay motionManager, cách tiến hành bên trên vẫn nói mang lại thuộc tính motionManger bước đầu gửi các cảm ứng vận tốc....

Tiếp theo họ đã Call các cách làm outputAccelertionData nhằm update tài liệu lên bối cảnh.

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à cuối cùng họ đã phải là viết mã mang lại nút ít resetMaxValues:


IBAction func resetMaxValues(sender: AnyObject) currentMaxAccelX = 0 currentMaxAccelY = 0 currentMaxAccelZ = 0 currentMaxRotX = 0 currentMaxRotY = 0 currentMaxRotZ = 0 Nếu các bạn chạy chúng ta cũng có thể thấy màn hình nhỏng sau đây, nhưng lại chú ý các bạn sẽ bắt buộc chạy ngơi nghỉ đồ vật thật.

Xem thêm: Phạm Hoài Nam Là Ai - Phạm Hoài Nam: Tôi Là Ca Nhân Làm Già Ca Khúc Trẻ

*

Nguồn bài bác viết

Kchất hóa học xây dựng di động cầm tay tại kulturbench.com:

Đểthiết đặt MacOSX lên phần cứng chưa phải Apple liên hệ chuyên gia cài Hackintosh:

Nguyễn Minc Sơn: 01287065634Huỳnh Minh Sơn: 0936225565
Tđê mê gia ngaykhoá học tập lập trình iOS, hình thức học hành linh thiêng hoạt cho mình gạn lọc cùng sẽ có được nấc khoản học phí khác biệt tuỳ theo các bạn chọn học tập Online, Offline hoặc FlipLearning(Kết hòa hợp thân Online với Offline). Ngoài ra chúng ta cũng có thể tsi giathực tập toàn thời gian tại kulturbench.comđể rút ngắn thời hạn học tập với tăng thời cơ việc làm cho.

Chuyên mục: ĐỊNH NGHĨA
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 *