This script makes use of the curses library to take control of the screen and the serial library for sending data over the UART serial port.
It waits for a key press and then decides either to send a command over the serial port, or to take a picture using the raspistill command.
It‘s a bit crude but proves the concept of sending commands over the serial port.
#! /usr/bin/env python
import curses
import serial
from subprocess import call
def command(cmd):
ser = serial.Serial('/dev/ttyAMA0', 9600)
ser.write(cmd + "\n")
ser.close
def picture():
call("/usr/bin/raspistill -o /home/pi/brianpic.jpg", shell=True)
command("look_forward")
myscreen = curses.initscr()
done = False
while not done:
myscreen.border(0)
myscreen.addstr(12, 25, "MyRobot. Enter command:")
myscreen.refresh()
key = myscreen.getch()
if key == ord('1'):
command("led_on")
elif key == ord('0'):
command("led_off")
elif key == ord('l'):
command("turn_left")
elif key == ord('r'):
command("turn_right")
elif key == ord('f'):
command("forward")
elif key == ord('b'):
command("reverse")
elif key == ord('c'):
command("look_forward")
elif key == ord('z'):
command("look_left")
elif key == ord('x'):
command("look_right")
elif key == ord('h'):
command("halt")
elif key == ord('p'):
picture()
elif key == ord('q'):
done = True
curses.endwin()