ADM Activity 2.1.2

Workcell Safety

Learn how safety procedures, restricted zones, emergency stops, and safe operating habits protect people and equipment in automated systems.

Lesson Overview

You will learn how safety controls can be built into an automated workcell. This example uses a signal tower button to stop robot motion, display a message, and change tower lights when control has stopped.

Notes

  • This lesson focuses on safe workcell behavior and emergency stop logic.
  • The signal tower button is used as an input that triggers a stop response.
  • The control-stopped event changes the signal tower colors to show that the arm has stopped.
  • The repeated movement loop creates motion that can be interrupted by the safety control.
  • Final submitted code must include comments explaining the stop function, event handlers, signal tower behavior, and repeated motion.
What You Will Submit

What You Submit

  • Engineering notebook entry for Activity 2.1.2
  • Code or pseudocode with meaningful comments
  • Explanation of how the signal tower button changes system behavior
  • Description of what happens when arm control is stopped
  • Testing notes showing how the stop response was verified
  • Photo, screenshot, or video evidence of the workcell safety behavior
  • Short reflection explaining why emergency stop logic matters in automated manufacturing
Code example

2.1.2: Workcell Safety

Review the code, copy it when needed, and add comments before submitting your final version.

VEXcode Python Example
Code examples may be incomplete or missing comments. Comments are required for code submissions.
def on_signal_tower_pressed():
   arm10.set_control_stop(True)
   brain.screen.clear_screen() 
   brain.screen.set_cursor(1, 1)
   brain.screen.print("Stop you goofball!")

def arm_control_stopped():

   # Change colors of tower to show a stop has happened.

   signal_tower_6.set_color(SignalTower.GREEN, SignalTower.OFF)

   signal_tower_6.set_color(SignalTower.RED, SignalTower.BLINK)




signal_tower_6.pressed(on_signal_tower_pressed)
arm10.control_stopped(arm_control_stopped)
wait(15, MSEC)


while True:

   arm10.move_to(0, 150, 50)

   wait(500, MSEC)

   arm10.move_to(220, 0, 220)

   wait(500, MSEC)