赞
踩
齐护方位传感器是一款集成了三轴磁传感器芯片的方位传感器模块。适用于无人机、机器人、移动和个人手持设备中的罗盘(指南针)、导航和游戏等高精度应用。模块可以感应XYZ平面角度外,还可实现1°至2°的水平面角度罗盘航向精度(平面指向角度),采用i2c串行总线接口。
连接: 所有主控都要使用I2C管脚连接模块!
角度对应关系如下图所示,以北面为0点,顺时针为正,逆时针为负。
注:在Micropython下编程时角度是从0-360度的,没有负角度!
例程功能说明:打印当前方位角,当方位角小于50时,13号IO的灯亮起,否则关灯,延时0.25秒,防传感器刷新过快看不清数据或传感器卡死。
齐护编程软件程序如下图所示:
Mixly软件编程程序如下图所示:
Arduino代码编程如下:
#include <Arduino.h> #include <QH_Compass.h> QH_Compass compass; void setup() { compass.init(); Serial.begin(9600); pinMode(13, OUTPUT); } void loop() { compass.read(); Serial.println(compass.getAzimuth()); if (compass.getAzimuth() < 50) { digitalWrite(13, 1); } else{ digitalWrite(13, 0); } delay(0.25 * 1000); }
Micropython编程如下:
这里把控制IO变为IO2,且在Micropython下编程时方向角只有0-360度数据,没有负值!
Micropython代码编程如下:
import machine, QH_Compass, time
from machine import Pin
compass=QH_Compass.QH_Compass(sda=21,scl=22)
pin2 = Pin(2, Pin.OUT)
while True:
compass.read();
print(compass.heading())
if compass.heading() < 50:
pin2.value(0)
else:
pin2.value(1)
time.sleep_ms(int(0.25 * 1000))
将方位角转换为0~15的方位,如下图所示从0(360°)位置开始每22.5度代表一个方向,如则返回0为北面,1为北东北,2为东北,同理类推。
QH_FW_Img00
齐护编程Scratch程序如下图所示:
Mixly软件程序如下图所示:
Arduino代码编程如下:
#include <Arduino.h>
#include <QH_Compass.h>
QH_Compass compass;
void setup() {
compass.init();
Serial.begin(9600);
}
void loop() {
compass.read();
Serial.println(compass.getBearing(compass.getAzimuth()));
delay(0.25 * 1000);
}
获取传感器XYZ平面的原始值,类似于陀螺仪的角度,箭头表示在正常测量配置中产生正输出读数的磁场方向。
齐护编程Scratch软件程序如下图所示:
Mixly软件程序如下图所示:
Arduino代码编程如下:
#include <Arduino.h>
#include <QH_Compass.h>
QH_Compass compass;
void setup() {
compass.init();
Serial.begin(9600);
}
void loop() {
compass.read();
Serial.println((String((String((String("X:") + String(compass.getX()))) + String((String(" Y:") + String(compass.getX()))))) + String((String(" Z:") + String(compass.getX())))));
delay(0.25 * 1000);
}
Micropython编程如下:
Micropython代码编程如下:
import machine, QH_Compass, time
compass=QH_Compass.QH_Compass(sda=21,scl=22)
while True:
compass.read();
print((str('X:') + str(str(compass.read_rawXYZ(0)) + str(str('Y:') + str(str(compass.read_rawXYZ(1)) + str(str('Z:') + str(compass.read_rawXYZ(2))))))))
time.sleep_ms(int(0.25 * 1000))
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。