演示使用Arduino基本节点RPC框架的模板项目。
teensy-minimal-rpc的Python项目详细描述
#少量rpc
远程过程调用(rpc)项目的模板包,利用 [基节点rpc][3]。
##概述
此软件包包含:
- Firmware compatible with Arduino Uno or Mega2560.
- Installable Python package for interfacing with Arduino firmware through serial port or i2c (through a serial-to-i2c proxy).
##安装35;
可以使用以下命令通过pip安装python包:
pip install teensy-minimal-rpc
##上传固件35;
要上载python包中包含的预编译固件,请运行 以下命令:
python -m teensy_minimal_rpc.bin.upload <board type>
将<;board type>;替换为uno或mega2560,具体取决于 董事会的模型。
这将尝试通过自动发现 串行端口。在具有多个串行端口的系统上,使用-p命令行 参数指定要使用的串行端口。例如:
python -m teensy_minimal_rpc.bin.upload -p COM3 uno
##用法
将固件上载到板后,可以使用 用于与Arduino设备交互。
请参阅下面的会话日志以了解用法示例。
###交互式会话示例
>>> from serial import Serial >>> from teensy_minimal_rpc import Proxy
连接到串行设备。
>>> serial_device = Serial('/dev/ttyUSB0', baudrate=115200)
使用现有的串行连接初始化设备代理。
>>> proxy = Proxy(serial_device)
查询设备RAM中可用的字节数。
>>> proxy.ram_free() 409
查询设备的描述性属性。
>>> proxy.properties() base_node_software_version 0.9.post8.dev141722557 name teensy_minimal_rpc manufacturer Wheeler Lab url http://github.com/wheeler-microfluidics/rpc-p... software_version 0.1 dtype: object
交互使用Arduino API方法。
>>> # Set pin 13 as output >>> proxy.pin_mode(13, 1) >>> # Turn led on >>> proxy.digital_write(13, 1) >>> # Turn led off >>> proxy.digital_write(13, 0)
###配置和状态
设备存储配置和状态。配置是 串行化并存储在eeprom中,允许设置在设备上持续存在 重置。状态存储在设备内存中,每次都会重新初始化 设备启动。
打印(非默认)配置值。
>>> print proxy.config serial_number: 2 baud_rate: 115200 i2c_address: 17
可以通过更新配置来设置配置设置。
>>> result_code = proxy.update_config(serial_number=1234) >>> result_code = proxy.update_config(i2c_address=32)
要在设备重置-not状态中持久化对configuration的更改,请使用 保存配置方法。
>>> proxy.save_config()
###其他方法
下面是python类的属性列表。注意 许多[Arduino API][1]函数(例如,pin_mode,digital_write, 等)通过rpc api公开。
>>> proxy. proxy.analog_read proxy.microseconds proxy.analog_write proxy.milliseconds proxy.array_length proxy.name proxy.base_node_software_version proxy.on_config_baud_rate_changed proxy.begin proxy.on_config_i2c_address_changed proxy.buffer_size proxy.on_config_serial_number_changed proxy.channel_count proxy.on_state_frequency_changed proxy.config proxy.on_state_voltage_changed proxy.delay_ms proxy.pin_mode proxy.delay_us proxy.properties proxy.digital_read proxy.ram_free proxy.digital_write proxy.read_eeprom_block proxy.echo_array proxy.reset_config proxy.get_buffer proxy.reset_state proxy.i2c_address proxy.save_config proxy.i2c_available proxy.serialize_config proxy.i2c_buffer_size proxy.serialize_state proxy.i2c_read proxy.set_i2c_address proxy.i2c_read_byte proxy.set_state_of_channels proxy.i2c_request proxy.software_version proxy.i2c_request_from proxy.state proxy.i2c_scan proxy.state_of_channels proxy.i2c_write proxy.str_echo proxy.load_config proxy.update_config proxy.manufacturer proxy.update_eeprom_block proxy.max_i2c_payload_size proxy.update_state proxy.max_serial_payload_size proxy.url
##固件开发
Arduino固件/草图位于Teensy_Minimal_rpc/Arduino/Teensy_Minimal_rpc中 目录。关键功能在 文件node.h。
运行以下命令将使用[scons][2]为 Arduino Uno和Arduino Mega2560,并将生成的固件打包为 python包,准备分发。
paver sdist
###添加新的远程过程调用(rpc)方法
通过将新方法添加到 teensy_minimal_rpc::node文件中的类。
#作者
版权所有2015 christian fobel<;christian@fobel.net>;
[1]:https://www.arduino.cc/en/Reference/HomePage [2]:http://www.scons.org/ [3]:https://github.com/wheeler-microfluidics/base_node_rpc