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

系列文章目录

错误总结(没有什么各位有用的东西)跳转
关于嵌入式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元起,快前往官网查看详情吧

文章名称:智能手表-贪吃蛇详解(有源码,有原理图,有模块说明书)-创新互联
新闻来源:https://www.cdcxhl.com/article22/cccpcc.html

成都网站建设公司_创新互联,为您提供用户体验服务器托管网站收录微信小程序全网营销推广定制网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

绵阳服务器托管