This project included the design and development of an Arduino-based robot imitating a car with the ability to move forwards, turn, signal turns, control speed with a speedometer, and reverse with a buzzer. To develop these functions for the robot, skills in circuit debugging, testing through oscilloscopes, and developing code through the Arduino application. The full end product for the robot was developed over the Fall 2024 semester in ECEN 2270, an advanced electrical engineering design lab.
To design the base of the robot's speed and motion functions, left and right speed sensors, compensators, direction control, and motor driver circuits were produced and tested incrementally. The speed sensor was one of the first circuits created and it utilized the encoder output of the motor to convert the motor's speed into a readable voltage that could be measured. This conversion used three low pass filters created through resistors and capacitors, a diode, and the 555 timer that read two outputs, one of the motor's PWM and the other of the motor's speed ranging from 0-8V. The second important component was the motor driver, using an H-Bridge circuit to link and control the direction of two motors on each side of the car. The H-Bridge consisted of four transistors, two being MJE200G and the other two being MJE210G, which allowed the current in the motor to flow in either direction. Then there was the compensator, which utilized two operational amplifiers that behaved as a difference and integrator stage to keep the motors in sync. This ensured that if one motor was stalled, the compensator would increase its output voltage to 8V to synchronize the other motor. Lastly, there was the direction control which was controlled through yet another H-Bridge circuit of two ZVP2106A transistors and two ZVN2106A transistors. These transistors created three connections and two gates that controlled the direction in which the wheels would spin. When gate one was high and two low, the wheels moved forward, if gate two was high and one low then the wheels reversed, and lastly if both gates were high or low the wheels would stall.
On the far left is the motor driver circuit. In the middle is the speed sensor and compensator circuits. Below is the motor direction circuit.
After creating the basis for the robot's movement functions, all of the circuity was then connected to the Arduino. Basic code was developed to control the robot's forward, backward, and turning movements. Next came the three polite driving additions which included a turn signal, speedometer, and reverse buzzer. Implementation of the speed sensor was fairly easy and only required the connection of two simple LED lights to each side of the robot. So that within the direction control code, when a right turn occurred the right light would blink three times then turn on, and vice versa. Secondly, was the connection of the speedometer which required more complex code involving some binary to configure the output on the matrix. Therefore, for low speeds recorded at a certain PWM, 2 rows of the matrix would light up. Four speeds were configured in the robot code that went up to all eight rows being lit up at maximum PWM (255). Lastly, was the reverse buzzer, connected through one of the analog pins due to spacial limitations. When the reverse code was enacted the analog pin was converted into a digital output and sent a high then low voltage to the Piezzo buzzer, causing it to beep on and off like a typical truck reversing. All of these additions created a more realistic, "car-like" function for the robot which helped to further the understanding of the speed control circuitry and the Arduino code aspects.
Throughout this project the goal was to develop a name plate with one 3D printed component, two electronic components, and a laser cut element to display our new chosen team name "Snow White and the Seven NFL Teams" (Picture 2) . The process started in the brainstorming phase in which the group members tried to determine the easiest was to display our name in a creative way on a small locker space. This was definitely a challenge because our team name was very long and had a lot of different components that would be difficult to string together on one cohesive board. Eventually the team determined that we would use snowboarding snow white as the electronic component for the board, having a painted character attached to a 3D printed arm moving side to side over a 3D printed half pipe (Picture 3), as if she was snow boarding. For the rest of the components we used LED lights strung throughout the half pipe as an electronic piece, and the words and snowflakes on the board were laser cut (Picture 1). After determining how each piece was going to be constructed the team split off into three groups each tackling different elements of the project. Two team members focused on the construction of the board we would place all of the pieces on, one focused on the Arduino code for a small motor to propel the snow white, and the other two worked in CAD and 3D printing workshops to construct the halfpipe and arm. This method worked well for the team because each person had a designated role that they could focus on, yet still have the flexibility to collaborate with all of the group members to ensure the sizing of the pieces were correct and achieve the desired "look" for the name plate. Within the design process there was definitely a lot of trial and error as our board for the locker was really large (Picture 2) and took a lot of different tactics to mount as our original mounting materials had broken. Another problem was mounting the Arduino board to the main board for our project that would hide it but still be able to function as an arm for the snow white character. To work around this problem we created a cloud to be placed over the board that would hide it but still give room for the board to function.
The elements that I contributed to the board were the 3D printed arm (Picture 4) and the snow white character that would be placed on the board as well as the mounting of certain pieces at the end of the project. The 3D printed arm was definitely the biggest challenge I faced throughout this project because it was so small yet had to fit the Arduino motor with the right proportions so the tiny motor bulb could still spin easily. With a lot of trial and error within the CAD itself I began to realize that the arm needed to connect to the rotating bulb with a small circle as opposed to just sitting on top to get the best range of motion for snow white. Painting and constructing snow white was also one of my contributions because she had to be extremely light weight yet still have more durability than paper. So I decided to draw and paint her on sketch paper and then back her with some cardboard so she could stand on her own.
This project really helped to introduce each group member to different forms of engineering design and find the aspects they like to specialize in the most to help prepare them for the final project. Helping me to realize that I really enjoy working with CAD and the more artistic elements of a design such as painting, drawing, laser cutting, etc. I had done CAD before and had never really full understood it until I got to work with it on this project and it was really fascinating seeing our designs on on-shape come to life through the 3D printers and laser cutters.
Picture 1: Brainstorming
Picture 2: Finished Board
Picture 3: Finished Half Pipe
Picture 4: 3D Printed Arm
Biker Blinker:
Due to the massive biking community in Boulder county, staying safe and visible on the roads is extremely important for the cycling community. Especially for the mass amounts of students, professors, etc. commuting to and from campus on a daily basis. The likelihood of a cyclist getting into a fatal or dangerous increases during night time as it can be difficult to see cyclists from a distance at night. According to the National Highway Traffic Safety Administration bike accidents are much more likely to occur between the hours of 6 to 9 pm on weekdays and 6pm to 12am on the weekends. Our solution to this problem was a cycling glove that lights up as a turn signal, or for just basic visibility for cyclists while riding. This assists cyclists in keeping other cars on the road alert of their position and intentions during both the day and the night time.
According to to cycling data on boulder city's website, just this year there have been about 14 severe cycling crashes, and we are only five months into the year. While this may not seem like a large amount, it is pretty significant considering just the city of Boulder. Even the University of Colorado has many easily accessible bike lanes, b-cycles for use, and cycling racks outside of most entrances to the buildings on campus. Providing an extremely large clientele for the biker blinker as even the University counts on mass amounts of students commuting by bike. Two of our team members also are apart of the cycling community in Boulder, agreeing this would be an interesting and helpful product for when they found themselves on busy roads.
Our design requirements for this product were:
Qualitative:
Water and sweat resistant circuitry
Breathable materials
Bright and visible LED lights
Limited space on the to place the circuitry
Removable batteries
Protective battery casing
Easy to turn on while cycling
Washable
Quantitative:
12 LED lights
Parallel circuit
The design process in this glove was fairly complicated as there were so many qualitative constraints that needed to be fulfilled in order to create a functional and unique cycling glove opposed to other similar designs already on the market. Our design was first constructed by sewing in twelve LED lights, four on the back of the hand and two per finger (besides the thumb), in a parallel circuit formation on a a stretchy nylon. Leaving room on the thumb for a cross-hatch of "conductive thread" that would act as a way to close the circuit on the glove and illuminate the LED lights. After sewing on this base layer there was waterproofing fabric spray applied to all of the circuitry front and back to ensure it would work when exposed to rain, sweat, etc. We determined Scotch Guard spray as the best method for waterproofing the glove as it was specifically designed to keep fabric waterproofed, opposed to other options such as flex seal and hot glue that would have made the glove stiff and uncomfortable for the user. Then we added another layer of the nylon below the circuitry to ensure there was a layer between the hand and the wiring, to further prevent sweat from contacting the wires. And a layer of mesh was sewn on top of the wiring to shield the LEDS, yet also keep them visible directly through the fabric. Another component sewn onto the top three layers of the glove was a molded silicone casing containing the double coin cell battery holder. This was made to ensure in the case of a fall, the batteries were not damaged in the process. Lastly the entire front piece of the glove was sewn to a suede that would keep a sturdy grip on the bike while riding. Producing the final product of the biker blinker (PICTURE 1).
Throughout the process we conducted many types of testing to ensure that our product would suit all of the quantitative and qualitative components required. This included both in depth material testing of the glove's fabric, prototyping, testing of the types of circuitry that could be used, waterproofing, field testing, and testing of the final circuit to ensure that it would function once sewn into the glove.
Using the universal testing machine we were able to develop stress and strain graphs of the two main types of fabric we planned on using in the glove. We knew that we wanted a more tense fabric to be sewn onto the palm side of the glove, for a more secure grip on the handle bars. Due to this, we selected a suede that although tore more easily as shown in the suede stress and strain graph (GRAPH 2), we decided to go with this fabric and create spacings on the sides of the glove to allow more stretch on the palm to counteract this issue. For the top side we wanted a stretchy and more breathable fabric, so we selected a nylon which scored extremely higher in the stress and strain categories, not torn as easily, which meant it could be layered to allow space for all of the wiring components (GRAPH 1).
Secondly, we conducted prototyping by zip-tying strip LED lights to a cycling glove to see if this idea was worth altering or manageable in a single semester. This testing was helpful as it turned our original idea of a vest into two gloves that we much easier to control. This also assisted us into realizing that using strip led lights would be much more uncomfortable than the sew in LED lights that we ended up going with (PICTURE 5).
The circuitry was tested multiple times by first drawing out simple parallel and series circuits and sewing them onto scratch pieces of fabric (PICTURE 5). From there we were able to see that a parallel circuit shone much brighter from far away distances than the series, even though it would require more space on the glove. Which is why we chose the parallel model (PICTURE 2). We also had to test the idea of connecting the circuit through two crosshatched stiches of the conductive threads on either side of the glove. For this we created a mock glove with an LED light and the two patches to see if the circuit would fully be connected when the thumb pressed against the pointer finger (PICTURE 3).
To waterproof/seal all of the wiring within the glove, we used a Scotch Guard spray, spraying in multiple coats on sample pieces of fabric compared to a non-waterproofed piece, to see if the fabric was resistant to the water, but still able to stretch and was breathable. The Scotch Guard proved amazing in this aspect because after just a few coats, the fabric was fairly water resistant. Lastly was the testing of the final product.
We tested the product at night and during a pretty heavy rain storm to see how the circuitry would react to the weather (PICTURE 4). The product stayed fairly dry and all of the circuitry worked very well and was able to be seen from quite a far distance in the rain. Proving that all of the various aspects of our testing had come together to create a comfortable, visible, and weather resistant glove which was our goal.
Developing the biker blinker was an extremely interesting experience as it combined elements to engineering that are often not studied in school nearly as much, such as physical problem solving, collaboration, and manufacturing techniques. And out of this process, we were able to create an original cycling glove that had all of the functional and aesthetic requirements that we has sought out. Overall, this experience really introduced me to the many different types of work engineers can do and made me want to work on developing my CAD skills even more as I really enjoyed working on Onshape earlier on in the semester.
PICTURE 1
PICTURE 2
PICTURE 3
PICTURE 4
PICTURE 5
PICTURE 5
GRAPH 1
GRAPH 2