Accelerometer là gì

     
Một trongnhững thứ cơ mà tôi cảm thấy tuyệt vời và hoàn hảo nhất nhất so với một chiếc smartphone là nó tất cả khả năng cảm ứng chuyển rượu cồn và hướng. Với các thiết bị của Apple bạn cũng có thể sử dụng cảm biến gia tốc(Accelerometers) và cảm ứng con 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 nhau tạo ra một ứng dụng bé dại để khám phá 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 cách đơn giản nhất để có thể hiển thị 12 vía trị. Bọn họ sẽ theo dõi được giá trị tối đa giá trị lúc này của Acceleration với góc chuyển phiên theo chiều trục X, Y, Z.-Sau khi chế tạo ra project mới các bạn vào storyboards.-Ở storyboards các bạn kéo 25 labels vào view. Chúng ta sẽ mang ra 12 labels để hiển thị tài liệu về mỗi trục X, Y, Z. Các bạn bạn biến hóa tên các labels và thêm 1cái nút theo hình dưới đây.Tiếp theo họ sẽ link các đối tượng ngoài view vào trong tệp tin viewcontroller. Những bặt đặt tên khớp ứng với những đôi tượng kế bên viewvà kích hoạt của nút các bạn đặt thương hiệu resetMaxValue.import CoreMotionclass ViewController: UIViewController
IBAction func resetMaxValues(sender: AnyObject)

II) cảm ứng gia tốc(Accelerometer) và cảm biến con cù hồi chuyển(Gyroscope)

Cảm trở nên gia tốc(Accelerometer)

-Cảm biến gia tốc nó được thực hiện để đo gia tốc theo 3 chiều tức là ví dụ bạn lắc sản phẩm công nghệ mạnhthì giá trị các trục của chính nó cao và người lại.-Khi thiết bị của bạn bỏ lên trên bàn với phương diện hình phía lên bên trên thì máy đo gia tốc sẽ có được giá trị là -1G theo chiều Z, cùng nếu mặt smartphone úp xuống thì nó có mức giá trị 1G theo hướng Z.-Nếu bạn giữ thẳng đứng chiếc smartphone thì quý giá sẽ là -1G theo trục Y và xoay ngược lại thì vẫn là 1G. Tương tự khi bạn để màn hình smartphone trước mặt cơ mà xoay 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 và trái lại nếu quay bên phải bạn sẽ nhận quý hiếm là 1G.

Xem thêm: Xin Giấy Xác Nhận Số Cmnd Cũ Ở Đâu, Please Wait

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

-Con cù hồi chuyển cảm biến được góc con quay giữa các trục XYZ. Với accelerometer là 2 cơ chế cơ bản để cảm ứng hành động.

Xem thêm: Bến Xe An Sương Đi Phú Yên Đi Bến Xe An Sương Tp Hồ Chí Minh

III)Viết mã nhằm test

Trong bài xích hướng dẫn này chúng ta sẽ áp dụng CoreMotion. Để thêm bộ vi xử lý core Motion vào vận dụng ở target của ứng dụng ở Linked Frameworks & Libraries các bạn thêm chip core Motion.Bây giờ chúng ta import bộ vi xử lý core Motion vào file ViewController. Tiép theo họ sẽ thêm một trong những biến toàn cục có vẻ bên ngoài double để lưu giá trị max của cảm biến gia tốc và sau đó họ tạo thêm một nằm trong tính có kiểu CMMotionManager.Dưới đó 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
IBAction func resetMaxValues(sender: AnyObject) Tiếp theo bọn họ sẽ khởi chế tạo ra giá trị 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, chúng ta đâu tiên set quý hiếm 0 cho kiểu double. Sau đó họ khởi tạo phát triển thành motionManager, tiếp theo chúng ta cập nhật khoảng thời gian update theo mini giây.Tiếp theo chúng ta gọi cách tiến hành startAccelerometerUpdatesToQueue từ đổi thay motionManager, thủ tục trên vẫn nói mang đến thuộc tính motionManger ban đầu gửi các cảm ứng gia tốc....Tiếp theo chúng ta sẽ gọi các phương thức outputAccelertionData để cập nhật dữ liệu lên giao diện.Dưới đây là code của 2 phươ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ọ sẽ đề xuất là viết mã đến nút resetMaxValues:
Tham gia ngaykhoá học tập lập trình iOS, hình thức học tập linh thiêng hoạt cho mình lựa lựa chọn và sẽ sở hữu mức học tập phí không giống nhau tuỳ theo bạn chọn học Online, Offline hoặc FlipLearning(Kết hòa hợp giữa Online cùng Offline). Ngoài ra chúng ta có thể tham giathực tập toàn thời gian tại vincitysdaimo.comđể rút ngắn thời gian học cùng tăng cơ hội việc làm.