智能手表-贪吃蛇详解(有源码,有原理图,有模块说明书)-创新互联
错误总结(没有什么各位有用的东西)跳转
关于嵌入式3/4作品展示(比较具体的描述了开机页面,灯控制页面的实现)跳转
心率和血压的测量稍微解释一下,有一个单个电源控制两个模块,两个模块相互影响怎么解决的一个问题。跳转
视频跳转
视频地址:
https://www.bilibili.com/video/BV1u44y1S7h5/?spm_id_from=333.999.0.0&vd_source=80dd998adf6419478f40a8a950edd07e
文章目录- 系列文章目录
- 作品展示链接(B站平台内播放)
- 前言
- 一、OLED屏幕的显示
- 二、关于链表的相关知识
- 1.引入库
- 2.读入数据
- 总结
前言
关于用单片机实现贪吃蛇,首先的第一个难点就是在屏幕上点的绘画。换句话来说就是对屏幕的应用得到达一定的水平。
第二个难点就是关于链表的理解。我使用C语言的方式写的,但是我熟悉链表这个词是在C++的容器里面。
仅此而已。所以说是一个比较初级的项目了。
源码在本文最下面。不想看我哔哔赖赖的直接怼代码去
一、OLED屏幕的显示 对OLED的屏幕理解,就我目前的水平分一下理解等级
按数字越高理解越深的规则来说。1就是能够在OLED屏幕上显示英语。2是能够在OLED屏幕上显示汉字。3是能够精切的指导怎么擦除或者写入屏幕某一个位置的方法。4就是能够随意描点。
我在做这个的时候我在3这个理解层面。我在用3的理解层面写4层面的东西的时候出现了一个问题。在描绘同一页同一列的另一个点的时候,也就是说,第一步描绘同一列的第一个点,然后我还想点亮同一列的第二个点的时候,第一个点被我擦除了。遇到的问题再转换一个角度说就是,我还得提前知道屏幕里面的这一列的哪个灯亮。也就是说,在我想点亮这个列的别的灯的时候,我重新写入灯,我得把这一列之前亮的灯也带上,因为OLED屏幕给我们写入或者说控制OLED屏幕的方式是一列8位。这件事情我得怎么做到呢。
我借鉴到一个方法,就是在单片机里面直接有一张OLED屏幕的图。在想修改OLED屏幕的时候,把这个单片机里面的图改变,然后再真正的传进OLED。这个图的能力一定是需要一位一位的写入的,这样点亮一个灯的时候,就不会影响别的灯。这个图的实现方法是C语言里面定义一个和屏幕像素点一致的数组。
我的代码用的是数组是最简单易懂的map[128][64]。当然代码只有更好,思路只有更好。我了解到的其实可以用一位数组的办法,map[128*64],这样应该是更省空间的,这方面我不理解。甚至其实我调用的OLED库里面的那个定义也很巧妙map[128][8]。他还是八位八位进去的,那怎么不打扰同一列的灯呢,用一个或。再换个说法,或不就是不打扰别人写入我这位吗,再OLED屏幕里面我用不了或,我在代码里面用或,最后在录屏幕上去不就行了吗。这段我想说的大概就是,数组的定义是可以很巧妙并且可以节省空间的。这样的定义map[128]64[]还是世界上最苯的定义方法,但是也是最直观的。
关于代码的实现:
uint8_t OLED_GRAM[144][8];
void OLED_DrawPoint(uint8_t x,uint8_t y)
{uint8_t i,m,n;
i=y/8;
m=y%8;
n=1<uint8_t i,m,n;
i=y/8;
m=y%8;
n=1<uint8_t i,n;
for(i=0;i<8;i++)
{ OLED_writeByte(0xb0+i,OLED_CMD); //设置行起始地址
OLED_writeByte(0x00,OLED_CMD); //设置低列起始地址
OLED_writeByte(0x10,OLED_CMD); //设置高列起始地址
for(n=0;n<128;n++)
OLED_writeByte(OLED_GRAM[n][i],OLED_DAT);
}
}
这里我展现的是我的OLED库的一些函数,贪吃蛇的函数实现方法我用更加浅显易懂的map[128][64]。每个元素我认为是布尔,只有1和0。
二、关于链表的相关知识 1.引入库代码如下(示例):
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
2.读入数据代码如下(示例):
data = pd.read_csv(
'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())
该处使用的url网络请求的数据。
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
文章标题:智能手表-贪吃蛇详解(有源码,有原理图,有模块说明书)-创新互联
浏览路径:http://azwzsj.com/article/cccpcc.html