我相信英雄总线引脚是:
- Pin3 - 通用输入输出接口 127
- 引脚 4 - GPIO 2
- 引脚 16 - GPIO 22
- 引脚 17 - GPIO 19
- 引脚 18 - GPIO 124
- Pin19 - GPIO 129 (ID1)
- Pin20 - GPIO 125 (ID2)
- Pin22 - GPIO 136 (ID4)
- Pin28 - GPIO 36
- Pin29 - 通用输入输出接口 37
使用这些引脚,我想将 ID2 与 herobus 上的 pwr 引脚连接并使用脚本,拥有它
- 开始录音
- 坐在循环中检查 gpio125,然后在 125 变高时退出循环。
- 脚本停止录制,然后关闭 GoPro。
电源引脚位于高位,将 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 高时退出循环,然后执行停止记录并在之后关闭命令。