MPU6050与卡尔曼滤波算法实践(MPU6050sketch01.ino)
#include "Wire.h"#include "I2Cdev.h"#include "MPU6050.h" MPU6050 accelgyro; unsigned long now, lastTime = 0;float dt; //微分时间 int16_t ax, ay, az, gx, gy, gz; //加速度计陀螺仪原始数据float aax=0, aay=0,aaz=0, agx=0, agy=0, agz=0; //角度变量long axo = 0, ayo = 0, azo = 0; //加速度计偏移量long gxo = 0, gyo = 0, gzo = 0; //陀螺仪偏移量 float pi = 3.1415926;float AcceRatio = 16384.0; //加速度计比例系数float GyroRatio = 131.0; //陀螺仪比例系数 uint8_t n_sample = 8; //加速度计滤波算法采样个数float aaxs[8] = {0}, aays[8] = {0}, aazs[8] = {0}; //x,y轴采样队列long aax_sum, aay_sum,aaz_sum; //x,y轴采样和 float a_x[10]={0}, a_y[10]={0},a_z[10]={0} ,g_x[10]={0} ,g_y[10]={0},g_z[10]={0}; //加速度计协方差计算队列float Px=1, Rx, Kx, Sx, Vx, Qx; //x轴卡尔曼变量float Py=1, Ry, Ky, Sy, Vy, Qy; //y轴卡尔曼变量float Pz=1, Rz, Kz, Sz, Vz, Qz; //z轴卡尔曼变量 void setup(){ Wire.begin(); Serial.begin(115200); accelgyro.initialize(); //初始化 unsigned short times = 200; //采样次数 for(int i=0;i
- 2019-12-11下载
- 积分:1
Android 绘制吃豆子小人及图片自动变换显示功能
Android 绘制吃豆子小人,同时与之搭配的还有图片自动变换显示的功能。
Paint paint = new Paint();//创建画笔对象
canvas.drawColor(Color.BLACK);//绘制背景
canvas.drawBitmap(bmpMan, centerX-radius, centerY-radius, null);//绘制吃豆小人
paint.setColor(Color.BLACK); //设置画笔颜色
paint.setAntiAlias(true);
RectF oval = new RectF(centerX-radius-1,centerY-radius-2,centerX-radius-1+2*radius+2,centerY-radius-2+2*radius+4);
canvas.drawArc(oval, 360-angle+90*direction, 2*angle, true, paint); //绘制扇形实现张嘴闭嘴
if(System.currentTimeMillis()-timeStamp > 5000){//如果时间间隔超过5秒
timeStamp = System.currentTimeMillis(); //重新记录时间
currPhoto = (currPhoto+1)%bmpPhotos.length; //更换照片
}
canvas.drawBitmap(bmpPhotos[currPhoto], 80, 40, null);//绘制照片
super.onDraw(canvas);
- 2022-05-16 13:25:29下载
- 积分:1