#!/usr/bin/env python3 # -*- coding: utf-8 -*- """Interactive GPIO test for physical pin A14.""" import sys from maix import gpio, pinmap PIN = "A14" GPIO_NAME = "GPIOA14" def set_level(output, command): if command == "1": output.value(1) print("A14 = HIGH, laser OFF") return True if command == "0": output.value(0) print("A14 = LOW, laser ON") return True return False def main(): pinmap.set_pin_function(PIN, GPIO_NAME) output = gpio.GPIO(GPIO_NAME, gpio.Mode.OUT) # One-shot mode for SSH/serial shells: python3 test_gpio_a14.py 1|0 if len(sys.argv) > 1: command = sys.argv[1].strip() if not set_level(output, command): print("Invalid argument. Use 1 or 0.") return return output.value(1) print("A14 laser test: input 0 for ON, 1 for OFF, q to quit.") try: while True: try: command = input("A14> ").strip().lower() except EOFError: print("This runner has no stdin. Run from an SSH/serial shell with argument 1 or 0.") return if set_level(output, command): continue elif command in ("q", "quit", "exit"): break elif command: print("Invalid input. Use 1, 0, or q.") except KeyboardInterrupt: print() finally: output.value(1) print("A14 = HIGH, laser OFF, test stopped.") if __name__ == "__main__": main()