为什么ESP32是神

在谈论这个问题之前,我们先要说说神独特的出生,本身10块的芯片定价,却拥有全引脚中断的实力,这样独特的他注定是不平凡的,果然,一推出就达到了前所未有的热度,并且靠着全引脚全功能输出,wifi蓝牙的加持成功碾压一众单片机,超凡入圣,粉丝更是称其为“我超,乐鑫!” 那么其他单片机/开发板相较于ESP32差在了哪里 首先是犯下傲慢之罪的树莓派 凭借自己强大的开源库就沾沾自喜,而不专注于开发者的使用体验,甚至允许黄牛卖出1000多一块树莓派4b的价格,这样的开发板注定走不长远,而事实也正是如此,多年未产出新产品的树莓派基金会彻底一蹶不振,傲慢的他们只能在生死存亡之际疯狂降价,但依然受人耻笑,相较之下,ESP32就一直专注于自身的开发,推出各种新的芯片-ESP32-WROOM-32、ESP32-WROVER、ESP32-S等等,他们都是神的一员,凡人不懂就擅自锐评,我劝你们好自为之。 然后是犯下愤怒之罪的Jetson Nano 因为没人买英伟达的显卡就愤怒不已,甚至说出了“买得越多,省得越多”这样的批话,犯下了神在定价中…

2023电赛E题心得

写在前面 比赛完蛋了,下次再来。 方案简介 硬件结构图 红色激光前两题题解 首先前两题我们的方案是直接使用开环控制。 直接记录舵机的pwm值,然后连续控制多级走四个点或者中心点即可。 红色激光第三题方案题解: 首先使用获取一张当前的图像,然后裁切得到一张只含有屏幕部分的该图像。 之后使用大津法进行选取,这样就能获取图片上面的黑框部分。 我们获取黑框的四个点之后可以对两个相邻点之间进行连续采样。 之后我们对舵机进行位置增量PID控制,来连续地追踪那一堆点。这样第三题就完成了。 绿色激光追踪题解 opencv首先hsv提取红色与绿色激光点位置,之后根据位置之差进行x,y方向的pid控制追踪,控制给到下位机的esp32,再控制无刷云台追踪实现闭环。 源码品鉴 无刷电机下位机程序 #include <SimpleFOC.h>      MagneticSensorI2C sensor = Magnetic…

从0开始的异次元Surface Arch安装之路(2023/7

前言 一不小心给manjaro的pacman源换成了arch的,更新完全是bug,干脆自己动手从头安装一个arch得了 硬件简介 surface pro8 windows11已经安装 制作安装介质 下载,制作Arch安装介质 首先在Index of /archlinux/iso/2023.07.01/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror下载arch的对应版本,如果你是x86架构,你应该下载 之后使用balenaEtcher这个软件烧入一个你不用的u盘里面。 进入Arch 安装介质 首先进入你电脑的bios(通常是开机狂按del),把首要引导换成usb,选择uefi引导,关闭安全启动。 然后重启就进入arch,选择: Arch Linux install medium (x86_64, UEFI) 连接互联网 首先进入iwd环境 iwctl 输入…

PEP 8 -- Style Guide for Python Code

转载自https://learnku.com/docs/styleofcode/PEP_8/7084 放在这里纯属自己看着方便 介绍 本文档为包含主要 Python 发行版中的标准库的 Python 代码提供了编码约定。请参阅随附的信息性 PEP 描述样式指南,以了解 Python 的 C 实现中的 C 代码。 本文档和 [PEP257](/dev/peps /pep-0257)(Docstring 公约) 改编自 Guido 最初的 Python 样式指南文章,并引用了 Barry 样式指南。 此样式指南会随着时间的推移而演变,因为会确定其他惯例,而过去的惯例会因语言本身的变化而过时。 许多项目都有自己的编码风格准则。在发生任何冲突的情况下,此类项目特定的指南优先于该项目。 A Foolish Consistency is…

FOC 控制 位置闭环小车

23年电赛小车,准备做控制类赛题,还有点问题,改改再说 import math import time import serial from location import Location as mt from threading import Thread left_num = 1.1 right_num = 1.1 left_location = 1 right_location = 2 start_flag = 1 left_port = serial.Serial( port="/dev/left_roll", baudrate=115200, bytesize=…

OpenCv Python入门到入土

写在前面: 因为经常需要用到opencv,又经常忘记很多用过的方法,所以写个文章给记下来好了。 1 安装OpenCv 通常安装opencv只需要这么一行命令就可以做到了。 pip3 install opencv-python 在不那么通常的情况下,我们需要使用Anaconda来安装,这个以后再说。 在非常不通常的情况下,我们需要直接下载源码编译安装,这是及其痛苦的。 2 基本图像操作方法 你应该知道: * 什么是数组 * 在C语言中数组的存储方式 * 图片就是数组 2.1 从摄像头获取一张图片 import cv2 import numpy cap = cv2.VideoCapture(0) #创建VideoCapture对象 while(True): #创建无限循环,用于播放每一帧图像 ret, frame = cap.read() #读取图像的每一帧 print(frame) cv2.imshow('frame'…

Latex 快速入门

写在前面 这是一个急速入门教程,latex最好的学习方法还是边用边学习。 1.安装Latex 环境和IDE 1.1 安装TexStudio: 在这里:https://www.texstudio.org/ 直接安装就可以,但是安装的时间会非常长。 2 开始你的第一篇文章 2.1 Latex是怎么工作的 \documentclass{article} \begin{document} Hello, world! \end{document} 上面这个叫做Latex的源代码,我们需要通过latex编译来变成一篇包含hello world的pdf文章。latex并不是一个所见即所得的编辑工具(像是word)一样,我们在编写的时候是看不到最后的结果的,需要写完源代码之后编译得到结果。 这给了Latex一些无法替代的作用,我们得以在编辑过程中完全不在乎排版的问题,Latex的文章具有极高的规范性,我们写的文章将符合印刷和排版规则,另一方面是Latex的公式编辑功能也是相…

Liunx 下直接操作GPIO来操作PWM

这个是一个关于Edgebroad的GPIO的操作来实现PWM的类。 这个板子主控其实是AMD的FPGA,所以操作方法其实和其他有GPIO的linux板子方法差不多吧(比如树莓派 操作更像是一种写入寄存器的操作,emmmm,写半天还是成了写单片机编程。 但是是在Liunx下面,所以其实都是对文件的操作和读写,所以读写文件的速度其实对代码执行的速度是有很大影响的,而python的sleep函数在这个地方因为使用cpu的主频来计数,所以时间延时并不是很准确,其他办法正在研究(比如用Ctos 暂时没有别的解释,等到暑假之后再写。 import os import time def wr(x): f = open('/sys/class/gpio/gpio423/value', 'w') f.write(str(x)) f.close() class edge_pwm(): def __init__(self,pin) ->…