我一直致力于一个我们的Android平板电脑只有1个microUSB端口的项目。
由于我们必须通过serialUSB与外部设备进行通信,因此我们注意到让平板电脑为总线供电(主机模式)将其耗尽电池直至死亡后,它变得有点模糊。此外,我们仍然必须提供足够的能量来为平板电脑供电。
经过大量尝试失败后,例如using a OTG-Y cable
,修改Kernel Battery Config
并使用USB Hub
,我需要找到一种方法来执行通信并保持平板电脑充电。< / p>
考虑使用HDMI甚至音频/串行。有什么解决方案我可以期待解决这个问题吗?
此时,我已经没有想法了。
答案 0 :(得分:0)
你可以使用arduino,但不是正常的,你需要一个mega,我说这是因为ardiono mega是我所知道的唯一一个带有多个串行UART的arduino。例如,Uno与使用与USB接口相同的UART共享RX / TX串行引脚。
如果你有一个大型的,你可以得到一个便宜的USB转串口模块,如:http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=arduino+usb+to+serial&_sop=15
现在,您将PC插入大型普通USB,这将从您的PC为Mega供电。 然后将平板电脑连接到串行模块。
剩下要做的就是为你的mega创建一个简单的ino脚本,将数据从串口(pc-USB)传输到serial2(平板电脑),反之亦然。
示例:
void setup() {
// put your setup code here, to run once:
Serial.begin(115200); // PC <--> USB
Serial1.begin(115200); // Serial <--> Tablet
}
void loop() {
// put your main code here, to run repeatedly:
serialComs(); // Tells loop to execute the serialComs() function
}
// Serial Comunication function
void serialComs() {
// read from port 1 (Tablet), send to port 0 (PC):
if (Serial1.available()) {
int inByte = Serial1.read();
Serial.write(inByte);
}
// read from port 0 (PC), send to port 1 (Tablet):
if (Serial.available()) {
int inByte = Serial.read();
Serial1.write(inByte);
}
}
注意:您可能需要在void setup之前添加#DEFINE条目,以定义串行到USB模块的哪些引脚。
答案 1 :(得分:0)
我认为你的方式通过HDMI无法正常工作。而你只有一个选择:
您也可以直接装入电池。您可以打开机箱并为您的电池供电而不是电池。这也应该有效。我认为没有别的办法了。
但并非所有桌子都允许同时充电和使用USB。