智能手表-贪吃蛇详解(有源码,有原理图,有模块说明书)-创新互联

系列文章目录

错误总结(没有什么各位有用的东西)跳转
关于嵌入式3/4作品展示(比较具体的描述了开机页面,灯控制页面的实现)跳转
心率和血压的测量稍微解释一下,有一个单个电源控制两个模块,两个模块相互影响怎么解决的一个问题。跳转

成都创新互联公司专注于企业全网营销推广、网站重做改版、蚌山网站定制设计、自适应品牌网站建设、HTML5商城网站开发、集团公司官网建设、成都外贸网站建设公司、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为蚌山等各大城市提供网站开发制作服务。作品展示链接(B站平台内播放)

视频跳转
视频地址:

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://csdahua.cn/article/cccpcc.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流