2017-11-23 37 views
-2

私の質問はAndroidのThingsアプリケーションとArduinoとのやりとり方法です。私はAndroidのof Thingsプロジェクトで、甘くて安価なArduinoセンサーをすべて使いたいと思っています。私は2つのソースリンクを見つけて試しましたが、値を得られませんでした。ラズベリーPI 3とAndroidとの接続Arduinoへ

enter image description here

class Arduino(uartDevice: String = "UART0"): AutoCloseable { 
    private val TAG = "Arduino" 
    private val uart: UartDevice by lazy { 
     PeripheralManagerService().openUartDevice(uartDevice).apply { 
      setBaudrate(115200) 
      setDataSize(8) 
      setParity(UartDevice.PARITY_NONE) 
      setStopBits(1) 
     } 
    } 

    fun read(): String { 
     val maxCount = 8 
     val buffer = ByteArray(maxCount) 
     var output = "" 
     do { 
      val count = uart.read(buffer, buffer.size) 
      output += buffer.toReadableString() 
      if(count == 0) break 
      Log.d(TAG, "Read ${buffer.toReadableString()} $count bytes from peripheral") 
     } while (true) 
     return output 
    } 

    private fun ByteArray.toReadableString() = filter { it > 0.toByte() } 
      .joinToString(separator = "") { it.toChar().toString() } 

    fun write(value: String) { 
     val count = uart.write(value.toByteArray(), value.length) 
     Log.d(TAG, "Wrote $value $count bytes to peripheral") 
    } 

    override fun close() { 
     uart.close() 
    } 
} 

私は、スタック上でこのRaspberry Pi to Arduino Communication源を発見したが、議論は私の質問に関連していません。 arduinoからRPI 3のアンドロイド物までのすべての値が欲しいです。

javaを使用してarduinoからアンドロイドフレームワークに値を取得する方法はありますか?

+0

[this](http://nilhcem.com/android-things/discovering-the-UART-api)プロジェクトをご覧ください。それは重要な部分を持っています:双方向ロジックレベルコンバータ。 –

答えて

4

PiとArduinoには、さまざまな通信プロトコルが組み込まれています。最も簡単な方法は、UARTでデータを交換することです。

あなたのArduinoコードは継続的にデータを転送でき、Piにはコードを受け取るコードが含まれている可能性があります。データが1バイトに収まらない場合は、それをエンコードしてデコードする追加のカスタムロジックを書き込むことができます。

関連する問題