3回答

0收藏

在OLED上显示Gokit的控制信息

机智云GoKit 机智云GoKit 3303 人阅读 | 3 人回复 | 2015-06-07

本帖最后由 wenyangzeng 于 2015-6-7 21:24 编辑

    为机智云配置了OLED,就应当把硬件资源充分利用起来。直接在机智云主机的屏幕上显示工作状态总比通过USB连接到PC机显示要方便许多,我们要在OLED屏幕上实时显示3色LED和马达的工作参数。
先在IOTKIT软件包中的main.c中的Hal_Init()函数的末尾去掉原来Gokit广告函数,增加以下代码:
        OLED_ShowString(2, 0, "R LED");
        OLED_ShowString(2, 16, "G LED");        
        OLED_ShowString(2, 32, "B LED");        
        OLED_ShowString(2, 48, "MOTOR");        
接着在Protocol.c里增加一个新函数:
uint8_t OLED_Buf[4];
void OLED_Disp(uint8_t x,uint8_t y,int16_t Data)
{
        uint8_t *ptr;
        ptr=OLED_Buf;
        if(y==48)
        {Data=Data/0x100-5;
                if(Data<0)
                {
                OLED_Buf[0]='-';
                Data=Data*(-1);
                }
        }
        else
            OLED_Buf[0]='  ';

        OLED_Buf[1]=Data/100+0x30;
        OLED_Buf[2]=Data%100/10+0x30;
        OLED_Buf[3]=Data%10+0x30;
        OLED_ShowString(x,y,ptr++);

}
      调试中发现:电机的转速值是从0到0xa00,步长值为0x100,从0x00到0x400是反向转动,0x500停止,0x600到0xa00为正向转动。故以上函数中需对电机数据另行处理。

    然后,我们在Protocol.c的Pro_D2W_ReportDevStatusHandle()函数的末尾增加:
        OLED_Disp(50,0,Device_WirteStruct.LED_R);
        OLED_Disp(50,16,Device_WirteStruct.LED_G);
        OLED_Disp(50,32,Device_WirteStruct.LED_B);
        OLED_Disp(50,48,Device_WirteStruct.Motor);

编译运行后终于可以让OLED发挥作用了。
手机要遥控Gokit, 无法拍摄视频,上几张图:
感觉当电机转动时wifi非常容易掉线,不知何故?






照片 044.jpg (39.37 KB, 下载次数: 37)

照片 044.jpg

照片 040.jpg (26.29 KB, 下载次数: 41)

照片 040.jpg

照片 045.jpg (73.13 KB, 下载次数: 31)

照片 045.jpg

照片 046.jpg (47.29 KB, 下载次数: 43)

照片 046.jpg

照片 047.jpg (49.03 KB, 下载次数: 38)

照片 047.jpg
分享到:
回复

使用道具 举报

回答|共 3 个

倒序浏览

沙发

outstanding1573

发表于 2015-6-7 21:16:53 | 只看该作者

顶一下    欢迎发帖
[原创] 班门弄斧——个人原创基地
https://www.cirmall.com/bbs/thread-41384-1-1.html
板凳

杉树林-罗

发表于 2015-12-14 19:25:01 | 只看该作者

请教一下楼主的OLED屏是什么型号的?我用微雪的试了好几次都不成功。。。
地板

wenyangzeng

发表于 2015-12-15 07:55:51 | 只看该作者

杉树林-罗 发表于 2015-12-14 19:25
请教一下楼主的OLED屏是什么型号的?我用微雪的试了好几次都不成功。。。 ...

https://item.taobao.com/item.htm?spm=a1z09.2.0.0.2ZO2t9&id=43555419286&_u=fpa4oqtf7bf
这片OLED直接用演示代码就很容易使用,不用调试就能成功。
您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

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