La Bàn V2
1 Giới thiệu
Module “La Bàn V2” là một sản phẩm chất lượng cao của thegioichip.com.vn, được sử dụng trong các ứng dụng đó góc quay, định vị, xác vị số vòng quay,… của đối tượng điều khiển. Thường được ứng dụng cho Robot định vị, ROBOCON,…
2 Chức năng:
- Module “La Bàn V2” có chức năng xác định góc quay của đối tượng một cách rất chính xác và ổn định, với độ phân giải chính xác tới 0.1o (0.017453 radian).
- Tín hiệu trả về là một số nguyên 16bit thông qua giao thức UART cực kỳ dễ sử dụng với tốc độ baud là 115200bps.
- Và đặc biệt trên module có nút nhấn để có thể dễ dàng hiệu chỉnh lại (recalibration) module – chống trôi – tránh sai sót khi đo.
3 Hướng dẫn sử dụng
3.1 Sử dụng La Bàn V2 với Arduino
Kết nối Arduino với “La Bàn V2”
Arduino | La Bàn V2 |
5V | 5V |
GND | 0V |
<chân rx tùy chọn trong file Compass_Softuart_V2.h> | TX |
<chân tx tùy chọn trong file Compass_Softuart_V2.h> | RX |
Các bạn tải thư viện cho La Bàn V2 tại đây:
https://github.com/Truc-TheGioiChip/Compass_Softuart_V2
Sau đó ta mở Arduino để cài thư viện vào
Để xem cách thêm thư viện vào Arduino, các bạn tham khảo tại đây:
http://thegioichip.com.vn/products/huong-dan-them-thu-vien-vao-arduino
Tiếp theo, trên giao diện Arduino, các bạn vào File->Example->Electric_Compass_Example ->example
Giờ ta tiến hành nạp và xem kết quả qua Serial Monitor (mở bằng cách nhấn tổ hợp phím Ctrl+Shift+M)
***Code mẫu cho Arduino không dùng thư viện:
- #define SOFT_RX_PIN 2
- #define SOFT_TX_PIN 3
- #include <SoftwareSerial.h>
- SoftwareSerial electric_compass(SOFT_RX_PIN, SOFT_TX_PIN); //tạo cổng giao tiếp Serial ảo (UART mềm)
- voidsetup() {
- // put your setup code here, to run once:
- begin(9600);
- begin(115200); //đặt baudrate cho Serial ảo (UART mềm)
- write('a'); //đặt lại vị trí 0 cho la bàn
- }
- voidloop() {
- // put your main code here, to run repeatedly:
- print("Compass Value: ");
- write('z'); //gửi lệnh cho la bàn sau đó la bàn sẽ gửi về 2 byte dữ liệu
- delay(5); //chờ dữ liệu về đầy đủ
- uint8_t high_byte = electric_compass.read(); //lấy byte cao
- uint8_t low_byte = electric_compass.read(); //lấy byte thấp
- int16_t value = (high_byte << 8) | low_byte; //kết hợp 2 byte thành một giá trị 16bit
- println(value); //in giá trị ra Serial Monitor (để mở ta dùng tổ hợp phím Ctrl+Shift+M)
- }
3.2 Code mẫu để sử dụng La Bàn V2 với các bộ xử lý khác
- send_uart_char('a');// xóa la bàn về vị trí 0
- delay_ms(10);
- while(1)
- {
- send_uart_char('z');// mã ra lệnh yêu cầu labàn gửi kết quả về là MCU
- byte_h=get_uart3_char();// chờ và lấy Byte Cao
- byte_l=get_uart3_char();// chờ và lấy Byte Thấp
- _value_compass=data_compass=(byte_h<<8)|byte_l;// lấy kết quả của la bàn.
- delay_ms(1);
- }