» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

Github上的手柄转接项目求助

PSX的引脚定义好像有问题,data, cmnd, att, clock在原理图上分别是D9, D10, D11, D12;但是代码里使用的分别是8,9,11,12。
Psx.setupPins(8, 9, 11, 12, 10);

这个方法的定义是这样的:
Psx.setupPins(byte , byte , byte , byte , byte); // (Data Pin #, CMND Pin #, ATT Pin #, CLK Pin #, Delay)


TOP

只要编译通过就可以。最简单的方法是把项目放到Arduino的Sketchbook location下,这样就不需要手动拷贝库,Arduino会自动搜索子目录。



TOP

JVS I/O的物理层是基于RS-485,与RS-232主要区别就是RS-485传输的是差分信号。jvsio这个库提供了差分信号的生成,应该是可以按照电路图直连的,不需要再做转换。主要检查下,USB端口的3,4是否连接对了,文档上特别提到了这个。
JVS文档:http://superusr.free.fr/arcade/JVS/JVST_VER3.pdf

这里有用Teensy加RS485模块,自制IO板连接Naomi的视频,视频里进Test模式的JVS Test,可以看到IO版的信息。
https://youtu.be/nQ9IQh23H0I


TOP

可以先进Test模式,JVS Test,检查下能否识别到信息。如果没有检测到,那估计JVS通讯这部分代码可能有问题。

TOP

引用:
原帖由 threek 于 2020-9-19 00:06 发表
posted by wap, platform: iPhone
识别不到,作者也联系不上。
他发布的帖子

https://www.arcade-projects.com/ ... troller-to-jvs-solu ...
作者那个帖子里使用的电路图有些不一样,github里readme里D3连接JVS Sense加了电阻和电容,但是帖子里作者弄的电路板都是直连的。可以先按照作者的这个sch重新连接电路试试,PS接线在sch里是9, 10, 11, 12,代码还是要改成一样的。

这个是作者自己弄的PCB https://github.com/nzgamer41/IONA-PSX-PCB/,用Eagle打开IONA-PSX.sch文件确认D3是直连的。

除了软件和电路连接,可能还需要排查硬件的问题,比如Arduino的供电,可以试试USB充电头、USB充电宝或者从Naomi那边提供+5V供电,有条件可以换一块Arduino试试。

如果还是不行,可以试试 https://github.com/toyoshim/iona-346,这个是连接SS手柄的,估计PSX版的作者是参考的这个。SS版的这个,D3那里用到了电阻和电容,和PS版不一样。按理说JSVIO通讯那部分是一样的,可以只连接JVSIO的那部分电路,上传SS版的这个到Arduino,看系统能不能检测到IO板。

TOP

引用:
原帖由 threek 于 2020-9-19 16:09 发表
posted by wap, platform: iPhone
SS的这个我也弄了,但是编译一直不通过,显示缺少jvsio库里面的nanoclient文件,但我有这个文件啊,路径也对的。用nano和uno都试了,都不行。
SS的这个git工程用了submodule,而且指定了特定的版本,需要用到git命令行clone工程,然后初始化submodule才能用。

git如果不熟悉,可以按照下面的步骤操作:

  • 先下载git工具并安装 https://git-scm.com/download/win
  • 然后运行Git Bash,先切换路径(比如需要下载项目到C:\Workspace\git)。在bash哪里输入cd /c/Workspace/git
  • 克隆工程 git clone https://github.com/toyoshim/iona-346.git
  • clone完成后,进入该路径 cd iona-346
  • 然后用文本编辑软件修改下 .gitmodules文件,切换到https协议。url = git@github.com:toyoshim/jvsio.git 这一行需要修改成 url = https://github.com/toyoshim/jvsio.git
  • 接着在bash窗口执行同步 git submodule sync
  • 最后是初始化子模块,git会下载指定版本的子模块 git submodule update --init --recursive


弄完后,把这个工程目录放到sketchbook目录下,就可以编译了。我这边试过,可以成功编译。

TOP

引用:
原帖由 threek 于 2020-9-19 17:42 发表
posted by wap, platform: iPhone
谢谢了,另外sketchbook目录在哪里?我找了半天没找到
在Arduino IDE的Preferences设置界面,Settings标签下面的Sketchbook location

TOP

引用:
原帖由 threek 于 2020-9-19 23:54 发表
posted by wap, platform: iPhone
我是中文版的aduino 1.8.13
选择文件-首选项- 然后里面只有 项目文件夹位置这个选项,里面的有libraries和sketch-sep16a这两个文件夹,后者好像是我最近保存的一个项目。但还是找不 ...
嗯,就是项目文件夹。

TOP

引用:
原帖由 threek 于 2020-9-20 00:15 发表
posted by wap, platform: iPhone
请教下,如何看出来这个项目需要用到submodule?
git项目根目录有.gitmodules文件,有这个文件就表示该项目会引用到其它git项目,直接clone或者下载zip会发现某些目录是空的,必须要再更新submodule才会下载缺失的文件。git submodule 具体细节可以上网搜索。如果配置了ssh key,可以直接用命令 git clone --recurse-submodules -j8 git://github.com/foo/bar.git 同时克隆工程加初始化子模块。

TOP

引用:
原帖由 threek 于 2020-9-20 01:30 发表
posted by wap, platform: iPhone
Saturn转接器制作成功了,不过他的程序里面把拳和脚弄反了,我学要改一下代码。
交换按键只需要调整下比特位顺序就行,原始的代码118-135(加了按钮的备注)
if (line == 1) {
    return ~(0x40 |
        ((pad & 0x0800) >>  4) |  // S
        ((pad & 0x0010) <<  1) |  // up
        ((pad & 0x0020) >>  1) |  // down
        ((pad & 0x0040) >>  3) |  // left
        ((pad & 0x0080) >>  5) |  // right
        ((pad & 0x0400) >>  9) |  //  A
        ((pad & 0x0100) >>  8));  // B
} else {
    return ~(0x03 |
        ((pad & 0x0200) >>  2) |  // C
        ((pad & 0x4000) >>  8) |  // X
        ((pad & 0x2000) >>  8) |  // Y
        ((pad & 0x1000) >>  8) |  // Z
        ((pad & 0x0008) >>  0) |  // L
        ((pad & 0x8000) >> 13));  // R
}
修改成
if (line == 1) {
    return ~(0x40 |
        ((pad & 0x0800) >>  4) |  // S
        ((pad & 0x0010) <<  1) |  // up
        ((pad & 0x0020) >>  1) |  // down
        ((pad & 0x0040) >>  3) |  // left
        ((pad & 0x0080) >>  5) |  // right
        ((pad & 0x4000) >>  13) |  //  X
        ((pad & 0x2000) >>  13));  // Y
} else {
    return ~(0x03 |
        ((pad & 0x1000) >>  5) |  // Z
        ((pad & 0x0400) >>  4) |  // A
        ((pad & 0x0100) >>  3) |  // B
        ((pad & 0x0200) >>  5) |  // C
        ((pad & 0x0008) >>  0) |  // L
        ((pad & 0x8000) >> 13));  // R
}

TOP

发新话题
     
官方公众号及微博