项目简介
本项目基于C语言开发,借助LUFA库,将Arduino转变为可被计算机自动识别的游戏手柄。项目包含Arduino代码、16u2代码和USB代码,实现了与主机的通信功能,如发送和接收数据、处理控制请求、配置端点等,还提供与标准C库兼容的接口,支持多种USB类设备和硬件平台。
项目的主要特性和功能
- 可让Arduino向计算机发送按钮和摇杆数值,接收消息后点亮对应LED灯。
- 16u2代码能正确配置端点,实现PC与ATMega328p之间的数据传递。
- USB代码可正确获取设备、接口和端点,并在程序结束时释放接口。
- 使用LUFA库简化USB设备开发过程。
- 提供与标准C库兼容的接口,便于在嵌入式系统中通过USB通信。
- 支持多种USB类设备和硬件平台。
安装使用步骤
前提条件
假设用户已下载本项目的源码文件,且avr - gcc、usb库已安装。若ATMega16u2未配置为TFDI,需按后续指南恢复到初始状态。
编译和执行步骤
Arduino代码
- 进入目录:
./Code_Arduino
- 编译代码:
make
- 上传代码(将Arduino板连接到电脑):
make upload
16u2代码
- 进入目录:
./lufa - LUFA - 170418/PolytechLille/PAD
- 编译代码:
make
- 上传步骤:
- 短接16u2的复位线和地线。
- 执行命令:
dfu - programmer atmega16u2 erase
dfu - programmer atmega16u2 flash PAD.hex
dfu - programmer atmega16u2 reset
- 断开并重新连接Arduino板。
- 若要恢复到初始状态,将
PAD.hex
替换为rollback.hex
。
USB代码
- 进入目录:
./ConfigUSB
- 编译代码:
make
- 执行代码(需要管理员权限):
sudo ./tutorat
使用说明
- 点亮LED灯:发送字母a - f;熄灭LED灯:发送字母A - F(字母a对应LED1,b对应LED2,以此类推)。
- 退出程序:输入x。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】