主控用的是msp430,传感器MPU6050,驱动mos管,空心杯电机,外加一个oled显示屏显示数据调试

一、软件部分

1.MPU6050,DMP读取欧拉角

  1. 这个过程中遇到很多问题,首先移植DMP固件库
    需要以下6个文件

    修改inv_mpu.c文件里的一些3个函数,第一个是iic写,第二个iic连续读,第三个延时
  2. 然后就是6050初始化和DMP初始化
    我移植完后发现DMP初始化出错了,然后就一步一步的调试,先是发现第四步,加载dmp固件dmp_load_motion_driver_firmware()函数出了问题,最终发现是memcmp(firmware+ii, cur, this_write) 这步过不去,当我把前面的LOAD_CHUNK  (16) 16改为1 后发现通过了,就觉得是我的iic读函数出了问题,但我是完全移植的stm32的程序,怎么会出错呢?然后我就跳过了这步的错误参数改为1,继续往后调试(最终我的决定是错误的,问题就出在这里的iic读,这里浪费了很多时间
    最终发现是iic读里面的发送应答出了问题,我把发送ack和nack换成了2个函数,发现错误完美解决了

    /**************************************
    发送应答信号
    入口参数:ack (0:ACK 1:NAK)
    **************************************/
    void MPU_SendACK(uchar ack)
    {MPU_SCL = 0;      GPIO_MultiBits_Init(MPU_SDA_PORT,MPU_SDA_PIN,GPO);MPU_SDA = ack;                  //写应答信号DELAY_US(1);MPU_SCL = 1;                    //拉高时钟线DELAY_US(1);                 //延时MPU_SCL = 0;                    //拉低时钟线}void MPU6500_I2C_ack(void)
    {MPU_SCL=0;GPIO_MultiBits_Init(MPU_SDA_PORT,MPU_SDA_PIN,GPO);MPU_SDA=0;MPU_SCL=1;DELAY_US(1);MPU_SCL=0;DELAY_US(1);MPU_SDA=1;
    }void MPU6500_I2C_NoAck(void)
    {MPU_SCL=0;GPIO_MultiBits_Init(MPU_SDA_PORT,MPU_SDA_PIN,GPO);MPU_SDA=1;DELAY_US(1);MPU_SCL=1;DELAY_US(1);MPU_SCL=0;DELAY_US(1);
    }/**************************************
    从IIC总线接收一个字节数据
    **************************************/
    uchar MPU_RecvByte(unsigned char ack)
    {unsigned char i,receive=0;GPIO_MultiBits_Init(MPU_SDA_PORT,MPU_SDA_PIN,GPI);//SDA设置为输入for(i=0;i<8;i++ ){MPU_SCL=0; DELAY_US(2);MPU_SCL=1;receive<<=1;if(P3IN&BIT5)receive++;   DELAY_US(2); }                  if (ack)//MPU_SendACK(0); //发送ACK MPU6500_I2C_ack();else//MPU_SendACK(1);//发送nACK  MPU6500_I2C_NoAck();return receive;
    }/*iic连续读函数*/
    int i2cRead(uint8_t addr, uint8_t reg, uint8_t len, uint8_t *buf)
    {MPU_Start();Write_MPU_Byte(addr << 1);if (!MPU_RecvACK()) {MPU_Stop();return 1;}Write_MPU_Byte(reg);MPU_RecvACK();MPU_Start();Write_MPU_Byte((addr << 1)+1);MPU_RecvACK();while (len) {if (len == 1)*buf = MPU_RecvByte(0);//发送ackelse*buf = MPU_RecvByte(1);//发送nackbuf++;len--;}MPU_Stop();return 0;
    }
  3. 解决上面的iic读后,后面的所有问题就都解决了,欧拉角也读了出来

二、硬件部分

因为材料比较短缺加上线太硬杆还是拿筷子做的,做出来后平衡性不是太好,想尽各种办法使他达到平衡,下面是最终的效果图

风力摆

电赛风力摆制作过程中遇到的问题相关推荐

  1. 2021-06-13(自用)电赛风力摆学习记录1

    目录 程序阅读 题目解析 第一问--MODE1 第二问--MODE2 第三问--MODE3 第四问--MODE4 第五问--MODE5 程序架构 indkey Motor MPU6050 usart1 ...

  2. 参加智能车大赛还是电赛?在做电磁炮中我找到了答案

    我们是来自中北大学的参赛队伍(焦道坤,赵之岑,李炳金),同时参加了智能车和电赛,并在2019年全国电子设计竞赛H题组获得国一的成绩,感谢达尔闻邀约. 应标题,我的答案是:智能车-- 虽然连续两年做智能 ...

  3. 2020年电赛坡道小车

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.小车的总体构成 二.原理介绍及程序实现 1.红外传感器 2.舵机的转向实现 3.编码器 4.定时器的相关配置 5电 ...

  4. 通话过程中显示呼叫失败_电销行业如何破局?深海捷云呼叫中心协助企业通过挑战...

    呼叫中心在电销销售过程中发挥着重要的作用,呼叫中心不仅是承载电销的重要渠道,也是电销服务的重要平台.在监管力度不断加大的背景下,电销行业呼叫中心该如何破局? 现在部分电销行业进入调整期,增长压力越来越 ...

  5. 如何准备电赛?19年电赛经验总结!

    关注.星标公众号,直达精彩内容 写在前面的话 最近忙着各大厂的实习面试,趁着准备简历的功夫回顾了一下19年电赛的比赛经历,总体来说还算说得过去,现在把我参加电赛的经验分享出来,希望对之后的学弟学妹们有 ...

  6. 来了,2020年湖南省电赛获奖名单!有你学校吗?

    有你的学校吗? 比赛经验贴(点击下方即可查看) 「第一弹」电子设计大赛应该准备什么? 「第一篇」大学生电子设计竞赛,等你来提问. 「第二篇」全国一等奖,经验帖. 「第三篇」电赛,这些你必须知道的比赛细 ...

  7. 19年电赛经验总结-应该如何准备电赛

    19年电赛经验总结-应该如何准备电赛 写在前面的话 1.赛前准备 2.比赛经历 3.经验总结 写在最后的话 写在前面的话 最近忙着各大厂的实习面试,趁着准备简历的功夫回顾了一下19年电赛的比赛经历,总 ...

  8. 2019电赛--无人机题目OpenMV总结

    此文章在我的博客链接:https://sublimerui.top/archives/d508d500.html NOTES:上一篇相关博文,准备阶段OpenMV学习笔记链接: https://blo ...

  9. 相分离在聚集多价信号蛋白过程中的作用Phase transitions in the assembly of multivalent signalling proteins

    Phase transitions in the assembly of multivalent signalling proteins 在本文中作者表明了多种合成,多价大分子和(包括多架构的蛋白质和 ...

最新文章

  1. Android学习笔记(二三): 多页显示-Flipper的使用
  2. 填充磁盘空间的工具和方法
  3. redis 集群 分片 扩容_Redis高可用之集群实现原理
  4. 用十行代码快速创建权限管理系统
  5. linux下protobuf-c的安装
  6. ACM学习历程—HDU1584 蜘蛛牌(动态规划 状态压缩 || 区间DP)
  7. 网站 云服务器ecshop,ecs云服务器搭建ecshop
  8. c语言非标准输出电源适配器,五分钟了解设计模式(3)---适配器模式
  9. SqList *L与SqList *L的区别
  10. HTML网页背景特效和鼠标点击特效
  11. 【Mockplus教程】MAC上安装Mockplus
  12. VTK:图形基本操作进阶——表面重建技术(等值面提取)
  13. shell脚本自动更新ca证书
  14. JavaScript基础小节——手写重点整理02
  15. CONV SAME CONV VAILD CONV
  16. laravel集成谷歌验证_如何将Google的两因素身份验证添加到Laravel
  17. php图片留白,img底部留白问题的六大解决方法
  18. 预训练综述 Pre-trained Models for Natural Language Processing: A Survey 阅读笔记
  19. idea在mac上面操作的快捷键
  20. 我的asterisk 接入电信ims之旅【把电信座机提取到手机上,实现手机不插卡也用打电话】

热门文章

  1. 【Python3爬虫】我爬取了七万条弹幕,看看RNG和SKT打得怎么样
  2. ajax传递数组至java台并接受
  3. 疯狂java讲义第17章网络编程课后习题答案
  4. 用好ChatGPT之准确分配角色
  5. 淘宝商品详情数据接口 关键字搜索接口 请求代码分享
  6. 量子计算与量子信息之量子隐形传态
  7. 水产行业数字化B2B电商平台实现精细化管理,驱动企业业绩增长
  8. win10输入法设置默认搜狗输入法
  9. memento模式_Memento设计模式概述
  10. paddle 模型与层---- 笔记(边学边练)