前提・実現したいこと
1byteずつ読み込むことによって、値を区別したいです。
#ラズパイ→arduino import cv2 import numpy as np import smbus def main(): bus = smbus.SMBus(1) adress1 = 0x05 img = cv2.imread('/home/test.jpeg') while True: cv2.imshow('img',img) ONE = 1 TWO = 1 one = int.from_bytes(ONE,'little') two = int.from_bytes(TWO,'little') bus.write_byte(adress1, one) bus.write_byte(adress1, two) key = cv2.waitKey(10) # "Esc"キー押下で終了 if key == 27: break cv2.destroyAllWindows() if __name__ == '__main__': main()
include <Wire.h> byte one = 0; byte two = 0; void setup() { Serial.begin(9600); Wire.onReceive(ReceiveMassage); Wire.begin(0x05); } void loop(){ } //i2cでのデータ受け取り void ReceiveMassage(int n){ int one = Wire.read(); Serial.print("recv1: "); Serial.println(one); int two = Wire.read(); Serial.print("recv2: "); Serial.println(two); delay(50); }
という組み合わせでやっています。理想としては
recv1: 1
recv2: 2
recv1: 1
recv2: 2
となってほしいですが、
シリアルモニタには
recv1: 1
recv2: -1
recv1: 2
recv2: -1
と表示されてしまいます。
おそらくー1はエラーの意味だと思うのですが、
何故、送信順と同じ順番で受け取るようにしても、
1も2もone のほうに全て格納されてしまうのでしょうか。
エラー解消のアドバイスをご教授願います。
回答1件
あなたの回答
tips
プレビュー