Software: The Brains of the Chalkjet

The ChalkJET has the pixel mapping of each character on a keyboard uploaded into its internal memory. The ChalkJET stores this pixel mapping as an array of bytes. Each byte corresponds to one column of pixels, with the 1 bit representing a colored pixel and a 0 bit representing a blank pixel. When the user types in a message, the Arduino uses a look up table to determine the byte array corresponding to each character in the message.

Another Arduino is used to strictly determine the ChalkJET's position. Whenever the encoder Arduino has recorded that the ChalkJET has moved 10 encoder counts forwards, it will send a 5V pulse to the first Arduino, signaling it to fire the solenoids in the next column of pixels belonging to the message. This cycle continues until all columns of the message has been chalked onto the floor.
Picture
Sequence of Events for One Firing Event

How to Print a Custom Message

Picture
Step 1: Select 'Print Message'
Picture
Step 3: Confirm Message
Picture
Step 2: Enter Desired Text
Picture
Step 4: Push Vehicle, and Begin Printing
Picture
Step 5: Voila!