极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 34886|回复: 15

如何让下位机与leonardo以鼠标方式通信

[复制链接]
发表于 2014-6-6 23:10:30 | 显示全部楼层 |阅读模式
听说芯片是32u4的板子可以模拟鼠标键盘的动作,现有一下位机,是一个监控器的控制板,能够插USB鼠标和显示器的,插上后能直接识别鼠标。

于是想是否能够利用leonardo的板子模拟鼠标这一动作,这样它就可以自行运动了,不用我每次都去操作。

现在能够实现PC1---> USB转TTL PL2303HX模块--->板子--->PC2,

当PC1通过串口工具,发送字符可以控制PC2的鼠标的动作,代码入校

  1. void setup()
  2. {
  3. Serial.begin(9600); //This pipes to the serial monitor
  4. Serial1.begin(9600); //This is the UART, pipes to sensors attached to board
  5.   while (!Serial) {
  6.     ; // wait for serial port to connect. Needed for Leonardo only
  7.   }
  8. }

  9. void loop()
  10. {
  11.   int inByte = Serial1.read();
  12.      switch (inByte) {
  13.      case 'l':   
  14.        Serial.println("Go Left");
  15.        Mouse.move(10,0,0);
  16.        break;
  17.      case 'r':   
  18.        Serial.println("Go Right");
  19.        Mouse.move(-10,0,0);
  20.        break;
  21.      case 'u':   
  22.        Serial.println("Up");
  23.        Mouse.move(0,-10,0);
  24.        break;
  25.      case 'd':   
  26.        Serial.println("Down");
  27.        Mouse.move(0,10,0);
  28.        break;      
  29.      case 'c':
  30.        Serial.println("c");   
  31.        Mouse.press(MOUSE_LEFT);
  32.        Mouse.release(MOUSE_LEFT);
  33.        break;
  34.      case 'x':
  35.        Serial.println("x");   
  36.        Mouse.press(MOUSE_RIGHT);
  37.        Mouse.release(MOUSE_RIGHT);
  38.        break;
  39.      default:
  40.        Serial.println("none");
  41.        Serial1.println("please send sm");
  42.      delay(1000);
  43.      }
  44. }
复制代码
现在我想实现,在PC端通过串口工具向板子发命令,使得下位机上的鼠标能够有相应的动作,不知道怎么做?
(下位机不是windows系统,是不能装什么驱动的,我想知道怎么让下位机认为板子是个鼠标?)

回复

使用道具 举报

发表于 2014-6-7 00:14:58 | 显示全部楼层
楼主你知道有个软件叫 键盘精灵么?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-7 03:28:00 | 显示全部楼层
估计楼上没看懂我的意思,我需要PC根据实际情况发送代码到板子上,然后让板子模拟鼠标在下位机上做鼠标的相关操作,下位机是个嵌入式系统,
LS所说的键盘精灵是在PC上使用的,最终鼠标的一些操作也是的PC上实现的,和我要的不一样
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-7 03:34:32 | 显示全部楼层
我一开始,试着PC到PC是为了试试串口命令Serial1是否是可用的
回复 支持 反对

使用道具 举报

发表于 2014-6-7 07:37:42 | 显示全部楼层
比较推荐x宝上的键盘模拟器,就是串口转鼠标的。

你提的理论上可行,但是细节非常多。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-7 12:07:38 | 显示全部楼层
zoologist 发表于 2014-6-7 07:37
比较推荐x宝上的键盘模拟器,就是串口转鼠标的。

你提的理论上可行,但是细节非常多。

看在论坛上一帖子,有点像,不过它用的mega2560,还要bootloader一个东西进去,才能让下位机认为是一个输入设备,请问是不是也要这样?
回复 支持 反对

使用道具 举报

发表于 2014-6-7 12:28:09 | 显示全部楼层
ken0137 发表于 2014-6-7 12:07
看在论坛上一帖子,有点像,不过它用的mega2560,还要bootloader一个东西进去,才能让下位机认为是一个输 ...

我只做过 uno 外界电阻把自己模拟为键盘的。2560没玩过
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-6-7 12:31:28 | 显示全部楼层
zoologist 发表于 2014-6-7 12:28
我只做过 uno 外界电阻把自己模拟为键盘的。2560没玩过

那请问一下如何连接外电路,可以让下位机认为板子是个鼠标这样的外部输入设备?
回复 支持 反对

使用道具 举报

发表于 2014-6-7 14:03:57 | 显示全部楼层
你可以在论坛搜索一下 usb 键盘,

或者参考一下我写的 http://www.lab-z.com/20140101/
回复 支持 反对

使用道具 举报

发表于 2014-8-5 17:44:59 | 显示全部楼层
zoologist 发表于 2014-6-7 12:28
我只做过 uno 外界电阻把自己模拟为键盘的。2560没玩过

不一样的 UNO等芯片 不含USB堆栈和协议等 不能直接USB通讯,是虚拟出来的USB口
32U4自带USB通讯口。
mega2560R2开始自带32U4进行通讯
32u4貌似性能比328P差 口也少
但是实际可玩性还是不错的。 复杂程度也大不少
键盘 鼠标 神马的肯定不是问题(本身设计出来就自带USB口)
不知道能不能做比如电子令牌之类东东!!!
回复 支持 反对

使用道具 举报

发表于 2014-8-5 17:45:58 | 显示全部楼层
ken0137 发表于 2014-6-7 12:07
看在论坛上一帖子,有点像,不过它用的mega2560,还要bootloader一个东西进去,才能让下位机认为是一个输 ...

2560R3 上面标配的通讯芯片就是32U4
所以自带2个 6PIN口 一个是用来刷32U4 一个是用来刷2560
回复 支持 反对

使用道具 举报

发表于 2014-8-5 17:46:48 | 显示全部楼层
zoologist 发表于 2014-6-7 12:28
我只做过 uno 外界电阻把自己模拟为键盘的。2560没玩过

估计2560R2以上版本(自带32U4)可以直接当做32U4用。。。。不过有点奢侈 哈哈~
回复 支持 反对

使用道具 举报

发表于 2014-8-5 17:50:56 | 显示全部楼层
zoologist 发表于 2014-6-7 14:03
你可以在论坛搜索一下 usb 键盘,

或者参考一下我写的 http://www.lab-z.com/20140101/

貌似是不一样的。 理论上可以更简单
32u4不需要串口转USB芯片直接和上位机通讯。。。
当然你这个方案对它来说也是可行的 只是有点绕弯
不恰当的比方就好像天津到北京 绕道石家庄一样。。。

哎 坐等更多高手玩出32U4更多花样来~~~~
回复 支持 反对

使用道具 举报

发表于 2014-8-5 19:51:09 | 显示全部楼层
darkorigin 发表于 2014-8-5 17:50
貌似是不一样的。 理论上可以更简单
32u4不需要串口转USB芯片直接和上位机通讯。。。
当然你这个方案对 ...

哦  这样的啊  我对那个模拟研究不多 不过可以试试玩玩 d12  +   C51
回复 支持 反对

使用道具 举报

发表于 2014-8-10 16:25:32 | 显示全部楼层
zoologist 发表于 2014-8-5 19:51
哦  这样的啊  我对那个模拟研究不多 不过可以试试玩玩 d12  +   C51

80C51 我还停止在10年前大学的单片机汇编的层面上 哈哈哈哈
基本上现在都觉得惭愧 虽然当年在系里算是学的比较好的(成绩方面)但是由于10年来工作和单片机没任何联系,所以 基本都还给老师了 ,加上ASM的难度(没学过单片机的C)

单片机学过Z80和MCS51(这是早期型号 后来就是80C51之类的系列)的汇编。目前基本只记得大概。汇编语言的指令也基本上就记得 MOV  JMP POP PUSH 之类的东西(还有神马 基址变址寄存器 堆栈 之类的概念性名次了)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 11:21 , Processed in 0.120212 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表