完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
为什么要制作一个基于Arduino Pro Micro与ADXL345的陀螺仪体感鼠标呢?
怎样制作一个基于Arduino Pro Micro与ADXL345的陀螺仪体感鼠标呢? |
|
相关推荐
1个回答
|
|
硬件准备
说到增强游戏体感,拿着实体枪去战斗,第一想到的就是任天堂的zapper了,但是他的价格与游戏设定,Emm… 想要实现体感控制,作为一名爱好者,当然是DIY,首先我们需要陀螺仪来感应操控的动作 ,然后就需要一个驱动器来帮助我们处理信号并传给游戏主机,在这里我选择的开发板是Arduino Pro Micro和陀螺仪ADXL345,当然从某宝上买回来得自己焊下引脚。 线路图 当硬件准备好了之后就是怎么接线了 程序控制 下面就是程序控制了,先预装好Arduino IDE,首先要引用两个类 #include #include 读取ADXL345的XY值 y345 = -WireRead2( ADXAddressR, DATAX0,DATAX1); x345 = WireRead2( ADXAddressR, DATAY0,DATAY1); if(x345<0) x345*=1.5; if(y345>0) y345*=1.5; speedoX = constrain(pow(abs(x345),2)/100,0,12700); speedoY = constrain(pow(abs(y345),2)/100,0,12700); speedo(); 判断上下左右 if( x345 > value345X ){ x = -speedoxVal; }else if( x345 < -value345X ){ x = speedoxVal; }else x = 0; if( y345 > value345Y ){ y = -speedoyPos; }else if( y345 < -value345Y ){ y = speedoyPos; }else y = 0; 左键右键连击 myMouseLeft.press_mouse(); myMouseRight.press_mouse(); wheel = mywheel.read_wheel(); if( millis() - clickTime > clickSpeedo ){ if(!digitalRead(CLICK)) Mouse.click(); clickTime = millis(); } PWM控制鼠标速度 if( (micros() - ctrlMouseTimeX >= PWMSTOPX*80)//“停” && valuePWMX == true){ ctrlMouseTimeX = micros(); valuePWMX = !valuePWMX; xVal = x; }else if ( (micros() - ctrlMouseTimeX >= PWMGOX *80)//“走” && valuePWMX == false ){ ctrlMouseTimeX = micros(); valuePWMX = !valuePWMX; xVal = 0; } if( (micros() - ctrlMouseTimeY >= PWMSTOPY*80) //“停” && valuePWMY == true){ ctrlMouseTimeY = micros(); valuePWMY = !valuePWMY; yPos = y; }else if ( (micros() - ctrlMouseTimeY >= PWMGOY *80)//“走” && valuePWMY == false ){ ctrlMouseTimeY = micros(); valuePWMY = !valuePWMY; yPos = 0; } |
|
|
|
只有小组成员才能发言,加入小组>>
3323 浏览 9 评论
3000 浏览 16 评论
3498 浏览 1 评论
9073 浏览 16 评论
4093 浏览 18 评论
1194浏览 3评论
614浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
603浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2343浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1902浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 21:56 , Processed in 1.190647 second(s), Total 50, Slave 41 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号