查看: 3828|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2024-3-3 21:23
  • 签到天数: 2449 天

    连续签到: 1 天

    [LV.Master]伴坛终老

    发表于 2017-5-18 21:17:47 | 显示全部楼层 |阅读模式
    分享到:
    本帖最后由 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

    IMG_20170518_211331.jpg
    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)
    回复

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-3-29 04:12 , Processed in 0.115081 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.