Mjoy16就是这么简单
用ATmega16做8轴游戏控制器
ATmega16是ATmel公司的AVR单片机。之所以用ATmega16,而没有用传统的89S51或89S52。其原因在于本应用基于用AVR单片机的V-USB技术,使用单片机的软件虚拟USB口,对windows而言,是虚拟了一个HID的人体工学设备,因此不必再单独开发上位机程序和驱动(这都是windows默认自带的)不存在破解的问题。MJ16用的是USB1.0协议,MJ16精度是3个10位加5个8位,都是1步进的,整个电路总电流要低于500mA,电位器用1K的到470K的都可以。
mega16型号:
ATmega16L,工作电压2.7~5.5V,频率速度为0~8MHz ATmega16,工作电压4.5~5.5V,频率速度为0~16MHz
最新的型号是ATmega16A,工作电压2.7~5.5V,频率速度为0~16MHz,推荐(因为USB接口必须用12MHz速率)。
USB必须要3.3V电压,如果你的系统电压在3.3-3.6之间,就可以省掉这两个IN4728稳压二极管。发现有部分朋友是系统提示这个问题“无法识别的设备”,确认没有其他硬件连接错误和熔丝错误,解决办法是在USB-5V电压输入那里加AMS 1117-3.3v稳压芯片,把输入电源降到3.3V。也不需要那2个IN4728稳压二极管了。
(右图右下角就是AMS 1117-3.3v稳压芯片,82欧姆电阻换成68欧姆了)
指导一下制作顺序:
1、按照电路图搭建硬件(可以先用面包板测试)。
2、制作ISP下载线,(笔记本电脑没有并口,购买或制作USBASP下载线)。 3、下载ponyprog或progisp167烧录软件,下载固件程序Hex和eep文件。 4、用isp下载线连接计算机和MJoy16。(MJoy16要上电)
5、运行烧录软件,将Hex文件烧录到Mega16,小心编辑熔丝(准备一个有源晶振做恢复用)。
至此,MJoy16算制作完成,断开isp线缆,直接将MJoy16连接电脑usb口,系统提示找到人体工学设备MJoy16。 然后,根据你的需要,对轴和按钮进行连接(不用的轴要用短路帽进行接地,否则会视为有信号输入)。
一、硬件清单:
名称--------------------型号-------------数量(pic)--------------注释 ATmega16 -------- 16A PI/PU ------------ 1 --------------(直插或贴片)
40Pin直插ic座 ----- 40pin -------------- 1 -------------- (也可不用IC座,不重复回收mega16) 12M 晶振 ----------- 12MHz ------------ 1 -------------- (mega16内置1M晶振,使用外接12M晶振) USB母(公)座 ----- --------------------- 1 ----------------(公座可以直接用USB延长线) 瓷片电容104 -------- 0.1uf --------------- 3 --------------- (电源滤波用)
瓷片电容 ------------ 15pf ---------------- 2 ----------------(接晶振2端,然后接地) 直插电感 ----------- 10uH ---------------- 1 --------------- (抗干扰滤波用)
电解电容 --------- 10uf/16V -------------- 1 ----------------(电源滤波用,耐压25V也可以) 电阻4.7k-----------------------------------1------------------(下拉电阻4.7k,接D-) 电阻2.2k-----------------------------------1------------------(上拉电阻2.2k,接D-) 电阻82欧 ----------------------------------2 ----------------(82欧接单片机输入端)
8x10k排阻(9脚) ----- 8x10k ---------- 1 -----------------(公共端接电源AVCC,其他接输出PC0~7上拉) 3.3v稳压二极管 ------- IN4728 ------------ 2 -------------- (USB必须要3.3V电源稳压,与AMS 1117二选一) 开关二极管 ------------ IN4148 ---------- 100 ---------------(开关滤波)
洞洞板5X7cm ----- 24孔(H)x18孔(w) ----- 1 -------- (也可以先用面包板测试) 1x40单排针 -------------------------------4 ----------------- (再买些杜邦线)
跳线冒 ------------------------------------- 15 ----------------(不用的轴要用短路帽接地)
AMS 1117-3.3v稳压芯片------------- -----1 ----- ------------(作用3.3V电源降压,建议安装。与IN4728二选一) 1~4MHZ有源晶振-------------------------1 ----- -------------(修复熔丝)
10K电位器(或50K)-------------------------8----------------(推荐霍尔线性电位器,无接触无磨损)
你还需要以下工具:
40W烙铁 ----- -----(尖头和刀头都准备一个) 焊锡丝 ----- -----(0.8mm低熔点) 镊子 ----- -----(不是必须,贴片元件必须)
杜邦线-------(一个轴需3位杜邦插头,多准备几种杜邦插头) 有绝缘外皮的细导线----- -----(飞线走线)
25针并口(公头)插头一个----- ---(笔记本电脑没有并口,购买或制作USBASP下载线) 330欧 1/4w 电阻四只-----------------(也可以不接,为了主板安全,还是接上)
电路图:
装配图(修正后的):
Mjoy16板上的ISP口就是芯片左边的6个1pin排针,从上至下分别是: MOSI,MISO,SCK,RESET,VCC,GND。使用这个6针,可以直接接并口下载或USBASP下载器,非常方便。VCC为电源正,GND为电源负(地线)。
使用说明——芯片右下角3pin针,使用的ADC模拟8个轴(标号XYZ等),从靠近芯片的一侧数起分别信号输入端,负极和正极。顺着往左看,来到芯片左下角,有8个1pin的针(标号1~8),这8根是96个按钮的行线和芯片左上的4个1pin针(I~L)及右上方8个1pin针(A~H)对应,这12根是列线,所以总的按钮是8*12=96个。当然,你也可以装上苦力帽(一个苦力帽占用4个),也可以装脉冲开关(占用两个)。
左下方3对2pin的针,这三组是功能按钮。最左边2pin的针是一组,用于校准init;中间的2pin是Mode;右边2pin是center。关于init是用于初次使用的时候,连接这2pin,然后将设备插入usb端口,用于初次校准和量程测试,完成后断开。 center是有个可以设定中点是否自动居中的功能,原作者说可以用在类似襟翼、扰流板之类的地方,默认情况是不用设置的。Mode是开关按键类型的切换。
校准操作,请把所有需要的轴设备全部接好后,用跳线短接INT后插上USB,即可。(而后拔掉USB,把跳线去掉即可)
更多的功能还希望大家多摸索,有了心得记得放上来分享~~
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库用ATmega16做8轴游戏控制器 - 图文在线全文阅读。
相关推荐: