hockel 发表于 2020-12-23 22:00:53

【Mind+ 玩转Maixduino系列1】你好,世界

本帖最后由 hockel 于 2020-12-24 11:04 编辑

# 【Mind+ 玩转Maixduino系列1】你好,世界
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223171458911.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
## 前言
本次课我们就开始学习【mind+ 玩转maixduino系列】的相关教程了,本教程针对有一定开源硬件基础的小伙伴,并且主要偏人工智能方向。对于mind+和arduino操作不太熟悉的,可以先去(https://mc.dfrobot.com.cn/)学习相关教程,再来学习本教程。好了废话不多说了,今天我们就从屏幕开始吧!

## 课前准备
- (https://www.dfrobot.com.cn/goods-2591.html)
- (http://mindplus.cc/download.html)

在课程开始之前,请确保自己是否已经准备好软硬件。

## 硬件连接
**一、LCD液晶屏与maixduino 连接方式如下图:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223175418566.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
①:LCD与Maixduio主控板连接的方式
②:摄像头与Maiduino主控板连接的方式

**二、Mind+与Maixduino连接**
首先我们先打开我们的mind+软件:
- 选择 **“上传模式”**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223181518288.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
- 点击**扩展**选择相应的主控板-->**Maixduino**,
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223181643140.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)

- 后点击左上方的返回按钮出现Maixduino的指令界面
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223181938475.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)

- 点击连接设备,选择Maixduino对应的com口,如果没有连接成功可以【一键安装串口驱动】
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223182203813.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)

- 终端出现下列代码,就证明Maixduino与Mind+ 连接成功了
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122318374746.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
## 屏幕显示相关积木说明
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122319275053.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)

Maixduino的屏幕是2.4 寸 TFT, 默认使用 st7789驱动芯片的 LCD (24pin接口), 分辨率为 320x240。
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223193140800.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)

①:初始化 LCD 屏幕显示![在这里插入图片描述](https://img-blog.csdnimg.cn/202012231936385.png#pic_center)

```python
lcd.init(freq=15000000, color=65535)
参数说明:
freq: LCD (实际上指 SPI 的通讯速率) 的频率
【对于屏幕体质不是很好, 需要降低频率,或者体质很好需要超频:】
color: LCD 初始化的颜色, 可以是 16 位的 RGB565 颜色值,比如 0xFFFF; 或者 RGB888 元组, 比如 (236, 36, 36),
```
②:LCD屏幕显示SD卡图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223194355953.png#pic_center)

```python
lcd.display(image.Image("/sd/pic.jpg"))
显示图像调用的是image函数。
图片路径"/sd/图片名.jpg",这里屏幕显示的图片像素大小是:320*240.格式为:JPG 【bmp/png格式我试了貌似不可以,会报错可能是图片导出格式问题】
```
③:屏幕显示图像
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223195306540.png#pic_center)

```python
lcd.display(image.Image())
LCD屏幕显示图像,display函数中也可以实时显示摄像头图像。
```
④:屏幕显示文字【注意这里的文字不能显示汉字,我写了一个用户库用于显示中文字模】
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223200247432.png#pic_center)

```python
lcd.draw_string(42, 22, str("Mind+"), 0, 65535)

参数1: 文字距离坐标原点的X坐标
参数2: 文字距离坐标原点的Y坐标
参数3:需要显示文字(英文字母、标点符号、阿拉伯数字)
参数4:文字颜色
参数5:背景颜色
```
⑤:LCD屏幕清屏操作
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223200743944.png#pic_center)

```python
lcd.clear()
将液晶屏清空为黑色或者指定的颜色。
color: LCD 初始化的颜色, 可以是 16 位的 RGB565 颜色值,比如 0xFFFF; 或者 RGB888 元组, 比如 (236, 36, 36)
```
⑥:屏幕旋转
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223200917317.png#pic_center)

```python
lcd.rotation(dir)
设置 LCD 屏幕方向
参数
dir: 取值范围 , 从0到3依次顺时针旋转
```
⑦:是否开启屏幕镜像
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223201149714.png#pic_center)

```python
设置 LCD 是否镜面显示
lcd.mirror(invert)
invert: 是否镜面显示, True 或者 False
```
⑧:获取屏幕分辨率(宽度/高度)
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223201346301.png#pic_center)

```python
lcd.width()
返回 LCD 的宽度(水平分辨率)
lcd.height()
返回 LCD 的高度(垂直分辨率)。
```
⑨:颜色设置
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122320163713.png#pic_center)

```python
RGB888 元组, 比如 (236, 36, 36),
```

![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223201650190.png#pic_center)

```python
可以是 16 位的 RGB565 颜色值,比如 0xFFFF
```
## 程序设计
###任务一:初始化屏幕显示
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223202632682.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
**实验效果:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223202738252.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
###任务二:显示SD图片
![在这里插入图片描述](https://img-blog.csdnimg.cn/2020122320290775.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
**实验效果:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223203336254.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
### 任务三:显示文字
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223204041491.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
**实验效果:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223204222762.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
### 任务三:利用显示图片的方式显示英文
这里我为Maixduino写了一个[用户库](https://gitee.com/hockel/chinese-display-for-maixduino),有需要的小伙伴可以加载一下进行操作。
加载库步骤如下:点击“扩展”选择“用户库”
在搜索栏输入:“https://gitee.com/hockel/chinese-display-for-maixduino”
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223215855883.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)

具体用户库相关说明,可以查看这[说明文档](https://gitee.com/hockel/chinese-display-for-maixduino)



![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223210812783.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
**实验效果:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223210847252.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
### 任务四:显示中文
由于目前mind+还不支持显示中文,可以加载我的用户库进行显示。如果已经加载用户的小伙伴们可以不用加载了,如果没有加载的,可以看**任务三**

***中文字模转换具体操作可以浏览[此帮助文档](https://gitee.com/hockel/chinese-display-for-maixduino)***
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223212030361.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)
**实验效果:**
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201223212055646.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3RvbnljYXJzb24=,size_16,color_FFFFFF,t_70#pic_center)

## 总结:
通过本教程的学习,相信大家对Maixduino的LCD屏幕显示操作已经有了一定的了解了。如果不熟悉的同学可以反复阅读哈。更多教程欢迎大家浏览我的个人博客:(http://www.hockel.club/)

hnyzcj 发表于 2020-12-24 06:16:16

本帖最后由 hnyzcj 于 2020-12-24 06:30 编辑

{:5_128:}

Sipeed-大佬鼠 发表于 2020-12-31 11:00:15

这版本号跟打了鸡血一样

hockel 发表于 2021-1-1 04:35:09

Sipeed-大佬鼠 发表于 2020-12-31 11:00
这版本号跟打了鸡血一样

嗯哼( ̄∀ ̄),怎么了⊙_⊙?
页: [1]
查看完整版本: 【Mind+ 玩转Maixduino系列1】你好,世界