>
>> 浏览文章
win7下安装arduino驱动失败的解决方法
遇到win7下arduino驱动安装失败的情况,可以先尝试:
把mdmcdp.inf文件复制到C:\Windows\inf下;
把usbser.sys文件复制到C:\Windows\System32\drivers下;
重新拔插usb线,观察驱动安装情况。
许多人完成以上两步就能解决问题。
如果仍然安装失败:
到Aarduino安装目录下(例如:我自己的安装目录为D:\Arduino\soft),找到drivers文件夹,打开后可以找到一个压缩文件:Old_Arduino_Drivers.zip,把这个压缩文件解压到Old_Arduino_Drivers文件夹中,放在
D:\Arduino\soft\drivers下(横线部分为自己安装目录,根据自己的安装目录自行更改,不再提示)。
& & 重新插入usb线。然后,鼠标右击“我的电脑”,打开“设备管理器”,查看arduino驱动设备的安装情况,此时arduino驱动设备应该显示为“未知设备”,右击该“未知设备”,选择“更新驱动程序软件”。
选择“浏览计算机以查找驱动程序软件”。
把刚刚解压的文件夹的目录写到下面的框内,点击“下一步”。
等待驱动安装成功。
如果仍然安装失败,再打开C:\Windows\inf\setupapi.dev.log日志文件,里面记录了PC硬件安装运行的情况。因为arduino驱动是刚刚安装的,所以到该日志文件的末尾去找安装信息。
在这个日志文件里寻找类似这样的目录地址:
一般情况下,这前半部分目录地址(C:\Windows\System32\DriverStore\FileRepository)是一样的,后半部分不一样,例如我的文件夹名字为arduino.inf_x86_neutral_728dfe。
所以,进入到C:\Windows\System32\DriverStore\FileRepository下,寻找自己对应的arduino文件夹。
打开这个文件夹,把Arduino UNO
REV3.inf、mdmcpq.inf、mdmcpq.PNF、usbser.sys这4个文件复制到这个文件夹中。(如下图)
重新插入usb线,等待驱动安装成功。
【】【】【】【】
上一篇:下一篇:
CopyRight @
单片机教程网 51hei.com , All Rights Reserved基于Protues的Arduino学习笔记01-Arduino&UNO实验板设计
本文将带你使用protues
7.10搭建一个Arduino UNO的实验板,方便以后在protues仿真软件上进行Arduino的实验。参考本文,你还可以自己动手构建出Arduino MEGA
2560等一系列Arduino开发平台。
Arduino UNOArduino USBArduinoArduino&UNOATmega32814/6PWM6Flash Memory
32KB&0.5KBbootloaderSRAM 2KBEEPROM 1KB&16 MHz1
bootloaderArduino IDEHEXATmega328P
UNOArduino UNO1Arduino UNOATmega328PArduino
图1 Arduino UNO与ATmega328P引脚关系图【文献2】
ProtuesLabcenter ElectronicsEDAEDA3
7.10ATmega328P,ATmega328P2RES3LED-GREENLED4COMPIM,5
选取ATmega328P控制器
选取RES(电阻)
选取LED-GREEN指示灯
选取“COMPIM”串口通讯接口
XYATmega328PRESLED-GREENCOMPIM6
元器件放置后的布局
Arduino UNO7UNOArduino UNO8
图7 连线之后的Arduino
图8 经过修饰之后的Arduino
ATmega328PATmega328P910
ATmega328P初始设置
ATmega328P更改后的设置
ATmega328P119600COM212COM1
图11 COMPIM初始设置
COMPIM更改后的设置
protuesprotuesArduino UNO
1Virtual.Serial.Port.Driver
COM1COM2COMPIMCOMPIM
2Arduino IDE
&ArduinoHexProteusArduinoArduinoHexArduino &1.0HexhexhexPorteusATMEGA328P
Arduino IDE的参数设置
Arduino IDE的具体设置
&&DHexArduino_HexArduinoFile-&preferences6Show verbose output duringpreferences.txtArduinopreferencesOKArduino IDEpreferencesbuild.path=d:\Arduino_HexArduinod:\Arduino_HexHex4
参考文献:
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。查看: 169576|回复: 290
arduino学习笔记37 - Arduino Uno + MPU6050首例整合性6轴演示实验
本帖最后由 Randy 于
23:05 编辑
经过和lucsong 一起学习了几天时间,慢慢的有些了解MPU6050这个6轴的姿态模块,现在决定整理一下这个模块与Arduino的结合使用方法!(如有错误麻烦请指出,谢谢!)
Mpu6050为全球首例整合3轴陀螺仪、3轴加速器、含9轴融合演
MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术
InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。
MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。
MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。
运动感测游戏
电子稳像 (EIS: Electronic Image Stabilization)
光学稳像(OIS: Optical Image Stabilization)
行人导航器
“零触控”手势用户接口
姿势快捷方式
智能型手机
平板装置设备
手持型游戏产品
可携式导航设备
1、以数字输出6轴或9轴的旋转矩阵、四元数(quaternion)、欧拉角格式(Euler Angle forma)的融合演算数据。
2、具有131 LSBs/°/sec 敏感度与全格感测范围为±250、±500、±1000与±2000°/sec 的3轴角速度感测器(陀螺仪)。
3、可程式控制,且程式控制范围为±2g、±4g、±8g和±16g的3轴加速器。
4、移除加速器与陀螺仪轴间敏感度,降低设定给予的影响与感测器的飘移。
5、数字运动处理(DMP: Digital Motion Processing)引擎可减少复杂的融合演算数据、感测器同步化、姿势感应等的负荷。
6、运动处理数据库支持Android、Linux与Windows
7、内建之运作时间偏差与磁力感测器校正演算技术,免除了客户须另外进行校正的需求。
8、以数位输出的温度传感器
9、以数位输入的同步引脚(Sync pin)支援视频电子影相稳定技术与GPS
10、可程式控制的中断(interrupt)支援姿势识别、摇摄、画面放大缩小、滚动、快速下降中断、high-G中断、零动作感应、触击感应、摇动感应功能。
11、VDD供电电压为2.5V±5%、3.0V±5%、3.3V±5%;VDDIO为1.8V± 5%
12、陀螺仪运作电流:5mA,陀螺仪待命电流:8A;加速器运作电流:8A,加速器省电模式电流: 8A@10Hz
13、高达400kHz快速模式的I2C,或最高至20MHz的SPI串行主机接口(serial host interface)
14、内建频率产生器在所有温度范围(full temperature range)仅有±1%频率变化。
15、使用者亲自测试
16、10,000 g 碰撞容忍度
17、为可携式产品量身订作的最小最薄包装 (4x4x0.9mm QFN)
18、符合RoHS及环境标准MPU-6000为全球首例整合性6轴运动处理组件,相较于多组件方案,免除了组合陀螺仪与加速器时之轴间差的问题,减少了大量的包装空间。MPU-6000整合了3轴陀螺仪、3轴加速器,并含可藉由第二个I2C端口连接其他厂牌之加速器、磁力传感器、或其他传感器的数位运动处理(DMP: Digital Motion Processor)硬件加速引擎,由主要I2C端口以单一数据流的形式,向应用端输出完整的9轴融合演算技术
InvenSense的运动处理资料库,可处理运动感测的复杂数据,降低了运动处理运算对操作系统的负荷,并为应用开发提供架构化的API。
MPU-6000的角速度全格感测范围为±250、±500、±1000与±2000°/sec (dps),可准确追緃快速与慢速动作,并且,用户可程式控制的加速器全格感测范围为±2g、±4g±8g与±16g。产品传输可透过最高至400kHz的I2C或最高达20MHz的SPI。
MPU-6000可在不同电压下工作,VDD供电电压介为2.5V±5%、3.0V±5%或3.3V±5%,逻辑接口VVDIO供电为1.8V± 5%。MPU-6000的包装尺寸4x4x0.9mm(QFN),在业界是革命性的尺寸。其他的特征包含内建的温度感测器、包含在运作环境中仅有±1%变动的振荡器。
从MPU6050的技术文档里我们可以看得出来一些重要参数出来!如果比例数是多少,芯片的特性都是可以看得出来的!
下面可以看一下以下几个图片,这样你也许会了解一些!
第一张是MPU6000与MPU6050芯片的比较!
6050芯片图.jpg (66.77 KB, 下载次数: 320)
11:53 上传
第二张是MPU6000与MPU6050芯片的最小驱动电路的连接!
6050连线图.jpg (63.93 KB, 下载次数: 290)
11:53 上传
第三张是陀螺仪的设计规范表格!
比例数6050.jpg (54.78 KB, 下载次数: 14262)
11:53 上传
第四张是加速度的设计规范表格!
ACC 比例数.jpg (57.75 KB, 下载次数: 268)
11:53 上传
如果您需要更多的知识,请翻看MPU6050的英文技术文档,里面已经写的很清楚了,还有中文文档,最近在准备进行翻译,稍后有中午的话也会给大家贴出!
下面是arduino与MPU6050的小模块的连线图:
硬件连接图.jpg (42.1 KB, 下载次数: 403)
11:53 上传
IMG_2149.jpg (104.88 KB, 下载次数: 327)
11:53 上传
A4接SDA& &&&A5接SCL& &vcc接3v3商家说可以接5v但是保守起见还是接了3.3v& &GND接GND
不过mpu受温度的影响精度相差比较大!
注意:本模块采用的是IIC通信方式,所以我们只需要连接四跟线就可以完成电路的连接,简单方便!
接着就是提供一下测试代码给大家玩玩,方便测试!// Arduino Wire library is required if I2Cdev I2CDEV_ARDUINO_WIRE implementation
// is used in I2Cdev.h
#include &Wire.h&
// I2Cdev and MPU6050 must be installed as libraries, or else the .cpp/.h files
// for both classes must be in the include path of your project
#include &I2Cdev.h&
#include &MPU6050.h&
// class default I2C address is 0x68
// specific I2C addresses may be passed as a parameter here
// AD0 low = 0x68 (default for InvenSense evaluation board)
// AD0 high = 0x69
MPU6050
int16_t ax, ay,
int16_t gx, gy,
#define LED_PIN 13
bool blinkState =
void setup() {
&&// join I2C bus (I2Cdev library doesn't do this automatically)
&&Wire.begin();
&&// initialize serial communication
&&// (38400 chosen because it works as well at 8MHz as it does at 16MHz, but
&&// it's really up to you depending on your project)
&&Serial.begin(38400);
&&// initialize device
&&Serial.println(&Initializing I2C devices...&);
&&accelgyro.initialize();
&&// verify connection
&&Serial.println(&Testing device connections...&);
&&Serial.println(accelgyro.testConnection() ? &MPU6050 connection successful& : &MPU6050 connection failed&);
&&// configure Arduino LED for
&&pinMode(LED_PIN, OUTPUT);
}
void loop() {
&&// read raw accel/gyro measurements from device
&&accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
&&// these methods (and a few others) are also available
&&//accelgyro.getAcceleration(&ax, &ay, &az);
&&//accelgyro.getRotation(&gx, &gy, &gz);
&&// display tab-separated accel/gyro x/y/z values
&&Serial.print(&a/g:\t&);
&&Serial.print(ax);
&&Serial.print(&\t&);
&&Serial.print(ay);
&&Serial.print(&\t&);
&&Serial.print(az);
&&Serial.print(&\t&);
&&Serial.print(gx);
&&Serial.print(&\t&);
&&Serial.print(gy);
&&Serial.print(&\t&);
&&Serial.println(gz);
&&// blink LED to indicate activity
&&blinkState = !blinkS
&&digitalWrite(LED_PIN, blinkState);
}
复制代码
以上这个代码是没有添加算法的,所以显示的是只是原始数据!
我们可以通过串口监视串口可以看到这样的结果!
MPU6050的水平原始数据.jpg (80.5 KB, 下载次数: 285)
11:53 上传
第二个测试代码是加了简简单单的算法之后的!其实很简单,看技术文档就可以了!
#include &Wire.h&
#include &I2Cdev.h&
#include &MPU6050.h&
MPU6050
int16_t ax, ay,
int16_t gx, gy,
bool blinkState =
void setup() {
& & Wire.begin();
& & Serial.begin(38400);
& & accelgyro.initialize();
void loop() {
& & accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
& & Serial.print(&a/g:\t&);
& & Serial.print(ax/16384); Serial.print(&\t&);
& & Serial.print(ay/16384); Serial.print(&\t&);
& & Serial.print(az/16384); Serial.print(&\t&);
& & Serial.print(gx/131); Serial.print(&\t&);
& & Serial.print(gy/131); Serial.print(&\t&);
& & Serial.println(gz/131);
& & blinkState = !blinkS
}
复制代码
校正后的数据.jpg (72.75 KB, 下载次数: 273)
11:53 上传
以上的结果有些偏差,原因是没有经过校正的,这个只是给大家提供参考,希望对您有所帮助谢谢!
另外有什么问题,也可以去翻看lucsong的,关于MPU6050的调试帖子,里面还是有些重要的东西哦!
下面是MPU6050的因为文档,中文还在找时间翻译。
不经过同意,请勿转载,谢谢!
添加实验时的文件相关库:
(10.85 KB, 下载次数: 6862)
23:05 上传
点击文件名下载附件
(31.47 KB, 下载次数: 6871)
23:05 上传
点击文件名下载附件
21:33 上传
点击文件名下载附件
1.6 MB, 下载次数: 7256
夏异 发表于
为什么A4接SDA,A5接SCL?搞不懂
如果是Uno板子,A4,A5就是被定义为SDA和SCL。请看手册。
注意如果是leonardo或其他板子,可就不是A4,A5了。
Serial.print(ax/16384); Serial.print(&\t&);
& & Serial.print(ay/16384); Serial.print(&\t&);
& & Serial.print(az/16384); Serial.print(&\t&);
数字16384要写为16384.0,要不然就是整除。
有个小bug哦
角度直接除以16384得到0了,要除以16384.0再输出
正纳闷怎么都是0的时候,看见Malc的回复了。&
太好了,我已经收藏你的这个帖子了,随时关注。
楼主厉害,对了上面你发的图,可以测出XYZ三个平移量,是吗?
GeMarK 发表于
楼主厉害,对了上面你发的图,可以测出XYZ三个平移量,是吗?
可以的。具体深入的知识还有待提供,一起努力吧!
一定要顶,randy文笔真好,希望快点翻译出来,加油
lucsong 发表于
一定要顶,randy文笔真好,希望快点翻译出来,加油
好,见笑了,我的文笔不好,读书时语文作文常常不懂写!悲催!嗯,抓时间出来才行。最近时间也紧,很多东西要学习,呵呵!
淘宝上看到的成品单6050模块 只要50块钱了。芯片30 性价比还是很高的,加一个磁定向做四轴的传感就完全够了(目前四轴的传感最多的就是4个模块&&三轴陀螺 加速计 磁定向 气压,其中气压实际上可有可无)
三轴陀螺加上加速度可以有效的解决长时间使用三轴陀螺的数据偏差(可以理解为转长了,芯片晕了)。美好啊~~~~
darkorigin 发表于
淘宝上看到的成品单6050模块 只要50块钱了。芯片30 性价比还是很高的,加一个磁定向做四轴的传感就完全够了 ...
是的,单个芯片那么贵,一个模块也就50元,这是市场所逼的结果,气压计我也觉得要不要无所谓,我比较同意你后面的那句话!
Randy 发表于
是的,单个芯片那么贵,一个模块也就50元,这是市场所逼的结果,气压计我也觉得要不要无所谓,我比较同意 ...
气压计主要是用来辅助计算所在海拔的(气压和海拔有对应关系),但是物理学基本常识告诉我们,这些都是相对的。因为天气对气压也有影响的。所以测得的其他和海拔的关系还要做修正。何况我们又不搞测绘。要啥子海拔嘛。如果要搞自动点对点飞行,直接上GPS就好了嘛,海拔更清晰。
这个我做了,但不是在Ardunio上面的,我是用STM32做的,几周前的了,今天刚刚买了个ardunio玩玩~
玩飞参的肯定要气压计。。。
nongxiaoming 发表于
这个我做了,但不是在Ardunio上面的,我是用STM32做的,几周前的了,今天刚刚买了个ardunio玩玩~
你用STM32做的啊,可以分享一下你的制作过程?如果可以的话,很感谢您哦!
迷你强 发表于
玩飞参的肯定要气压计。。。
气压计主要就是通过测量气压得到海拔参数撒?
关键是天气对气压还是有影响的吧。。。所以,数据。。。会有偏差吧
楼主你是学电子的么。。求入门书。。。
陈冬冬 发表于
楼主你是学电子的么。。求入门书。。。
是学电子的,准备走出学校大门而已,您想问什么入门书呢?是Arduino的?如果是请看一下这个链接哦!里面讲的这些都是不错的哦!
Powered byArduino UNO 点亮LED实验_百度经验
&&&&&&&&&硬件外设Arduino UNO 点亮LED实验听语音1234567
百度经验:jingyan.baidu.com开始玩儿Arduino系列经验,点亮一个外部LED发光二极管,创建你的第一个电路,输入代码,实现连接到IO口的LED每1秒闪烁1次。百度经验:jingyan.baidu.comArduino UNO 控制器 * 1个LED 发光二极管 5mm * 1个实验板连接跳线 * 1个470欧姆电阻 * 1个USB 数据线 * 1条面包板 * 1个百度经验:jingyan.baidu.com1如图所示,准备好实验要用到的硬件2了解LED发光二极管:LED 发光二极管需要的电流很小,反向击穿电压约5V,正向伏安特性曲线很陡,所以使用时必须串联限流电阻以控制通过管子的电流。限流电阻R可用下式计算:R=(E-U)/ I式中E为电源电压,U为LED的正向降压,I为LED的一般工作电流,红色发光二极管的工作电压一般为1.5V~2.0V,其工作电流一般为10mA~20mA,所以在5v的数字逻辑电路中,一般使用470欧电阻作为限流电阻。二极管正负极判断如下图所示,长脚为正极,短脚为负极。3了解实验面包板,面包板内部连接情况如下图所示:4如图所示进行电路图的搭界,连接时注意二极管二记性5将Arduino UNO控制器连接到电脑,如图所示,连接后ON灯亮起。6在下列程序复制到 Arduino IDE 中,如图所示:int LED = 7;void setup() {& && && && && &&&&// 定义7为输出引脚&&pinMode(LED, OUTPUT);& &&&}void loop() {&&digitalWrite(LED, HIGH);& &// 点亮LED&&delay(1000);& && && && && &// 持续1秒&&digitalWrite(LED, LOW);& & // 熄灭LED&&delay(1000);& && && && && &// 持续1秒}7选择端口和板子型号,将程序上传到 Arduino 控制器中,若上传成功,出现如下图所示效果,面包板的LED开始闪烁。END百度经验:jingyan.baidu.com连接时需要注意发光二极管的极性,正极通过电阻连接到Arduino UNO控制器的IO口,负极连接到GND经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(1)已投票(1)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验00040热门杂志第1期你不知道的iPad技巧3763次分享第1期win7电脑那些事6625次分享第2期新人玩转百度经验1399次分享第1期Win8.1实用小技巧2646次分享第1期小白装大神1910次分享◆请扫描分享到朋友圈