回答

收藏

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

DFROBOT DFROBOT 4745 人阅读 | 0 人回复 | 2017-05-18

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

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

LCD
Curie Nano
GND
GND
3.3V
3.3V
SCLK
D4
MOSI
D5
RES
D6
D/C
D7
CS
D8

  1. #include "oled.h"
  2. #include "CurieIMU.h"

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

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

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

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

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

  17.   char str[20] = {0};
  18.   float ax, ay, az;   //scaled accelerometer values
  19.   float gx, gy, gz; //scaled Gyro values

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

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

  24.   // display tab-separated accelerometer x/y/z values
  25.   Serial.print("a:\t");
  26.   Serial.print(ax);
  27.   Serial.print("\t");
  28.   Serial.print(ay);
  29.   Serial.print("\t");
  30.   Serial.print(az);
  31.   Serial.print("\t");

  32.   // display tab-separated gyro x/y/z values
  33.   Serial.print("g:\t");
  34.   Serial.print(gx);
  35.   Serial.print("\t");
  36.   Serial.print(gy);
  37.   Serial.print("\t");
  38.   Serial.print(gz);
  39.   Serial.println();
  40.   sprintf(str, "ax=%5.2f", ax);
  41.   OLED_ShowString(0, 2, str, 8);
  42.   sprintf(str, "ay=%5.2f", ay);
  43.   OLED_ShowString(0, 3, str, 8);
  44.   sprintf(str, "az=%5.2f", az);
  45.   OLED_ShowString(0, 4, str, 8);

  46.   sprintf(str, "gx=%7.2f", gx);
  47.   OLED_ShowString(0, 5, str, 8);
  48.   sprintf(str, "gy=%7.2f", gy);
  49.   OLED_ShowString(0, 6, str, 8);
  50.   sprintf(str, "gz=%7.2f", gz);
  51.   OLED_ShowString(0, 7, str, 8);

  52.   delay(200);
  53. }
复制代码
工程:
oled_display.zip (6.92 KB, 下载次数: 4)

关注下面的标签,发现更多相似文章
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条