Many of our Cornell Colleagues have to take bus to and from school. However, buses are not always on time. It is not their fault since the Ithaca weather and hence road condition can be highly unpredictable. On the consumer side, there is no choice except getting to the bus station on time despite having to stand in the chilly wind and heavy snow for perhaps 10 minutes or more.
What if we have an advanced warning system that gives out a signal at the approach of a bus? Suppose we have a transmitter on every bus that sends out the bus number code, and have a repeater on each bus stop repeat that signal when the bus passes by. To identify where the bus is at, the repeater may add in its stop number. This signal, when received and decoded by the user's receiver, gives out a warning signal when it matches the bus and stop number that the user set previously.
This project aim at building a prototype for a bus advanced warning system with two important differences. This prototype is based upon the Motorola MC68HC912B32 micro-controller. There shall be a compact DC power supply attached to the transmit and receive modules in the final product.
Since I am using a relatively powerful Micro-controller for this task, I added additional features to make this device more useful to the Cornell community. One of the features is a electronic planner that allows users to store telephone numbers of other students. Also, the users are able to store events in the organizer to remind them to do certain tasks. This is accomplished by building a digital clock.
I used the Seiko L1671 LCD display for the user interface. This 16 character dot matrix display is capable of displaying all of ASCI characters and the set of Japanese characters as well! The main problem of this LCD display, however, is the amount of time it requires for a character to be stored. In order to write to the display, I had to write a delay routine that loops for 800 cycles. At the very least, this would require around 2000 cycles which would be 250 us. Other than that, this display is relatively easily to program and has the capability to adjust contrast through the use of a variable resistor. The 8 data pins are connected to PORT A of the microcontroller. In addition, I am using PORT P to control the enable and read/write pins. Since there are many I/O pins on the board, the use of these pins does not pose a problem.