farmbot开发入门教程-lua 引脚
说明:
- 介绍FarmBot OS 中的 pin Lua 函数列表
new_sensor_reading(参数)
绘制可从传感器面板查看的传感器读数点。接受一个参数表,其中包括读数的 X、Y 和 Z 坐标(通常是 FarmBot 的当前位置)、引脚号、引脚模式(模拟或数字)、值以及读取传感器的 UTC 时间。
必须mode是0用于digital读数或1用于analog读数。
local pin_63 = 63 -- Tool verification pin
local pin_value = read_pin(pin_63)
local xyz = get_xyz()
local read_at = utc()
-- Create a digital sensor reading for Pin 63 at the current position
new_sensor_reading({
x = xyz.x,
y = xyz.y,
z = xyz.z,
mode = 0,
pin = pin_63,
value = pin_value,
read_at = read_at
})
local pin_59 = 59 -- Soil moisture sensor pin
local pin_value = read_pin(pin_59, "analog")
local read_at = utc()
-- Create an analog sensor reading for Pin 59 at the position (100, 200, 0)
new_sensor_reading({
x = 100,
y = 200,
z = 0,
mode = 1,
pin = pin_59,
value = pin_value,
read_at = read_at
})
开启(引脚)
- 将给定引脚的状态设置为数字1,也称为“高”或“开”。
-- Turn on the lighting peripheral
on(7)
关闭(引脚)
- 将给定引脚的状态设置为数字0,也称为“低”或“关闭”。
-- Turn off the lighting peripheral
off(7)
读取引脚(引脚,模式?)
- 使用读取模式analog或读取给定的引脚。如果没有指定模式,则digital默认为。digital
-- Read pin 23 in digital mode
pin23 = read_pin(23)
-- Read pin 23 in digital mode (alternative syntax)
pin23 = read_pin(23, "digital")
-- Read pin 25 in analog mode
pin25 = read_pin(25, "analog")
set_pin_io_mode(引脚,模式)
- 设置引脚的 I/O 模式,类似pinMode()Arduino IDE 中的功能。有效的引脚模式包括input、input_pullup和output。
-- Set pin 13 to input mode
set_pin_io_mode(13, "input")
-- Set pin 13 to input_pullup mode
set_pin_io_mode(13, "input_pullup")
-- Set pin 13 to output mode
set_pin_io_mode(13, "output")
切换引脚(引脚)
在数字1(开)和0(关)之间切换给定引脚的状态
如果引脚最初设置为模拟值,它将四舍五入为最接近的数字值,然后切换。
-- Toggle pin 13
toggle_pin(13)
watch_pin(pin,回调)
将 Lua 进程分叉为第二个并行 Lua 脚本,用于监视 pin。回调函数在父脚本的生命周期内每 500 毫秒执行一次。
要记住的事情:
- 引脚监测功能用于支持 FarmBot 的内部功能,例如真空吸尘器和旋转工具的电机负载监测。这是一项高级功能,只有在无法使用更简单的解决方案时才应作为最后的手段使用。
- 回调是正在运行的 Lua 脚本的一个分叉副本。它不在同一脚本中执行。
- 回调不与调用脚本共享内存。它完全与父脚本隔离。即使您可以访问与父脚本同名的变量,它们也不会共享。它们是重复的副本。
- 由于回调每 500 毫秒重新初始化一次,因此无法在回调函数中存储状态。任何修改的变量都将在下次运行时重置。
- 回调在父级终止后 500 毫秒内终止。
-- Watch pin 13 and toast the pin number and value every 500 ms
watch_pin(13, function(data)
toast("Pin " .. data.pin .. " has a value of " .. data.value)
end)
-- Wait so the watcher's callback function can execute about six times
wait(3000)
write_pin(引脚,模式,值)
- 将引脚设置为特定模式和值。必须mode是0为digital值 或1为analog值。
-- Set pin 13 to digital mode and write a value of 1
write_pin(13, "digital", 1)
-- Set pin 13 to analog mode and write a value of 128
write_pin(13, "analog", 128)
获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号