草庐IT

基于stm32与陀螺仪(mpu6050)的PID角度环算法,角度用OLED显示,使得智能车能在长时间跑直线和转直角弯,减小误差

首先,我做智能车用的是stm32f103c8t6作为主控芯片,得到小车自身对于开始位置的三维变换角度所用的是mpu6050模块,其与主控芯片采用I2C通信。此通信原理接下来会加入介绍资料。其次还有一个OLED模块,这个也和mpu6050模块相似,都采用I2C与主控芯片之间进行通信。接下来我会分模块介绍原理,但是如果大家想直接使用mpu6050和OLED的驱动代码,在最后我除了会把PID算法的代码开源,还会将两个外设的驱动代码开源放在后面。一.模块的作用1.首先是stm32f103c8t6主控芯片作用是与两个外设进行通信。与mpu6050通信获得小车距离原位置的偏离量,与OLED通信使OLED屏

基于stm32与陀螺仪(mpu6050)的PID角度环算法,角度用OLED显示,使得智能车能在长时间跑直线和转直角弯,减小误差

首先,我做智能车用的是stm32f103c8t6作为主控芯片,得到小车自身对于开始位置的三维变换角度所用的是mpu6050模块,其与主控芯片采用I2C通信。此通信原理接下来会加入介绍资料。其次还有一个OLED模块,这个也和mpu6050模块相似,都采用I2C与主控芯片之间进行通信。接下来我会分模块介绍原理,但是如果大家想直接使用mpu6050和OLED的驱动代码,在最后我除了会把PID算法的代码开源,还会将两个外设的驱动代码开源放在后面。一.模块的作用1.首先是stm32f103c8t6主控芯片作用是与两个外设进行通信。与mpu6050通信获得小车距离原位置的偏离量,与OLED通信使OLED屏

华为OD机试 - 最多几个直角三角形(Java & JS & Python)

题目描述有N条线段,长度分别为a[1]-a[n]。现要求你计算这N条线段最多可以组合成几个直角三角形。每条线段只能使用一次,每个三角形包含三条线段。输入描述第一行输入一个正整数T(1对于每组测试数据,接下来有T行,每行第一个正整数N,表示线段个数(3输出描述对于每组测试数据输出一行,每行包括一个整数,表示最多能组合的直角三角形个数用例输入17345651213输出2说明可以组成2个直角三角形(3,4,5)、

华为OD机试 - 最多几个直角三角形(Java & JS & Python)

题目描述有N条线段,长度分别为a[1]-a[n]。现要求你计算这N条线段最多可以组合成几个直角三角形。每条线段只能使用一次,每个三角形包含三条线段。输入描述第一行输入一个正整数T(1对于每组测试数据,接下来有T行,每行第一个正整数N,表示线段个数(3输出描述对于每组测试数据输出一行,每行包括一个整数,表示最多能组合的直角三角形个数用例输入17345651213输出2说明可以组成2个直角三角形(3,4,5)、

SICP:复数的直角和极坐标的表示(Python实现)

绪论我们已经介绍过数据抽象,这是一种构造系统的方法学,它能够使程序中的大部分描述与其所操作的数据对象的具体表示无关,比如一个有理数程序的设计与有理数的实现相分离。这里的关键是构筑数据抽象屏障——在有理数的例子中即有理数的构造函数(make_rat)和获取有理数分子分母的选择函数(numer、denom)——它能将有理数的使用方式与其借助于表结构的具体表示形式隔离开。数据抽象屏障是控制复杂性的强有力工具,然而这种类型的数据抽象还不够强大有力。从一个另一个角度看,对于一个数据对象可能存在多种有用的表示方式,且我们希望所设计的系统能够处理多种表示形式。比如,复数就可以表示为两种几乎等价的形式:直角坐

SICP:复数的直角和极坐标的表示(Python实现)

绪论我们已经介绍过数据抽象,这是一种构造系统的方法学,它能够使程序中的大部分描述与其所操作的数据对象的具体表示无关,比如一个有理数程序的设计与有理数的实现相分离。这里的关键是构筑数据抽象屏障——在有理数的例子中即有理数的构造函数(make_rat)和获取有理数分子分母的选择函数(numer、denom)——它能将有理数的使用方式与其借助于表结构的具体表示形式隔离开。数据抽象屏障是控制复杂性的强有力工具,然而这种类型的数据抽象还不够强大有力。从一个另一个角度看,对于一个数据对象可能存在多种有用的表示方式,且我们希望所设计的系统能够处理多种表示形式。比如,复数就可以表示为两种几乎等价的形式:直角坐