作者benbo (波)
看板Python
标题[问题] 对ArduinoUNO的serial写入资料
时间Wed Jul 13 03:15:16 2016
大家好
最近被实验室要求组装OpenDAC(
http://opendacs.com/seekat-homepage/)
(将几块板子和电子材料装起来,用Arduino控制的DAC)
虽然之前没碰过Arduino和Python,好在网站有范例程式码
现在问题是实验室超级控Python,要求将所有用的的程式都转成Python
原始的程式是Matlab的
其他部分我都没问题,只有fwrite一行解决的东西我不知道如何转换至python
原始Matlab程式码:
http://opendacs.com/seekat-homepage/seekat-write-voltage/
a = serial(‘/dev/tty.usbmodem1431′,’BaudRate’,115200); fopen(a)
...中间省略,可得出n1,n2,d1,d2,m1,m2,六个整数
fwrite(a,[255,254,253,n1,d1*m1,d2*m1,n2,d1*m2,d2*m2]);
[255,254,....] =>为一串小於256的整数,数量为九
我Python的程式码:
Ser = serial.Serial(port='/dev/cu.usbmodem1411', baudrate=115200)
data = [255, 254, 254.....]
以下都试过无效:
1. Ser.write(data))
2. for 1 in range(0,9): Ser.write(data[i])
3. for 1 in range(0,9): Ser.write(bin(data[i]))
...ord(),一个一个位元送等等都试过了
想请问一下要如何达成Matlab内,fwrite 的效果
谢谢
ps.Arduino控制码
http://opendacs.com/seekat-homepage/seekat-code/
电路:
http://goo.gl/acBhdi
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 128.135.29.158
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1468350920.A.C85.html
1F:→ alibuda174: for 1 in range(0,9): ? 那是 1 吗? 07/13 07:32
2F:→ alibuda174: write的参数,type应为bytes 07/13 07:35
3F:→ alibuda174: 试试 write(bytes(data)) 07/13 07:36
4F:→ benbo: 谢谢你 我之前有试过bytes没有用 07/13 08:19
5F:→ benbo: byte,bin,get_bin(将bin填满八位)都试过了没有用 07/13 08:21
6F:→ alibuda174: 错误讯息?2.x版还是3.x版? for 1 in 根本不能执行吧 07/13 10:14
7F:→ benbo: 抱歉 笔误 是i in range 07/13 23:54
8F:→ alibuda174: 我试了 write(bytes(data)) 可以 07/14 07:25
9F:→ benbo: 不好意思 请问你是Serial.write(bytes(data))吗 07/14 23:24
10F:→ benbo: 我还是没有办法 不过谢谢你 07/15 01:14
11F:→ alibuda174: Ser.write(bytes(data)) 07/15 07:03
12F:→ benbo: 谢谢 我把Arduino的韧体改成读int就解决了 07/15 08:40