limale 发表于 2017-5-18 21:17:47

【Curie Nano试用】 A6.LCD显示加速度和陀螺仪数据

本帖最后由 limale 于 2017-5-18 21:19 编辑

      比较喜欢arduino的一个地方就是代码的通用性很强,因为底层的驱动库已经写好了从一个开发平台跨越到另一个开发平台时,代码几乎不需要更改就可以很好的运行。今天的这个例程就是以前fireduino的测试程序小改了一下,Curie Nano自带6轴的加速度和陀螺仪,有时候我们把Curie Nano穿戴起来需要查看实时的数据的时候串口显示显然是不行了,这个时候就需要一块屏幕来显示真是极好的。
LCD与Curie Nano的连线如下表,因为是模拟SPI通信,所以端口也可以自己在头文件中随意定义。


LCDCurie Nano
GNDGND
3.3V3.3V
SCLKD4
MOSID5
RESD6
D/CD7
CSD8

#include "oled.h"
#include "CurieIMU.h"

void setup() {
// put your setup code here, to run once:
Sys_Init();

// initialize device
Serial.println("Initializing IMU device...");
CurieIMU.begin();

// Set the accelerometer range to 2G
CurieIMU.setAccelerometerRange(2);

// Set the accelerometer range to 250 degrees/second
CurieIMU.setGyroRange(250);
}

void loop() {
// put your main code here, to run repeatedly:
Main();

char str = {0};
float ax, ay, az;   //scaled accelerometer values
float gx, gy, gz; //scaled Gyro values

// read accelerometer measurements from device, scaled to the configured range
CurieIMU.readAccelerometerScaled(ax, ay, az);

// read gyro measurements from device, scaled to the configured range
CurieIMU.readGyroScaled(gx, gy, gz);

// display tab-separated accelerometer x/y/z values
Serial.print("a:\t");
Serial.print(ax);
Serial.print("\t");
Serial.print(ay);
Serial.print("\t");
Serial.print(az);
Serial.print("\t");

// display tab-separated gyro x/y/z values
Serial.print("g:\t");
Serial.print(gx);
Serial.print("\t");
Serial.print(gy);
Serial.print("\t");
Serial.print(gz);
Serial.println();
sprintf(str, "ax=%5.2f", ax);
OLED_ShowString(0, 2, str, 8);
sprintf(str, "ay=%5.2f", ay);
OLED_ShowString(0, 3, str, 8);
sprintf(str, "az=%5.2f", az);
OLED_ShowString(0, 4, str, 8);

sprintf(str, "gx=%7.2f", gx);
OLED_ShowString(0, 5, str, 8);
sprintf(str, "gy=%7.2f", gy);
OLED_ShowString(0, 6, str, 8);
sprintf(str, "gz=%7.2f", gz);
OLED_ShowString(0, 7, str, 8);

delay(200);
}工程:
页: [1]
查看完整版本: 【Curie Nano试用】 A6.LCD显示加速度和陀螺仪数据