Students

Nick Veo
ORFE, 2019

Spencer Anton
Economics, 2019

Liam Glass
Politics, 2019

Project Description

Our project is a lego NXT car that we adapted to draw specific letters and images. In addition to the Lego parts that make up the car, we 3D printed a modified ring clamp that serves as a pen holder at the front of the car (we have found that Expo markers have been the most effective in this regard). We had to print several models of this ring clamp so as to arrive at the most effective size in relation to the car. We also added mechanism that moves marker up and down. In addition, we added a weight to make sure the front wheel was consistently on the floor because the new car design was intentionally ‘top-heavy.’ We designed the car to be top-heavy in order to decrease the turning radius. In order to make the car move in accordance with our prerogatives, we programmed the NXT brick using Mindstorm’s NXT Application. Given the dated nature of this software, it required some creative unpacking to successfully execute the data transfer from the computer to the NXT car. Our goals were ultimately to program the car to write “LITTMAN.” Included in this report are flow charts that depict the code that was used within the Mindstorm NXT Application in order to make the car write “LITTMAN.” We had originally intended to write entire phrases such as the University honor code, however, due to the outdated nature of the Mindstorm NXT hardware, the group discovered that memory constraints make this impossible. While we believe that our Drawbot is unique, the group’s primary original contribution is the Mindstorm code, depicted in the flow charts below.

Technical Background

LEGO Mindstorms NXT is a robotics branch of the brick making company LEGO. LEGO created NXT as an educational project to help teach students of all ages to program. Since programming is seemingly unapproachable to those that have never coded before LEGO Mindstorms created a pseudo-programming language that relies on a series of interlocking code chunks. Each code chunk is visually attached to a virtual LEGO connector on screen in the LEGO Mindstorms NXT programming application. Each chunk represents a single action in the NXT programming language. The code is downloaded onto the NXT brick and interpreted into actions. The brick is attached to the top of our LEGO vehicle. The brick has 7 ports that actions can be applied to. They are labeled A,B,C,1,2,3,4. A programmable item can be plugged into each of the three ports. Programmable items include motors, distance sensors, sound sensors, speakers, etc. Once programmable items are plugged into a port, they can respond to the code from the Mindstorms computer application. So, if port A contains a motor, the programming language can be configured to move motor A in one of two rotational directions. Additionally, the number of rotations, rotating time, and rotational intensity can be specified. An example of the technical in action of our vehicle is the dual motor system. The left motor on the vehicle is plugged into port B and the right motor is plugged into port C. If we would like for the car to move forward, we can program both ports B and C to move forward 3 axel rotations in the forward direction. This would appear as a “Movement” code chunk with ports B and C specified as “BC” in the top right corner.

“Lego Mindstorms.” Wikipedia, Wikimedia Foundation, 18 Feb. 2019, en.wikipedia.org/wiki/Lego_Mindstorms.
“NXT Software.” Mindstorms, LEGO, www.lego.com/en-us/mindstorms/downloads/nxt-software-download.

Design Drawings

Fabrication Process

Final Result