< >
Home » Farmbot开发入门教程 » farmbot开发入门教程-lua 引脚

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)

纠错,疑问,交流: 请进入讨论区点击加入Q群

获取最新文章: 扫一扫右上角的二维码加入“创客智造”公众号


标签: none