Cảm biến đo vận tốc góc IGT

Một phần của tài liệu Xây dựng mô hình và thiết kế bộ điều khiển cân bằng robot hai bánh sử dụng vi điều khiển PIC (Trang 55 - 60)

m.g.h γ =I.α Hay

3.3.2Cảm biến đo vận tốc góc IGT

ITG3200 là IC đầu tiên trên thế giới sử dụng công nghệ con quay hồi chuyển MEMS để đo vận tốc góc (gyro ) trên 3 trục x, y, z axis với độ nhạy cao.

- Bộ chuyển đổi ADC với độ phân giải cao 16 bit. - Giao tiếp I2C .

- Điện áp hoạt động từ 1.2 – 3.6 V.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 3. 12 Cấu trúc bên trong ITG3200

Bảng 3. 8 Chức năng các chân ITG3200

IGT3200 sử dụng con quay hồi chuyển MEMS để đo vận tốc góc và bộ ADC16 bit. Nó phát hiện các góc quay về các trục X(roll), Y(pitch), Z(yaw). Ta có thể cài đặt độ phân dải cho cảm biến lên tới độ/s với tốc độ lấy mẫu cực đại

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

cho ADC lên tới 8000 mẫu/s và có thể xuống thấp tới 3,9 mẫu/s. Vì vậy khi dùng bộ lọc thông thấp ta cần lựa chọn tần số cắt phù hợp.

IGT3200 giao tiếp với bộ vi xử lý ngoài thông qua giao thức I2C và trong đó nó đóng vai trò là slave. Điện áp logic giao tiếp với vi xử lý được cài đặt tại chân VLOGIC. Địa chỉ slave trong giao tiếp I2C được cài đặt tại chân 9(AD0). Các thanh ghi chứa dữ liệu đo là các thanh ghi read-only chỉ cho phép đọc thông qua truyền thông nối tiếp. Các thanh ghi này có thể được đọc bất kì lúc nào, tuy nhiên ngắt cũng có thể được sử dụng khi cần update giá trị đo mới.

Giao thức truyền thông: IGT3200 hỗ trợ giao thức truyền thông I2C. Các thanh ghi và bộ nhớ có thể truy cập với tần số lên đến 400Khz.

Các chân SCL và SDA phải được treo điện trở lên VDD. Địa chỉ của nó là .110100X gồm 7 bit. X được quy định tại chân 9. Như vậy trong giao tiếp I2C ta có thể sử dụng 2 IGT3200 trên cùng một đường truyền mà không trùng địa chỉ. Địa chỉ của thiết bị là 1101000 khi chân 9 được đưa xuống mức thấp, và là 1101001 khi chân 9 được đưa lên mức cao. Địa chỉ này được lưu trong thanh ghi ở vị trí 0 (thanh ghi WHO_AM_I).

Cấu trúc khung truyền:

Bit start và stop: Quá trình truyền được bắt đầu khi master xuất xung START và kết thúc bằng xung STOP. Xung START được đặt khi SDA chuyển từ cao xuống thấp khi SCL ở mức cao. Và bit STOP được nhận diện khi SDA chuyển từ mức thấp lên cao trong khi SCL ở mức cao.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 3. 1 Định dạng bit Start và Stop trong truyền thông I2C

Khung truyền dữ liệu: dữ liệu dạng 8 bit và có bit kiểm tra ACK. Số lượng byte truyền trên một lần truyền là không giới hạn. Theo sau mỗi byte truyền là xung ACK. Trong quá trình nhận ACK được tạo ra bởi Master. ACK được nhận dạng khi SDA được kéo xuống mức thấp trước khi xung clock thứ 9 được tạo ra.

Hình 3. 2 Định dạng bit ACK

Quá trình được bắt đầu với bit START, tiếp sau đó là 7 bit địa chỉ của SLAVE và 1 bit số 8 là bit READ\WRITE. Bit READ\WRITE chỉ ra rằng Master có thể đọc dữ liệu hoặc ghi lên SLAVE. Sau đó chờ xung xác nhận ACK từ SLAVE trả về trên đường SDA. Mỗi một byte được truyền đi đều được theo sau bởi một xung xác nhận ACK. Xung này được tao ra khi khi SLAVE kéo chân SDA xuống mức thấp khi SCL vẫn còn ở mức cao. Đường truyền được kết thúc bằng bit STOP, tuy nhiên trong nhiều trường hợp ta cần lặp lại đường truyền mà không cần tạo ra bit STOP.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Trong trường hợp này ta chỉ cần tạo ra một khoảng thời gian dừng trước khi quá trình truyền được tiếp tục. Để tạo ra khoảng thời gian nghỉ đường SDA được chuyển mức từ thấp lên cao trong khi SCL ở mức thấp. Tất cả các bit đều được lấy mẫu và thay thế khi SCL ở mức thấp ngoại trừ 2 bit START và STOP.

Hình 3. 3 Cấu trúc khung truyền trong I2C

Để ghi lên thanh ghi trong IGT3200 Master phải truyền đi bit START sau đó là 7 bit địa chỉ thiết bị và bit WRITE (0). IGT3200 sẽ truyền trả lại xung ACK, sau đó Master sẽ đẩy dữ liệu lên bus sau đó là xung STOP. Để ghi nhiều byte sau xung ACK Master phải tiếp tục truyền dữ liệu thay vì truyền xung STOP. Trong trường hợp này IGT3200 tự động tăng địa chỉ thanh ghi và nhận dữ liệu vào các thanh ghi thích hợp.

Để đọc dữ liệu từ các thanh ghi trong IGT3200 Master cũng truyền đi bit START sau đó là 7 bit địa chỉ của thiết bị cần đọc và bit WRITE (0) sau đó chờ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

xung xác nhận ACK từ SLAVE. Sau khi nhận được xung ACK Master truyền tiếp 7 bit địa chỉ thanh ghi cần đọc và bit READ (1). Sau đó SLAVE trả về xung ACK và dữ liệu và kết thúc bằng xung không xác nhận (NACK). Để đọc nhiều thanh ghi Master tạo ra các xung ACK thay vì các xung NACK. Trong trường hợp này IGT3200 tự động tăng địa chỉ thanh ghi và trả lại dữ liệu tương ứng.

Một phần của tài liệu Xây dựng mô hình và thiết kế bộ điều khiển cân bằng robot hai bánh sử dụng vi điều khiển PIC (Trang 55 - 60)