我相信Hero总线引脚是:
使用这些引脚我想将ID2与herobus上的pwr引脚连接并使用脚本,拥有它
电源引脚位于高电平并将GoPro拉低至约1秒工作。然后它将保持低位,与gpio125一起然后在释放按钮时,两者都会变高,从而触发它停止。
目前我在GitHub上修改了KonradITs代码,如下所示:
sleep 5
/usr/local/gopro/bin/gpsend ca CM%00 #selects video mode
sleep 5
/usr/local/gopro/bin/gpsend bp SH%01 #starts recording
sleep x
/usr/local/gopro/bin/gpsend bp SH%00 #stops recording after x seconds
sleep 5
/usr/local/gopro/bin/gpsend bp PW%00 #turns off GoPro
这显然受时间条件的限制,一旦pwr引脚拉低,就会触发。我需要在sleep x
区域周围修改它,以允许执行sleep x
之后的命令,具体取决于释放电源按钮的时间。
我考虑过使用以下内容:
echo 125 > /sys/class/gpio/export # creates pin interface
echo in > /sys/class/gpio/gpio125/direction # sets it as output pin
echo 1 > /sys/class/gpio/gpio125/value # sets value to 1
等包含此但不确定如何完成代码编写。我基本上希望它在循环中检查gpio125然后在读取125高时退出循环然后执行停止记录并在之后关闭命令。
答案 0 :(得分:0)
您可以将此所有硬件特定代码与此问题分开。看来你的基本问题是如何等待特定的命令返回一个特定的值,然后继续。
假设您使用gpio read 125
来检测引脚状态,并假设' 0'返回低状态;使用:
# start recording
while [ "0" -eq "$(gpio read 125)" ]; do sleep 1; done
# stop recording
每秒将轮询该针脚,并在它不再低时继续。