完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>
標(biāo)簽 > ADXL345
ADXL345是一款三軸、數(shù)字化的加速度傳感器,它能測(cè)X、Y、Z三個(gè)方向軸上的加速度,它可以在傾斜檢測(cè)應(yīng)用中測(cè)量靜態(tài)重力加速度,還可以測(cè)量運(yùn)動(dòng)或沖擊導(dǎo)致的動(dòng)態(tài)加速度。
ADXL345是一款三軸、數(shù)字化的加速度傳感器,它能測(cè)X、Y、Z三個(gè)方向軸上的加速度,它可以在傾斜檢測(cè)應(yīng)用中測(cè)量靜態(tài)重力加速度,還可以測(cè)量運(yùn)動(dòng)或沖擊導(dǎo)致的動(dòng)態(tài)加速度。
ADXL345是一款三軸、數(shù)字化的加速度傳感器,它能測(cè)X、Y、Z三個(gè)方向軸上的加速度,它可以在傾斜檢測(cè)應(yīng)用中測(cè)量靜態(tài)重力加速度,還可以測(cè)量運(yùn)動(dòng)或沖擊導(dǎo)致的動(dòng)態(tài)加速度。
二、特點(diǎn):A.可達(dá)到最高13位的全分辨率。
B.具有+/-2g,+/-4g,+/-8g,+/-16g,幾個(gè)不同的可選量程。
C.靈敏度高,最高可達(dá)3.9 mg/LSB(一般的ADC的位數(shù)為10位,當(dāng)量程為+/-2g時(shí),數(shù)字化后,即2^10LSB/4g=256LSB/g,期1g的加速度對(duì)應(yīng)的輸出為256,靈敏度則為其倒數(shù)即1/(256LSB/g)=3.9mg/LSB)
D.低功耗,40~145uA 的超低功耗,待機(jī)模式只有 0.1uA。
E. IC 尺寸很小,只有 3mm*5mm*1mm, LGA 封裝。
X、Y、Z三軸
三、當(dāng) ADXL345 沿檢測(cè)軸正向加速時(shí),它對(duì)正加速度進(jìn)行檢測(cè)。在檢測(cè)重力時(shí)當(dāng)檢測(cè)軸的方向與重力的方向相反時(shí)檢測(cè)到的才是正加速度。
四、ADXL345引腳配置圖
引腳功能描述:
1. VDD I/O:數(shù)字接口電源電壓。 2、4、5GND:該引腳必須接地。
3.RESERVED:保留。該引腳必須連接到VS或保持?jǐn)嚅_(kāi)。
6.VS:電源電源。 7. CS:片選
8、9.INT1/INT2:中斷1/2輸出 10.NC:內(nèi)部不連接
11.RESERVED:保留。該引腳必須接地或保持?jǐn)嚅_(kāi)。
12.SDO/ALT ADDRESS:串行數(shù)據(jù)輸出(SPI 4線)/備用I2C地址選擇(I2C)。
13.SDA/SDI/SDIO:串行數(shù)據(jù)(I2C)/串行數(shù)據(jù)輸入(SPI 4線)/串行數(shù)據(jù)輸入和輸出(SPI 3線)。
14.SCL/SCLK:串行通信時(shí)鐘。SCL為I2C時(shí)鐘,SCLK為SPI時(shí)鐘。
五、相關(guān)硬件連接知識(shí)
用三根線將 STM32 與 ADXL345連接,主函數(shù)通過(guò)查詢 ADXL345 得到 x、 y 和 z 三個(gè)方向的加速度值(讀數(shù)值),然后將其轉(zhuǎn)換為與自然系坐標(biāo)的角度,并將結(jié)果在 LCD 模塊上顯示出來(lái)。DS0 來(lái)指示程序正在運(yùn)行,通過(guò)按下WK_UP 按鍵,可以進(jìn)行 ADXL345 的自動(dòng)校準(zhǔn)( DS1 用于提示正在校準(zhǔn))。所要用到的硬件資源如下:
1) 指示燈 DS0、 DS1
2) WK_UP 按鍵
3) TFTLCD 模塊
4) ADXL345
ADXL345接口與 MCU (STM32F1O3)的連接原理圖如下:
ADXL345 通過(guò)三根線與 STM32 開(kāi)發(fā)板連接,其中 IIC 總線接在 PB10 和 PB11 上面。 ADXL345 的兩個(gè)中斷輸出, 選用其中的INT1,連接在 STM32 的 PF11 腳,另外這里的地址線是接 3.3V,所以 ADXL345 的地址是 0X1D,轉(zhuǎn)換為 0X3A 寫(xiě)入, 0X3B 讀取。(如果ALT ADDRESS腳(12腳)接地, ADXL345地址為0X53(不包含最低位),0XA7寫(xiě)入和0XA6讀取)
1. ADXL345 的初始化步驟如下:
1) 上電
2) 等待 1.1ms
3) 初始化命令序列
4) 結(jié)束
其中上電這個(gè)動(dòng)作發(fā)生在開(kāi)發(fā)板第一次上電的時(shí)候,在上電之后,等待 1.1ms 左右,就可以開(kāi)始發(fā)送初始化序列了,初始化序列一結(jié)束, ADXL345 就開(kāi)始正常工作了。 這里的初始化序列,最簡(jiǎn)單的只需要配置 3 個(gè)寄存器DATA_FORMAT 、 POWER_CTL 、INT_ENABLE,下面對(duì)三個(gè)寄存器做簡(jiǎn)單介紹:
0x31 DATA_FORMAT 數(shù)據(jù)格式控制寄存器(讀/寫(xiě))
D7D6D5D4D3D2D1D0
SELF_TESTSPIINT_INVERT0FULL_RESJUSTIFYJUSTIFY
DATA_FORMAT 0x31寄存器控制寄存器0x32至0x37(即0x32 DATAX0 X軸數(shù)據(jù)0 , 0x33 DATAX1 X軸數(shù)據(jù)1(只讀), 0x34 DATAY0 Y軸數(shù)據(jù)0 , 0x35 DATAY1 Y軸數(shù)據(jù)1(只讀), 0x36 DATAZ0 Z軸數(shù)據(jù)0 , 0x37 DATAZ1 Z軸數(shù)據(jù)1(只讀),其中DATAx/y/z0是低字節(jié),DATAx/y/z1是高字節(jié))的數(shù)據(jù)輸出格式。超出±16 g范圍以外的所有數(shù)據(jù)必須剪除,避免溢出。
SELF_TEST位:置“1” 自測(cè)力應(yīng)用至傳感器,造成輸出數(shù)據(jù)轉(zhuǎn)換,置“0”禁用自測(cè)力。
SPI位:置“1”使設(shè)備工作在3線SPI模式,置“0”使設(shè)備工作在4線SPI模式。
INT_INVERT位:置“1”中斷為低電平有效,置“0”中斷為高電平有效。
FULL_RES位:置“1”全分辨率模式(13位),設(shè)備輸出分辨率4mg/LSB。置“0”10位模式,輸出范圍由RANGE位確定。
JUSTIFY位:置“1”左對(duì)齊,置“0”右對(duì)齊并進(jìn)行符號(hào)擴(kuò)展。
RANGE:設(shè)置測(cè)量范圍,見(jiàn)下表
D1D0范圍
00±2g
01±4g
10±8g
11±16g
0x2D POWER_CTL 省電特性控制
D7D6D5D4D3D2D1D0
00LinkAUTO_SLEEPMeasureSleepWakeUp
Link(鏈接)位:置1,該為能使能活動(dòng)和靜止功能,檢測(cè)到靜止是活動(dòng)檢測(cè)開(kāi)始,關(guān)閉靜止檢測(cè),同理,檢測(cè)到活動(dòng)時(shí),開(kāi)啟靜止檢測(cè)同時(shí)關(guān)閉活動(dòng)檢測(cè)。置0,靜止檢測(cè)和活動(dòng)檢測(cè)同時(shí)開(kāi)啟。
AUTO_SLEEP位:置1,自動(dòng)休眠功能使能。該模式下,如果使能靜止功能,檢測(cè)出靜止,則 ADXL345自動(dòng)切換到休眠模式。置0,禁止自動(dòng)切換到休眠模式。
Measure位:置1,器件處于測(cè)量模式,置0,處于待機(jī)模式。
Sleep位:置1,休眠模式,此時(shí)將禁用DATA_READY,停止向FIFO發(fā)送數(shù)據(jù),采樣速率由WakeUp位確定,置0,正常工作模式。
WakeUp位:控制休眠模式下的讀取頻率,如下表:
D1D0休眠模式采樣頻率(Hz)
008
014
102
111
0x2E INT_ENABLE 中斷使能控制
D7D6D5D4
DATA_READYSINGLE_TAPDOUBLE_TAP活動(dòng)
D3D2D1D0
靜止FREE_FALLWaterMarkOverRun
該寄存器各位置1,則使能對(duì)應(yīng)中斷功能,置0則不使用相對(duì)應(yīng)中斷。其中不管INT_ENABLE寄存器設(shè)置如何,如果有相應(yīng)的事件發(fā)生,總是設(shè)置DATA_READY位、WaterMark(水印)位和OverRun(溢出)位,并通過(guò)讀取DATAX、 DATAY和DATAZ寄存器將數(shù)據(jù)清零。
2.ADXL345相關(guān)模塊網(wǎng)絡(luò)程序參考學(xué)習(xí)
adxl345.c:
#include “adxl345.h”
#include “sys.h”
#include “delay.h”
#include “math.h”
//初始化 ADXL345.
//返回值:0,初始化成功;1,初始化失敗。
u8 ADXL345_Init(void)
{
IIC_Init(); //初始化 IIC 總線
if(ADXL345_RD_Reg(DEVICE_ID)==0XE5) //讀取器件 ID
{
ADXL345_WR_Reg(DATA_FORMAT,0X2B); // 0禁用自測(cè)力,1低電平有效,1全分辨模式,0右對(duì)齊,//11測(cè)量范圍±16g,則0010 1011———》 0x2B
ADXL345_WR_Reg(BW_RATE,0x0A); //數(shù)據(jù)輸出速度為 100Hz
ADXL345_WR_Reg(POWER_CTL,0x28); //鏈接使能,測(cè)量模式
ADXL345_WR_Reg(INT_ENABLE,0x00); //不使用中斷
ADXL345_WR_Reg(OFSX,0x00); //X軸偏移為0
ADXL345_WR_Reg(OFSY,0x00); // y軸偏移為0
ADXL345_WR_Reg(OFSZ,0x00); // z軸偏移為0
return 0;
}
return 1;
}
//寫(xiě) ADXL345 寄存器
//addr:寄存器地址
//val:要寫(xiě)入的值
//返回值:無(wú)
void ADXL345_WR_Reg(u8 addr,u8 val)
{
IIC_Start();
IIC_Send_Byte(ADXL_WRITE); //發(fā)送寫(xiě)器件指令
IIC_Wait_Ack();
IIC_Send_Byte(addr); //發(fā)送寄存器地址
IIC_Wait_Ack();
IIC_Send_Byte(val); //發(fā)送值
IIC_Wait_Ack();
IIC_Stop(); //產(chǎn)生一個(gè)停止條件
}
//讀 ADXL345 寄存器
//addr:寄存器地址
//返回值:讀到的值
u8 ADXL345_RD_Reg(u8 addr)
{
u8 temp=0;
IIC_Start();
IIC_Send_Byte(ADXL_WRITE); //發(fā)送寫(xiě)器件指令
temp=IIC_Wait_Ack();
IIC_Send_Byte(addr); //發(fā)送寄存器地址
temp=IIC_Wait_Ack();
IIC_Start(); //重新啟動(dòng)
IIC_Send_Byte(ADXL_READ); //發(fā)送讀器件指令
temp=IIC_Wait_Ack();
temp=IIC_Read_Byte(0); //讀取一個(gè)字節(jié),不繼續(xù)再讀,發(fā)送 NAK
IIC_Stop(); //產(chǎn)生一個(gè)停止條件
return temp; //返回讀到的值
}
//讀取 ADXL 的平均值
//x,y,z:讀取 10 次后取平均值
void ADXL345_RD_Avval(short *x,short *y,short *z) //x、y、z為short型
{
short tx=0,ty=0,tz=0; //數(shù)據(jù)清零
u8 i;
for(i=0;i《10;i++)
{
ADXL345_RD_XYZ(x,y,z);
delay_ms(10);
tx+=(short)*x; ty+=(short)*y; tz+=(short)*z;
}
*x=tx/10; *y=ty/10; *z=tz/10;
}
//自動(dòng)校準(zhǔn)
//xval,yval,zval:x,y,z 軸的校準(zhǔn)值
void ADXL345_AUTO_Adjust(char *xval,char *yval,char *zval)
{
short tx,ty,tz;
u8 i;
short offx=0,offy=0,offz=0;
ADXL345_WR_Reg(POWER_CTL,0x00); //清除寄存器原來(lái)的設(shè)置。
delay_ms(100);
ADXL345_WR_Reg(DATA_FORMAT,0X2B);
//低電平中斷輸出,13 位全分辨率,輸出數(shù)據(jù)右對(duì)齊,16g 量程
ADXL345_WR_Reg(BW_RATE,0x0A); //數(shù)據(jù)輸出速度為 100Hz
ADXL345_WR_Reg(POWER_CTL,0x28); //鏈接使能,測(cè)量模式
ADXL345_WR_Reg(INT_ENABLE,0x00); //不使用中斷 `
ADXL345_WR_Reg(OFSX,0x00);
ADXL345_WR_Reg(OFSY,0x00);
ADXL345_WR_Reg(OFSZ,0x00);
delay_ms(12);
for(i=0;i《10;i++)
{
ADXL345_RD_Avval(&tx,&ty,&tz);
offx+=tx; offy+=ty; offz+=tz;
}
offx/=10; offy/=10; offz/=10;
*xval=-offx/4; *yval=-offy/4; *zval=-(offz-256)/4; //結(jié)果強(qiáng)制轉(zhuǎn)換為char型,全分辨
//率下,每個(gè)輸出LSB為3.9 mg或偏移寄存器LSB的四分之一。由于偏移寄存器為附加寄存器, //0 g值被否定,并四舍五入至最接近偏移寄存器的LSB:(round為四舍五入計(jì)算)
//XOFFSET = −Round(offx/4) , YOFFSET = −Round(offy/4) ,其中由于靜止時(shí)XY軸數(shù)據(jù)接近0,而
//z軸接近255,所以ZOFFSET = −Round[(offz-256)/4] ,其中offz-256相當(dāng)于調(diào)轉(zhuǎn)Z軸,此時(shí)三個(gè)//軸靜止時(shí)數(shù)據(jù)都接近0,并且他們的結(jié)果要取補(bǔ)碼
ADXL345_WR_Reg(OFSX,*xval);
ADXL345_WR_Reg(OFSY,*yval);
ADXL345_WR_Reg(OFSZ,*zval);
}
//讀取 3 個(gè)軸的數(shù)據(jù)
//x,y,z:讀取到的數(shù)據(jù)
void ADXL345_RD_XYZ(short *x,short *y,short *z)
{
u8 buf[6],i;
IIC_Start();
IIC_Send_Byte(ADXL_WRITE); //發(fā)送寫(xiě)器件指令
IIC_Wait_Ack();
IIC_Send_Byte(0x32); //發(fā)送寄存器地址(數(shù)據(jù)緩存的起始地址為 0X32)
IIC_Wait_Ack();
IIC_Start(); //重新啟動(dòng)
IIC_Send_Byte(ADXL_READ); //發(fā)送讀器件指令
IIC_Wait_Ack();
for(i=0;i《6;i++)
{
if(i==5)buf[i]=IIC_Read_Byte(0); //讀取一個(gè)字節(jié),不繼續(xù)再讀,發(fā)送 NACK
else buf[i]=IIC_Read_Byte(1); //讀取一個(gè)字節(jié),繼續(xù)讀,發(fā)送 ACK
}
IIC_Stop(); //產(chǎn)生一個(gè)停止條件
*x=(short)(((u16)buf[1]《《8)+buf[0]); // 將兩個(gè)8位字節(jié)轉(zhuǎn)化為16位的高8位和低8位
*y=(short)(((u16)buf[3]《《8)+buf[2]);
*z=(short)(((u16)buf[5]《《8)+buf[4]);
}
//讀取 ADXL345 的數(shù)據(jù) times 次,再取平均
//x,y,z:讀到的數(shù)據(jù)
//times:讀取多少次
void ADXL345_Read_Average(short *x,short *y,short *z,u8 times)
{
u8 i;
short tx,ty,tz;
*x=0; *y=0; *z=0;
if(times)//讀取次數(shù)不為 0
{
for(i=0;i《times;i++)//連續(xù)讀取 times 次
{
ADXL345_RD_XYZ(&tx,&ty,&tz);
*x+=tx; *y+=ty; *z+=tz;
delay_ms(5);
}
*x/=times; *y/=times; *z/=times;
}
}
//得到角度
//x,y,z:x,y,z 方向的重力加速度分量(不需要單位,直接數(shù)值即可)
//dir:要獲得的角度.0,與 Z 軸的角度;1,與 X 軸的角度;2,與 Y 軸的角度。
//返回值:角度值。單位 0.1° 。
short ADXL345_Get_Angle(float x,float y,float z,u8 dir)
{
float temp,res=0;
switch(dir)
{
case 0://與自然 Z 軸的弧度
temp=sqrt((x*x+y*y))/z;
res=atan(temp);
break;
case 1://與自然 X 軸的弧度
temp=x/sqrt((y*y+z*z));
res=atan(temp);
break;
case 2://與自然 Y 軸的弧度
temp=y/sqrt((x*x+z*z));
res=atan(temp);
break;
}
return res*1800/3.14; //把弧度轉(zhuǎn)化為角度
ADXL345是一種MEMS加速度計(jì),廣泛應(yīng)用于許多領(lǐng)域,如運(yùn)動(dòng)追蹤、健康監(jiān)測(cè)和自動(dòng)導(dǎo)航等。然而,有時(shí)候我們可能會(huì)遇到ADXL345在klipper中不...
2024-01-07 標(biāo)簽:控制器驅(qū)動(dòng)程序加速度計(jì) 941 0
ADXL345和MPU6050是兩種常見(jiàn)的加速度計(jì)和陀螺儀傳感器,用于測(cè)量物體的加速度和旋轉(zhuǎn)速度。它們?cè)谠O(shè)計(jì)、性能和應(yīng)用方面有一些區(qū)別。在本文中,我們將...
2024-01-04 標(biāo)簽:數(shù)據(jù)傳輸ADXL345陀螺儀傳感器 7563 0
基于STM32設(shè)計(jì)的自動(dòng)剎車(chē)燈
本項(xiàng)目實(shí)現(xiàn)了通過(guò)安裝ADXL345陀螺儀和四枚LED燈還有STM32F103C8T6主控芯片來(lái)實(shí)現(xiàn)自行車(chē)自動(dòng)剎車(chē)燈的功能。當(dāng)自行車(chē)上安裝了該設(shè)備后,AD...
ADXL345三軸數(shù)字加速度計(jì)的驅(qū)動(dòng)設(shè)計(jì)與實(shí)現(xiàn)
移動(dòng)設(shè)備的廣泛應(yīng)用增加對(duì)移動(dòng)過(guò)程中各種參數(shù)的檢測(cè)需求。ADXL345三軸數(shù)字加速度計(jì)可以用來(lái)檢測(cè)加速度、進(jìn)而測(cè)量?jī)A斜角度等。在這一篇中,我們將討論ADX...
2022-12-08 標(biāo)簽:加速度計(jì)驅(qū)動(dòng)設(shè)計(jì)ADXL345 7982 0
將ADXL345加速度計(jì)與Arduino UNO連接的方法
在這里,我們討論的是ADXL345 加速度計(jì),它用于測(cè)量 x、y 和 z 軸的加速度或速度變化。這些小型傳感器用于汽車(chē)和自行車(chē)以檢測(cè)事故以展開(kāi)安全氣囊,...
這款A(yù)DXL345三軸加速度采用ADXL345芯片,具有體積小,功耗低的特點(diǎn),13位數(shù)字精度分辨能夠測(cè)量超過(guò)±16g的加速度變換。信號(hào)輸出為16位數(shù)字輸...
ADXL202雙軸加速度計(jì)在導(dǎo)航系統(tǒng)中有重要的作用
過(guò)去十年來(lái),使用全球定位系統(tǒng)(GPS)的車(chē)輛導(dǎo)航越來(lái)越受到關(guān)注; GPS導(dǎo)航經(jīng)常安裝在當(dāng)今的高端豪華車(chē)和許多商用車(chē)中。
2019-04-12 標(biāo)簽:ADXL345 2540 0
采用ADXL345實(shí)現(xiàn)功能全面的計(jì)步器設(shè)計(jì)
計(jì)步器是一種頗受歡迎的日常鍛煉進(jìn)度.,可以激勵(lì)人們挑戰(zhàn)自己,增強(qiáng)體質(zhì),幫助瘦身。早期設(shè)計(jì)利用加重的機(jī)械開(kāi)關(guān)檢測(cè)步伐,并帶有一個(gè)簡(jiǎn)單的計(jì)數(shù)器。晃動(dòng)這些裝置...
2019-02-06 標(biāo)簽:傳感器微機(jī)電系統(tǒng)ADXL345 1.9萬(wàn) 0
基于單片機(jī)的計(jì)步器設(shè)計(jì)和實(shí)現(xiàn)
計(jì)步器是一種頗受歡迎的日常鍛煉進(jìn)度監(jiān)控器,可以激勵(lì)人們挑戰(zhàn)自己,增強(qiáng)體質(zhì),幫助瘦身。早期設(shè)計(jì)利用加重的機(jī)械開(kāi)關(guān)檢測(cè)步伐,并帶有一個(gè)簡(jiǎn)單的計(jì)數(shù)器。晃動(dòng)...
手勢(shì)游戲模擬器開(kāi)源設(shè)計(jì)立即下載
類(lèi)別:電子資料 2023-06-19 標(biāo)簽:模擬器ADXL345Raspberry Pi
ADXL345的數(shù)據(jù)手冊(cè)和原理圖及測(cè)試程序免費(fèi)下載立即下載
類(lèi)別:IC datasheet pdf 2019-12-09 標(biāo)簽:傳感器存儲(chǔ)器二進(jìn)制
ADXL345三軸數(shù)字iMEMS運(yùn)動(dòng)傳感器的性能分析
ADXL345是一款新型低功耗三軸數(shù)字iMEMS運(yùn)動(dòng)傳感器。本演示視頻展示了該器件的獨(dú)特省電特性和超凡的分辨率。
采用ADXL345加速度計(jì)實(shí)現(xiàn)球形相機(jī)的全景拍攝
球形相機(jī)拋向空中時(shí),可以拍攝完整的球面全景照片。到達(dá)經(jīng)ADXL345加速度計(jì)確定的最高點(diǎn)時(shí),36個(gè)手機(jī)攝像頭模塊會(huì)拍攝一張完整的全景照片。音樂(lè):ADO ...
ADXL345 MEMS加速度計(jì)開(kāi)發(fā)板的設(shè)置和使用方法
ADXL345 MEMS加速度計(jì)開(kāi)發(fā)板。由ADI公司的Nitzan Gadish說(shuō)明如何設(shè)置和使用ADXL345開(kāi)發(fā)板。該板能夠捕捉3軸在時(shí)間上的數(shù)據(jù),...
2019-07-16 標(biāo)簽:mems加速度計(jì)開(kāi)發(fā)板 4988 0
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語(yǔ)言教程專(zhuān)題
電機(jī)控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動(dòng)駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無(wú)刷電機(jī) | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機(jī) | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進(jìn)電機(jī) | SPWM | 充電樁 | IPM | 機(jī)器視覺(jué) | 無(wú)人機(jī) | 三菱電機(jī) | ST |
伺服電機(jī) | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國(guó)民技術(shù) | Microchip |
Arduino | BeagleBone | 樹(shù)莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |