Telerobotics Senior Project Source Code
Linux 6811 Assembly Language Development Environment
Our code development environment consists of command line utilities to compile 6811 assembly files and download them to the 6811 using it's special bootstrap download mode. In this mode, the processor accepts a program up to 256 bytes in size and places it in RAM on the chip. The small program we load is an S19 file interpreter that will take a program in S19 format sent to the 6811 serial port and program RAM with its data. The chip is switched to expanded mode and execution begins at the beginning of the program.
- hcdl - HC11 Bootstrap Downloader Revision 0.1 for A1, A8 (and probably E2) family members, written by Loren Wyard-Scott. Requires TCL 8.1.
- as11.zip - AS11 freeware assembler, with a few changes added by Clifford Heath.
- loader.asm - S19 interpreter, loads an S19 file to RAM and executes the program. Written by John Kiolbasa. Note: this code will automatically jump to $8000 rather than the start vector in the S19 file. Changing this should involve simply changing one line of code.
- dl.c - Transfers an S19 file to the 68HC11 using the serial port, written by John Kiolbasa. Use this with loader.asm.
- load - A simple script to load an S19 file to the 68HC11 and execute it, written by John Kiolbasa. Uses the HCDL program to load loader.s19 (assemble loader.asm with AS11) and then dl (compile dl.c with gcc) to load your S19 file. Usage: load -f filename.s19
TJ-Pro Robot Control System - Webbot 1.0a
This system implements the robot control protocol used in out project. The assembly code is written for the 68HC11 processor on the robot, and interprets and executes commands received from it's serial link. The various C utilities send commands to the robot over a serial link. Written by John Kiolbasa and Jon Kujanski.
- webbot.asm - 68HC11 robot control command interpreter. Executes commands receives on the serial port. Includes all basic motor movement and sensor reading routines.
- botinit - A script to load webbot.s19 to the robot and intialize the serial port for robot communication.
- botmove.c - Utility to move the robot forward, reverse, left or right a variable amount.
- botstat.c - Utility to retrieve a status byte from the robot.
- bottag.c - Utility to check if there is a tag, i.e. the robot is in proximity to an IR beacon.
- botadc.c - Utility to read an ADC value from one of it's channels.
- robot_commands.txt - Complete list of implemented robot commands.
Video Capture System
The video capture system allows the user to grab a current video frame at any time from any of the video capture device's inputs.
- getimage.c - Capture an image from the specified video input, compress as JPEG and output to stdout. Set owner to match the owner of /dev/video and run as setuid. Or, make /dev/video world-readable. Requires: Video for Linux Two, a V4L2 device driver for your capture device, and libjpeg6b.
- webcam.cgi - CGI Bash script to send a current image via HTTP. Change the argument to getimage to select different video inputs.
- tbViewer.java - Java program for displaying the captured image. This file automaticaly updates when the images is finished downloading.
The client code allows the user to interact and control the robot with movent buttons and image display.
- tbClient.java - Client Java code. This is the applet that is downloaded by the client.
The server communicates with the client on port 6811 and sends commands over the serial link to the robot.
- tbServer.java - Server Java code. This is the main part of the server. It controls the game and waits for connections from the client.
- tbRobot.java - Java code for sending the commands to the robot on the serial port. This is accomplished by running the external C programs mentioned above.
- tbRestart.java - Used for remotely restarting the server.
- tbLOG.pl - Pearl Script for logging activity on the server to a text file.