【问题标题】:Android serial port via audio jackAndroid 串口通过音频插孔
【发布时间】:2015-10-16 10:26:59
【问题描述】:

我想通过音频插孔使用串行端口获取数据。 我对此一无所知。但我发现一个应用程序audioserial 可以发送数据到。 所以,我认为应该获取像audioserial 这样的数据。是否有相同的项目或熟悉这个?

【问题讨论】:

  • 能否更详细地描述您的问题。如果您想使用音频插孔(或类似的东西)在两部手机之间传输数据,那么这是不可能的,因为音频插孔充当输出端口。你提到的项目,只是解码android应用程序产生的音频信号。解码是使用使用音频处理技术的定制开发硬件完成的,并根据解码信号采取一些行动。
  • 而且,我想知道如何解码我从音频插孔录制的数据,它是 8n1 串行端口数据。但audioserial 可以发送。

标签: android audio serial-port


【解决方案1】:

您可以毫无问题地在麦克风插孔上录制音频。这样做,您基本上可以将您的 Android 手机用作数字示波器。然后,您可以通过编程方式将其转换回数字 I/O。

Serial output -> Android audio input -> Sampled square block wave -> digital I/O

请注意,大多数串行电平是 5V 或 3.3V。这会破坏您的麦克风输入!消费类音频电子产品的峰值电平通常为 1.7V。您将需要使用两个电阻器创建一个分压器,以便能够将您的 android 麦克风输入用作串行输入。如果您想创建符合规范 (http://en.wikipedia.org/wiki/RS-232#Voltage_levels) 的设备,您需要能够处理 -3V 到 +25V!

然后您需要对音频输入进行采样。请参阅http://en.wikipedia.org/wiki/File:Rs232_oscilloscope_trace.svg,了解您将收到的输入内容的良好示波器轨迹。您需要创建 Java 代码来检测 RS-232 的时间以及开始和停止位(如果已配置)。

我认为您的项目中的决定因素将是手机的 CPU 速度。我不确定您是否能够以 19200 波特率与对方通话并同时生成 UI。

顺便说一下,也可以进行反向操作(生成方波来驱动串行输出),但需要一些电压倍增器(达林顿链或其他基于晶体管的方法)将电压增加到所需的水平(+ 5V)。

【讨论】:

  • 现在,我可以通过音频插孔获取数据,我有一个串行端口数据生成器并将数据发送到手机音频插孔。但是从不同的Android手机上得到的波,是不同的。是否有一些方法或算法来解决这个问题。
  • 我想差异是因为不同的 DAC 硬件或不同的采样频率。如果安卓手机应用均衡、压缩或任何其他 DSP 效果,您的原始波形很可能完全丢失。试试 OsciPrime 应用,看看问题是出在您的手机上还是出在您与 API 的通信方式上。
猜你喜欢
  • 1970-01-01
  • 2014-09-06
  • 2016-08-03
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
  • 2012-11-15
  • 2014-01-11
  • 2013-02-20
相关资源
最近更新 更多