两个新感知器官(十二)

    胖胖狗只有一个陀螺仪感知器官,代码还有错误,费了半天劲才修复好。最近给胖胖狗找了两个新器官,第一个是胖脸表情屏幕(1.3寸 4针液晶屏128*64点阵,SH1106驱动 I2C接口 OLED屏):

   这玩意官方没有带micropython代码,花了几天时间把兼容代码写好了。不过要注意几个问题,一个是分辨率:128*64,一个是驱动SH1106,我也支持了SSD1306.市面上要买就买这两种驱动的。其他的我就没法保证了。来看看代码部分:

 根据自己的屏幕的sda,sck引脚对应的ESP32上的IO口,填写这俩值。不过我都放到了setcfg.py文件里统一管理了。

屏幕类型根据自己买的sh1106或者ssd1306写。我这里是sh1106.有两个关键函数:

这俩啥区别呢?看下面的text_direct,它一次完成了清屏、绘制、显示的过程。也就是屏幕一次就显示这么多内容,调用第二次,就重新清屏再来。而第一个text就要参照text_direct一样来实现。但是他可以多次调用text,然后一次性显示,实现多行文字,或者表情叠加等混合显示。只要在fill和show之间插入多次就可以。 然后是脸谱文件:

他是个c语言的阵列数组,标识屏幕某个点的状态。有屏幕官网生成导出。可以参照这个格式,简单的把c转换成micropython格式,最后合并到一个数组里调用就可以啦。

我的源代码里都弄好了,有需要的自己参照修改就可以。有一个特别的东西,就是中文显示问题,前面将的驱动带的text是英文和数字显示,image是图片显示,但中文就没这么简单了。我找到了一份解决方案:,这个我融合到了OLED里面,直接调用我的OLED中的text就可以自动识别中文显示。至于原理可以百度ufont方案吧。用起来就比较简单了,

先初始化,然后调用函数就可以了。只要i2c配置正确,一般就没有问题。

再来看第二个感知器官,语音识别。采用的是SU-03T:

这个是芯片,如果要直接能用,可以买现成的模块就好。

怎么接我就不介绍了,基本上照着板子的引脚对应上esp32的IO口和电源口,就可以连接。一点电路基础都没有的,我说了也搞不定的。他的代码也是费了好大劲才弄好。主要是在yuyin.py中:

它是通过串口方式通讯,所以要配置好rx和tx引脚。

串口用中断方式响应,当然也可以用轮询方式,只不过就没那么实时反馈了。读取的数据,传递到handle_data中,data就是接收的内容,实际上就是su-03t上定义的各种指令。根据这些中文指令,来判断做什么事情:

比如我的例子代码中,根据响应的指令来做表情切换,用到了之前的OLED模块。通过语言指令,就可以实现表情包。这里我还没有和动作绑定,只是做了个模型。照着参考,添加逻辑,就可以命令胖胖狗做动作了。

看,这就是那个胖狗样,哈哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值