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,把跳线去掉即可)
更多的功能还希望大家多摸索,有了心得记得放上来分享~~
焊接完成的mjoy16的电路板(用IN4728稳压二极管):
两个15pf起振电容接12M晶振两端后接地, 10uh电感是低通滤波器用,两端接两104接地,vref(32脚)接104后接地,其他104和电解电容是电源滤波用。
查看mega16-16L说明文档——模拟噪声抑制技术
设备内部及外部的数字电路都会产生电磁干扰(EMI),从而影响模拟测量的精度。如果转换精度要求较高,那么可以通过以下方法来减少噪声:
1. 模拟通路越短越好。保证模拟信号线位于模拟地之上,并使它们与高速切换的数字信号线分开。
2. 原图示为Avcc引脚对地接100nf电容,和vcc之间接10uh电感, AVCC 应通过一个LC 网络与数字电压源VCC 连接。
3. 使用ADC 噪声抑制器来降低来自CPU 的干扰噪声。
4. 如果有ADC 端口被用作数字输出,那么必须保证在转换进行过程中它们不会有电平的切换。
结论:LC回路的目的是抑制噪声,保证精度。
二、制作下载线
网上很多方案的,有串口有并口,还有USB转接接口,都是可以用的。
ISP并口下载线:
74HC244的下载线
串口的
mega16是低电平复位,三极管不用接vcc,当基极有电流时,集电极和射极导通,reset被拉到低电平。
如果下载干扰大的话,32脚(AREF)视情况接Vcc。
笔记本必须用USBASP下载器(网上很多制作教程,但也必须要并口给下载线烧录程序):
三、 下载烧录Hex文件
软件:ponyprog或progisp167。
1、ISP连接硬件。
2、打开软件,下载Hex和Epp文件。
3、在最终烧写前,小心设置熔丝。
ISP连线见图:
mjoy板上的ISP口就是芯片左边6个1pin排针,从上至下分别是:
MOSI,MISO,SCK,RESET,VCC,GND,使用这个6针,可以直接接并口下载或USBASP下载器。
使用外部晶振12MHZ,用15pF起振电容,电容需接地。
首先设置端口和芯片。
然后点“配置”
再根据你的isp下载线设置相应的并口线:
并口端口号在这里查阅:
输入/输出范围:
然后点“调入Flash”导入*.hex文件,主程序固件存储,写入后不会改变;
再点“调入Eprom”导入*.eep文件,临时交换存储空间,硬件ID和控制器校正,信息存储在这。