首页 > 其他分享 >嵌入式模块学习小记(未分类)

嵌入式模块学习小记(未分类)

时间:2024-05-31 17:58:00浏览次数:16  
标签:register 器件 旋转 未分类 寄存器 AD7705 嵌入式 输入 小记

L298N电机驱动板模块

Output A:接DC 电机 1 或步进电机的 A+和 A-;

Output B:接DC 电机 2 或步进电机的 B+和 B-;

5V Enable:如果使用输入电源大于12V的电源,请将跳线帽移除。输入电源小于12V时短接可以提供5V电源输出;

+5V Power:当输入电源小于12V时且5V Enable处于短接状态,可以提供+5V电源输出;(实际位置请参考驱动板上的标注)

Power Gnd:电源地;

+12V Power:连接电机电源,最大35V。输入电压大于12V时,为确保安全,请去除 5V Enble 针脚上的跳线帽;(实际位置请参考驱动板上的标注)

A/B Enble:可用于输入PWM脉宽调制信号对电机进行调速控制。(如果无须调速可将两引脚接5V,使电机工作在最高速状态,既将短接帽短接)
实现电机正反转就更容易了:
输入信号端IN1接高电平输入端IN2接低电平,电机M1正转。
如果信号端IN1接低电平, IN2接高电平,电机M1反转。
控制另一台电机是同样的方式,输入信号端IN3接高电平,输入端IN4接低电平,电机M2正转。(反之则反转)
PWM信号端A控制M1调速,PWM信号端B控制M2调速。

ULN2003电机驱动板

​ ULN2003 是高耐压、大电流达林顿管阵列器件,每个器件包含 7 个共发射极的集电极开路达林顿管对。 每个通道可流过 500mA 额定电流。

管脚连接图

LN2003是一个7路反向器电路,即当输入端为高电平时,ULN2003输出端为低电平;当输入端为低电平时,ULN2003输出端为高电平

极限参数

参 数符 号参数范围单 位
输出电压Vo50V
输入电压Vi30V
集电极电流-持续电流Ic500mA
基极电流-持续电流IB25mA

对LD2410B的解读(人体传感)

外形尺寸

在这里插入图片描述

引脚定义

在这里插入图片描述

典型应用电路

LD2410B模组直接通过一个IO引脚输出检测到的目标状态(有人高电平,无人低电平)

同时也可通过 串口按照规定的协议进行检测结果数据的输出,串口输出数据中包含有目标状态和距离辅助信息等

模块供电电压5V,输入电源的供电能力要求大于200mA。

模块IO输出电平为3.3V。

串口默认波特率256000。1停止位,无奇偶校验位。

参数的配置

可通过LD2410B的串口给模块修改配置参数,来适应不同的应用需求,配置内容掉电不丢失。

可配置内容如下:

  1. 最远探测距离

    设置最远可探测的距离,只有在此最远距离内出现的人体目标才会被探测到并输出结果。

    以距离门为单位进行设置, 每个距离门为0.75m

    包括运动探测最远距离门和静止探测最远距离门,可设置范围为1~8,例如设置最远距离门为2, 则只有在1.5m内有人体存在才会有效探测到并输出结果。

  2. 灵敏度

    探测到的目标能量值(范围0~100)大于灵敏度值时才会判定为目标存在,否则忽略。

    灵敏度值可设置范围0~100。

    每个距离门可独立设置灵敏度,即可对不同距离范围内的探测进行精准调节,局部精准探测或对特定区域干扰源的过滤。

    另外如果将某个距离门的灵敏度设置为100时,可达到不识别此距离门下目标的效果。

    例如将距 离门3和距离门4的灵敏度设置为20,其他距离门的灵敏度都设置为100,则可实现仅对距离模块 2.25~3.75m范围内的人体进行探测。

  3. 无人持续时间

    雷达在输出从有人到无人的结果中,会持续一段时间上报有人,若在此时间段雷达测试范围内持续无人,雷达上报无人;若在此时间段雷达检测到有人,则重刷新此时间,单位秒。

    相当于无人延时时间,人离开后,保持无人超过此持续时间后才会输出状态为无人。

上报数据帧格式

在这里插入图片描述

在这里插入图片描述

大致感悟

问题主要是如何与主板链接,调试的控制较为简单,可通过蓝牙、usb串口通信进行编辑

电源设计

LDO(线性稳压)

LDO的内部可看作是一个可调电阻与负载串联,芯片会根据负载不断调节可调电阻的大 小,使负载的电压始终恒定在指定值上,多余的电压被LDO内部消耗。

  • 缺点
    1. 不应用于高压差场景。由于LDO自身将消耗多余的电压,压差越大,发热越 大。
    2. 效率非常低。由于多余的电压被LDO自身消耗,多余的功率将以热量的形式 散失。大电流下LDO的温度将相当高。在高压差的情况下,LDO的效率甚至 不会超过50%。

DC-DC(开关电源)

Buck降压/Boost升压

  • 优点
    1. 效率高
    2. 带负载能力强
    3. 适用高压差场景
  • 缺点
    1. 电路复杂。需要电容、电感、电阻、二极管等较多的外围元件。
    2. 纹波较大。若后级电路对纹波敏感,可能需要特定的滤波电路。
    3. 静态功耗略高。尽管现代的DC-DC芯片都对小电流场景做了优化,但由于 DC-DC的运行必须需要其内部时钟工作,所以注定其静态功耗不会太低。

电荷泵

电荷泵方案可以说是几乎兼具了LDO和DC-DC的特点。典型的电荷泵芯片外围只需要 两个电容即可完成自动的升降压。

  • 优点
    1. 电路简单。外围仅需两颗电容即可完成升降压操作。一般的电荷泵芯片封装 也十分小。
    2. 效率高。因为是由于本质只涉及电容的充放电,所以理论效率可达到100%。
  • 缺点
    1. 存在纹波。由于工作时仍涉及开关动作,故输出的电压仍然会存在纹波。
    2. 带负载能力有限。负载消耗电量的速度必须小于电容充电的速度,否则电荷泵无法稳定电压。

对MT7705模块的解读(ADC)

电路原理图

在这里插入图片描述

一般说明

  • 该器件可以接受直接来自传感器的低电平的输入信号,然后产生串行的数字输出。

引脚排列及其功能

在这里插入图片描述

SCL:
Serial Clock. An external serial clock is applied to the Schmitt-triggered logic input to access serial data from the AD7705/AD7706. This serial clock can be a continuous clock with all data transmitted in a continuous train of pulses. Alternatively, it can be a noncontinuous clock with the information transmitted to the AD7705/AD7706 in smaller batches of data.          
串行时钟,施密特逻辑输入。将一个外部的串行时钟加于这一输入端口,以访问AD7705/7706 的串行数据。和单片机传输数据时的控制时钟

MCLK IN:
Master Clock Signal. This can be provided in the form of a crystal/resonator or external clock. A crystal/resonator can be tied across the Pin MCLK IN and Pin MCLK OUT. Alternatively, the MCLK IN pin can be driven with a CMOS-compatible clock with the MCLK OUT pin left unconnected. The parts can be operated with clock frequencies in the range of 500 kHz to 5 MHz.
为转换器提供主时钟信号。能以晶体/谐振器或外部时钟的形式提供。晶体/谐振器可以接在MCLKIN 和MCLKOUT 二引脚之间。此外,MCLKIN 也可用CMOS 兼容的时钟驱动, 而MCLKOUT 不连接。时钟频率的范围为500kHz~5MHz

MCLK OUT:
When the master clock for these devices is a crystal/resonator, the crystal/resonator is connected between Pin MCLK IN and Pin MCLK OUT. If an external clock is applied to Pin MCLK IN, Pin MCLK OUT provides an inverted clock signal. This clock can be used to provide a clock source for external circuitry and is capable of driving 1 CMOS load. If the user does not require this clock externally, Pin MCLK OUT can be turned off via the CLKDIS bit of the clock register. This ensures that the part does not unnecessarily burn power driving capacitive loads on Pin MCLK OUT.
当主时钟为晶体/谐振器时,晶体/谐振器被接在MCLKIN 和MCLKOUT 之间。如果在MCLKIN 引脚处接上一个外部时钟,MCLKOUT 将提供一个反相时钟信号。这个时钟可以用来为外部电路提供时钟源,且可以驱动一个CMOS 负载。如果用户不需要,MCLKOUT 可以通过时钟寄存器中的CLKDIS位关掉。这样,器件不会在MCLKOUT 脚上驱动电容负载而消耗不必要的功率

CS
Chip Select. Active low logic input used to select the AD7705/AD7706. With this input hardwired low, the AD7705/AD7706 can operate in its 3-wire interface mode with Pin SCLK, Pin DIN, and Pin DOUT used to interface to the device. The CS pin can be used to select the device communicating with the AD7705/AD7706.
片选,低电平有效的逻辑输入,选择AD7705/7706。将该引脚接为低电平,AD7705/7706 能以三线接口模式运行(以SCLK、DIN 和DOUT 与器件接口)。在串行总线上带有多个器件的系统中,可由CS’对这些器件作出选择,或在与AD7705/7706 通信时,CS’可用作帧同步信号

RESET
Logic Input. Active low input that resets the control logic, interface logic, calibration coefficients, digital filter, and analog modulator of the parts to power-on status.
复位输入。低电平有效的输入,将器件的控制逻辑、接口逻辑、校准系数、数字滤波器和模拟调制器复位至上电状态

AIN2(+):
Positive Input of the Differential Analog Input Pair AIN2(+)/AIN2(−) for AD7705. Channel 1 for AD7706.
差分模拟输入通道1的正输入端。

AIN2(−):
Negative Input of the Differential Analog Input Pair AIN2(+)/AIN2(−) for AD7705. Channel 3 for AD7706.
AD7705的差分模拟输入对AIN2(+)/AIN2(−)的负输入。AD7706对应第三通道。

AIN1(+):
Positive Input of the Differential Analog Input Pair AIN1(+)/AIN1(−) for AD7705. Channel 2 for AD7706.
差分模拟输入通道2 的正输入端。

AIN1(-):
Negative Input of the Differential Analog Input Pair AIN1(+)/AIN1(−) for AD7705. COMMON input for AD7706 with Channel 1, Channel 2, and Channel 3 referenced to this input.                                        AD7705的差分模拟输入对AIN1(+)/AIN1(-)的负输入。AD7706的常用输入,通道1、通道2和通道3引用该输入。

REFIN(+):
Reference Input. Positive input of the differential reference input to the AD7705/AD7706. The referenceinput is differential with the provision that REF IN(+) must be greater than REF IN(−).REF IN(+) can lie anywhere between VDD and GND.
基准输入端,基准输入是差分的,并规定REFIN(+)必须大于REFIN(-)。REFIN(+)可以取VDD 和GND 之间的任何值

REFIN(-):
Reference Input. Negative input of the differential reference input to the AD7705/AD7706. The REF IN(−) can lie anywhere between VDD and GND, provided that REF IN(+) is greater than REF IN(−).
基准输入端,REFIN(-)可以取VDD 和GND 之间的任何值,且满足REFIN(+)大于REFIN(-)

DRDY:
Logic Output. A logic low on this output indicates that a new output word is available from the AD7705/AD7706 data register. The DRDY pin returns high upon completion of a read operation of a full output word. If no data read has taken place between output updates, the DRDY line returns high for 500 × tCLK IN cycles prior to the next output update. While DRDY is high, a read operation should neither be attempted nor in progress to avoid reading from the data register as it is being updated. The DRDY line returns low after the update has taken place. DRDY is also used to indicate when the AD7705/AD7706 has completed its on-chip calibration sequence. 、
逻辑输出。这个输出端上的逻辑低电平表示可从AD7705/7706 的数据寄存器获取新的输出字。完成对一个完全的输出字的读操作后,DRDY’引脚立即回到高电平。如果在两次输出更新之间,不发生数据读出,DRDY’将在下一次输出更新前500×tCLKIN 时间返回高电平。当DRDY’处于高电平时,不能进行读操作,以免数据寄存器中的数据正在被更新时进行读操作。当数据被更新后,DRDY’又将返回低电平。DRDY’也用来指示何时AD7705/7706 已经完成片内的校准序列.

DOUT:
Serial Data Output. Serial data is read from the output shift register on the part. The output shift register can contain information from the setup register, communication register, clock register, or data register, depending on the register selection bits of the communication register
串行数据输出端

DIN:
Serial Data Input. Serial data is written to the input shift register on the part. Data from the input shift register is transferred to the setup register, clock register, or communication register, depending on the register selection bits of the communication register.
串行数据输入端

VDD:
Supply Voltage. 2.7 V to 5.25 V operation.
电源电压,+2.7V~5.25V,个人建议5V供电效果好一些

GND:
内部电路的地电位基准点

片内寄存器

​ AD7705/7706 片内包括 8 个寄存器,这些寄存器通过器件的串行口访问。第一个是通信寄存器,它管理通道选择,决定下一个操作是读操作还是写操作,以及下一次读或写哪一个寄存器。所有与器件的通信必须从写入通信寄存器开始。上电或复位后,器件等待在通信寄存器上进行一次写操作。这一写到通信寄存器的数据决定下一次操作是读还是写,同时决定这次读操作或写操作在哪个寄存器上发生。所以,写任何其它寄存器首先要写通信寄存器,然后才能写选定的寄存器。

通信寄存器

通信寄存器是一个8 位寄存器,既可以读出数据也可以把数据写进去。所有与器件的通信必须从写该寄存器开始。写上去的数据决定下一次读操作或写操作在哪个寄存器上发生。一旦在选定的寄存器上完成了下一次读操作或写操作,接口返回到通信寄存器接收一次写操作的状态。

通信寄存器手册说明

在这里插入图片描述

英文说明:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

中文说明:

在这里插入图片描述

通信寄存器配置
  1. DRDY:要写寄存器根据手册说明,这位给0
  2. RS2–RS0:这三位如何填写看手册表,现在是要操作通信寄存器选择其他寄存器,根据手册所给的表格这里三位就先用 ? ? ?三问号代替,这是个8位寄存器前4位就是0???,后四位先补0000
  3. R/W:这里下次操作是写所以补0 (为什么下一次操作是写,解释一下:前面手册说了,想要操作其他寄存器首先必须先操作通信寄存器在RS2–RS0先选择下一个操作的寄存器是什么,不操作通信寄存器,是一定进行不了下一个寄存器位操作的)
  4. STBY:根据手册上来这一位给0正常工作
  5. CH1-CH0:一般用AIN1(+/-)作为一组通道,那么配置就是00,用AIN2(+/-)作为一组通道那么配置就是01
  6. 后4位加上前4位,总的写法就是0???0000或者0???0001,先不急这些问号的事情,下面就会说明。

设置寄存器

设置寄存器是一个8位寄存器,既可以读数据也可以写数据。

设置寄存器手册说明

英文说明:

在这里插入图片描述

在这里插入图片描述

中文说明:

在这里插入图片描述

  1. 想要配置设置寄存器就必须先在通信寄存器中RS2----RS0三位中进行选择,根据标题已经给出如何设置通用寄存器这里先配置通信寄存器。2进制写法为 00010000,16进制写法为 0x10
  2. 前面通过通信寄存器选择了写入设置寄存器中,那么接下来才是正式的配置设置寄存器。可以看到设置寄存器是一个8位寄存器。MD1—MD0可以根据自己想要的模式进行选择,这里是选择自校准模式,这两位为01
  3. G2—G0为增益位[^增益位],可以根据自己的需求,设置增益位,这选择增益为2,即为 001
  4. B/U 位:这里根据自己的需求选择单双极性工作,这里选择单极性配置位为 1
  5. BUF位: 这里选择无缓冲即配置位为 0
  6. FSYNC位:根据表可以看到1处于复位时,0为数据处理,即这里配置位为 0
  7. 综合上面的8位配置2进制写法为 01001100,16进制写法为 0x4c,这样一个设置寄存器才算正式配置完成。

时钟寄存器

时钟寄存器是一个可以读/写数据的 8 位寄存器。

时钟寄存器手册说明

在这里插入图片描述

在这里插入图片描述

时钟寄存器配置(RS2=0,RS1=1,RS0=0)
  1. 与之前配置设置寄存器方法相同, 还是先要在通信寄存器中的RS2—RS0三位中选择,这里三位为010,即通讯寄存器16进制配置为0x20.
  2. 配置完时通信寄存器,再来看时钟寄存器手册。ZERO位:根据手册提示写0
  3. CLKDIV位:需要根据模块上晶振进行判断,这里使用的AD7705模块的晶振为4.9152MHz,再根据手册提示这里写 1
  4. CLK位:根据上面的晶振这位写 1
  5. FS1—FS0位:前面CLK位写1,这里只有四个方式选择,这里选择500Hz,所以两位写11。(为什么选择500Hz我参考了这位大神指点 链接
  6. 注意 时钟寄存器一旦配置出错一定会出现问题,不要问作者为什么知道。在配置前懒得写代码,白嫖网上的代码时发现一直不出效果,找了许久没发现问题出现在哪。之后还是老老实实的翻了翻了英文手册才找出问题,没有认真看手册的血的教训,之前看的还是中文手册,所以建议还是少看一些中文手册多看看原版的英文手册还是有好处的。

数据寄存器(RS2=0,RS1=1,RS0=1)

​ 数据寄存器是一个 16 位只读寄存器,它包含了来自 AD7705/7706 最新的转换结果。如果通信寄存器将器件设置成对该寄存器写操作,则必定会实际上发生一次写操作以使器件返回到准备对通信寄存器的写操作,但是向器件写入的 16 位数字将被 AD7705/7706 忽略

测试寄存器 (RS2=1,RS1=0,RS0=0)

测试寄存器用于测试器件时。建议用户不要改变测试寄存器的任何位的默认值(上电或复位时自动置入全 0),否则当器件处于测试模式时,不能正确运行。

零标度校准寄存器(RS2=1,RS1=1,RS0=0)

AD7705/7706 包含几组独立的零标度寄存器,每个零标度寄存器负责一个输入通道。它们皆为 24 位读/写寄存器,24 位数据必须被写之后才能传送到零标度校准寄存器。零标度寄存器和满标度寄存器连在一起使用,组成一个寄存器对。每个寄存器对对应一对通道,见表 7。当器件被设置成允许通过数字接口访问这些寄存器时,器件本身不再访问寄存器系数以使输出数据具有正确的尺度。结果,在访问校准寄存器(无论是读/写操作)后,从器件读得的第一个输出数据可能包含不正确的数据。此外,数据校准期间,校准寄存器不能进行写操作。这类事件可以通过以下方法避免:在校准寄存器开始工作前,将模式寄存器的 FSYNC 位置为高电平,任务结束后,又将其置为低电平。

在这里插入图片描述

满标度校准寄存器(RS2=1,RS1=0,RS0=1)

在这里插入图片描述

7750的SPI时序图

在这里插入图片描述

亿佰特Zigbee

AT24Cxx

xx代表该系列模块的存储大小(Kbit)1Kbit = 1024bit

芯片的寻址

​ 起始条件(IIC_Start)使能芯片读写操作后,EEPROM都要求有8位的器件地址信息
在这里插入图片描述

​ AT24C器件地址为如下,前四位固定为1010,A2~A0为由管脚电平。AT24CXX EEPROM Board模块中默认为接地。即A2~A0=000,最后一位表示读写操作。所以AT24Cxx的读地址为0xA1,写地址为0xA0。

也就是说如果是
写24C02的时候,从器件地址为10100000(0xA0);
读24C02的时候,从器件地址为10100001(0xA1)。

片内地址寻址

芯片寻址可对内部256B中的任一个进行读/写操作,其寻址范围为00~FF,共256个寻址单位。

具体解释:
由于24C02只有256个字节的存储空间,所以只需要1个字节就可以寻址完24C02的存储空间,但是无法寻址完更大容量的存储IC,比如24C04的存储容量是512字节,需要9个bit的地址位才能寻址完。由上图可以看到,24C04的设备地址内是没有A0参数的,被a8(a8不在上图)代替了,这个a8就是24C04的第9个bit的地址位,也就是说24C04的A0引脚是不起作用的,这样也就造成了在I2C总线上只能同时挂载4个24C04芯片。其它存储器如24C08、24C16也可以这么类推。

24C02的WP引脚是写保护引脚,当WP引脚接高电平的时,24C02只能进行读取操作,不能进行写操作。只有当WP引脚悬空或接低电平时,24C02才能进行写操作。

写操作

NFC

近场通信(Near Field Communication,简称NFC

NFC的一个重要特点是其【非接触式】,因此那些【接触式】的并拥有极高安全等级的银行卡不属于NFC范畴。

一般来讲,PICC(射频卡)中是没有电池或其他供电电源的,PCD(读卡器)要与PICC进行通信的前提是将电能(在这里我们很容易联想到)无线传递给PICC,驱动PICC中的电路及芯片工作,芯片控制模拟电路产生电磁波,将数据调制解调成1和0的数字信号,从而进行通信。

WS2812B

智能控制LED光源,有256级亮度和1677万种颜色

MPU6050

简介

  • 一个6轴姿态传感器,测量芯片自身X、Y、Z轴的加速度,角速度参数
  • 3轴加速度计(Accelerometer)
  • 3周陀螺仪传感器(Gyroscope)

参数

  • 16位ADC采集传感器的模拟信号,量化范围(-32768~32767)

  • 加速度计满量程选择:±2、±4、±8、±16(g)(1g = 9.8N/kg)

  • 陀螺仪满量程选择:±250、±500、±1000、±2000(°/s)

  • 可配置的数字低通滤波器

  • 可配置的时钟源

  • 可配置的采样分频

  • IIC从机地址:01101000(AD0=0)0x68

    ​ 01101001(AD0=1)0x69

    这里注意一下调库函数时传参的地址要左移1位 即 0xD0 和 0xD2

  • 芯片的供电是3.3v,模块有外接一个3.3LDO,所以可以5V接模块VCC

芯片的好坏自测

自测流程:

  1. 使能自测后,芯片会产生一个模拟外力施加在传感器上
  2. 读取传感器数据 Data1
  3. 失能自测,模拟外力消失
  4. 读取传感器数据 Data2
  5. 计算 Data2 - Data1 ,如果在官方给出的范围内,说明芯片在正常运行

一些特殊状况

stm32f1硬件IIC目测无法使用dmp库

姿态解算

参考文章

IMU姿态解算介绍

IMU,即惯性测量单元,一般包含三轴陀螺仪与三轴加速度计。MPU6050就是其一。

本篇的姿态解算选用的旋转顺序为ZYX,即IMU坐标系初始时刻与大地坐标系重合,然后依次绕自己的Z、Y、X轴进行旋转,这里先自定义一下每次的旋转名称和符号:

  • 绕IMU的Z轴旋转:航向角yaw, 转动 y 角度 (飞机如飞镖般旋转前进)
  • 绕IMU的Y轴旋转:俯仰角pitch,转动 p 角度 (飞机以两侧对称机翼为轴翻滚前进)
  • 绕IMU的X轴旋转:横滚角roll, 转动 r 角度 (飞机以机身为轴螺旋前进)

很明显,我们把飞机机身与X轴重合,只因头和X轴正方向通向

变换矩阵

介绍

参考文章

旋转矩阵的应用范围比较广,是姿态变换,坐标变换等的基础

旋转矩阵的旋转其实包含两种意思

  • 一是在同一个坐标系下,向量的旋转
  • 二是坐标系的旋转,使得同一向量在不同的坐标系下有不同的坐标。
向量旋转
  1. 平面二维旋转矩阵形式

    在这里插入图片描述

  2. 三维旋转矩阵形式

    下面只给出绕x、y、z轴旋转的矩阵便于理解

    对于单位矩阵,绕哪个轴旋转,哪一列不用变,然后将二维旋转矩阵替换对应的4个位置,注意,绕Y的旋转矩阵看起来与另外两个不同,它的-sinβ是在左下!

    在这里插入图片描述

  3. 反转矩阵形式

    在这里插入图片描述

坐标系旋转
  1. 平面二维旋转

    对比上面的旋转矩阵,可以发现:这里坐标系旋转的旋转矩阵与上面向量旋转的旋转矩阵正好是转置的关系(实际上是逆矩阵,因为正交阵的逆矩阵与转置矩阵相同)

    在这里插入图片描述

  2. 三维旋转

    在这里插入图片描述

欧拉角旋转

参考文章

静态定义

对于在三维空间里的一个参考系,任何坐标系的取向,都可以用三个欧拉角来表现。

  • 参考系又称为实验室参考系,是静止不动的,可以先简单的理解理解为大地坐标系,也称惯性坐标系
  • 坐标系则固定于刚体,随著刚体的旋转而旋转,比如飞行器自身的坐标系,也称载体坐标系

欧拉角旋转是绕坐标系的轴旋转,而不是参考系

旋转方向正负的定义是按照右手定则,如右手大拇指指向z-轴,四指弯曲的旋转方向为α正方向。

实际上,对于夹角的顺序和标记,夹角的两个轴的指定,并没有明确的规定。因此当用到欧拉角时,需要明确地表示出夹角的顺序,指定其参考轴。合法的欧拉角组中,唯一的限制是,任何两个连续的旋转,必须绕着不同的转动轴旋转。因此,一共有12种表示。

  • 6种绕三条轴的旋转(Tait-Bryan Angle):XYZ, XZY, YXZ, YZX, ZXY, ZYX
  • 6种只绕两条轴的旋转(Proper Euler Angle):XYX, YXY, XZX, ZXZ, YZY, ZYZ
动态定义

我们也可以给予欧拉角两种不同的动态定义。一种是绕固定于载体的坐标轴的三个旋转的复合;另外一种是绕大地坐标系参考轴的三个旋转的复合。

用动态的定义,我们能更了解,欧拉角在物理上的含义与应用。

注意,以下的描述, 大写字母XYZ坐标轴是旋转的载体坐标轴;小写字母xyz坐标轴是静止不动的大地参考轴。

现在以旋转顺序依次是Z、Y、X的方式来描述欧拉角的两种动态定义。

  • 定义A:绕着XYZ坐标轴旋转(载体坐标轴):
  • 最初,两个坐标系统xyz与XYZ的坐标轴都是重叠的。
  • 开始,绕着Z-轴旋转α角度。
  • 然后,绕着Y-轴旋转β角度。
  • 最后,绕着X-轴旋转γ角度。

设任何一点P1在xyz与XYZ坐标系统的坐标分别为r1与R1。定义Z(α)为绕着Z-轴旋转α角度,Y(β)为绕着Y-轴旋转β角度,X(γ)为绕着X-轴旋转γ角度。则定义A可以表述如下:

img

注意这里又有矩阵左乘与右乘的概念,绕载体坐标系旋转是矩阵依次左乘,即X <- Y <- Z

  • 定义B:绕着xyz坐标轴旋转(大地坐标轴):
  • 最初,两个坐标系统xyz与XYZ的坐标轴都是重叠的。
  • 开始,绕着z-轴旋转α角度。
  • 然后,绕着y-轴旋转β角度。
  • 最后,绕着x-轴旋转γ角度。

设任何一点P2在xyz与XYZ坐标系统的坐标分别为r2与R2。定义z(α)为绕着z-轴旋转α角度,y(β)为绕着y-轴旋转β角度,x(γ)为绕着x-轴旋转γ角度。则定义B可以表述如下:

img

注意绕大地坐标系旋转是矩阵依次右乘,即z -> y -> x

定义A与静态定义的相等,这可以直接用几何制图方法来核对。

定义A与定义B的相等可以用旋转矩阵来证明:

img

标签:register,器件,旋转,未分类,寄存器,AD7705,嵌入式,输入,小记
From: https://blog.csdn.net/qq_61531048/article/details/139358720

相关文章

  • 嵌入式linux系统中framebuffer应用开发详解
    大家好,今天给大家详细分析一下,利用framebuffer进行linux应用开发的详细方法。第一:LCD屏Framebuffer基本原理LCDFramebuffer就是一块显存.在嵌入式系统中.显存是被包含在内存中。LCDFramebuffer里的若干字节〈根据驱动程序对LCD控制器的配置而定〉表示LCD屏幕中的一个像素点.......
  • 深入探索汇编语言的顶尖级应用领域,包括多核并行处理、物联网和嵌入式系统、高性能计算
    汇编语言初级应用的大纲:1.汇编语言概述介绍汇编语言的基本概念和作用。解释汇编语言与高级语言的区别。简要说明汇编语言的历史和发展。2.汇编语言基础讲解汇编语言的基本语法和结构。介绍汇编语言中的指令、寄存器、内存等概念。解释汇编语言程序的组成部分,如数据段......
  • 1.1 嵌入式八股文(一)
    C语言简述编译运行一段代码的过程源程序是指未经编译的,按照一定的程序设计语言规范书写的,人类可读的文本文件,源程序就是所写好的代码。可执行程序,即常说的.exe程序,可以执行程序,完成计算机功能。在C语言中,.c文件就是所谓的源文件。源程序到可执行程序的过程。在这个过程中......
  • 蓝桥杯嵌入式 第六届国赛 更新中……
    题目配置注意事项复制LCD的工程,先配置资源---勾选完选项一定要再看一眼,可能选择错误ADC:配置ADC2_IN15,对应PB15引脚EEROM,配置PB6和PB7按键输入模式PB0、PB1、PB2、PA0LED一定要使能PD2PWM互补输出,用TIM15TIM6-10ms基准定时器代码-默写大师先......
  • 嵌入式硬件、软件最小设计系统都包含哪些部分
    嵌入式硬件最小设计系统的组成部分嵌入式硬件最小设计系统通常包括以下几个基本部分:嵌入式微处理器:作为系统的核心,负责执行指令和控制其他硬件部件。存储器:包括SDRAM、ROM、Flash等,用于存储操作系统、应用程序和数据。电源电路:为系统提供稳定的电力供应。时钟电路:提供系统运......
  • 嵌入式软件监控系统最小功能都包含哪些?
    嵌入式软件监控系统的最小功能嵌入式软件监控系统是一种专门为监控任务设计的计算机系统,它通常包含以下基本功能:数据采集:系统能够通过各种传感器或接口采集监控对象的数据,如温度、湿度、压力等。数据处理:采集到的数据需要经过处理才能用于分析和决策,这包括数据的过滤、转......
  • libc glossy 嵌入式底层移植
    Newlib的构成Newlib由三部分构成:libgloss、libc、libm,三者在Newlib原代码中的存储位置如下。newlib-x.y.zlibglossnewliblibclibmlibc是标准C库,libm是标准数学库,那libgloss是干啥的?C库的部分函数需要引用系统调用,裸机系统没有这些系统调用,那么就由C库中的......
  • 痞子衡嵌入式:不同J-Link版本对于i.MXRT1170连接复位后处理行为有所不同
    大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是不同J-Link版本对于i.MXRT1170连接复位后处理行为。痞子衡之前写过一篇旧文《i.MXRT1170上用J-Link连接复位后PC总是停在0x223104的原因》,这篇文章详细解释了RT1170BootROM代码里软件实现的DebugMai......
  • 嵌入式进阶——I2C总线
    ......
  • 分享几个嵌入式中常用的GUI~
    一、什么是GUI?GUI是图形用户界面(GraphicalUserInterface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。通过GUI框架,用户可直接地与设备进行交互,完成各种操作,可提高工作效率以及用户体验。接下来看一下我们开发中常用的GUI框架有哪些吧~二、开源轻......