My group’s Amiga add-on has a high-voltage linear actuator that controls the angle of a plow. When operating, our goal is to have the linear actuator shut off with the E-stop when it is pressed without turning off the controlling computer (an Arduino) attached to the system. How are the brain and the camera display told that the E-stop has been pressed? With this information, we could relay that to our linear actuator.
Thanks in advance!
Hi Carl,
You can get the AmigaControlState
(which includes E-stop state) from the canbus service by parsing the CAN messages that contain an AmigaTpdo1
message.
The utility parse_amiga_tpdo1_proto
will filter out all other CAN messages for you, returning either a parsed AmigaTpdo1
object or None
for all other CAN messages.
See: https://github.com/farm-ng/farm-ng-amiga/blob/main/py/farm_ng/canbus/packet.py
You can base this off of the stream_canbus
method in the Virtual Joystick Tutorial.
More specifically, see: https://amiga.farm-ng.com/docs/tutorials/virtual_joystick/device-streams#canbus-stream
Here we display the AmigaControlState
in a kivy Label
widget, but you could instead use it to trigger your action.
NOTE: The e-stop state can be triggered in the dashboard firmware under other circumstances (e.g., a damaged pendant, a faulty motor controller, etc.), which would appear the same to the brain if you are basing it off of parsed canbus messages. If you want to exclude these e-stop conditions and only look for when the physical e-stop is pressed, you will need some component to detect this electrically and we’ll need support from the hardware team.
– Kyle