<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ubc.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TimCai</id>
	<title>UBC Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ubc.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=TimCai"/>
	<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/Special:Contributions/TimCai"/>
	<updated>2026-06-26T17:23:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899946</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899946"/>
		<updated>2026-06-26T03:39:10Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Autonomous Program */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome ===&lt;br /&gt;
Welcome to the Team 1 VANT 151 Capstone Project Wiki. This page shows the work of our team for the design project. It includes our project goals, team requirements, task planning, design phase and final outcomes.&lt;br /&gt;
&lt;br /&gt;
Team 1 was operating as multiple sub-teams. The individual sub-teams were each assigned to work on a different part of the vehicle system. This included coding, electrical, mechanical, structural and documentation work. Everyone focused on their part and then all the parts were put together to one final project.&lt;br /&gt;
&lt;br /&gt;
This wiki also demonstrates how our team planned the project, divided the tasks, followed the schedule, and documented our progress. This assists the reader in understanding the work of each sub-team and the evolution of the whole project.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
The VANT 151 project was a multi-discipline engineering design project. Team 1 was tasked with designing and presenting a vehicle system that includes a range of engineering elements. The project was split in many areas, so the work was distributed in different sub-teams like Coding, Electrical, Mechanical, Structural and Documentation.&lt;br /&gt;
&lt;br /&gt;
The control systems sub-team worked on the code for the transmitter and receiver, the joystick and the buttons, switches and their connections . The Electrical sub-team was in charge of the vehicle’s electronic system including the vehicle board, wiring, fan control, Peltier module circuit and other electrical parts. The Mechanical sub-team worked on the drive train, steering system, suspension and power transmission. The frame, enclosure, panels, transparent parts and doors were the responsibility of the Structural sub-team. The Documentation sub-team assisted Team 1 in producing the final wiki and presentation. We have set up the basic wiki framework, created the Gantt chart, tracked the project schedule and gathered information from each sub-team.&lt;br /&gt;
&lt;br /&gt;
Communication was important in the project because many parts were connected. For instance, the mechanical design impacted the structure, the electrical system had to be housed inside the vehicle, and the coding system was needed to control the functions of the vehicle. So each sub team had to keep each other informed and change things if necessary. This wiki describes the main requirements of Team 1, design work, team progress, drawings and final results.&lt;br /&gt;
&lt;br /&gt;
=== Team Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The vehicle’s main functions are to:&lt;br /&gt;
&lt;br /&gt;
1 Move forward and backwards at user’s command.&lt;br /&gt;
&lt;br /&gt;
2 Steering system for steering left and right.&lt;br /&gt;
&lt;br /&gt;
3 Receiving wireless control signals from the transmitter.&lt;br /&gt;
&lt;br /&gt;
4 A stable structure is required to support the vehicle body, rider area and internal elements.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The goals of this project are to enhance the final vehicle design by:&lt;br /&gt;
&lt;br /&gt;
1 Build a working vehicle system, including coding, electric, mechanical and structural parts.&lt;br /&gt;
&lt;br /&gt;
2 Ensure that the control system, drive system, electrical system and structure are compatible.&lt;br /&gt;
&lt;br /&gt;
3 It is a simple compact design, safe and suitable for the prototype.&lt;br /&gt;
&lt;br /&gt;
4 Final design presentation through team wiki, drawings, Gantt chart, and oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Constrains ====&lt;br /&gt;
The constraints of the project are&lt;br /&gt;
&lt;br /&gt;
1 The project needs to be finished within the timeframe of the VANT 151 course.&lt;br /&gt;
&lt;br /&gt;
2 The vehicle has to make use of parts, materials and tools which are available in the course.&lt;br /&gt;
&lt;br /&gt;
3 The electrical system must meet the allowable power range, which is 9.6 V DC and 2.8 A.&lt;br /&gt;
&lt;br /&gt;
4 Each team member should be familiar with their own part and be able to explain it during the oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Gantt chart ====&lt;br /&gt;
[[File:截屏2026-06-18 22.31.50.png|center|thumb|676x676px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16.jpg|left|thumb|Figure 1. Final TX layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(1).jpg|none|thumb|Figure 2. Receiver circuit with extra features: LEDs, buzzer, peltier module and fans.]]&lt;br /&gt;
-&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
Transmitter Layout Alternatives and Selection&lt;br /&gt;
&lt;br /&gt;
The transmitter layout was selected by comparing three physical layout alternatives. The goal was to make the controller comfortable to hold, easy to understand, and safe to operate while still leaving enough space for extra features.&lt;br /&gt;
[[File:Team1_Coding_Layout_Alternatives.png|left|thumb|700x700px|Figure 3. Three alternative layouts of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter layout alternatives and selection&lt;br /&gt;
!Alternative&lt;br /&gt;
!A. Compact layout&lt;br /&gt;
!B. Mixed layout&lt;br /&gt;
!C. Separated layout&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|The joystick, switch, LED, and buttons are all placed on the top surface in a compact arrangement.&lt;br /&gt;
|The joystick and switch are placed on the top surface, while the feature buttons are placed on the right side of the transmitter.&lt;br /&gt;
|The joystick is placed in the main driving area, while the switch and feature buttons are placed in a separate control area on the top surface.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Advantages&#039;&#039;&#039;&lt;br /&gt;
|Small overall layout; simple to understand; all controls are visible from the top.&lt;br /&gt;
|The top surface is less crowded, and the feature buttons are separated from the joystick area.&lt;br /&gt;
|Clear separation between driving control and extra features; more space around the joystick; more comfortable two-thumb operation; easier to label and understand.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Disadvantages&#039;&#039;&#039;&lt;br /&gt;
|The buttons are close to the joystick, which gives less thumb clearance and increases the chance of accidental button presses during driving. It also leaves less space for future features.&lt;br /&gt;
|Side buttons are less visible during operation and may be harder to press consistently while holding the transmitter. They may also be pressed accidentally by the user&#039;s grip.&lt;br /&gt;
|Requires slightly more planning for the transmitter box layout.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Decision&#039;&#039;&#039;&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Selected.&lt;br /&gt;
|}&lt;br /&gt;
The separated layout was chosen because it provides the best balance of comfort, clarity, and expandability. The joystick is used for the main driving control, while the extra feature buttons are placed in a separate area. This allows the user to keep one thumb on the joystick and use the other thumb for the feature buttons. As a result, the transmitter is more comfortable to hold, easier to understand, and less likely to cause accidental button presses during driving.&lt;br /&gt;
&lt;br /&gt;
This layout also makes testing and demonstration easier because each control area has a clear purpose. The joystick area is used for vehicle movement, while the feature button area is used for extra functions such as the Peltier system, buzzer, and lights.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Transmitter Part Drawing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After comparing the layout alternatives, the separated transmitter layout was selected as the final design. The final transmitter uses a joystick for the main driving control and separates the extra feature buttons into a different control area. The part drawings below show the final physical layout of the transmitter.&lt;br /&gt;
[[File:Team1_Coding_Transmitter_top.png|left|thumb|Figure 4. Top view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_front.png|none|thumb|Figure 5. Front view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_right.png|left|thumb|Figure 6. Right view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_isometric.png|none|thumb|Figure 7. Isometric view of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table 4 shows a summary of the transmitter inputs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
[[File:Bicycle with receiver.jpg|left|thumb|400x400px|Figure 8. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashboard Bridge and Landing Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(2).jpg|none|thumb|Figure 9. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!{{#widget:YouTube|id=HujU6l2J8PE|height=315|width=420}}&lt;br /&gt;
|-&lt;br /&gt;
|Figure 10. Laptop dashboard showing live RC and cabin telemetry.&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 11. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 10. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering:  Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to lean up to 30° during cornering, while keeping the front wheels more balanced and stable during turns.&lt;br /&gt;
# Steering: Target a turning radius of around 600 mm, so the prototype can make tight turns while still keeping the steering system simple and easy to control.&lt;br /&gt;
# Drive train: Increase the tested vehicle speed through the gear system, while keeping the chain movement smooth and reducing chain noise during operation.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: The lean angle is limited by front fork alignment, joint clearance, and wheel contact with the ground.&lt;br /&gt;
# Steering: The steering angle is limited by the available frame space and the movement range of the steering linkage.&lt;br /&gt;
# Drive train: The gear and chain layout is limited by frame space, chain alignment, and proper chain tension.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front suspension design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (496).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the three designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|30%&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|30%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Flexibility&lt;br /&gt;
|40%&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.5&lt;br /&gt;
|3.0&lt;br /&gt;
|4.4&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 3 was selected because it provides the best overall balance of simplicity, durability, and flexibility. Although Design 2 is the simplest and most durable, it has no flexibility, which significantly lowers its overall score. Design 1 offers high flexibility, but its more complex linkage system makes it less simple and potentially less durable than Design 3. Therefore, &#039;&#039;&#039;Design 3 is the strongest option for the final prototype.&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:Screenshot (495).png|thumb|&#039;&#039;&#039;3D picture of drive chain&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Drive Chain ====&lt;br /&gt;
&lt;br /&gt;
The drive train system uses a large gear to transfer power from the motor to two smaller gears connected to the wheel shafts. When the large gear rotates, it drives the smaller gears, causing them to spin at a higher rotational speed. This happens because the smaller gears have fewer teeth, so they complete more rotations for each rotation of the larger gear.&lt;br /&gt;
&lt;br /&gt;
This gear arrangement was chosen to increase the output speed of the wheels while keeping the system compact and simple. The larger gear helps distribute motion to both smaller gears, allowing the vehicle to move forward efficiently. Although this design increases speed, it also reduces torque, so the gear ratio must be balanced to provide enough wheel power for movement.&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Design simpler structures with fewer small and complex parts to improve 3D-printing reliability. Front Suspension Design 1 repeatedly failed during printing and had to be postponed.&lt;br /&gt;
# Use metal connectors, such as steel pins, bolts, and screws, for moving joints instead of small 3D-printed connectors.&lt;br /&gt;
# Organize the project schedule more effectively and allow extra time for printing, assembly, and redesign because of the large workload.&lt;br /&gt;
&lt;br /&gt;
==== Appendices ====&lt;br /&gt;
&lt;br /&gt;
===== Front suspension and steering sketches =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:724424527 1017368514321931 1195802966728315288 n.jpg|thumb]]&lt;br /&gt;
![[File:726493212 27203115756038827 4671180692809538110 n.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. receive the signal from the trasmitter to control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. provide enough power for motor to move&lt;br /&gt;
&lt;br /&gt;
3. able to rotate the servo to control the direction of the handle bar&lt;br /&gt;
&lt;br /&gt;
4. able to receive the code from coding subteam&lt;br /&gt;
&lt;br /&gt;
5. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
6. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to control the speed over 1km/h and maximize it&lt;br /&gt;
&lt;br /&gt;
2. keep the wiring clear and well organized&lt;br /&gt;
&lt;br /&gt;
3. allow the circuit fit in the prototype vehicle&lt;br /&gt;
&lt;br /&gt;
4. Able to monitor the temperature and humidity inside the vehicle&lt;br /&gt;
&lt;br /&gt;
5. able to be stable when no signal is received&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. need to prevent shortcircuit and electrostatics damage.&lt;br /&gt;
&lt;br /&gt;
3. prevent wire loosing during the driving time&lt;br /&gt;
&lt;br /&gt;
4. only can recieve the signal from the transmitter in a small room.&lt;br /&gt;
&lt;br /&gt;
5. suitable location of the receiver in sepcific size&lt;br /&gt;
&lt;br /&gt;
6. do not break the frame of the prototype during testing&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Rejected Design ====&lt;br /&gt;
Our previous rejected design was to solder all the wires together instead of using a breadboard for the connections. In this design, some elecrical conponent are connected together, only a few wire were connected with the breadboard. This made the circuit very messy and difficult to check.&lt;br /&gt;
&lt;br /&gt;
Because of this, even if the circuit could be more organized with extra circuit, we rejected this design to make sure all components are connected with breadboard, so it is more easy to check the circuit issue when troubleshooting.&lt;br /&gt;
&lt;br /&gt;
[[File:Previous soldered circuit layout.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive and Steering Circuit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The receiver gets the signal from the remote control and the Arduino then controls the motor and the servo to make the vehicle move forward and turn.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
The fan circuit is used to help control the temperature inside the vehicle. When the system is turned on, the fan can move air through the vehicle and help cool the rider area.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
The Peltier circuit is used for cooling. The Arduino controls the Peltier module through the MOSFET so that it can help reduce the temperature inside the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
The boards mounting helped keep the wires more organized and made testing easier. This also help us easy to connect and check when the boards were mounted inside the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151 electrical circuit.jpg|center|thumb|2026 VANT151 Team 1 electrical circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
The Autonomous Program can control the motor and steering so the vehicle can move in a straight line and complete the required path.&lt;br /&gt;
[[File:RX_automation_code.docx|thumb|VANT151 team 1 RX automation code]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
The receiver was placed in a position where it could receive the remote-control signal more easily. This helped improve the connection between the remote control and the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:RX_automation_code.docx|center|thumb|VANT151 team 1 RX automation code]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Chengxiang Hu ===&lt;br /&gt;
[[File:1e989197efd15dd7ee9ee7bea80e384f.jpg|thumb|149x149px]]Documentation Sub-team Member&lt;br /&gt;
&lt;br /&gt;
I helped with the Wiki, project documentation, Gantt Chart and project planning. I collected data from different sub-teams and helped to produce the final Wiki and presentation.&lt;br /&gt;
&lt;br /&gt;
Through this project I learned how to manage project information, track project progress and work with different team members. I’ve also developed my communication and teamwork skills.&lt;br /&gt;
|Amartuvshin Tavinbekh&lt;br /&gt;
N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Tim Cai ===&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|[[File:Portrait of Jianyu Zhang.jpg|thumb|104x104px]]&#039;&#039;&#039;Jianyu Zhang&#039;&#039;&#039;&lt;br /&gt;
My role in the team: to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]&lt;br /&gt;
&lt;br /&gt;
=== Thang Le ===&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks.  &lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process. &lt;br /&gt;
|[[File:727380122 2997023350486820 143473373843037600 n.jpg|thumb|137x137px]]&lt;br /&gt;
&lt;br /&gt;
=== Jiarui Zhang ===&lt;br /&gt;
Mechanical Sub-team Design and Basic SolidWorks Assembly. &lt;br /&gt;
&lt;br /&gt;
I led the basic SolidWorks design and main assembly process for the mechanical system, including the front suspension, drive train, and steering system.&lt;br /&gt;
&lt;br /&gt;
I was part of the mechanical sub-team. I contributed to the basic SolidWorks design and main assembly, including the front suspension, drive train, and steering system. From this project, I learned how to balance simplicity, durability, and buildability when designing mechanical parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Coding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Christopher Rodas Castillo ===&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
My main contributions were organizing the team’s coding work, planning the project structure, developing and testing key features, debugging errors, and improving the overall functionality of the final product. I also helped connect different parts of the project together, reviewed the code to make sure it worked properly, and supported teammates when they ran into technical problems. Through this experience, I learned how important communication, planning, and teamwork are in software development, especially when turning ideas into a working project.&lt;br /&gt;
|[[File:48dd1b272c646ee852ec9d5fcf467ed4.jpg|thumb|140x140px]]&#039;&#039;&#039;Bowen Zheng&#039;&#039;&#039;&lt;br /&gt;
coding sub-team member&lt;br /&gt;
&lt;br /&gt;
My main contribution to the team was designing and fabricating the transmitter housing, as well as assisting in building the transmitter circuitry, including soldering and component assembly. Through this experience, I learned the importance of collaboration and gained a deeper understanding of how transmitters work, including their internal components and code development.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899945</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899945"/>
		<updated>2026-06-26T03:38:26Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Arduino Code */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome ===&lt;br /&gt;
Welcome to the Team 1 VANT 151 Capstone Project Wiki. This page shows the work of our team for the design project. It includes our project goals, team requirements, task planning, design phase and final outcomes.&lt;br /&gt;
&lt;br /&gt;
Team 1 was operating as multiple sub-teams. The individual sub-teams were each assigned to work on a different part of the vehicle system. This included coding, electrical, mechanical, structural and documentation work. Everyone focused on their part and then all the parts were put together to one final project.&lt;br /&gt;
&lt;br /&gt;
This wiki also demonstrates how our team planned the project, divided the tasks, followed the schedule, and documented our progress. This assists the reader in understanding the work of each sub-team and the evolution of the whole project.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
The VANT 151 project was a multi-discipline engineering design project. Team 1 was tasked with designing and presenting a vehicle system that includes a range of engineering elements. The project was split in many areas, so the work was distributed in different sub-teams like Coding, Electrical, Mechanical, Structural and Documentation.&lt;br /&gt;
&lt;br /&gt;
The control systems sub-team worked on the code for the transmitter and receiver, the joystick and the buttons, switches and their connections . The Electrical sub-team was in charge of the vehicle’s electronic system including the vehicle board, wiring, fan control, Peltier module circuit and other electrical parts. The Mechanical sub-team worked on the drive train, steering system, suspension and power transmission. The frame, enclosure, panels, transparent parts and doors were the responsibility of the Structural sub-team. The Documentation sub-team assisted Team 1 in producing the final wiki and presentation. We have set up the basic wiki framework, created the Gantt chart, tracked the project schedule and gathered information from each sub-team.&lt;br /&gt;
&lt;br /&gt;
Communication was important in the project because many parts were connected. For instance, the mechanical design impacted the structure, the electrical system had to be housed inside the vehicle, and the coding system was needed to control the functions of the vehicle. So each sub team had to keep each other informed and change things if necessary. This wiki describes the main requirements of Team 1, design work, team progress, drawings and final results.&lt;br /&gt;
&lt;br /&gt;
=== Team Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The vehicle’s main functions are to:&lt;br /&gt;
&lt;br /&gt;
1 Move forward and backwards at user’s command.&lt;br /&gt;
&lt;br /&gt;
2 Steering system for steering left and right.&lt;br /&gt;
&lt;br /&gt;
3 Receiving wireless control signals from the transmitter.&lt;br /&gt;
&lt;br /&gt;
4 A stable structure is required to support the vehicle body, rider area and internal elements.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The goals of this project are to enhance the final vehicle design by:&lt;br /&gt;
&lt;br /&gt;
1 Build a working vehicle system, including coding, electric, mechanical and structural parts.&lt;br /&gt;
&lt;br /&gt;
2 Ensure that the control system, drive system, electrical system and structure are compatible.&lt;br /&gt;
&lt;br /&gt;
3 It is a simple compact design, safe and suitable for the prototype.&lt;br /&gt;
&lt;br /&gt;
4 Final design presentation through team wiki, drawings, Gantt chart, and oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Constrains ====&lt;br /&gt;
The constraints of the project are&lt;br /&gt;
&lt;br /&gt;
1 The project needs to be finished within the timeframe of the VANT 151 course.&lt;br /&gt;
&lt;br /&gt;
2 The vehicle has to make use of parts, materials and tools which are available in the course.&lt;br /&gt;
&lt;br /&gt;
3 The electrical system must meet the allowable power range, which is 9.6 V DC and 2.8 A.&lt;br /&gt;
&lt;br /&gt;
4 Each team member should be familiar with their own part and be able to explain it during the oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Gantt chart ====&lt;br /&gt;
[[File:截屏2026-06-18 22.31.50.png|center|thumb|676x676px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16.jpg|left|thumb|Figure 1. Final TX layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(1).jpg|none|thumb|Figure 2. Receiver circuit with extra features: LEDs, buzzer, peltier module and fans.]]&lt;br /&gt;
-&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
Transmitter Layout Alternatives and Selection&lt;br /&gt;
&lt;br /&gt;
The transmitter layout was selected by comparing three physical layout alternatives. The goal was to make the controller comfortable to hold, easy to understand, and safe to operate while still leaving enough space for extra features.&lt;br /&gt;
[[File:Team1_Coding_Layout_Alternatives.png|left|thumb|700x700px|Figure 3. Three alternative layouts of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter layout alternatives and selection&lt;br /&gt;
!Alternative&lt;br /&gt;
!A. Compact layout&lt;br /&gt;
!B. Mixed layout&lt;br /&gt;
!C. Separated layout&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|The joystick, switch, LED, and buttons are all placed on the top surface in a compact arrangement.&lt;br /&gt;
|The joystick and switch are placed on the top surface, while the feature buttons are placed on the right side of the transmitter.&lt;br /&gt;
|The joystick is placed in the main driving area, while the switch and feature buttons are placed in a separate control area on the top surface.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Advantages&#039;&#039;&#039;&lt;br /&gt;
|Small overall layout; simple to understand; all controls are visible from the top.&lt;br /&gt;
|The top surface is less crowded, and the feature buttons are separated from the joystick area.&lt;br /&gt;
|Clear separation between driving control and extra features; more space around the joystick; more comfortable two-thumb operation; easier to label and understand.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Disadvantages&#039;&#039;&#039;&lt;br /&gt;
|The buttons are close to the joystick, which gives less thumb clearance and increases the chance of accidental button presses during driving. It also leaves less space for future features.&lt;br /&gt;
|Side buttons are less visible during operation and may be harder to press consistently while holding the transmitter. They may also be pressed accidentally by the user&#039;s grip.&lt;br /&gt;
|Requires slightly more planning for the transmitter box layout.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Decision&#039;&#039;&#039;&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Selected.&lt;br /&gt;
|}&lt;br /&gt;
The separated layout was chosen because it provides the best balance of comfort, clarity, and expandability. The joystick is used for the main driving control, while the extra feature buttons are placed in a separate area. This allows the user to keep one thumb on the joystick and use the other thumb for the feature buttons. As a result, the transmitter is more comfortable to hold, easier to understand, and less likely to cause accidental button presses during driving.&lt;br /&gt;
&lt;br /&gt;
This layout also makes testing and demonstration easier because each control area has a clear purpose. The joystick area is used for vehicle movement, while the feature button area is used for extra functions such as the Peltier system, buzzer, and lights.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Transmitter Part Drawing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After comparing the layout alternatives, the separated transmitter layout was selected as the final design. The final transmitter uses a joystick for the main driving control and separates the extra feature buttons into a different control area. The part drawings below show the final physical layout of the transmitter.&lt;br /&gt;
[[File:Team1_Coding_Transmitter_top.png|left|thumb|Figure 4. Top view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_front.png|none|thumb|Figure 5. Front view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_right.png|left|thumb|Figure 6. Right view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_isometric.png|none|thumb|Figure 7. Isometric view of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table 4 shows a summary of the transmitter inputs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
[[File:Bicycle with receiver.jpg|left|thumb|400x400px|Figure 8. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashboard Bridge and Landing Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(2).jpg|none|thumb|Figure 9. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!{{#widget:YouTube|id=HujU6l2J8PE|height=315|width=420}}&lt;br /&gt;
|-&lt;br /&gt;
|Figure 10. Laptop dashboard showing live RC and cabin telemetry.&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 11. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 10. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering:  Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to lean up to 30° during cornering, while keeping the front wheels more balanced and stable during turns.&lt;br /&gt;
# Steering: Target a turning radius of around 600 mm, so the prototype can make tight turns while still keeping the steering system simple and easy to control.&lt;br /&gt;
# Drive train: Increase the tested vehicle speed through the gear system, while keeping the chain movement smooth and reducing chain noise during operation.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: The lean angle is limited by front fork alignment, joint clearance, and wheel contact with the ground.&lt;br /&gt;
# Steering: The steering angle is limited by the available frame space and the movement range of the steering linkage.&lt;br /&gt;
# Drive train: The gear and chain layout is limited by frame space, chain alignment, and proper chain tension.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front suspension design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (496).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the three designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|30%&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|30%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Flexibility&lt;br /&gt;
|40%&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.5&lt;br /&gt;
|3.0&lt;br /&gt;
|4.4&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 3 was selected because it provides the best overall balance of simplicity, durability, and flexibility. Although Design 2 is the simplest and most durable, it has no flexibility, which significantly lowers its overall score. Design 1 offers high flexibility, but its more complex linkage system makes it less simple and potentially less durable than Design 3. Therefore, &#039;&#039;&#039;Design 3 is the strongest option for the final prototype.&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:Screenshot (495).png|thumb|&#039;&#039;&#039;3D picture of drive chain&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Drive Chain ====&lt;br /&gt;
&lt;br /&gt;
The drive train system uses a large gear to transfer power from the motor to two smaller gears connected to the wheel shafts. When the large gear rotates, it drives the smaller gears, causing them to spin at a higher rotational speed. This happens because the smaller gears have fewer teeth, so they complete more rotations for each rotation of the larger gear.&lt;br /&gt;
&lt;br /&gt;
This gear arrangement was chosen to increase the output speed of the wheels while keeping the system compact and simple. The larger gear helps distribute motion to both smaller gears, allowing the vehicle to move forward efficiently. Although this design increases speed, it also reduces torque, so the gear ratio must be balanced to provide enough wheel power for movement.&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Design simpler structures with fewer small and complex parts to improve 3D-printing reliability. Front Suspension Design 1 repeatedly failed during printing and had to be postponed.&lt;br /&gt;
# Use metal connectors, such as steel pins, bolts, and screws, for moving joints instead of small 3D-printed connectors.&lt;br /&gt;
# Organize the project schedule more effectively and allow extra time for printing, assembly, and redesign because of the large workload.&lt;br /&gt;
&lt;br /&gt;
==== Appendices ====&lt;br /&gt;
&lt;br /&gt;
===== Front suspension and steering sketches =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:724424527 1017368514321931 1195802966728315288 n.jpg|thumb]]&lt;br /&gt;
![[File:726493212 27203115756038827 4671180692809538110 n.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. receive the signal from the trasmitter to control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. provide enough power for motor to move&lt;br /&gt;
&lt;br /&gt;
3. able to rotate the servo to control the direction of the handle bar&lt;br /&gt;
&lt;br /&gt;
4. able to receive the code from coding subteam&lt;br /&gt;
&lt;br /&gt;
5. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
6. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to control the speed over 1km/h and maximize it&lt;br /&gt;
&lt;br /&gt;
2. keep the wiring clear and well organized&lt;br /&gt;
&lt;br /&gt;
3. allow the circuit fit in the prototype vehicle&lt;br /&gt;
&lt;br /&gt;
4. Able to monitor the temperature and humidity inside the vehicle&lt;br /&gt;
&lt;br /&gt;
5. able to be stable when no signal is received&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. need to prevent shortcircuit and electrostatics damage.&lt;br /&gt;
&lt;br /&gt;
3. prevent wire loosing during the driving time&lt;br /&gt;
&lt;br /&gt;
4. only can recieve the signal from the transmitter in a small room.&lt;br /&gt;
&lt;br /&gt;
5. suitable location of the receiver in sepcific size&lt;br /&gt;
&lt;br /&gt;
6. do not break the frame of the prototype during testing&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Rejected Design ====&lt;br /&gt;
Our previous rejected design was to solder all the wires together instead of using a breadboard for the connections. In this design, some elecrical conponent are connected together, only a few wire were connected with the breadboard. This made the circuit very messy and difficult to check.&lt;br /&gt;
&lt;br /&gt;
Because of this, even if the circuit could be more organized with extra circuit, we rejected this design to make sure all components are connected with breadboard, so it is more easy to check the circuit issue when troubleshooting.&lt;br /&gt;
&lt;br /&gt;
[[File:Previous soldered circuit layout.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive and Steering Circuit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The receiver gets the signal from the remote control and the Arduino then controls the motor and the servo to make the vehicle move forward and turn.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
The fan circuit is used to help control the temperature inside the vehicle. When the system is turned on, the fan can move air through the vehicle and help cool the rider area.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
The Peltier circuit is used for cooling. The Arduino controls the Peltier module through the MOSFET so that it can help reduce the temperature inside the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
The boards mounting helped keep the wires more organized and made testing easier. This also help us easy to connect and check when the boards were mounted inside the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151 electrical circuit.jpg|center|thumb|2026 VANT151 Team 1 electrical circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
The Autonomous Program can control the motor and steering so the vehicle can move in a straight line and complete the required path.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
The receiver was placed in a position where it could receive the remote-control signal more easily. This helped improve the connection between the remote control and the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:RX_automation_code.docx|center|thumb|VANT151 team 1 RX automation code]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Chengxiang Hu ===&lt;br /&gt;
[[File:1e989197efd15dd7ee9ee7bea80e384f.jpg|thumb|149x149px]]Documentation Sub-team Member&lt;br /&gt;
&lt;br /&gt;
I helped with the Wiki, project documentation, Gantt Chart and project planning. I collected data from different sub-teams and helped to produce the final Wiki and presentation.&lt;br /&gt;
&lt;br /&gt;
Through this project I learned how to manage project information, track project progress and work with different team members. I’ve also developed my communication and teamwork skills.&lt;br /&gt;
|Amartuvshin Tavinbekh&lt;br /&gt;
N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Tim Cai ===&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|[[File:Portrait of Jianyu Zhang.jpg|thumb|104x104px]]&#039;&#039;&#039;Jianyu Zhang&#039;&#039;&#039;&lt;br /&gt;
My role in the team: to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]&lt;br /&gt;
&lt;br /&gt;
=== Thang Le ===&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks.  &lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process. &lt;br /&gt;
|[[File:727380122 2997023350486820 143473373843037600 n.jpg|thumb|137x137px]]&lt;br /&gt;
&lt;br /&gt;
=== Jiarui Zhang ===&lt;br /&gt;
Mechanical Sub-team Design and Basic SolidWorks Assembly. &lt;br /&gt;
&lt;br /&gt;
I led the basic SolidWorks design and main assembly process for the mechanical system, including the front suspension, drive train, and steering system.&lt;br /&gt;
&lt;br /&gt;
I was part of the mechanical sub-team. I contributed to the basic SolidWorks design and main assembly, including the front suspension, drive train, and steering system. From this project, I learned how to balance simplicity, durability, and buildability when designing mechanical parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Coding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Christopher Rodas Castillo ===&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
My main contributions were organizing the team’s coding work, planning the project structure, developing and testing key features, debugging errors, and improving the overall functionality of the final product. I also helped connect different parts of the project together, reviewed the code to make sure it worked properly, and supported teammates when they ran into technical problems. Through this experience, I learned how important communication, planning, and teamwork are in software development, especially when turning ideas into a working project.&lt;br /&gt;
|[[File:48dd1b272c646ee852ec9d5fcf467ed4.jpg|thumb|140x140px]]&#039;&#039;&#039;Bowen Zheng&#039;&#039;&#039;&lt;br /&gt;
coding sub-team member&lt;br /&gt;
&lt;br /&gt;
My main contribution to the team was designing and fabricating the transmitter housing, as well as assisting in building the transmitter circuitry, including soldering and component assembly. Through this experience, I learned the importance of collaboration and gained a deeper understanding of how transmitters work, including their internal components and code development.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:RX_automation_code.docx&amp;diff=899944</id>
		<title>File:RX automation code.docx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:RX_automation_code.docx&amp;diff=899944"/>
		<updated>2026-06-26T03:35:36Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=VANT151 team 1 RX automation code}}&lt;br /&gt;
|date=2026-06-25&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899881</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899881"/>
		<updated>2026-06-26T01:58:20Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Sub-teams: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome ===&lt;br /&gt;
Welcome to the Team 1 VANT 151 Capstone Project Wiki. This page shows the work of our team for the design project. It includes our project goals, team requirements, task planning, design phase and final outcomes.&lt;br /&gt;
&lt;br /&gt;
Team 1 was operating as multiple sub-teams. The individual sub-teams were each assigned to work on a different part of the vehicle system. This included coding, electrical, mechanical, structural and documentation work. Everyone focused on their part and then all the parts were put together to one final project.&lt;br /&gt;
&lt;br /&gt;
This wiki also demonstrates how our team planned the project, divided the tasks, followed the schedule, and documented our progress. This assists the reader in understanding the work of each sub-team and the evolution of the whole project.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
The VANT 151 project was a multi-discipline engineering design project. Team 1 was tasked with designing and presenting a vehicle system that includes a range of engineering elements. The project was split in many areas, so the work was distributed in different sub-teams like Coding, Electrical, Mechanical, Structural and Documentation.&lt;br /&gt;
&lt;br /&gt;
The control systems sub-team worked on the code for the transmitter and receiver, the joystick and the buttons, switches and their connections . The Electrical sub-team was in charge of the vehicle’s electronic system including the vehicle board, wiring, fan control, Peltier module circuit and other electrical parts. The Mechanical sub-team worked on the drive train, steering system, suspension and power transmission. The frame, enclosure, panels, transparent parts and doors were the responsibility of the Structural sub-team. The Documentation sub-team assisted Team 1 in producing the final wiki and presentation. We have set up the basic wiki framework, created the Gantt chart, tracked the project schedule and gathered information from each sub-team.&lt;br /&gt;
&lt;br /&gt;
Communication was important in the project because many parts were connected. For instance, the mechanical design impacted the structure, the electrical system had to be housed inside the vehicle, and the coding system was needed to control the functions of the vehicle. So each sub team had to keep each other informed and change things if necessary. This wiki describes the main requirements of Team 1, design work, team progress, drawings and final results.&lt;br /&gt;
&lt;br /&gt;
=== Team Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The vehicle’s main functions are to:&lt;br /&gt;
&lt;br /&gt;
1 Move forward and backwards at user’s command.&lt;br /&gt;
&lt;br /&gt;
2 Steering system for steering left and right.&lt;br /&gt;
&lt;br /&gt;
3 Receiving wireless control signals from the transmitter.&lt;br /&gt;
&lt;br /&gt;
4 A stable structure is required to support the vehicle body, rider area and internal elements.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The goals of this project are to enhance the final vehicle design by:&lt;br /&gt;
&lt;br /&gt;
1 Build a working vehicle system, including coding, electric, mechanical and structural parts.&lt;br /&gt;
&lt;br /&gt;
2 Ensure that the control system, drive system, electrical system and structure are compatible.&lt;br /&gt;
&lt;br /&gt;
3 It is a simple compact design, safe and suitable for the prototype.&lt;br /&gt;
&lt;br /&gt;
4 Final design presentation through team wiki, drawings, Gantt chart, and oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Constrains ====&lt;br /&gt;
The constraints of the project are&lt;br /&gt;
&lt;br /&gt;
1 The project needs to be finished within the timeframe of the VANT 151 course.&lt;br /&gt;
&lt;br /&gt;
2 The vehicle has to make use of parts, materials and tools which are available in the course.&lt;br /&gt;
&lt;br /&gt;
3 The electrical system must meet the allowable power range, which is 9.6 V DC and 2.8 A.&lt;br /&gt;
&lt;br /&gt;
4 Each team member should be familiar with their own part and be able to explain it during the oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Gantt chart ====&lt;br /&gt;
[[File:截屏2026-06-18 22.31.50.png|center|thumb|676x676px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16.jpg|left|thumb|Figure 1. Final TX layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(1).jpg|none|thumb|Figure 2. Receiver circuit with extra features: LEDs, buzzer, peltier module and fans.]]&lt;br /&gt;
-&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
Transmitter Layout Alternatives and Selection&lt;br /&gt;
&lt;br /&gt;
The transmitter layout was selected by comparing three physical layout alternatives. The goal was to make the controller comfortable to hold, easy to understand, and safe to operate while still leaving enough space for extra features.&lt;br /&gt;
[[File:Team1_Coding_Layout_Alternatives.png|left|thumb|700x700px|Figure 3. Three alternative layouts of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter layout alternatives and selection&lt;br /&gt;
!Alternative&lt;br /&gt;
!A. Compact layout&lt;br /&gt;
!B. Mixed layout&lt;br /&gt;
!C. Separated layout&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|The joystick, switch, LED, and buttons are all placed on the top surface in a compact arrangement.&lt;br /&gt;
|The joystick and switch are placed on the top surface, while the feature buttons are placed on the right side of the transmitter.&lt;br /&gt;
|The joystick is placed in the main driving area, while the switch and feature buttons are placed in a separate control area on the top surface.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Advantages&#039;&#039;&#039;&lt;br /&gt;
|Small overall layout; simple to understand; all controls are visible from the top.&lt;br /&gt;
|The top surface is less crowded, and the feature buttons are separated from the joystick area.&lt;br /&gt;
|Clear separation between driving control and extra features; more space around the joystick; more comfortable two-thumb operation; easier to label and understand.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Disadvantages&#039;&#039;&#039;&lt;br /&gt;
|The buttons are close to the joystick, which gives less thumb clearance and increases the chance of accidental button presses during driving. It also leaves less space for future features.&lt;br /&gt;
|Side buttons are less visible during operation and may be harder to press consistently while holding the transmitter. They may also be pressed accidentally by the user&#039;s grip.&lt;br /&gt;
|Requires slightly more planning for the transmitter box layout.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Decision&#039;&#039;&#039;&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Selected.&lt;br /&gt;
|}&lt;br /&gt;
The separated layout was chosen because it provides the best balance of comfort, clarity, and expandability. The joystick is used for the main driving control, while the extra feature buttons are placed in a separate area. This allows the user to keep one thumb on the joystick and use the other thumb for the feature buttons. As a result, the transmitter is more comfortable to hold, easier to understand, and less likely to cause accidental button presses during driving.&lt;br /&gt;
&lt;br /&gt;
This layout also makes testing and demonstration easier because each control area has a clear purpose. The joystick area is used for vehicle movement, while the feature button area is used for extra functions such as the Peltier system, buzzer, and lights.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Transmitter Part Drawing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After comparing the layout alternatives, the separated transmitter layout was selected as the final design. The final transmitter uses a joystick for the main driving control and separates the extra feature buttons into a different control area. The part drawings below show the final physical layout of the transmitter.&lt;br /&gt;
[[File:Team1_Coding_Transmitter_top.png|left|thumb|Figure 4. Top view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_front.png|none|thumb|Figure 5. Front view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_right.png|left|thumb|Figure 6. Right view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_isometric.png|none|thumb|Figure 7. Isometric view of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table 4 shows a summary of the transmitter inputs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
[[File:Bicycle with receiver.jpg|left|thumb|400x400px|Figure 8. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashboard Bridge and Landing Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(2).jpg|none|thumb|Figure 9. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!{{#widget:YouTube|id=HujU6l2J8PE|height=315|width=420}}&lt;br /&gt;
|-&lt;br /&gt;
|Figure 10. Laptop dashboard showing live RC and cabin telemetry.&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 11. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 10. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering:  Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to lean up to 30° during cornering, while keeping the front wheels more balanced and stable during turns.&lt;br /&gt;
# Steering: Target a turning radius of around 600 mm, so the prototype can make tight turns while still keeping the steering system simple and easy to control.&lt;br /&gt;
# Drive train: Increase the tested vehicle speed through the gear system, while keeping the chain movement smooth and reducing chain noise during operation.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: The lean angle is limited by front fork alignment, joint clearance, and wheel contact with the ground.&lt;br /&gt;
# Steering: The steering angle is limited by the available frame space and the movement range of the steering linkage.&lt;br /&gt;
# Drive train: The gear and chain layout is limited by frame space, chain alignment, and proper chain tension.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front suspension design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (496).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the three designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|30%&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|30%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Flexibility&lt;br /&gt;
|40%&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.5&lt;br /&gt;
|3.0&lt;br /&gt;
|4.4&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 3 was selected because it provides the best overall balance of simplicity, durability, and flexibility. Although Design 2 is the simplest and most durable, it has no flexibility, which significantly lowers its overall score. Design 1 offers high flexibility, but its more complex linkage system makes it less simple and potentially less durable than Design 3. Therefore, &#039;&#039;&#039;Design 3 is the strongest option for the final prototype.&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:Screenshot (495).png|thumb|&#039;&#039;&#039;3D picture of drive chain&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Drive Chain ====&lt;br /&gt;
&lt;br /&gt;
The drive train system uses a large gear to transfer power from the motor to two smaller gears connected to the wheel shafts. When the large gear rotates, it drives the smaller gears, causing them to spin at a higher rotational speed. This happens because the smaller gears have fewer teeth, so they complete more rotations for each rotation of the larger gear.&lt;br /&gt;
&lt;br /&gt;
This gear arrangement was chosen to increase the output speed of the wheels while keeping the system compact and simple. The larger gear helps distribute motion to both smaller gears, allowing the vehicle to move forward efficiently. Although this design increases speed, it also reduces torque, so the gear ratio must be balanced to provide enough wheel power for movement.&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Design simpler structures with fewer small and complex parts to improve 3D-printing reliability. Front Suspension Design 1 repeatedly failed during printing and had to be postponed.&lt;br /&gt;
# Use metal connectors, such as steel pins, bolts, and screws, for moving joints instead of small 3D-printed connectors.&lt;br /&gt;
# Organize the project schedule more effectively and allow extra time for printing, assembly, and redesign because of the large workload.&lt;br /&gt;
&lt;br /&gt;
==== Appendices ====&lt;br /&gt;
&lt;br /&gt;
===== Front suspension and steering sketches =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:724424527 1017368514321931 1195802966728315288 n.jpg|thumb]]&lt;br /&gt;
![[File:726493212 27203115756038827 4671180692809538110 n.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. receive the signal from the trasmitter to control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. provide enough power for motor to move&lt;br /&gt;
&lt;br /&gt;
3. able to rotate the servo to control the direction of the handle bar&lt;br /&gt;
&lt;br /&gt;
4. able to receive the code from coding subteam&lt;br /&gt;
&lt;br /&gt;
5. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
6. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to control the speed over 1km/h and maximize it&lt;br /&gt;
&lt;br /&gt;
2. keep the wiring clear and well organized&lt;br /&gt;
&lt;br /&gt;
3. allow the circuit fit in the prototype vehicle&lt;br /&gt;
&lt;br /&gt;
4. Able to monitor the temperature and humidity inside the vehicle&lt;br /&gt;
&lt;br /&gt;
5. able to be stable when no signal is received&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. need to prevent shortcircuit and electrostatics damage.&lt;br /&gt;
&lt;br /&gt;
3. prevent wire loosing during the driving time&lt;br /&gt;
&lt;br /&gt;
4. only can recieve the signal from the transmitter in a small room.&lt;br /&gt;
&lt;br /&gt;
5. suitable location of the receiver in sepcific size&lt;br /&gt;
&lt;br /&gt;
6. do not break the frame of the prototype during testing&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Rejected Design ====&lt;br /&gt;
Our previous rejected design was to solder all the wires together instead of using a breadboard for the connections. In this design, some elecrical conponent are connected together, only a few wire were connected with the breadboard. This made the circuit very messy and difficult to check.&lt;br /&gt;
&lt;br /&gt;
Because of this, even if the circuit could be more organized with extra circuit, we rejected this design to make sure all components are connected with breadboard, so it is more easy to check the circuit issue when troubleshooting.&lt;br /&gt;
&lt;br /&gt;
[[File:Previous soldered circuit layout.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive and Steering Circuit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The receiver gets the signal from the remote control and the Arduino then controls the motor and the servo to make the vehicle move forward and turn.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
The fan circuit is used to help control the temperature inside the vehicle. When the system is turned on, the fan can move air through the vehicle and help cool the rider area.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
The Peltier circuit is used for cooling. The Arduino controls the Peltier module through the MOSFET so that it can help reduce the temperature inside the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
The boards mounting helped keep the wires more organized and made testing easier. This also help us easy to connect and check when the boards were mounted inside the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151 electrical circuit.jpg|center|thumb|2026 VANT151 Team 1 electrical circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
The Autonomous Program can control the motor and steering so the vehicle can move in a straight line and complete the required path.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Chengxiang Hu ===&lt;br /&gt;
[[File:1e989197efd15dd7ee9ee7bea80e384f.jpg|thumb|149x149px]]Documentation Sub-team Member&lt;br /&gt;
&lt;br /&gt;
I helped with the Wiki, project documentation, Gantt Chart and project planning. I collected data from different sub-teams and helped to produce the final Wiki and presentation.&lt;br /&gt;
&lt;br /&gt;
Through this project I learned how to manage project information, track project progress and work with different team members. I’ve also developed my communication and teamwork skills.&lt;br /&gt;
|Amartuvshin Tavinbekh&lt;br /&gt;
N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Tim Cai ===&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|[[File:Portrait of Jianyu Zhang.jpg|thumb|104x104px]]&#039;&#039;&#039;Jianyu Zhang&#039;&#039;&#039;&lt;br /&gt;
My role in the team: to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]&lt;br /&gt;
&lt;br /&gt;
=== Thang Le ===&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks.  &lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process. &lt;br /&gt;
|[[File:727380122 2997023350486820 143473373843037600 n.jpg|thumb|137x137px]]&lt;br /&gt;
&lt;br /&gt;
=== Jiarui Zhang ===&lt;br /&gt;
Mechanical Sub-team Design and Basic SolidWorks Assembly. &lt;br /&gt;
&lt;br /&gt;
I led the basic SolidWorks design and main assembly process for the mechanical system, including the front suspension, drive train, and steering system.&lt;br /&gt;
&lt;br /&gt;
I was part of the mechanical sub-team. I contributed to the basic SolidWorks design and main assembly, including the front suspension, drive train, and steering system. From this project, I learned how to balance simplicity, durability, and buildability when designing mechanical parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Coding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Christopher Rodas Castillo ===&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
My main contributions were organizing the team’s coding work, planning the project structure, developing and testing key features, debugging errors, and improving the overall functionality of the final product. I also helped connect different parts of the project together, reviewed the code to make sure it worked properly, and supported teammates when they ran into technical problems. Through this experience, I learned how important communication, planning, and teamwork are in software development, especially when turning ideas into a working project.&lt;br /&gt;
|[[File:48dd1b272c646ee852ec9d5fcf467ed4.jpg|thumb|140x140px]]&#039;&#039;&#039;Bowen Zheng&#039;&#039;&#039;&lt;br /&gt;
coding sub-team member&lt;br /&gt;
&lt;br /&gt;
My main contribution to the team was designing and fabricating the transmitter housing, as well as assisting in building the transmitter circuitry, including soldering and component assembly. Through this experience, I learned the importance of collaboration and gained a deeper understanding of how transmitters work, including their internal components and code development.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899880</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899880"/>
		<updated>2026-06-26T01:57:29Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Sub-teams: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome ===&lt;br /&gt;
Welcome to the Team 1 VANT 151 Capstone Project Wiki. This page shows the work of our team for the design project. It includes our project goals, team requirements, task planning, design phase and final outcomes.&lt;br /&gt;
&lt;br /&gt;
Team 1 was operating as multiple sub-teams. The individual sub-teams were each assigned to work on a different part of the vehicle system. This included coding, electrical, mechanical, structural and documentation work. Everyone focused on their part and then all the parts were put together to one final project.&lt;br /&gt;
&lt;br /&gt;
This wiki also demonstrates how our team planned the project, divided the tasks, followed the schedule, and documented our progress. This assists the reader in understanding the work of each sub-team and the evolution of the whole project.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
The VANT 151 project was a multi-discipline engineering design project. Team 1 was tasked with designing and presenting a vehicle system that includes a range of engineering elements. The project was split in many areas, so the work was distributed in different sub-teams like Coding, Electrical, Mechanical, Structural and Documentation.&lt;br /&gt;
&lt;br /&gt;
The control systems sub-team worked on the code for the transmitter and receiver, the joystick and the buttons, switches and their connections . The Electrical sub-team was in charge of the vehicle’s electronic system including the vehicle board, wiring, fan control, Peltier module circuit and other electrical parts. The Mechanical sub-team worked on the drive train, steering system, suspension and power transmission. The frame, enclosure, panels, transparent parts and doors were the responsibility of the Structural sub-team. The Documentation sub-team assisted Team 1 in producing the final wiki and presentation. We have set up the basic wiki framework, created the Gantt chart, tracked the project schedule and gathered information from each sub-team.&lt;br /&gt;
&lt;br /&gt;
Communication was important in the project because many parts were connected. For instance, the mechanical design impacted the structure, the electrical system had to be housed inside the vehicle, and the coding system was needed to control the functions of the vehicle. So each sub team had to keep each other informed and change things if necessary. This wiki describes the main requirements of Team 1, design work, team progress, drawings and final results.&lt;br /&gt;
&lt;br /&gt;
=== Team Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The vehicle’s main functions are to:&lt;br /&gt;
&lt;br /&gt;
1 Move forward and backwards at user’s command.&lt;br /&gt;
&lt;br /&gt;
2 Steering system for steering left and right.&lt;br /&gt;
&lt;br /&gt;
3 Receiving wireless control signals from the transmitter.&lt;br /&gt;
&lt;br /&gt;
4 A stable structure is required to support the vehicle body, rider area and internal elements.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The goals of this project are to enhance the final vehicle design by:&lt;br /&gt;
&lt;br /&gt;
1 Build a working vehicle system, including coding, electric, mechanical and structural parts.&lt;br /&gt;
&lt;br /&gt;
2 Ensure that the control system, drive system, electrical system and structure are compatible.&lt;br /&gt;
&lt;br /&gt;
3 It is a simple compact design, safe and suitable for the prototype.&lt;br /&gt;
&lt;br /&gt;
4 Final design presentation through team wiki, drawings, Gantt chart, and oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Constrains ====&lt;br /&gt;
The constraints of the project are&lt;br /&gt;
&lt;br /&gt;
1 The project needs to be finished within the timeframe of the VANT 151 course.&lt;br /&gt;
&lt;br /&gt;
2 The vehicle has to make use of parts, materials and tools which are available in the course.&lt;br /&gt;
&lt;br /&gt;
3 The electrical system must meet the allowable power range, which is 9.6 V DC and 2.8 A.&lt;br /&gt;
&lt;br /&gt;
4 Each team member should be familiar with their own part and be able to explain it during the oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Gantt chart ====&lt;br /&gt;
[[File:截屏2026-06-18 22.31.50.png|center|thumb|676x676px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16.jpg|left|thumb|Figure 1. Final TX layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(1).jpg|none|thumb|Figure 2. Receiver circuit with extra features: LEDs, buzzer, peltier module and fans.]]&lt;br /&gt;
-&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
Transmitter Layout Alternatives and Selection&lt;br /&gt;
&lt;br /&gt;
The transmitter layout was selected by comparing three physical layout alternatives. The goal was to make the controller comfortable to hold, easy to understand, and safe to operate while still leaving enough space for extra features.&lt;br /&gt;
[[File:Team1_Coding_Layout_Alternatives.png|left|thumb|700x700px|Figure 3. Three alternative layouts of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter layout alternatives and selection&lt;br /&gt;
!Alternative&lt;br /&gt;
!A. Compact layout&lt;br /&gt;
!B. Mixed layout&lt;br /&gt;
!C. Separated layout&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|The joystick, switch, LED, and buttons are all placed on the top surface in a compact arrangement.&lt;br /&gt;
|The joystick and switch are placed on the top surface, while the feature buttons are placed on the right side of the transmitter.&lt;br /&gt;
|The joystick is placed in the main driving area, while the switch and feature buttons are placed in a separate control area on the top surface.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Advantages&#039;&#039;&#039;&lt;br /&gt;
|Small overall layout; simple to understand; all controls are visible from the top.&lt;br /&gt;
|The top surface is less crowded, and the feature buttons are separated from the joystick area.&lt;br /&gt;
|Clear separation between driving control and extra features; more space around the joystick; more comfortable two-thumb operation; easier to label and understand.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Disadvantages&#039;&#039;&#039;&lt;br /&gt;
|The buttons are close to the joystick, which gives less thumb clearance and increases the chance of accidental button presses during driving. It also leaves less space for future features.&lt;br /&gt;
|Side buttons are less visible during operation and may be harder to press consistently while holding the transmitter. They may also be pressed accidentally by the user&#039;s grip.&lt;br /&gt;
|Requires slightly more planning for the transmitter box layout.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Decision&#039;&#039;&#039;&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Selected.&lt;br /&gt;
|}&lt;br /&gt;
The separated layout was chosen because it provides the best balance of comfort, clarity, and expandability. The joystick is used for the main driving control, while the extra feature buttons are placed in a separate area. This allows the user to keep one thumb on the joystick and use the other thumb for the feature buttons. As a result, the transmitter is more comfortable to hold, easier to understand, and less likely to cause accidental button presses during driving.&lt;br /&gt;
&lt;br /&gt;
This layout also makes testing and demonstration easier because each control area has a clear purpose. The joystick area is used for vehicle movement, while the feature button area is used for extra functions such as the Peltier system, buzzer, and lights.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Transmitter Part Drawing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After comparing the layout alternatives, the separated transmitter layout was selected as the final design. The final transmitter uses a joystick for the main driving control and separates the extra feature buttons into a different control area. The part drawings below show the final physical layout of the transmitter.&lt;br /&gt;
[[File:Team1_Coding_Transmitter_top.png|left|thumb|Figure 4. Top view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_front.png|none|thumb|Figure 5. Front view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_right.png|left|thumb|Figure 6. Right view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_isometric.png|none|thumb|Figure 7. Isometric view of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table 4 shows a summary of the transmitter inputs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
[[File:Bicycle with receiver.jpg|left|thumb|400x400px|Figure 8. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashboard Bridge and Landing Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(2).jpg|none|thumb|Figure 9. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!{{#widget:YouTube|id=HujU6l2J8PE|height=315|width=420}}&lt;br /&gt;
|-&lt;br /&gt;
|Figure 10. Laptop dashboard showing live RC and cabin telemetry.&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 11. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 10. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering:  Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to lean up to 30° during cornering, while keeping the front wheels more balanced and stable during turns.&lt;br /&gt;
# Steering: Target a turning radius of around 600 mm, so the prototype can make tight turns while still keeping the steering system simple and easy to control.&lt;br /&gt;
# Drive train: Increase the tested vehicle speed through the gear system, while keeping the chain movement smooth and reducing chain noise during operation.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: The lean angle is limited by front fork alignment, joint clearance, and wheel contact with the ground.&lt;br /&gt;
# Steering: The steering angle is limited by the available frame space and the movement range of the steering linkage.&lt;br /&gt;
# Drive train: The gear and chain layout is limited by frame space, chain alignment, and proper chain tension.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front suspension design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (496).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the three designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|30%&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|30%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Flexibility&lt;br /&gt;
|40%&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.5&lt;br /&gt;
|3.0&lt;br /&gt;
|4.4&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 3 was selected because it provides the best overall balance of simplicity, durability, and flexibility. Although Design 2 is the simplest and most durable, it has no flexibility, which significantly lowers its overall score. Design 1 offers high flexibility, but its more complex linkage system makes it less simple and potentially less durable than Design 3. Therefore, &#039;&#039;&#039;Design 3 is the strongest option for the final prototype.&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:Screenshot (495).png|thumb|&#039;&#039;&#039;3D picture of drive chain&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Drive Chain ====&lt;br /&gt;
&lt;br /&gt;
The drive train system uses a large gear to transfer power from the motor to two smaller gears connected to the wheel shafts. When the large gear rotates, it drives the smaller gears, causing them to spin at a higher rotational speed. This happens because the smaller gears have fewer teeth, so they complete more rotations for each rotation of the larger gear.&lt;br /&gt;
&lt;br /&gt;
This gear arrangement was chosen to increase the output speed of the wheels while keeping the system compact and simple. The larger gear helps distribute motion to both smaller gears, allowing the vehicle to move forward efficiently. Although this design increases speed, it also reduces torque, so the gear ratio must be balanced to provide enough wheel power for movement.&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Design simpler structures with fewer small and complex parts to improve 3D-printing reliability. Front Suspension Design 1 repeatedly failed during printing and had to be postponed.&lt;br /&gt;
# Use metal connectors, such as steel pins, bolts, and screws, for moving joints instead of small 3D-printed connectors.&lt;br /&gt;
# Organize the project schedule more effectively and allow extra time for printing, assembly, and redesign because of the large workload.&lt;br /&gt;
&lt;br /&gt;
==== Appendices ====&lt;br /&gt;
&lt;br /&gt;
===== Front suspension and steering sketches =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:724424527 1017368514321931 1195802966728315288 n.jpg|thumb]]&lt;br /&gt;
![[File:726493212 27203115756038827 4671180692809538110 n.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. receive the signal from the trasmitter to control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. provide enough power for motor to move&lt;br /&gt;
&lt;br /&gt;
3. able to rotate the servo to control the direction of the handle bar&lt;br /&gt;
&lt;br /&gt;
4. able to receive the code from coding subteam&lt;br /&gt;
&lt;br /&gt;
5. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
6. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to control the speed over 1km/h and maximize it&lt;br /&gt;
&lt;br /&gt;
2. keep the wiring clear and well organized&lt;br /&gt;
&lt;br /&gt;
3. allow the circuit fit in the prototype vehicle&lt;br /&gt;
&lt;br /&gt;
4. Able to monitor the temperature and humidity inside the vehicle&lt;br /&gt;
&lt;br /&gt;
5. able to be stable when no signal is received&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. need to prevent shortcircuit and electrostatics damage.&lt;br /&gt;
&lt;br /&gt;
3. prevent wire loosing during the driving time&lt;br /&gt;
&lt;br /&gt;
4. only can recieve the signal from the transmitter in a small room.&lt;br /&gt;
&lt;br /&gt;
5. suitable location of the receiver in sepcific size&lt;br /&gt;
&lt;br /&gt;
6. do not break the frame of the prototype during testing&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Rejected Design ====&lt;br /&gt;
Our previous rejected design was to solder all the wires together instead of using a breadboard for the connections. In this design, some elecrical conponent are connected together, only a few wire were connected with the breadboard. This made the circuit very messy and difficult to check.&lt;br /&gt;
&lt;br /&gt;
Because of this, even if the circuit could be more organized with extra circuit, we rejected this design to make sure all components are connected with breadboard, so it is more easy to check the circuit issue when troubleshooting.&lt;br /&gt;
&lt;br /&gt;
[[File:Previous soldered circuit layout.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive and Steering Circuit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The receiver gets the signal from the remote control and the Arduino then controls the motor and the servo to make the vehicle move forward and turn.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
The fan circuit is used to help control the temperature inside the vehicle. When the system is turned on, the fan can move air through the vehicle and help cool the rider area.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
The Peltier circuit is used for cooling. The Arduino controls the Peltier module through the MOSFET so that it can help reduce the temperature inside the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
The boards mounting helped keep the wires more organized and made testing easier. This also help us easy to connect and check when the boards were mounted inside the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151 electrical circuit.jpg|center|thumb|2026 VANT151 Team 1 electrical circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
The Autonomous Program can control the motor and steering so the vehicle can move in a straight line and complete the required path.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Chengxiang Hu ===&lt;br /&gt;
[[File:1e989197efd15dd7ee9ee7bea80e384f.jpg|thumb|149x149px]]Documentation Sub-team Member&lt;br /&gt;
&lt;br /&gt;
I helped with the Wiki, project documentation, Gantt Chart and project planning. I collected data from different sub-teams and helped to produce the final Wiki and presentation.&lt;br /&gt;
&lt;br /&gt;
Through this project I learned how to manage project information, track project progress and work with different team members. I’ve also developed my communication and teamwork skills.&lt;br /&gt;
|Amartuvshin Tavinbekh&lt;br /&gt;
N/A&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Tim Cai ===&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|[[File:Portrait of Jianyu Zhang.jpg|thumb|104x104px]]&#039;&#039;&#039;Jianyu Zhang&#039;&#039;&#039;&lt;br /&gt;
My role in the team: to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]&lt;br /&gt;
&lt;br /&gt;
=== Thang Le ===&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks.  &lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process. &lt;br /&gt;
|[[File:727380122 2997023350486820 143473373843037600 n.jpg|thumb|137x137px]]&lt;br /&gt;
&lt;br /&gt;
=== Jiarui Zhang ===&lt;br /&gt;
Mechanical Sub-team Design and Basic SolidWorks Assembly. &lt;br /&gt;
&lt;br /&gt;
I led the basic SolidWorks design and main assembly process for the mechanical system, including the front suspension, drive train, and steering system.&lt;br /&gt;
&lt;br /&gt;
I was part of the mechanical sub-team. I contributed to the basic SolidWorks design and main assembly, including the front suspension, drive train, and steering system. From this project, I learned how to balance simplicity, durability, and buildability when designing mechanical parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Coding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Christopher Rodas Castillo ===&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
My main contributions were organizing the team’s coding work, planning the project structure, developing and testing key features, debugging errors, and improving the overall functionality of the final product. I also helped connect different parts of the project together, reviewed the code to make sure it worked properly, and supported teammates when they ran into technical problems. Through this experience, I learned how important communication, planning, and teamwork are in software development, especially when turning ideas into a working project.&lt;br /&gt;
|[[File:48dd1b272c646ee852ec9d5fcf467ed4.jpg|thumb|140x140px]]&#039;&#039;&#039;Bowen Zheng&#039;&#039;&#039;&lt;br /&gt;
coding sub-team member&lt;br /&gt;
&lt;br /&gt;
My main contribution to the team was designing and fabricating the transmitter housing, as well as assisting in building the transmitter circuitry, including soldering and component assembly. Through this experience, I learned the importance of collaboration and gained a deeper understanding of how transmitters work, including their internal components and code development.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899876</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899876"/>
		<updated>2026-06-26T01:48:54Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Requirements */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome ===&lt;br /&gt;
Welcome to the Team 1 VANT 151 Capstone Project Wiki. This page shows the work of our team for the design project. It includes our project goals, team requirements, task planning, design phase and final outcomes.&lt;br /&gt;
&lt;br /&gt;
Team 1 was operating as multiple sub-teams. The individual sub-teams were each assigned to work on a different part of the vehicle system. This included coding, electrical, mechanical, structural and documentation work. Everyone focused on their part and then all the parts were put together to one final project.&lt;br /&gt;
&lt;br /&gt;
This wiki also demonstrates how our team planned the project, divided the tasks, followed the schedule, and documented our progress. This assists the reader in understanding the work of each sub-team and the evolution of the whole project.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
The VANT 151 project was a multi-discipline engineering design project. Team 1 was tasked with designing and presenting a vehicle system that includes a range of engineering elements. The project was split in many areas, so the work was distributed in different sub-teams like Coding, Electrical, Mechanical, Structural and Documentation.&lt;br /&gt;
&lt;br /&gt;
The control systems sub-team worked on the code for the transmitter and receiver, the joystick and the buttons, switches and their connections . The Electrical sub-team was in charge of the vehicle’s electronic system including the vehicle board, wiring, fan control, Peltier module circuit and other electrical parts. The Mechanical sub-team worked on the drive train, steering system, suspension and power transmission. The frame, enclosure, panels, transparent parts and doors were the responsibility of the Structural sub-team. The Documentation sub-team assisted Team 1 in producing the final wiki and presentation. We have set up the basic wiki framework, created the Gantt chart, tracked the project schedule and gathered information from each sub-team.&lt;br /&gt;
&lt;br /&gt;
Communication was important in the project because many parts were connected. For instance, the mechanical design impacted the structure, the electrical system had to be housed inside the vehicle, and the coding system was needed to control the functions of the vehicle. So each sub team had to keep each other informed and change things if necessary. This wiki describes the main requirements of Team 1, design work, team progress, drawings and final results.&lt;br /&gt;
&lt;br /&gt;
=== Team Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The vehicle’s main functions are to:&lt;br /&gt;
&lt;br /&gt;
1 Move forward and backwards at user’s command.&lt;br /&gt;
&lt;br /&gt;
2 Steering system for steering left and right.&lt;br /&gt;
&lt;br /&gt;
3 Receiving wireless control signals from the transmitter.&lt;br /&gt;
&lt;br /&gt;
4 A stable structure is required to support the vehicle body, rider area and internal elements.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The goals of this project are to enhance the final vehicle design by:&lt;br /&gt;
&lt;br /&gt;
1 Build a working vehicle system, including coding, electric, mechanical and structural parts.&lt;br /&gt;
&lt;br /&gt;
2 Ensure that the control system, drive system, electrical system and structure are compatible.&lt;br /&gt;
&lt;br /&gt;
3 It is a simple compact design, safe and suitable for the prototype.&lt;br /&gt;
&lt;br /&gt;
4 Final design presentation through team wiki, drawings, Gantt chart, and oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Constrains ====&lt;br /&gt;
The constraints of the project are&lt;br /&gt;
&lt;br /&gt;
1 The project needs to be finished within the timeframe of the VANT 151 course.&lt;br /&gt;
&lt;br /&gt;
2 The vehicle has to make use of parts, materials and tools which are available in the course.&lt;br /&gt;
&lt;br /&gt;
3 The electrical system must meet the allowable power range, which is 9.6 V DC and 2.8 A.&lt;br /&gt;
&lt;br /&gt;
4 Each team member should be familiar with their own part and be able to explain it during the oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Gantt chart ====&lt;br /&gt;
[[File:截屏2026-06-18 22.31.50.png|center|thumb|676x676px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16.jpg|left|thumb|Figure 1. Final TX layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(1).jpg|none|thumb|Figure 2. Receiver circuit with extra features: LEDs, buzzer, peltier module and fans.]]&lt;br /&gt;
-&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
Transmitter Layout Alternatives and Selection&lt;br /&gt;
&lt;br /&gt;
The transmitter layout was selected by comparing three physical layout alternatives. The goal was to make the controller comfortable to hold, easy to understand, and safe to operate while still leaving enough space for extra features.&lt;br /&gt;
[[File:Team1_Coding_Layout_Alternatives.png|left|thumb|700x700px|Figure 3. Three alternative layouts of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter layout alternatives and selection&lt;br /&gt;
!Alternative&lt;br /&gt;
!A. Compact layout&lt;br /&gt;
!B. Mixed layout&lt;br /&gt;
!C. Separated layout&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|The joystick, switch, LED, and buttons are all placed on the top surface in a compact arrangement.&lt;br /&gt;
|The joystick and switch are placed on the top surface, while the feature buttons are placed on the right side of the transmitter.&lt;br /&gt;
|The joystick is placed in the main driving area, while the switch and feature buttons are placed in a separate control area on the top surface.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Advantages&#039;&#039;&#039;&lt;br /&gt;
|Small overall layout; simple to understand; all controls are visible from the top.&lt;br /&gt;
|The top surface is less crowded, and the feature buttons are separated from the joystick area.&lt;br /&gt;
|Clear separation between driving control and extra features; more space around the joystick; more comfortable two-thumb operation; easier to label and understand.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Disadvantages&#039;&#039;&#039;&lt;br /&gt;
|The buttons are close to the joystick, which gives less thumb clearance and increases the chance of accidental button presses during driving. It also leaves less space for future features.&lt;br /&gt;
|Side buttons are less visible during operation and may be harder to press consistently while holding the transmitter. They may also be pressed accidentally by the user&#039;s grip.&lt;br /&gt;
|Requires slightly more planning for the transmitter box layout.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Decision&#039;&#039;&#039;&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Selected.&lt;br /&gt;
|}&lt;br /&gt;
The separated layout was chosen because it provides the best balance of comfort, clarity, and expandability. The joystick is used for the main driving control, while the extra feature buttons are placed in a separate area. This allows the user to keep one thumb on the joystick and use the other thumb for the feature buttons. As a result, the transmitter is more comfortable to hold, easier to understand, and less likely to cause accidental button presses during driving.&lt;br /&gt;
&lt;br /&gt;
This layout also makes testing and demonstration easier because each control area has a clear purpose. The joystick area is used for vehicle movement, while the feature button area is used for extra functions such as the Peltier system, buzzer, and lights.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Transmitter Part Drawing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After comparing the layout alternatives, the separated transmitter layout was selected as the final design. The final transmitter uses a joystick for the main driving control and separates the extra feature buttons into a different control area. The part drawings below show the final physical layout of the transmitter.&lt;br /&gt;
[[File:Team1_Coding_Transmitter_top.png|left|thumb|Figure 4. Top view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_front.png|none|thumb|Figure 5. Front view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_right.png|left|thumb|Figure 6. Right view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_isometric.png|none|thumb|Figure 7. Isometric view of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table 4 shows a summary of the transmitter inputs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
[[File:Bicycle with receiver.jpg|left|thumb|400x400px|Figure 8. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
-&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dashboard Bridge and Landing Page&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(2).jpg|none|thumb|Figure 9. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!{{#widget:YouTube|id=HujU6l2J8PE|height=315|width=420}}&lt;br /&gt;
|-&lt;br /&gt;
|Figure 10. Laptop dashboard showing live RC and cabin telemetry.&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 11. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 10. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering:  Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to lean up to 30° during cornering, while keeping the front wheels more balanced and stable during turns.&lt;br /&gt;
# Steering: Target a turning radius of around 600 mm, so the prototype can make tight turns while still keeping the steering system simple and easy to control.&lt;br /&gt;
# Drive train: Increase the tested vehicle speed through the gear system, while keeping the chain movement smooth and reducing chain noise during operation.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: The lean angle is limited by front fork alignment, joint clearance, and wheel contact with the ground.&lt;br /&gt;
# Steering: The steering angle is limited by the available frame space and the movement range of the steering linkage.&lt;br /&gt;
# Drive train: The gear and chain layout is limited by frame space, chain alignment, and proper chain tension.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front suspension design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (496).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the three designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|30%&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|30%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Flexibility&lt;br /&gt;
|40%&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.5&lt;br /&gt;
|3.0&lt;br /&gt;
|4.4&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 3 was selected because it provides the best overall balance of simplicity, durability, and flexibility. Although Design 2 is the simplest and most durable, it has no flexibility, which significantly lowers its overall score. Design 1 offers high flexibility, but its more complex linkage system makes it less simple and potentially less durable than Design 3. Therefore, &#039;&#039;&#039;Design 3 is the strongest option for the final prototype.&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:Screenshot (495).png|thumb|&#039;&#039;&#039;3D picture of drive chain&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Drive Chain ====&lt;br /&gt;
&lt;br /&gt;
The drive train system uses a large gear to transfer power from the motor to two smaller gears connected to the wheel shafts. When the large gear rotates, it drives the smaller gears, causing them to spin at a higher rotational speed. This happens because the smaller gears have fewer teeth, so they complete more rotations for each rotation of the larger gear.&lt;br /&gt;
&lt;br /&gt;
This gear arrangement was chosen to increase the output speed of the wheels while keeping the system compact and simple. The larger gear helps distribute motion to both smaller gears, allowing the vehicle to move forward efficiently. Although this design increases speed, it also reduces torque, so the gear ratio must be balanced to provide enough wheel power for movement.&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Design simpler structures with fewer small and complex parts to improve 3D-printing reliability. Front Suspension Design 1 repeatedly failed during printing and had to be postponed.&lt;br /&gt;
# Use metal connectors, such as steel pins, bolts, and screws, for moving joints instead of small 3D-printed connectors.&lt;br /&gt;
# Organize the project schedule more effectively and allow extra time for printing, assembly, and redesign because of the large workload.&lt;br /&gt;
&lt;br /&gt;
==== Appendices ====&lt;br /&gt;
&lt;br /&gt;
===== Front suspension and steering sketches =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:724424527 1017368514321931 1195802966728315288 n.jpg|thumb]]&lt;br /&gt;
![[File:726493212 27203115756038827 4671180692809538110 n.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. receive the signal from the trasmitter to control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. provide enough power for motor to move&lt;br /&gt;
&lt;br /&gt;
3. able to rotate the servo to control the direction of the handle bar&lt;br /&gt;
&lt;br /&gt;
4. able to receive the code from coding subteam&lt;br /&gt;
&lt;br /&gt;
5. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
6. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to control the speed over 1km/h and maximize it&lt;br /&gt;
&lt;br /&gt;
2. keep the wiring clear and well organized&lt;br /&gt;
&lt;br /&gt;
3. allow the circuit fit in the prototype vehicle&lt;br /&gt;
&lt;br /&gt;
4. Able to monitor the temperature and humidity inside the vehicle&lt;br /&gt;
&lt;br /&gt;
5. able to be stable when no signal is received&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. need to prevent shortcircuit and electrostatics damage.&lt;br /&gt;
&lt;br /&gt;
3. prevent wire loosing during the driving time&lt;br /&gt;
&lt;br /&gt;
4. only can recieve the signal from the transmitter in a small room.&lt;br /&gt;
&lt;br /&gt;
5. suitable location of the receiver in sepcific size&lt;br /&gt;
&lt;br /&gt;
6. do not break the frame of the prototype during testing&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Rejected Design ====&lt;br /&gt;
Our previous rejected design was to solder all the wires together instead of using a breadboard for the connections. In this design, some elecrical conponent are connected together, only a few wire were connected with the breadboard. This made the circuit very messy and difficult to check.&lt;br /&gt;
&lt;br /&gt;
Because of this, even if the circuit could be more organized with extra circuit, we rejected this design to make sure all components are connected with breadboard, so it is more easy to check the circuit issue when troubleshooting.&lt;br /&gt;
&lt;br /&gt;
[[File:Previous soldered circuit layout.jpg|thumb|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Drive and Steering Circuit&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151 electrical circuit.jpg|center|thumb|2026 VANT151 Team 1 electrical circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Chengxiang Hu ===&lt;br /&gt;
[[File:1e989197efd15dd7ee9ee7bea80e384f.jpg|thumb|149x149px]]Documentation Sub-team Member&lt;br /&gt;
&lt;br /&gt;
I helped with the Wiki, project documentation, Gantt Chart and project planning. I collected data from different sub-teams and helped to produce the final Wiki and presentation.&lt;br /&gt;
&lt;br /&gt;
Through this project I learned how to manage project information, track project progress and work with different team members. I’ve also developed my communication and teamwork skills.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Tim Cai ===&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|[[File:Portrait of Jianyu Zhang.jpg|thumb|104x104px]]&#039;&#039;&#039;Jianyu Zhang&#039;&#039;&#039;&lt;br /&gt;
My role in the team: to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]&lt;br /&gt;
&lt;br /&gt;
=== Thang Le ===&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks.  &lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process. &lt;br /&gt;
|[[File:727380122 2997023350486820 143473373843037600 n.jpg|thumb|137x137px]]&lt;br /&gt;
&lt;br /&gt;
=== Jiarui Zhang ===&lt;br /&gt;
Mechanical Sub-team Design and Basic SolidWorks Assembly. &lt;br /&gt;
&lt;br /&gt;
I led the basic SolidWorks design and main assembly process for the mechanical system, including the front suspension, drive train, and steering system.&lt;br /&gt;
&lt;br /&gt;
I was part of the mechanical sub-team. I contributed to the basic SolidWorks design and main assembly, including the front suspension, drive train, and steering system. From this project, I learned how to balance simplicity, durability, and buildability when designing mechanical parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Coding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Christopher Rodas Castillo ===&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
My main contributions were organizing the team’s coding work, planning the project structure, developing and testing key features, debugging errors, and improving the overall functionality of the final product. I also helped connect different parts of the project together, reviewed the code to make sure it worked properly, and supported teammates when they ran into technical problems. Through this experience, I learned how important communication, planning, and teamwork are in software development, especially when turning ideas into a working project.&lt;br /&gt;
|[[File:48dd1b272c646ee852ec9d5fcf467ed4.jpg|thumb|140x140px]]&#039;&#039;&#039;Bowen Zheng&#039;&#039;&#039;&lt;br /&gt;
coding sub-team member&lt;br /&gt;
&lt;br /&gt;
My main contribution to the team was designing and fabricating the transmitter housing, as well as assisting in building the transmitter circuitry, including soldering and component assembly. Through this experience, I learned the importance of collaboration and gained a deeper understanding of how transmitters work, including their internal components and code development.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899718</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899718"/>
		<updated>2026-06-24T05:36:11Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome ===&lt;br /&gt;
Welcome to the Team 1 VANT 151 Capstone Project Wiki. This page shows the work of our team for the design project. It includes our project goals, team requirements, task planning, design phase and final outcomes.&lt;br /&gt;
&lt;br /&gt;
Team 1 was operating as multiple sub-teams. The individual sub-teams were each assigned to work on a different part of the vehicle system. This included coding, electrical, mechanical, structural and documentation work. Everyone focused on their part and then all the parts were put together to one final project.&lt;br /&gt;
&lt;br /&gt;
This wiki also demonstrates how our team planned the project, divided the tasks, followed the schedule, and documented our progress. This assists the reader in understanding the work of each sub-team and the evolution of the whole project.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
The VANT 151 project was a multi-discipline engineering design project. Team 1 was tasked with designing and presenting a vehicle system that includes a range of engineering elements. The project was split in many areas, so the work was distributed in different sub-teams like Coding, Electrical, Mechanical, Structural and Documentation.&lt;br /&gt;
&lt;br /&gt;
The control systems sub-team worked on the code for the transmitter and receiver, the joystick and the buttons, switches and their connections . The Electrical sub-team was in charge of the vehicle’s electronic system including the vehicle board, wiring, fan control, Peltier module circuit and other electrical parts. The Mechanical sub-team worked on the drive train, steering system, suspension and power transmission. The frame, enclosure, panels, transparent parts and doors were the responsibility of the Structural sub-team. The Documentation sub-team assisted Team 1 in producing the final wiki and presentation. We have set up the basic wiki framework, created the Gantt chart, tracked the project schedule and gathered information from each sub-team.&lt;br /&gt;
&lt;br /&gt;
Communication was important in the project because many parts were connected. For instance, the mechanical design impacted the structure, the electrical system had to be housed inside the vehicle, and the coding system was needed to control the functions of the vehicle. So each sub team had to keep each other informed and change things if necessary. This wiki describes the main requirements of Team 1, design work, team progress, drawings and final results.&lt;br /&gt;
&lt;br /&gt;
=== Team Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The vehicle’s main functions are to:&lt;br /&gt;
&lt;br /&gt;
1 Move forward and backwards at user’s command.&lt;br /&gt;
&lt;br /&gt;
2 Steering system for steering left and right.&lt;br /&gt;
&lt;br /&gt;
3 Receiving wireless control signals from the transmitter.&lt;br /&gt;
&lt;br /&gt;
4 A stable structure is required to support the vehicle body, rider area and internal elements.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The goals of this project are to enhance the final vehicle design by:&lt;br /&gt;
&lt;br /&gt;
1 Build a working vehicle system, including coding, electric, mechanical and structural parts.&lt;br /&gt;
&lt;br /&gt;
2 Ensure that the control system, drive system, electrical system and structure are compatible.&lt;br /&gt;
&lt;br /&gt;
3 It is a simple compact design, safe and suitable for the prototype.&lt;br /&gt;
&lt;br /&gt;
4 Final design presentation through team wiki, drawings, Gantt chart, and oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Constrains ====&lt;br /&gt;
The constraints of the project are&lt;br /&gt;
&lt;br /&gt;
1 The project needs to be finished within the timeframe of the VANT 151 course.&lt;br /&gt;
&lt;br /&gt;
2 The vehicle has to make use of parts, materials and tools which are available in the course.&lt;br /&gt;
&lt;br /&gt;
3 The electrical system must meet the allowable power range, which is 9.6 V DC and 2.8 A.&lt;br /&gt;
&lt;br /&gt;
4 Each team member should be familiar with their own part and be able to explain it during the oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Gantt chart ====&lt;br /&gt;
[[File:截屏2026-06-18 22.31.50.png|center|thumb|676x676px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16.jpg|left|thumb|Figure 1. Final TX layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(1).jpg|none|thumb|Figure 2. Receiver circuit with extra features: LEDs, buzzer, peltier module and fans.]]&lt;br /&gt;
-&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
Transmitter Layout Alternatives and Selection&lt;br /&gt;
&lt;br /&gt;
The transmitter layout was selected by comparing three physical layout alternatives. The goal was to make the controller comfortable to hold, easy to understand, and safe to operate while still leaving enough space for extra features.&lt;br /&gt;
[[File:Team1_Coding_Layout_Alternatives.png|left|thumb|700x700px|Figure 3. Three alternative layouts of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter layout alternatives and selection&lt;br /&gt;
!Alternative&lt;br /&gt;
!A. Compact layout&lt;br /&gt;
!B. Mixed layout&lt;br /&gt;
!C. Separated layout&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|The joystick, switch, LED, and buttons are all placed on the top surface in a compact arrangement.&lt;br /&gt;
|The joystick and switch are placed on the top surface, while the feature buttons are placed on the right side of the transmitter.&lt;br /&gt;
|The joystick is placed in the main driving area, while the switch and feature buttons are placed in a separate control area on the top surface.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Advantages&#039;&#039;&#039;&lt;br /&gt;
|Small overall layout; simple to understand; all controls are visible from the top.&lt;br /&gt;
|The top surface is less crowded, and the feature buttons are separated from the joystick area.&lt;br /&gt;
|Clear separation between driving control and extra features; more space around the joystick; more comfortable two-thumb operation; easier to label and understand.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Disadvantages&#039;&#039;&#039;&lt;br /&gt;
|The buttons are close to the joystick, which gives less thumb clearance and increases the chance of accidental button presses during driving. It also leaves less space for future features.&lt;br /&gt;
|Side buttons are less visible during operation and may be harder to press consistently while holding the transmitter. They may also be pressed accidentally by the user&#039;s grip.&lt;br /&gt;
|Requires slightly more planning for the transmitter box layout.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Decision&#039;&#039;&#039;&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Selected.&lt;br /&gt;
|}&lt;br /&gt;
The separated layout was chosen because it provides the best balance of comfort, clarity, and expandability. The joystick is used for the main driving control, while the extra feature buttons are placed in a separate area. This allows the user to keep one thumb on the joystick and use the other thumb for the feature buttons. As a result, the transmitter is more comfortable to hold, easier to understand, and less likely to cause accidental button presses during driving.&lt;br /&gt;
&lt;br /&gt;
This layout also makes testing and demonstration easier because each control area has a clear purpose. The joystick area is used for vehicle movement, while the feature button area is used for extra functions such as the Peltier system, buzzer, and lights.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Transmitter Part Drawing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After comparing the layout alternatives, the separated transmitter layout was selected as the final design. The final transmitter uses a joystick for the main driving control and separates the extra feature buttons into a different control area. The part drawings below show the final physical layout of the transmitter.&lt;br /&gt;
[[File:Team1_Coding_Transmitter_top.png|left|thumb|Figure 4. Top view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_front.png|none|thumb|Figure 5. Front view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_right.png|left|thumb|Figure 6. Right view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_isometric.png|none|thumb|Figure 7. Isometric view of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table 4 shows a summary of the transmitter inputs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600x600px|Figure 8. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(2).jpg|none|thumb|Figure 9. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
[[File:Screenshot_2026-06-18_133414.png|none|thumb|Figure 10. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 11. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 10. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering:  Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front suspension design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (496).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the three designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|30%&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|30%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Flexibility&lt;br /&gt;
|40%&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.5&lt;br /&gt;
|3.0&lt;br /&gt;
|4.4&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 3 was selected because it provides the best overall balance of simplicity, durability, and flexibility. Although Design 2 is the simplest and most durable, it has no flexibility, which significantly lowers its overall score. Design 1 offers high flexibility, but its more complex linkage system makes it less simple and potentially less durable than Design 3. Therefore, Design 3 is the strongest option for the final prototype.&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:Screenshot (495).png|thumb|&#039;&#039;&#039;3D picture of drive chain&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Drive Chain ====&lt;br /&gt;
&lt;br /&gt;
The drive train system uses a large gear to transfer power from the motor to two smaller gears connected to the wheel shafts. When the large gear rotates, it drives the smaller gears, causing them to spin at a higher rotational speed. This happens because the smaller gears have fewer teeth, so they complete more rotations for each rotation of the larger gear.&lt;br /&gt;
&lt;br /&gt;
This gear arrangement was chosen to increase the output speed of the wheels while keeping the system compact and simple. The larger gear helps distribute motion to both smaller gears, allowing the vehicle to move forward efficiently. Although this design increases speed, it also reduces torque, so the gear ratio must be balanced to provide enough wheel power for movement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to control the speed and maximize it&lt;br /&gt;
&lt;br /&gt;
2. Able to monitor the temperature and humidity inside the vehicle&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151 electrical circuit.jpg|center|thumb|2026 VANT151 Team 1 electrical circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Chengxiang Hu ===&lt;br /&gt;
[[File:1e989197efd15dd7ee9ee7bea80e384f.jpg|thumb|149x149px]]Documentation Sub-team Member&lt;br /&gt;
&lt;br /&gt;
I helped with the Wiki, project documentation, Gantt Chart and project planning. I collected data from different sub-teams and helped to produce the final Wiki and presentation.&lt;br /&gt;
&lt;br /&gt;
Through this project I learned how to manage project information, track project progress and work with different team members. I’ve also developed my communication and teamwork skills.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Tim Cai ===&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
My role in the team: to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]&lt;br /&gt;
&lt;br /&gt;
=== Thang Le ===&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks.  &lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process. &lt;br /&gt;
|[[File:727380122 2997023350486820 143473373843037600 n.jpg|thumb|137x137px]]&lt;br /&gt;
&lt;br /&gt;
=== Jiarui Zhang ===&lt;br /&gt;
Mechanical Sub-team Design and Basic SolidWorks Assembly. &lt;br /&gt;
&lt;br /&gt;
I led the basic SolidWorks design and main assembly process for the mechanical system, including the front suspension, drive train, and steering system.&lt;br /&gt;
&lt;br /&gt;
I was part of the mechanical sub-team. I contributed to the basic SolidWorks design and main assembly, including the front suspension, drive train, and steering system. From this project, I learned how to balance simplicity, durability, and buildability when designing mechanical parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Coding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Christopher Rodas Castillo ===&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
My main contributions were organizing the team’s coding work, planning the project structure, developing and testing key features, debugging errors, and improving the overall functionality of the final product. I also helped connect different parts of the project together, reviewed the code to make sure it worked properly, and supported teammates when they ran into technical problems. Through this experience, I learned how important communication, planning, and teamwork are in software development, especially when turning ideas into a working project.&lt;br /&gt;
|[[File:48dd1b272c646ee852ec9d5fcf467ed4.jpg|thumb|140x140px]]&#039;&#039;&#039;Bowen Zheng&#039;&#039;&#039;&lt;br /&gt;
coding sub-team member&lt;br /&gt;
&lt;br /&gt;
My main contribution to the team was designing and fabricating the transmitter housing, as well as assisting in building the transmitter circuitry, including soldering and component assembly. Through this experience, I learned the importance of collaboration and gained a deeper understanding of how transmitters work, including their internal components and code development.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899657</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899657"/>
		<updated>2026-06-23T18:23:17Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome ===&lt;br /&gt;
Welcome to the Team 1 VANT 151 Capstone Project Wiki. This page shows the work of our team for the design project. It includes our project goals, team requirements, task planning, design phase and final outcomes.&lt;br /&gt;
&lt;br /&gt;
Team 1 was operating as multiple sub-teams. The individual sub-teams were each assigned to work on a different part of the vehicle system. This included coding, electrical, mechanical, structural and documentation work. Everyone focused on their part and then all the parts were put together to one final project.&lt;br /&gt;
&lt;br /&gt;
This wiki also demonstrates how our team planned the project, divided the tasks, followed the schedule, and documented our progress. This assists the reader in understanding the work of each sub-team and the evolution of the whole project.&lt;br /&gt;
&lt;br /&gt;
=== Introduction ===&lt;br /&gt;
The VANT 151 project was a multi-discipline engineering design project. Team 1 was tasked with designing and presenting a vehicle system that includes a range of engineering elements. The project was split in many areas, so the work was distributed in different sub-teams like Coding, Electrical, Mechanical, Structural and Documentation.&lt;br /&gt;
&lt;br /&gt;
The control systems sub-team worked on the code for the transmitter and receiver, the joystick and the buttons, switches and their connections . The Electrical sub-team was in charge of the vehicle’s electronic system including the vehicle board, wiring, fan control, Peltier module circuit and other electrical parts. The Mechanical sub-team worked on the drive train, steering system, suspension and power transmission. The frame, enclosure, panels, transparent parts and doors were the responsibility of the Structural sub-team. The Documentation sub-team assisted Team 1 in producing the final wiki and presentation. We have set up the basic wiki framework, created the Gantt chart, tracked the project schedule and gathered information from each sub-team.&lt;br /&gt;
&lt;br /&gt;
Communication was important in the project because many parts were connected. For instance, the mechanical design impacted the structure, the electrical system had to be housed inside the vehicle, and the coding system was needed to control the functions of the vehicle. So each sub team had to keep each other informed and change things if necessary. This wiki describes the main requirements of Team 1, design work, team progress, drawings and final results.&lt;br /&gt;
&lt;br /&gt;
=== Team Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The vehicle’s main functions are to:&lt;br /&gt;
&lt;br /&gt;
1 Move forward and backwards at user’s command.&lt;br /&gt;
&lt;br /&gt;
2 Steering system for steering left and right.&lt;br /&gt;
&lt;br /&gt;
3 Receiving wireless control signals from the transmitter.&lt;br /&gt;
&lt;br /&gt;
4 A stable structure is required to support the vehicle body, rider area and internal elements.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The goals of this project are to enhance the final vehicle design by:&lt;br /&gt;
&lt;br /&gt;
1 Build a working vehicle system, including coding, electric, mechanical and structural parts.&lt;br /&gt;
&lt;br /&gt;
2 Ensure that the control system, drive system, electrical system and structure are compatible.&lt;br /&gt;
&lt;br /&gt;
3 It is a simple compact design, safe and suitable for the prototype.&lt;br /&gt;
&lt;br /&gt;
4 Final design presentation through team wiki, drawings, Gantt chart, and oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Constrains ====&lt;br /&gt;
The constraints of the project are&lt;br /&gt;
&lt;br /&gt;
1 The project needs to be finished within the timeframe of the VANT 151 course.&lt;br /&gt;
&lt;br /&gt;
2 The vehicle has to make use of parts, materials and tools which are available in the course.&lt;br /&gt;
&lt;br /&gt;
3 The electrical system must meet the allowable power range, which is 9.6 V DC and 2.8 A.&lt;br /&gt;
&lt;br /&gt;
4 Each team member should be familiar with their own part and be able to explain it during the oral presentation.&lt;br /&gt;
&lt;br /&gt;
==== Gantt chart ====&lt;br /&gt;
[[File:截屏2026-06-18 22.31.50.png|center|thumb|676x676px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16.jpg|left|thumb|Figure 1. Final TX layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(1).jpg|none|thumb|Figure 2. Receiver circuit with extra features: LEDs, buzzer, peltier module and fans.]]&lt;br /&gt;
-&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
Transmitter Layout Alternatives and Selection&lt;br /&gt;
&lt;br /&gt;
The transmitter layout was selected by comparing three physical layout alternatives. The goal was to make the controller comfortable to hold, easy to understand, and safe to operate while still leaving enough space for extra features.&lt;br /&gt;
[[File:Team1_Coding_Layout_Alternatives.png|left|thumb|700x700px|Figure 3. Three alternative layouts of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter layout alternatives and selection&lt;br /&gt;
!Alternative&lt;br /&gt;
!A. Compact layout&lt;br /&gt;
!B. Mixed layout&lt;br /&gt;
!C. Separated layout&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|The joystick, switch, LED, and buttons are all placed on the top surface in a compact arrangement.&lt;br /&gt;
|The joystick and switch are placed on the top surface, while the feature buttons are placed on the right side of the transmitter.&lt;br /&gt;
|The joystick is placed in the main driving area, while the switch and feature buttons are placed in a separate control area on the top surface.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Advantages&#039;&#039;&#039;&lt;br /&gt;
|Small overall layout; simple to understand; all controls are visible from the top.&lt;br /&gt;
|The top surface is less crowded, and the feature buttons are separated from the joystick area.&lt;br /&gt;
|Clear separation between driving control and extra features; more space around the joystick; more comfortable two-thumb operation; easier to label and understand.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Disadvantages&#039;&#039;&#039;&lt;br /&gt;
|The buttons are close to the joystick, which gives less thumb clearance and increases the chance of accidental button presses during driving. It also leaves less space for future features.&lt;br /&gt;
|Side buttons are less visible during operation and may be harder to press consistently while holding the transmitter. They may also be pressed accidentally by the user&#039;s grip.&lt;br /&gt;
|Requires slightly more planning for the transmitter box layout.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Decision&#039;&#039;&#039;&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Selected.&lt;br /&gt;
|}&lt;br /&gt;
The separated layout was chosen because it provides the best balance of comfort, clarity, and expandability. The joystick is used for the main driving control, while the extra feature buttons are placed in a separate area. This allows the user to keep one thumb on the joystick and use the other thumb for the feature buttons. As a result, the transmitter is more comfortable to hold, easier to understand, and less likely to cause accidental button presses during driving.&lt;br /&gt;
&lt;br /&gt;
This layout also makes testing and demonstration easier because each control area has a clear purpose. The joystick area is used for vehicle movement, while the feature button area is used for extra functions such as the Peltier system, buzzer, and lights.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Transmitter Part Drawing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After comparing the layout alternatives, the separated transmitter layout was selected as the final design. The final transmitter uses a joystick for the main driving control and separates the extra feature buttons into a different control area. The part drawings below show the final physical layout of the transmitter.&lt;br /&gt;
[[File:Team1_Coding_Transmitter_top.png|left|thumb|Figure 4. Top view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_front.png|none|thumb|Figure 5. Front view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_right.png|left|thumb|Figure 6. Right view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_isometric.png|none|thumb|Figure 7. Isometric view of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table 4 shows a summary of the transmitter inputs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600x600px|Figure 8. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(2).jpg|none|thumb|Figure 9. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
[[File:Screenshot_2026-06-18_133414.png|none|thumb|Figure 10. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 11. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 10. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering:  Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front suspension design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (496).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the three designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|30%&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|30%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Flexibility&lt;br /&gt;
|40%&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.5&lt;br /&gt;
|3.0&lt;br /&gt;
|4.4&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 3 was selected because it provides the best overall balance of simplicity, durability, and flexibility. Although Design 2 is the simplest and most durable, it has no flexibility, which significantly lowers its overall score. Design 1 offers high flexibility, but its more complex linkage system makes it less simple and potentially less durable than Design 3. Therefore, Design 3 is the strongest option for the final prototype.&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:Screenshot (495).png|thumb|&#039;&#039;&#039;3D picture of drive chain&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Drive Chain ====&lt;br /&gt;
&lt;br /&gt;
The drive train system uses a large gear to transfer power from the motor to two smaller gears connected to the wheel shafts. When the large gear rotates, it drives the smaller gears, causing them to spin at a higher rotational speed. This happens because the smaller gears have fewer teeth, so they complete more rotations for each rotation of the larger gear.&lt;br /&gt;
&lt;br /&gt;
This gear arrangement was chosen to increase the output speed of the wheels while keeping the system compact and simple. The larger gear helps distribute motion to both smaller gears, allowing the vehicle to move forward efficiently. Although this design increases speed, it also reduces torque, so the gear ratio must be balanced to provide enough wheel power for movement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151 electrical circuit.jpg|center|thumb|2026 VANT151 Team 1 electrical circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Chengxiang Hu ===&lt;br /&gt;
[[File:1e989197efd15dd7ee9ee7bea80e384f.jpg|thumb|149x149px]]Documentation Sub-team Member&lt;br /&gt;
&lt;br /&gt;
I helped with the Wiki, project documentation, Gantt Chart and project planning. I collected data from different sub-teams and helped to produce the final Wiki and presentation.&lt;br /&gt;
&lt;br /&gt;
Through this project I learned how to manage project information, track project progress and work with different team members. I’ve also developed my communication and teamwork skills.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Tim Cai ===&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
My role in the team: to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]&lt;br /&gt;
&lt;br /&gt;
=== Thang Le ===&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks.  &lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process. &lt;br /&gt;
|[[File:727380122 2997023350486820 143473373843037600 n.jpg|thumb|137x137px]]&lt;br /&gt;
&lt;br /&gt;
=== Jiarui Zhang ===&lt;br /&gt;
Mechanical Sub-team Design and Basic SolidWorks Assembly. &lt;br /&gt;
&lt;br /&gt;
I led the basic SolidWorks design and main assembly process for the mechanical system, including the front suspension, drive train, and steering system.&lt;br /&gt;
&lt;br /&gt;
I was part of the mechanical sub-team. I contributed to the basic SolidWorks design and main assembly, including the front suspension, drive train, and steering system. From this project, I learned how to balance simplicity, durability, and buildability when designing mechanical parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Coding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Christopher Rodas Castillo ===&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
My main contributions were organizing the team’s coding work, planning the project structure, developing and testing key features, debugging errors, and improving the overall functionality of the final product. I also helped connect different parts of the project together, reviewed the code to make sure it worked properly, and supported teammates when they ran into technical problems. Through this experience, I learned how important communication, planning, and teamwork are in software development, especially when turning ideas into a working project.&lt;br /&gt;
|[[File:48dd1b272c646ee852ec9d5fcf467ed4.jpg|thumb|140x140px]]&#039;&#039;&#039;Bowen Zheng&#039;&#039;&#039;&lt;br /&gt;
coding sub-team member&lt;br /&gt;
&lt;br /&gt;
My main contribution to the team was designing and fabricating the transmitter housing, as well as assisting in building the transmitter circuitry, including soldering and component assembly. Through this experience, I learned the importance of collaboration and gained a deeper understanding of how transmitters work, including their internal components and code development.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899417</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899417"/>
		<updated>2026-06-19T05:21:30Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Drive and Steering Circuit */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16.jpg|left|thumb|Figure 1. Final TX layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(1).jpg|none|thumb|Figure 2. Receiver circuit with extra features: LEDs, buzzer, peltier module and fans.]]&lt;br /&gt;
-&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
Transmitter Layout Alternatives and Selection&lt;br /&gt;
&lt;br /&gt;
The transmitter layout was selected by comparing three physical layout alternatives. The goal was to make the controller comfortable to hold, easy to understand, and safe to operate while still leaving enough space for extra features.&lt;br /&gt;
[[File:Team1_Coding_Layout_Alternatives.png|left|thumb|700x700px|Figure 3. Three alternative layouts of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter layout alternatives and selection&lt;br /&gt;
!Alternative&lt;br /&gt;
!A. Compact layout&lt;br /&gt;
!B. Mixed layout&lt;br /&gt;
!C. Separated layout&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|The joystick, switch, LED, and buttons are all placed on the top surface in a compact arrangement.&lt;br /&gt;
|The joystick and switch are placed on the top surface, while the feature buttons are placed on the right side of the transmitter.&lt;br /&gt;
|The joystick is placed in the main driving area, while the switch and feature buttons are placed in a separate control area on the top surface.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Advantages&#039;&#039;&#039;&lt;br /&gt;
|Small overall layout; simple to understand; all controls are visible from the top.&lt;br /&gt;
|The top surface is less crowded, and the feature buttons are separated from the joystick area.&lt;br /&gt;
|Clear separation between driving control and extra features; more space around the joystick; more comfortable two-thumb operation; easier to label and understand.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Disadvantages&#039;&#039;&#039;&lt;br /&gt;
|The buttons are close to the joystick, which gives less thumb clearance and increases the chance of accidental button presses during driving. It also leaves less space for future features.&lt;br /&gt;
|Side buttons are less visible during operation and may be harder to press consistently while holding the transmitter. They may also be pressed accidentally by the user&#039;s grip.&lt;br /&gt;
|Requires slightly more planning for the transmitter box layout.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Decision&#039;&#039;&#039;&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Selected.&lt;br /&gt;
|}&lt;br /&gt;
The separated layout was chosen because it provides the best balance of comfort, clarity, and expandability. The joystick is used for the main driving control, while the extra feature buttons are placed in a separate area. This allows the user to keep one thumb on the joystick and use the other thumb for the feature buttons. As a result, the transmitter is more comfortable to hold, easier to understand, and less likely to cause accidental button presses during driving.&lt;br /&gt;
&lt;br /&gt;
This layout also makes testing and demonstration easier because each control area has a clear purpose. The joystick area is used for vehicle movement, while the feature button area is used for extra functions such as the Peltier system, buzzer, and lights.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Transmitter Part Drawing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After comparing the layout alternatives, the separated transmitter layout was selected as the final design. The final transmitter uses a joystick for the main driving control and separates the extra feature buttons into a different control area. The part drawings below show the final physical layout of the transmitter.&lt;br /&gt;
[[File:Team1_Coding_Transmitter_top.png|left|thumb|Figure 4. Top view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_front.png|none|thumb|Figure 5. Front view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_right.png|left|thumb|Figure 6. Right view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_isometric.png|none|thumb|Figure 7. Isometric view of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table 4 shows a summary of the transmitter inputs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600x600px|Figure 8. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(2).jpg|none|thumb|Figure 9. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
[[File:Screenshot_2026-06-18_133414.png|none|thumb|Figure 10. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 11. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 10. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering:  Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front suspension design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (496).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the three designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|30%&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|30%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Flexibility&lt;br /&gt;
|40%&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.5&lt;br /&gt;
|3.0&lt;br /&gt;
|4.4&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 3 was selected because it provides the best overall balance of simplicity, durability, and flexibility. Although Design 2 is the simplest and most durable, it has no flexibility, which significantly lowers its overall score. Design 1 offers high flexibility, but its more complex linkage system makes it less simple and potentially less durable than Design 3. Therefore, Design 3 is the strongest option for the final prototype.&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:Screenshot (495).png|thumb|&#039;&#039;&#039;3D picture of drive chain&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Drive Chain ====&lt;br /&gt;
&lt;br /&gt;
The drive train system uses a large gear to transfer power from the motor to two smaller gears connected to the wheel shafts. When the large gear rotates, it drives the smaller gears, causing them to spin at a higher rotational speed. This happens because the smaller gears have fewer teeth, so they complete more rotations for each rotation of the larger gear.&lt;br /&gt;
&lt;br /&gt;
This gear arrangement was chosen to increase the output speed of the wheels while keeping the system compact and simple. The larger gear helps distribute motion to both smaller gears, allowing the vehicle to move forward efficiently. Although this design increases speed, it also reduces torque, so the gear ratio must be balanced to provide enough wheel power for movement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151 electrical circuit.jpg|center|thumb|2026 VANT151 Team 1 electrical circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Tim Cai ===&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
My role in the team was to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]&lt;br /&gt;
&lt;br /&gt;
=== Thang Le ===&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks.  &lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process. &lt;br /&gt;
|[[File:727380122 2997023350486820 143473373843037600 n.jpg|thumb|137x137px]]&lt;br /&gt;
&lt;br /&gt;
=== Jiarui Zhang ===&lt;br /&gt;
Mechanical Sub-team Design and Basic SolidWorks Assembly. &lt;br /&gt;
&lt;br /&gt;
I led the basic SolidWorks design and main assembly process for the mechanical system, including the front suspension, drive train, and steering system.&lt;br /&gt;
&lt;br /&gt;
I was part of the mechanical sub-team. I contributed to the basic SolidWorks design and main assembly, including the front suspension, drive train, and steering system. From this project, I learned how to balance simplicity, durability, and buildability when designing mechanical parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Coding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Christopher Rodas Castillo ===&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
My main contributions were organizing the team’s coding work, planning the project structure, developing and testing key features, debugging errors, and improving the overall functionality of the final product. I also helped connect different parts of the project together, reviewed the code to make sure it worked properly, and supported teammates when they ran into technical problems. Through this experience, I learned how important communication, planning, and teamwork are in software development, especially when turning ideas into a working project.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899416</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899416"/>
		<updated>2026-06-19T05:20:52Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Boards Mounting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16.jpg|left|thumb|Figure 1. Final TX layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(1).jpg|none|thumb|Figure 2. Receiver circuit with extra features: LEDs, buzzer, peltier module and fans.]]&lt;br /&gt;
-&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
Transmitter Layout Alternatives and Selection&lt;br /&gt;
&lt;br /&gt;
The transmitter layout was selected by comparing three physical layout alternatives. The goal was to make the controller comfortable to hold, easy to understand, and safe to operate while still leaving enough space for extra features.&lt;br /&gt;
[[File:Team1_Coding_Layout_Alternatives.png|left|thumb|700x700px|Figure 3. Three alternative layouts of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter layout alternatives and selection&lt;br /&gt;
!Alternative&lt;br /&gt;
!A. Compact layout&lt;br /&gt;
!B. Mixed layout&lt;br /&gt;
!C. Separated layout&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Description&#039;&#039;&#039;&lt;br /&gt;
|The joystick, switch, LED, and buttons are all placed on the top surface in a compact arrangement.&lt;br /&gt;
|The joystick and switch are placed on the top surface, while the feature buttons are placed on the right side of the transmitter.&lt;br /&gt;
|The joystick is placed in the main driving area, while the switch and feature buttons are placed in a separate control area on the top surface.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Advantages&#039;&#039;&#039;&lt;br /&gt;
|Small overall layout; simple to understand; all controls are visible from the top.&lt;br /&gt;
|The top surface is less crowded, and the feature buttons are separated from the joystick area.&lt;br /&gt;
|Clear separation between driving control and extra features; more space around the joystick; more comfortable two-thumb operation; easier to label and understand.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Disadvantages&#039;&#039;&#039;&lt;br /&gt;
|The buttons are close to the joystick, which gives less thumb clearance and increases the chance of accidental button presses during driving. It also leaves less space for future features.&lt;br /&gt;
|Side buttons are less visible during operation and may be harder to press consistently while holding the transmitter. They may also be pressed accidentally by the user&#039;s grip.&lt;br /&gt;
|Requires slightly more planning for the transmitter box layout.&lt;br /&gt;
|-&lt;br /&gt;
|&#039;&#039;&#039;Decision&#039;&#039;&#039;&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Not selected.&lt;br /&gt;
|Selected.&lt;br /&gt;
|}&lt;br /&gt;
The separated layout was chosen because it provides the best balance of comfort, clarity, and expandability. The joystick is used for the main driving control, while the extra feature buttons are placed in a separate area. This allows the user to keep one thumb on the joystick and use the other thumb for the feature buttons. As a result, the transmitter is more comfortable to hold, easier to understand, and less likely to cause accidental button presses during driving.&lt;br /&gt;
&lt;br /&gt;
This layout also makes testing and demonstration easier because each control area has a clear purpose. The joystick area is used for vehicle movement, while the feature button area is used for extra functions such as the Peltier system, buzzer, and lights.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Final Transmitter Part Drawing&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
After comparing the layout alternatives, the separated transmitter layout was selected as the final design. The final transmitter uses a joystick for the main driving control and separates the extra feature buttons into a different control area. The part drawings below show the final physical layout of the transmitter.&lt;br /&gt;
[[File:Team1_Coding_Transmitter_top.png|left|thumb|Figure 4. Top view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_front.png|none|thumb|Figure 5. Front view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_right.png|left|thumb|Figure 6. Right view of the transmitter]]&lt;br /&gt;
[[File:Team1_Coding_Transmitter_isometric.png|none|thumb|Figure 7. Isometric view of the transmitter]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Table 4 shows a summary of the transmitter inputs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600x600px|Figure 8. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
[[File:WhatsApp_Image_2026-06-18_at_21.24.16_(2).jpg|none|thumb|Figure 9. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
[[File:Screenshot_2026-06-18_133414.png|none|thumb|Figure 10. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 11. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 10. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering:  Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front suspension design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (496).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the three designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
!Design 3&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|30%&lt;br /&gt;
|2&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|30%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Flexibility&lt;br /&gt;
|40%&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.5&lt;br /&gt;
|3.0&lt;br /&gt;
|4.4&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 3 was selected because it provides the best overall balance of simplicity, durability, and flexibility. Although Design 2 is the simplest and most durable, it has no flexibility, which significantly lowers its overall score. Design 1 offers high flexibility, but its more complex linkage system makes it less simple and potentially less durable than Design 3. Therefore, Design 3 is the strongest option for the final prototype.&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
[[File:Screenshot (495).png|thumb|&#039;&#039;&#039;3D picture of drive chain&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Drive Chain ====&lt;br /&gt;
&lt;br /&gt;
The drive train system uses a large gear to transfer power from the motor to two smaller gears connected to the wheel shafts. When the large gear rotates, it drives the smaller gears, causing them to spin at a higher rotational speed. This happens because the smaller gears have fewer teeth, so they complete more rotations for each rotation of the larger gear.&lt;br /&gt;
&lt;br /&gt;
This gear arrangement was chosen to increase the output speed of the wheels while keeping the system compact and simple. The larger gear helps distribute motion to both smaller gears, allowing the vehicle to move forward efficiently. Although this design increases speed, it also reduces torque, so the gear ratio must be balanced to provide enough wheel power for movement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151 electrical circuit.jpg|center|thumb|2026 VANT151 Team 1 electrical circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Tim Cai ===&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
My role in the team was to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]&lt;br /&gt;
&lt;br /&gt;
=== Thang Le ===&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks.  &lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process. &lt;br /&gt;
|[[File:727380122 2997023350486820 143473373843037600 n.jpg|thumb|137x137px]]&lt;br /&gt;
&lt;br /&gt;
=== Jiarui Zhang ===&lt;br /&gt;
Mechanical Sub-team Design and Basic SolidWorks Assembly. &lt;br /&gt;
&lt;br /&gt;
I led the basic SolidWorks design and main assembly process for the mechanical system, including the front suspension, drive train, and steering system.&lt;br /&gt;
&lt;br /&gt;
I was part of the mechanical sub-team. I contributed to the basic SolidWorks design and main assembly, including the front suspension, drive train, and steering system. From this project, I learned how to balance simplicity, durability, and buildability when designing mechanical parts.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Coding&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== Christopher Rodas Castillo ===&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
My main contributions were organizing the team’s coding work, planning the project structure, developing and testing key features, debugging errors, and improving the overall functionality of the final product. I also helped connect different parts of the project together, reviewed the code to make sure it worked properly, and supported teammates when they ran into technical problems. Through this experience, I learned how important communication, planning, and teamwork are in software development, especially when turning ideas into a working project.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899287</id>
		<title>VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899287"/>
		<updated>2026-06-18T21:44:37Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Boards Mounting */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 1: Upload a clear top-view photo of the final rectangular transmitter. Show the joystick, three buttons, power switch, and power LED. Replace the file name below after uploading. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Top_View.jpg|none|thumb|600px|Figure 1. Final RC transmitter layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 2: Upload a photo of the inside of the transmitter or the transmitter breadboard/PCB. Make sure the Arduino Nano and nRF24L01 module are visible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Wiring.jpg|none|thumb|600px|Figure 2. Transmitter Arduino Nano wiring with joystick, buttons, and nRF24L01 radio module.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 3: Upload a photo of the vehicle receiver board. Label or frame the Arduino Nano, nRF24L01 module, motor/Peltier/fan wiring, buzzer, and light output if possible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Receiver_Board.jpg|none|thumb|600px|Figure 3. Vehicle receiver Arduino Nano and output wiring.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 4: Upload a photo showing where the DHT temperature/humidity sensor is mounted inside the cabin near the rider/mannequin area. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600px|Figure 4. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 5: Upload a photo of the third Arduino Nano USB bridge connected to the laptop, including the nRF24L01 module. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Bridge.jpg|none|thumb|600px|Figure 5. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 6: Upload a screenshot of the dashboard page while the vehicle is sending telemetry. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Screenshot.png|none|thumb|700px|Figure 6. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 7. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering: Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front Suspension Design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the two designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Aesthetics&lt;br /&gt;
|20%&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.20&lt;br /&gt;
|4.80&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 2 was selected because it received the higher total weighted score. It has a simpler frame structure, better durability due to its rectangular support design, and a clean appearance suitable for the prototype. Design 1 is more mechanically complex because of its extra linkages and moving parts, which may make it harder to manufacture and less durable.[[File:Screenshot (492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot (489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con cac 123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive Chain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC system flowchart.jpg|thumb|sketch of HVAC system |center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|thumb|VANT151 Team 1 Peltier and the circuit|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:VANT151_electrical_circuit.jpg|center|thumb|VANT151 Team 1 Electrical Circuit with extra features]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai [[File:Tim Cai.jpg|thumb|121x121px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile photo 260x320 no distortion.jpg|thumb|123x123px]]Thang Le&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks&lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|Christopher Rodas Castillo&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:VANT151_electrical_circuit.jpg&amp;diff=899286</id>
		<title>File:VANT151 electrical circuit.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:VANT151_electrical_circuit.jpg&amp;diff=899286"/>
		<updated>2026-06-18T21:44:06Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=VANT151 Team 1 Electrical Circuit with extra features}}&lt;br /&gt;
|date=2026-06-18&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899219</id>
		<title>VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899219"/>
		<updated>2026-06-18T18:11:59Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Sub-teams: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 1: Upload a clear top-view photo of the final rectangular transmitter. Show the joystick, three buttons, power switch, and power LED. Replace the file name below after uploading. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Top_View.jpg|none|thumb|600px|Figure 1. Final RC transmitter layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 2: Upload a photo of the inside of the transmitter or the transmitter breadboard/PCB. Make sure the Arduino Nano and nRF24L01 module are visible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Wiring.jpg|none|thumb|600px|Figure 2. Transmitter Arduino Nano wiring with joystick, buttons, and nRF24L01 radio module.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 3: Upload a photo of the vehicle receiver board. Label or frame the Arduino Nano, nRF24L01 module, motor/Peltier/fan wiring, buzzer, and light output if possible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Receiver_Board.jpg|none|thumb|600px|Figure 3. Vehicle receiver Arduino Nano and output wiring.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 4: Upload a photo showing where the DHT temperature/humidity sensor is mounted inside the cabin near the rider/mannequin area. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600px|Figure 4. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 5: Upload a photo of the third Arduino Nano USB bridge connected to the laptop, including the nRF24L01 module. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Bridge.jpg|none|thumb|600px|Figure 5. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 6: Upload a screenshot of the dashboard page while the vehicle is sending telemetry. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Screenshot.png|none|thumb|700px|Figure 6. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 7. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering: Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front Suspension Design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the two designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Aesthetics&lt;br /&gt;
|20%&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.20&lt;br /&gt;
|4.80&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 2 was selected because it received the higher total weighted score. It has a simpler frame structure, better durability due to its rectangular support design, and a clean appearance suitable for the prototype. Design 1 is more mechanically complex because of its extra linkages and moving parts, which may make it harder to manufacture and less durable.[[File:Screenshot (492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot (489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con cac 123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive Chain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC system flowchart.jpg|thumb|sketch of HVAC system |center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|thumb|VANT151 Team 1 Peltier and the circuit|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai [[File:Tim Cai.jpg|thumb|121x121px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile photo 260x320 no distortion.jpg|thumb|123x123px]]Thang Le&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks&lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|Christopher Rodas Castillo&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899216</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899216"/>
		<updated>2026-06-18T18:10:50Z</updated>

		<summary type="html">&lt;p&gt;TimCai: /* Sub-teams: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&amp;lt;!--PHOTO 1: Upload a clear top-view photo of the final rectangular transmitter. Show the joystick, three buttons, power switch, and power LED. Replace the file name below after uploading.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Top_View.jpg|none|thumb|600x600px|Figure 1. Final RC transmitter layout with joystick, three buttons, power switch, and power LED.]]&amp;lt;!--PHOTO 2: Upload a photo of the inside of the transmitter or the transmitter breadboard/PCB. Make sure the Arduino Nano and nRF24L01 module are visible.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Wiring.jpg|none|thumb|600x600px|Figure 2. Transmitter Arduino Nano wiring with joystick, buttons, and nRF24L01 radio module.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&amp;lt;!--PHOTO 3: Upload a photo of the vehicle receiver board. Label or frame the Arduino Nano, nRF24L01 module, motor/Peltier/fan wiring, buzzer, and light output if possible.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Receiver_Board.jpg|none|thumb|600x600px|Figure 3. Vehicle receiver Arduino Nano and output wiring.]]&amp;lt;!--PHOTO 4: Upload a photo showing where the DHT temperature/humidity sensor is mounted inside the cabin near the rider/mannequin area.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600x600px|Figure 4. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&amp;lt;!--PHOTO 5: Upload a photo of the third Arduino Nano USB bridge connected to the laptop, including the nRF24L01 module.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Bridge.jpg|none|thumb|600x600px|Figure 5. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&amp;lt;!--PHOTO 6: Upload a screenshot of the dashboard page while the vehicle is sending telemetry.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Screenshot.png|none|thumb|700x700px|Figure 6. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 7. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering: Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front Suspension Design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot_(493).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the two designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Aesthetics&lt;br /&gt;
|20%&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.20&lt;br /&gt;
|4.80&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 2 was selected because it received the higher total weighted score. It has a simpler frame structure, better durability due to its rectangular support design, and a clean appearance suitable for the prototype. Design 1 is more mechanically complex because of its extra linkages and moving parts, which may make it harder to manufacture and less durable.&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive Chain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
My role in the team was to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]Thang Le&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks&lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|Christopher Rodas Castillo&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899215</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899215"/>
		<updated>2026-06-18T18:09:13Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&amp;lt;!--PHOTO 1: Upload a clear top-view photo of the final rectangular transmitter. Show the joystick, three buttons, power switch, and power LED. Replace the file name below after uploading.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Top_View.jpg|none|thumb|600x600px|Figure 1. Final RC transmitter layout with joystick, three buttons, power switch, and power LED.]]&amp;lt;!--PHOTO 2: Upload a photo of the inside of the transmitter or the transmitter breadboard/PCB. Make sure the Arduino Nano and nRF24L01 module are visible.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Wiring.jpg|none|thumb|600x600px|Figure 2. Transmitter Arduino Nano wiring with joystick, buttons, and nRF24L01 radio module.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&amp;lt;!--PHOTO 3: Upload a photo of the vehicle receiver board. Label or frame the Arduino Nano, nRF24L01 module, motor/Peltier/fan wiring, buzzer, and light output if possible.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Receiver_Board.jpg|none|thumb|600x600px|Figure 3. Vehicle receiver Arduino Nano and output wiring.]]&amp;lt;!--PHOTO 4: Upload a photo showing where the DHT temperature/humidity sensor is mounted inside the cabin near the rider/mannequin area.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600x600px|Figure 4. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&amp;lt;!--PHOTO 5: Upload a photo of the third Arduino Nano USB bridge connected to the laptop, including the nRF24L01 module.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Bridge.jpg|none|thumb|600x600px|Figure 5. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&amp;lt;!--PHOTO 6: Upload a screenshot of the dashboard page while the vehicle is sending telemetry.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Screenshot.png|none|thumb|700x700px|Figure 6. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 7. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering: Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front Suspension Design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot_(493).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the two designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Aesthetics&lt;br /&gt;
|20%&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.20&lt;br /&gt;
|4.80&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 2 was selected because it received the higher total weighted score. It has a simpler frame structure, better durability due to its rectangular support design, and a clean appearance suitable for the prototype. Design 1 is more mechanically complex because of its extra linkages and moving parts, which may make it harder to manufacture and less durable.&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive Chain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
My role in the team was to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]Thang Le&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks&lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|Christopher Rodas Castillo&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899213</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899213"/>
		<updated>2026-06-18T18:08:37Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&amp;lt;!--PHOTO 1: Upload a clear top-view photo of the final rectangular transmitter. Show the joystick, three buttons, power switch, and power LED. Replace the file name below after uploading.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Top_View.jpg|none|thumb|600x600px|Figure 1. Final RC transmitter layout with joystick, three buttons, power switch, and power LED.]]&amp;lt;!--PHOTO 2: Upload a photo of the inside of the transmitter or the transmitter breadboard/PCB. Make sure the Arduino Nano and nRF24L01 module are visible.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Wiring.jpg|none|thumb|600x600px|Figure 2. Transmitter Arduino Nano wiring with joystick, buttons, and nRF24L01 radio module.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&amp;lt;!--PHOTO 3: Upload a photo of the vehicle receiver board. Label or frame the Arduino Nano, nRF24L01 module, motor/Peltier/fan wiring, buzzer, and light output if possible.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Receiver_Board.jpg|none|thumb|600x600px|Figure 3. Vehicle receiver Arduino Nano and output wiring.]]&amp;lt;!--PHOTO 4: Upload a photo showing where the DHT temperature/humidity sensor is mounted inside the cabin near the rider/mannequin area.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600x600px|Figure 4. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&amp;lt;!--PHOTO 5: Upload a photo of the third Arduino Nano USB bridge connected to the laptop, including the nRF24L01 module.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Bridge.jpg|none|thumb|600x600px|Figure 5. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&amp;lt;!--PHOTO 6: Upload a screenshot of the dashboard page while the vehicle is sending telemetry.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Screenshot.png|none|thumb|700x700px|Figure 6. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 7. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering: Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front Suspension Design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot_(493).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the two designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Aesthetics&lt;br /&gt;
|20%&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.20&lt;br /&gt;
|4.80&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 2 was selected because it received the higher total weighted score. It has a simpler frame structure, better durability due to its rectangular support design, and a clean appearance suitable for the prototype. Design 1 is more mechanically complex because of its extra linkages and moving parts, which may make it harder to manufacture and less durable.&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive Chain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
My role in the team was to work on the electrical and electronic design of the tricycle. &lt;br /&gt;
&lt;br /&gt;
I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]Thang Le&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks&lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|Christopher Rodas Castillo&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899210</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1&amp;diff=899210"/>
		<updated>2026-06-18T18:01:53Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Create this page from another wiki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&amp;lt;!--PHOTO 1: Upload a clear top-view photo of the final rectangular transmitter. Show the joystick, three buttons, power switch, and power LED. Replace the file name below after uploading.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Top_View.jpg|none|thumb|600x600px|Figure 1. Final RC transmitter layout with joystick, three buttons, power switch, and power LED.]]&amp;lt;!--PHOTO 2: Upload a photo of the inside of the transmitter or the transmitter breadboard/PCB. Make sure the Arduino Nano and nRF24L01 module are visible.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Wiring.jpg|none|thumb|600x600px|Figure 2. Transmitter Arduino Nano wiring with joystick, buttons, and nRF24L01 radio module.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&amp;lt;!--PHOTO 3: Upload a photo of the vehicle receiver board. Label or frame the Arduino Nano, nRF24L01 module, motor/Peltier/fan wiring, buzzer, and light output if possible.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Receiver_Board.jpg|none|thumb|600x600px|Figure 3. Vehicle receiver Arduino Nano and output wiring.]]&amp;lt;!--PHOTO 4: Upload a photo showing where the DHT temperature/humidity sensor is mounted inside the cabin near the rider/mannequin area.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600x600px|Figure 4. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&amp;lt;!--PHOTO 5: Upload a photo of the third Arduino Nano USB bridge connected to the laptop, including the nRF24L01 module.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Bridge.jpg|none|thumb|600x600px|Figure 5. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&amp;lt;!--PHOTO 6: Upload a screenshot of the dashboard page while the vehicle is sending telemetry.--&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Screenshot.png|none|thumb|700x700px|Figure 6. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 7. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering: Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front Suspension Design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot_(493).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the two designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Aesthetics&lt;br /&gt;
|20%&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.20&lt;br /&gt;
|4.80&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 2 was selected because it received the higher total weighted score. It has a simpler frame structure, better durability due to its rectangular support design, and a clean appearance suitable for the prototype. Design 1 is more mechanically complex because of its extra linkages and moving parts, which may make it harder to manufacture and less durable.&lt;br /&gt;
[[File:Screenshot_(492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot_(488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot_(489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con_cac_123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive Chain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|sketch of HVAC system]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|center|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai[[File:Tim_Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile_photo_260x320_no_distortion.jpg|thumb|123x123px]]Thang Le&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks&lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|Christopher Rodas Castillo&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=899209</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=899209"/>
		<updated>2026-06-18T18:00:02Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components. &lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
My role in the team was to work on the electrical and electronic design of the tricycle. I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899181</id>
		<title>VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899181"/>
		<updated>2026-06-18T17:22:34Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 1: Upload a clear top-view photo of the final rectangular transmitter. Show the joystick, three buttons, power switch, and power LED. Replace the file name below after uploading. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Top_View.jpg|none|thumb|600px|Figure 1. Final RC transmitter layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 2: Upload a photo of the inside of the transmitter or the transmitter breadboard/PCB. Make sure the Arduino Nano and nRF24L01 module are visible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Wiring.jpg|none|thumb|600px|Figure 2. Transmitter Arduino Nano wiring with joystick, buttons, and nRF24L01 radio module.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 3: Upload a photo of the vehicle receiver board. Label or frame the Arduino Nano, nRF24L01 module, motor/Peltier/fan wiring, buzzer, and light output if possible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Receiver_Board.jpg|none|thumb|600px|Figure 3. Vehicle receiver Arduino Nano and output wiring.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 4: Upload a photo showing where the DHT temperature/humidity sensor is mounted inside the cabin near the rider/mannequin area. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600px|Figure 4. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 5: Upload a photo of the third Arduino Nano USB bridge connected to the laptop, including the nRF24L01 module. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Bridge.jpg|none|thumb|600px|Figure 5. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 6: Upload a screenshot of the dashboard page while the vehicle is sending telemetry. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Screenshot.png|none|thumb|700px|Figure 6. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 7. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering: Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front Suspension Design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the two designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Aesthetics&lt;br /&gt;
|20%&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.20&lt;br /&gt;
|4.80&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 2 was selected because it received the higher total weighted score. It has a simpler frame structure, better durability due to its rectangular support design, and a clean appearance suitable for the prototype. Design 1 is more mechanically complex because of its extra linkages and moving parts, which may make it harder to manufacture and less durable.[[File:Screenshot (492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot (489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con cac 123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive Chain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC system flowchart.jpg|thumb|sketch of HVAC system |center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|thumb|VANT151 Team 1 Peltier and the circuit|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai[[File:Tim Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile photo 260x320 no distortion.jpg|thumb|123x123px]]Thang Le&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks&lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|Christopher Rodas Castillo&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899177</id>
		<title>VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899177"/>
		<updated>2026-06-18T17:19:14Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 1: Upload a clear top-view photo of the final rectangular transmitter. Show the joystick, three buttons, power switch, and power LED. Replace the file name below after uploading. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Top_View.jpg|none|thumb|600px|Figure 1. Final RC transmitter layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 2: Upload a photo of the inside of the transmitter or the transmitter breadboard/PCB. Make sure the Arduino Nano and nRF24L01 module are visible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Wiring.jpg|none|thumb|600px|Figure 2. Transmitter Arduino Nano wiring with joystick, buttons, and nRF24L01 radio module.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 3: Upload a photo of the vehicle receiver board. Label or frame the Arduino Nano, nRF24L01 module, motor/Peltier/fan wiring, buzzer, and light output if possible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Receiver_Board.jpg|none|thumb|600px|Figure 3. Vehicle receiver Arduino Nano and output wiring.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 4: Upload a photo showing where the DHT temperature/humidity sensor is mounted inside the cabin near the rider/mannequin area. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600px|Figure 4. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 5: Upload a photo of the third Arduino Nano USB bridge connected to the laptop, including the nRF24L01 module. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Bridge.jpg|none|thumb|600px|Figure 5. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 6: Upload a screenshot of the dashboard page while the vehicle is sending telemetry. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Screenshot.png|none|thumb|700px|Figure 6. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 7. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering: Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front Suspension Design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the two designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Aesthetics&lt;br /&gt;
|20%&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.20&lt;br /&gt;
|4.80&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 2 was selected because it received the higher total weighted score. It has a simpler frame structure, better durability due to its rectangular support design, and a clean appearance suitable for the prototype. Design 1 is more mechanically complex because of its extra linkages and moving parts, which may make it harder to manufacture and less durable.[[File:Screenshot (492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot (489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con cac 123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive Chain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_Fan_and_peltier.jpg|center|thumb|VANT151 team1 fan with peltier]]&lt;br /&gt;
|[[File:HVAC system flowchart.jpg|thumb|sketch of HVAC system ]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|[[File:Peltier_drawing_and_circuit.jpg|thumb|VANT151 Team 1 Peltier and the circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai[[File:Tim Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile photo 260x320 no distortion.jpg|thumb|123x123px]]Thang Le&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks&lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|Christopher Rodas Castillo&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:Peltier_drawing_and_circuit.jpg&amp;diff=899176</id>
		<title>File:Peltier drawing and circuit.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:Peltier_drawing_and_circuit.jpg&amp;diff=899176"/>
		<updated>2026-06-18T17:15:33Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=VANT151 Team 1 Peltier and the circuit}}&lt;br /&gt;
|date=2026-06-17&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:HVAC_Fan_and_peltier.jpg&amp;diff=899175</id>
		<title>File:HVAC Fan and peltier.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:HVAC_Fan_and_peltier.jpg&amp;diff=899175"/>
		<updated>2026-06-18T17:15:33Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=VANT151 team1 fan with peltier}}&lt;br /&gt;
|date=2026-06-17&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899133</id>
		<title>VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=899133"/>
		<updated>2026-06-18T16:45:27Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
== Coding ==&lt;br /&gt;
&lt;br /&gt;
=== Overview of the Arduino Code ===&lt;br /&gt;
The Coding sub-team was responsible for the remote-control software and the software interface between the transmitter, vehicle receiver, and dashboard. The system uses three Arduino Nano boards. The first Nano is inside the handheld transmitter. The second Nano is mounted on the vehicle as the receiver. The third Nano is connected to a laptop by USB and works as a radio bridge for the dashboard.&lt;br /&gt;
&lt;br /&gt;
The transmitter reads the joystick and button inputs, then sends a command packet through an nRF24L01 radio module. The receiver reads this command packet and controls the steering servo, drive motor PWM, Peltier module, fan, lights, and buzzer. The receiver also reads the cabin temperature and humidity sensor. The third Nano listens for dashboard telemetry from the receiver and sends the data to a browser dashboard on the laptop.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Coding files used in the final design&lt;br /&gt;
!File&lt;br /&gt;
!Board&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|TXCODE.ino&lt;br /&gt;
|Transmitter Arduino Nano&lt;br /&gt;
|Reads the joystick, Peltier button, buzzer button, and light button, then transmits the RC command packet.&lt;br /&gt;
|-&lt;br /&gt;
|RXCODE.ino&lt;br /&gt;
|Vehicle receiver Arduino Nano&lt;br /&gt;
|Receives RC commands, applies vehicle outputs, reads temperature and humidity, sends dashboard telemetry, and enters failsafe when signal is lost.&lt;br /&gt;
|-&lt;br /&gt;
|DASHBOARD_BRIDGE.ino&lt;br /&gt;
|Third Arduino Nano connected to laptop&lt;br /&gt;
|Receives telemetry packets and prints them as JSON through USB Serial. It also forwards safe buzzer-tone settings from the dashboard to the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|dashboard.html&lt;br /&gt;
|Laptop browser&lt;br /&gt;
|Displays the live dashboard with cabin temperature, humidity, Peltier mode, fan state, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The Coding sub-team design must:&lt;br /&gt;
&lt;br /&gt;
# Read user inputs from the RC transmitter, including joystick movement, Peltier mode selection, buzzer input, and the extra light button.&lt;br /&gt;
# Send wireless command packets from the transmitter to the vehicle receiver using nRF24L01 radio modules.&lt;br /&gt;
# Convert valid receiver packets into vehicle outputs, including steering servo position, drive motor PWM, Peltier mode, fan state, lights, buzzer sound, dashboard telemetry, and failsafe shutdown.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
The main design objectives are:&lt;br /&gt;
&lt;br /&gt;
# Make the RC control responsive and predictable so the vehicle can be tested and driven reliably.&lt;br /&gt;
# Make the code easy to debug and demonstrate by including Serial output, live dashboard telemetry, temperature and humidity readings, adjustable buzzer tone, and signal-loss failsafe behavior.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
The Coding design must work within these constraints:&lt;br /&gt;
&lt;br /&gt;
# The transmitter and receiver must use the available Arduino Nano pins, nRF24L01 modules, joystick, buttons, switches, sensor, and output hardware.&lt;br /&gt;
# The software must match the Electrical, Mechanical, Structural, and Thermal sub-team designs because the code depends on the actual motor driver, steering actuator, Peltier circuit, fan wiring, light wiring, and dashboard sensor placement.&lt;br /&gt;
# The receiver must return to a safe state if radio communication is lost, so the motor does not continue running without a valid command signal.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== System Architecture ====&lt;br /&gt;
The final coding system has three wireless roles. The transmitter sends driver commands to the receiver. The receiver controls the vehicle and sends telemetry data to the third Nano. The third Nano connects to the laptop by USB and allows the dashboard to show live data.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 1: Upload a clear top-view photo of the final rectangular transmitter. Show the joystick, three buttons, power switch, and power LED. Replace the file name below after uploading. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Top_View.jpg|none|thumb|600px|Figure 1. Final RC transmitter layout with joystick, three buttons, power switch, and power LED.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 2: Upload a photo of the inside of the transmitter or the transmitter breadboard/PCB. Make sure the Arduino Nano and nRF24L01 module are visible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Transmitter_Wiring.jpg|none|thumb|600px|Figure 2. Transmitter Arduino Nano wiring with joystick, buttons, and nRF24L01 radio module.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Wireless communication roles&lt;br /&gt;
!Device&lt;br /&gt;
!Radio role&lt;br /&gt;
!Main data sent or received&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter Nano&lt;br /&gt;
|Command sender&lt;br /&gt;
|Sends joystick X/Y, Peltier mode, buzzer command, fan command, and light command.&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle receiver Nano&lt;br /&gt;
|Command receiver and telemetry sender&lt;br /&gt;
|Receives RC commands, controls outputs, reads sensors, and sends telemetry to the dashboard bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge Nano&lt;br /&gt;
|Telemetry receiver and safe config sender&lt;br /&gt;
|Receives vehicle telemetry and sends buzzer-tone settings from the laptop dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Transmitter Hardware ====&lt;br /&gt;
The transmitter is a rectangular controller box with one joystick, three buttons, one power switch, and one LED to show whether the controller is on. The physical box and mounting layout are part of the controller hardware design, while the Coding sub-team is responsible for reading the inputs and sending the correct command packet.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. Transmitter inputs&lt;br /&gt;
!Input&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Coding function&lt;br /&gt;
|-&lt;br /&gt;
|Joystick X-axis&lt;br /&gt;
|A0&lt;br /&gt;
|Controls steering. The receiver maps this value to the steering servo pulse.&lt;br /&gt;
|-&lt;br /&gt;
|Joystick Y-axis&lt;br /&gt;
|A1&lt;br /&gt;
|Controls drive motor speed. The receiver calibrates the center value, applies a deadzone, and maps joystick travel to PWM.&lt;br /&gt;
|-&lt;br /&gt;
|Button 1&lt;br /&gt;
|D2&lt;br /&gt;
|Cycles the Peltier module through OFF, COLD, HEAT, then back to OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Button 2&lt;br /&gt;
|D3&lt;br /&gt;
|Activates the buzzer while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Button 3&lt;br /&gt;
|D4&lt;br /&gt;
|Toggles the vehicle lights on and off. This was chosen as the extra button feature because it is simple, visible, and useful during the conference demonstration.&lt;br /&gt;
|-&lt;br /&gt;
|Power switch&lt;br /&gt;
|Hardware power path&lt;br /&gt;
|Turns the transmitter on and off.&lt;br /&gt;
|-&lt;br /&gt;
|Power LED&lt;br /&gt;
|Power indicator circuit&lt;br /&gt;
|Shows when the controller is powered.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Vehicle Receiver Hardware ====&lt;br /&gt;
The receiver Arduino Nano is mounted on the vehicle and converts wireless commands into physical outputs. It controls the steering servo, motor driver, Peltier module, fan driver, lights, and buzzer. It also reads the temperature and humidity sensor inside the vehicle cabin.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 3: Upload a photo of the vehicle receiver board. Label or frame the Arduino Nano, nRF24L01 module, motor/Peltier/fan wiring, buzzer, and light output if possible. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Receiver_Board.jpg|none|thumb|600px|Figure 3. Vehicle receiver Arduino Nano and output wiring.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 4: Upload a photo showing where the DHT temperature/humidity sensor is mounted inside the cabin near the rider/mannequin area. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_DHT_Sensor_Placement.jpg|none|thumb|600px|Figure 4. Temperature and humidity sensor placement inside the vehicle cabin.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 4. Receiver outputs and sensor inputs&lt;br /&gt;
!Part&lt;br /&gt;
!Arduino pin&lt;br /&gt;
!Purpose&lt;br /&gt;
|-&lt;br /&gt;
|Steering servo signal&lt;br /&gt;
|D3&lt;br /&gt;
|Controls steering position using joystick X.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|D5&lt;br /&gt;
|Controls drive motor speed using joystick Y.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier enable&lt;br /&gt;
|D4&lt;br /&gt;
|Turns the Peltier circuit on or off.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode control&lt;br /&gt;
|D2&lt;br /&gt;
|Selects cold or heat mode through the Peltier relay/control circuit.&lt;br /&gt;
|-&lt;br /&gt;
|Fan driver&lt;br /&gt;
|D6&lt;br /&gt;
|Turns the fan on when the Peltier mode is active.&lt;br /&gt;
|-&lt;br /&gt;
|Lights&lt;br /&gt;
|D7&lt;br /&gt;
|Turns the vehicle lights on or off using transmitter Button 3.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer&lt;br /&gt;
|D8&lt;br /&gt;
|Plays a tone while the buzzer button is held. The tone frequency can be adjusted from the dashboard.&lt;br /&gt;
|-&lt;br /&gt;
|DHT temperature/humidity sensor&lt;br /&gt;
|A0&lt;br /&gt;
|Measures cabin temperature and humidity for the dashboard.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Dashboard Bridge and Landing Page ====&lt;br /&gt;
The dashboard feature uses a third Arduino Nano connected to the laptop by USB. This avoids needing an ESP32 or Bluetooth module. The third Nano has its own nRF24L01 radio and receives telemetry packets from the vehicle receiver. It then prints the data to the laptop as JSON through USB Serial. A browser dashboard reads this serial data and displays it as a live landing page.&lt;br /&gt;
&lt;br /&gt;
The dashboard is not a public internet website. It is a local landing page opened on the laptop during testing or the conference. It can show live data in a browser while still keeping the RC transmitter responsible for vehicle movement.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 5: Upload a photo of the third Arduino Nano USB bridge connected to the laptop, including the nRF24L01 module. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Bridge.jpg|none|thumb|600px|Figure 5. Third Arduino Nano used as a USB radio bridge for the dashboard.]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- PHOTO 6: Upload a screenshot of the dashboard page while the vehicle is sending telemetry. --&amp;gt;&lt;br /&gt;
[[File:TeamX_Coding_Dashboard_Screenshot.png|none|thumb|700px|Figure 6. Laptop dashboard showing live RC and cabin telemetry.]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 5. Dashboard values&lt;br /&gt;
!Dashboard value&lt;br /&gt;
!Source&lt;br /&gt;
!Reason for including it&lt;br /&gt;
|-&lt;br /&gt;
|Cabin temperature&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Shows whether the Peltier/fan system changes the rider area temperature.&lt;br /&gt;
|-&lt;br /&gt;
|Cabin humidity&lt;br /&gt;
|DHT sensor on receiver&lt;br /&gt;
|Adds more environmental data for the cabin.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier mode&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if the system is OFF, COLD, or HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|Fan state&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows if fan output is active with the Peltier system.&lt;br /&gt;
|-&lt;br /&gt;
|Lights state&lt;br /&gt;
|Transmitter Button 3 and receiver telemetry&lt;br /&gt;
|Shows the extra button feature.&lt;br /&gt;
|-&lt;br /&gt;
|Motor PWM&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current motor command.&lt;br /&gt;
|-&lt;br /&gt;
|Steering pulse&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Shows the current steering servo command.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe status&lt;br /&gt;
|Receiver timeout logic&lt;br /&gt;
|Shows whether the vehicle has entered safe-stop mode.&lt;br /&gt;
|-&lt;br /&gt;
|Signal age and packet count&lt;br /&gt;
|Receiver telemetry&lt;br /&gt;
|Helps debug radio communication.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer tone&lt;br /&gt;
|Dashboard setting and receiver telemetry&lt;br /&gt;
|Allows the buzzer sound to be adjusted safely without affecting steering or motor control.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Command and Telemetry Packets ====&lt;br /&gt;
The transmitter and receiver use the same command packet structure so both Arduinos interpret the radio message correctly.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 6. Command packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|x&lt;br /&gt;
|Joystick X value for steering.&lt;br /&gt;
|-&lt;br /&gt;
|y&lt;br /&gt;
|Joystick Y value for motor speed.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|0 = OFF, 1 = COLD, 2 = HEAT.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerActive&lt;br /&gt;
|1 when the buzzer button is held, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|1 when the Peltier mode is active, otherwise 0.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|1 when the lights are on, otherwise 0.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The receiver sends a second packet type to the dashboard bridge. This packet includes the sensor values and the current output state of the vehicle.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 7. Telemetry packet fields&lt;br /&gt;
!Field&lt;br /&gt;
!Meaning&lt;br /&gt;
|-&lt;br /&gt;
|temperatureC&lt;br /&gt;
|Cabin temperature in degrees Celsius.&lt;br /&gt;
|-&lt;br /&gt;
|humidity&lt;br /&gt;
|Cabin relative humidity.&lt;br /&gt;
|-&lt;br /&gt;
|peltierMode&lt;br /&gt;
|Current Peltier mode applied by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|fanActive&lt;br /&gt;
|Current fan command.&lt;br /&gt;
|-&lt;br /&gt;
|lightsActive&lt;br /&gt;
|Current light command.&lt;br /&gt;
|-&lt;br /&gt;
|motorPWM&lt;br /&gt;
|Motor PWM value from 0 to 255.&lt;br /&gt;
|-&lt;br /&gt;
|servoPulse&lt;br /&gt;
|Steering servo pulse in microseconds.&lt;br /&gt;
|-&lt;br /&gt;
|failsafe&lt;br /&gt;
|Shows whether signal-loss failsafe is active.&lt;br /&gt;
|-&lt;br /&gt;
|signalAgeMs&lt;br /&gt;
|Time since the receiver last received a valid command packet.&lt;br /&gt;
|-&lt;br /&gt;
|packetCount&lt;br /&gt;
|Number of command packets received by the receiver.&lt;br /&gt;
|-&lt;br /&gt;
|buzzerToneHz&lt;br /&gt;
|Current buzzer tone frequency.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Operating Sequence ====&lt;br /&gt;
# The user turns on the transmitter using the power switch. The power LED turns on.&lt;br /&gt;
# The transmitter initializes the joystick, buttons, Serial output, and nRF24L01 radio module.&lt;br /&gt;
# The transmitter repeatedly reads the joystick and buttons.&lt;br /&gt;
# If Button 1 is pressed, the transmitter cycles the Peltier mode through OFF, COLD, HEAT, and OFF again.&lt;br /&gt;
# If Button 2 is held, the transmitter sends the buzzer-active command.&lt;br /&gt;
# If Button 3 is pressed, the transmitter toggles the light command.&lt;br /&gt;
# The transmitter sends a command packet to the receiver about every 50 ms.&lt;br /&gt;
# The receiver reads valid command packets and updates the last-received time.&lt;br /&gt;
# The receiver maps joystick X to the steering servo and joystick Y to motor PWM after joystick center calibration.&lt;br /&gt;
# The receiver applies Peltier, fan, light, and buzzer outputs.&lt;br /&gt;
# The receiver reads the DHT temperature/humidity sensor approximately every 2 seconds.&lt;br /&gt;
# The receiver sends a telemetry packet to the third Nano about every 250 ms.&lt;br /&gt;
# The third Nano sends the telemetry data to the laptop dashboard as JSON over USB.&lt;br /&gt;
# The dashboard displays live values and can send a safe buzzer-tone setting back to the receiver.&lt;br /&gt;
# If the receiver does not receive a command packet for more than 1000 ms, it enters failsafe by centering steering, stopping the motor, turning off the Peltier, turning off the fan, turning off the buzzer, and turning off the lights.&lt;br /&gt;
&lt;br /&gt;
==== Program Flowchart ====&lt;br /&gt;
The program flowchart should be uploaded as an image in this section. Mermaid is useful for generating the diagram, but UBC Wiki may not render Mermaid directly. The recommended method is to render the Mermaid flowchart as a PNG or SVG, upload it to UBC Wiki, and place it below as Figure 7.&lt;br /&gt;
[[File:Flowchart2.png|left|thumb|549x549px|Figure 7. Final Coding program flowchart for transmitter, vehicle receiver, third Nano bridge, and dashboard.]]&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
The extra feature selected for the third transmitter button is vehicle lights. This was chosen because lights are easy to test, easy to show visually, and listed as a common extra feature for the project. The light output is controlled from transmitter Button 3 and displayed on the dashboard.&lt;br /&gt;
&lt;br /&gt;
The second extra feature is the laptop dashboard. Instead of adding an ESP32 or Bluetooth module, the design uses a third Arduino Nano as a USB radio bridge. This allows the team to show live vehicle data on a browser page while using the same nRF24L01 radio system already used for RC communication.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 8. Extra features&lt;br /&gt;
!Extra feature&lt;br /&gt;
!Description&lt;br /&gt;
!Status&lt;br /&gt;
|-&lt;br /&gt;
|Vehicle lights&lt;br /&gt;
|Button 3 on the transmitter toggles a light output on the vehicle receiver.&lt;br /&gt;
|Implemented in code; needs final light wiring.&lt;br /&gt;
|-&lt;br /&gt;
|Live dashboard&lt;br /&gt;
|A browser dashboard displays temperature, humidity, Peltier mode, fan, lights, motor PWM, steering, failsafe, packet count, and buzzer tone.&lt;br /&gt;
|Implemented as local laptop dashboard using a third Arduino Nano bridge.&lt;br /&gt;
|-&lt;br /&gt;
|Adjustable buzzer tone&lt;br /&gt;
|The dashboard can send a safe buzzer-tone frequency to the receiver.&lt;br /&gt;
|Implemented in code; works best with a passive buzzer.&lt;br /&gt;
|-&lt;br /&gt;
|Temperature and humidity sensing&lt;br /&gt;
|A DHT sensor measures cabin environment data near the rider/mannequin.&lt;br /&gt;
|Implemented in code; sensor must be mounted and wired.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Other possible uses for the extra transmitter button were considered, such as a horn toggle, dashboard marker, manual fan override, or joystick recalibration button. Lights were selected because they have the best balance of simplicity, safety, and demonstration value.&lt;br /&gt;
&lt;br /&gt;
==== Current Testing Status ====&lt;br /&gt;
At the current stage, the code supports radio command packets, joystick control, Peltier mode cycling, fan command, light toggle, buzzer command, DHT temperature and humidity readings, dashboard telemetry, adjustable buzzer tone, and signal-loss failsafe. Final testing should confirm that the radio modules remain stable when all three Nanos are powered, that the receiver enters failsafe correctly, and that the dashboard updates reliably while the vehicle is running.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 9. Testing checklist&lt;br /&gt;
!Test&lt;br /&gt;
!Expected result&lt;br /&gt;
|-&lt;br /&gt;
|Transmitter joystick test&lt;br /&gt;
|Dashboard and receiver Serial output show changing X/Y values.&lt;br /&gt;
|-&lt;br /&gt;
|Peltier button test&lt;br /&gt;
|Mode cycles through OFF, COLD, HEAT, and OFF.&lt;br /&gt;
|-&lt;br /&gt;
|Buzzer button test&lt;br /&gt;
|Buzzer plays only while the button is held.&lt;br /&gt;
|-&lt;br /&gt;
|Light button test&lt;br /&gt;
|Vehicle lights toggle on and off.&lt;br /&gt;
|-&lt;br /&gt;
|DHT sensor test&lt;br /&gt;
|Dashboard displays cabin temperature and humidity.&lt;br /&gt;
|-&lt;br /&gt;
|Dashboard bridge test&lt;br /&gt;
|Browser dashboard receives live telemetry from the third Nano.&lt;br /&gt;
|-&lt;br /&gt;
|Failsafe test&lt;br /&gt;
|Turning off the transmitter causes the receiver to stop the motor and turn off unsafe outputs.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Recommendations ====&lt;br /&gt;
# Use a 10 uF to 47 uF capacitor across the VCC and GND pins of each nRF24L01 module to reduce radio power problems.&lt;br /&gt;
# Keep the nRF24L01 wires short and power the module from 3.3 V only.&lt;br /&gt;
# Test the DHT sensor before final mounting because incorrect sensor type selection can cause blank temperature and humidity readings.&lt;br /&gt;
# Use a passive buzzer if adjustable tones are needed, because active buzzers may ignore frequency changes.&lt;br /&gt;
# Keep the dashboard control limited to safe accessory settings, such as buzzer tone. Driving and steering should remain controlled by the transmitter.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mechanical Design ==&lt;br /&gt;
The mechanical sub-system includes the front suspension, drive train, and steering system . These components work together to improve vehicle movement, stability, turning control, and structural support. The main goal is to keep the design simple, compact, easy to assemble, and reliable for the prototype.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Absorb shocks and vibrations from the ground, keep the front wheels in contact with the ground and improve stability, and control during movement.&lt;br /&gt;
# Drive train: Transfer power from the motor to the wheels, control the vehicle’s speed and movement, and provide enough torque for the vehicle to move smoothly.&lt;br /&gt;
# Steering: Allow the vehicle to change direction, connect the steering input to the front wheels, and improve turning accuracy and control.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# Front suspension: Allow the front suspension to change its angle during cornering, improve vehicle balance while turning, and reduce shocks when moving on rough surfaces.&lt;br /&gt;
# Drive train: Increase vehicle speed using a gear system, keep the system compact and easy to assemble, and provide smooth power transfer to the wheels.&lt;br /&gt;
# Steering: Keep the steering system as simple as possible, achieve a turning radius suitable for the prototype, and ensure easy control during movement.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Limited project time: Busy academic schedules and only one prototype working day per week limit the time available for building, testing, and improving the mechanical sub-system.&lt;br /&gt;
# 3D printing accuracy: Small 3D-printed parts may have lower accuracy, which can affect fitting, alignment, and the movement of components.&lt;br /&gt;
# Limited team members: Each sub-team has only about two members on average, creating a higher workload and requiring the design to be simple, practical, and easy to manufacture.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Front Suspension ====&lt;br /&gt;
We generated two front suspension designs as shown below:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 1. Front Suspension Design&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (484).png|thumb]]&lt;br /&gt;
|[[File:Screenshot (493).png|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
We used a weighted decision matrix to compare the two designs.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 2. Weighted decision matrix for selection of front suspension&lt;br /&gt;
!&lt;br /&gt;
!Weight&lt;br /&gt;
!Design 1&lt;br /&gt;
!Design 2&lt;br /&gt;
|-&lt;br /&gt;
|Simplicity&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Durability&lt;br /&gt;
|40%&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|-&lt;br /&gt;
|Aesthetics&lt;br /&gt;
|20%&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|&lt;br /&gt;
|3.20&lt;br /&gt;
|4.80&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Decision:&#039;&#039;&#039; Design 2 was selected because it received the higher total weighted score. It has a simpler frame structure, better durability due to its rectangular support design, and a clean appearance suitable for the prototype. Design 1 is more mechanically complex because of its extra linkages and moving parts, which may make it harder to manufacture and less durable.[[File:Screenshot (492).png|thumb|&#039;&#039;&#039;3D Assembly of the Steering Components&#039;&#039;&#039;]]&lt;br /&gt;
==== Steering ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Table 3. 2D drawings of the main components of the steering system&lt;br /&gt;
!Handlebar&lt;br /&gt;
!Head&lt;br /&gt;
!Steering column&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Screenshot (488).png|thumb|The handlebar acts as the main control component of the steering system. Similar to a steering wheel, it allows the user to change the direction of the prototype by controlling the steering mechanism.]]&lt;br /&gt;
|[[File:Screenshot (489).png|thumb|The head fixes the handlebar in place and connects it to the steering column. It helps transfer the steering force from the handlebar down to the front suspension system.]]&lt;br /&gt;
|[[File:Con cac 123.png|thumb|The steering column connects the handlebar to the front suspension. It transfers the steering motion from the handlebar down to the front suspension system.]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Drive Chain&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
The structural sub-team is responsible for designing and constructing the enclosure structure of the bicycle-based vehicle. The structural sub-team also designs the cabin frame, opaque panels, glazing panels, doors, and rear frame components to protect the rider and internal components while maintaining access, visibility, and ventilation.&lt;br /&gt;
&lt;br /&gt;
=== Requirement ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the structural components are to:&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety: The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
# Structural support: The enclosure frame must support the opaque panels, transparent glazing panels, doors, and other structural components.&lt;br /&gt;
# Access and visibility: The door design must allow the rider to enter and exit the vehicle safely, while the transparent glazing panels must provide enough visibility during operation.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
# The vehicle must have an enclosure frame and opaque panels.&lt;br /&gt;
# The vehicle must have natural ventilation.&lt;br /&gt;
# The vehicle must have transparent glazing panels, with at least one vacuum-formed component.&lt;br /&gt;
# The vehicle must have doors for rider entry and exit.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
# 3D Printing Tolerances: Low precision caused minor dimensional errors, complicating assembly and weakening the final structure.&lt;br /&gt;
# Understaffed Team: Smaller group size forced members to balance time across multiple sub-teams.&lt;br /&gt;
# Time Limitations: Compounded by labor constraints and assembly delays, severely restricting the project schedule.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
==== Enclosure ====&lt;br /&gt;
The enclosure is the main protective structure of the vehicle. It consists of a frame, opaque panels, glazing panels, and doors. The enclosure protects the rider and internal components from weather, debris, and external hazards while still allowing rider access, visibility, and ventilation.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|center|thumb|161x161px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Isolated View of the Final Door Design]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|175x175px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in an Open State]]&lt;br /&gt;
&lt;br /&gt;
==== Door ====&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
==== Natural Ventilation ====&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|117x117px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|174x174px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&lt;br /&gt;
==== HVAC Supports ====&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figures 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features ====&lt;br /&gt;
[[File:Screenshot_2026-06-13_103104.png|left|thumb|155x155px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&lt;br /&gt;
===== Rear Door =====&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.{{clear}}&lt;br /&gt;
&lt;br /&gt;
==== Design Alternatives ====&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|290x290px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear doors, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
=== Recommendations ===&lt;br /&gt;
&#039;&#039;&#039;1.&#039;&#039;&#039;Test fit all enclosure parts before final assembly to reduce problems caused by 3D printing tolerances.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2.&#039;&#039;&#039;Use stronger connection points for the doors, panels, and rear door to improve durability.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;3.&#039;&#039;&#039;Keep enough clearance for wiring, breadboard access, HVAC supports, and other sub-team components.&lt;br /&gt;
&lt;br /&gt;
=== Appendices ===&lt;br /&gt;
&lt;br /&gt;
==== Enclosure parts sketches ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-35.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-27.jpg|thumb]]&lt;br /&gt;
![[File:Photo_2026-06-15_16-40-31.jpg|thumb]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|VANT151 VD1 Team 1 Electrical HVAC System Flowchart]]&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai[[File:Tim Cai.jpg|thumb|114x114px]]Electrical Sub-team Design and Assembly&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Profile photo 260x320 no distortion.jpg|thumb|123x123px]]Thang Le&lt;br /&gt;
Mechanical Sub-team Design and Main mechanical design in Solidworks&lt;br /&gt;
&lt;br /&gt;
I led the overall mechanical design process by developing the front suspension, drive train, and steering system. I also used SolidWorks to model the individual components and integrate these mechanical mechanisms into the complete prototype assembly. Through this experience, I learned how important it is to consider manufacturability, assembly, and compatibility between different sub-systems during the design process.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Structural Sub-team Design and Assembly Leader&lt;br /&gt;
&lt;br /&gt;
I led the overall design process, developing two alternative enclosure concepts and utilizing SolidWorks to sketch and model both the individual components and the complete assembly. I also worked with another subteam to design the gear system and integrate it within the enclosure. Additionally, I was in charge of the assembly of the bike structure and was responsible for troubleshooting any issues that arose.&lt;br /&gt;
|Jinyuan Jin&lt;br /&gt;
Structural Design Support and Documentation Contributor&lt;br /&gt;
&lt;br /&gt;
I assisted in completing the assigned structural tasks and actively discussed the design direction and division of work with my teammate. I created sketches based on the agreed enclosure design, contributed ideas and suggestions during the design process, helped make revisions, and took a major role in the project document.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|Christopher Rodas Castillo&lt;br /&gt;
Chief Developer and Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:Tim_Cai.jpg&amp;diff=899132</id>
		<title>File:Tim Cai.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:Tim_Cai.jpg&amp;diff=899132"/>
		<updated>2026-06-18T16:44:42Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Tim Cai photograph}}&lt;br /&gt;
|date=2026-06-18&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=898200</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=898200"/>
		<updated>2026-06-15T05:51:34Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components. &lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver|center]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|VANT151 VD1 Team 1 Electrical HVAC System Flowchart]]&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This is the flowchart of the automation program[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart|center]]&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_team1_2026.docx|thumb|2026 VANT151 receiver code References]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
My role in the team was to work on the electrical and electronic design of the tricycle. I helped with the receiver circuit, wiring, Arduino code, and testing the remote-control and autonomous functions. Through this project, I learned how to connect electronic components, troubleshoot wiring problems, and improve the reliability of the control system.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=898176</id>
		<title>VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=898176"/>
		<updated>2026-06-14T20:39:27Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Column 1&lt;br /&gt;
!Column 2&lt;br /&gt;
!Column 3&lt;br /&gt;
!Column 4&lt;br /&gt;
|-&lt;br /&gt;
|img1&lt;br /&gt;
[[File:TX RX System.jpg|center|thumb]]&lt;br /&gt;
|img 2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety&#039;&#039;&#039;:&#039;&#039;&#039; The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must be constructed with a solid frame and outer panels.&lt;br /&gt;
# The enclosure must be designed to facilitate natural ventilation.&lt;br /&gt;
# vant. form. glazing&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Time limitation.&lt;br /&gt;
# As this was our first project of this nature, we encountered several challenges stemming from our lack of experience and the inherent tolerances of 3D printing. The 3D printers were less precise than anticipated, resulting in minor dimensional errors. These discrepancies complicated the assembly process and ultimately compromised the structural integrity of the final product.&lt;br /&gt;
# Due to a smaller team size than anticipated, group members had to balance their time to complete the work of other subteams.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|thumb|238x238px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
&lt;br /&gt;
==== The Design ====&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
=== Enclosure ===&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Insolated View of the Final Door Design]]&lt;br /&gt;
&#039;&#039;&#039;Door&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|157x157px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in a Open State]]&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Natural Ventilation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|151x151px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HVAC Supports&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figure 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|134x134px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&#039;&#039;&#039;Extra Features&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot 2026-06-13 103104.png|left|thumb|178x178px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&#039;&#039;&#039;Rear Door&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Design Alternatives ===&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|212x212px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear door, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|VANT151 VD1 Team 1 Electrical HVAC System Flowchart]]&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=898175</id>
		<title>VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=898175"/>
		<updated>2026-06-14T20:37:49Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Add electrical design part&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Column 1&lt;br /&gt;
!Column 2&lt;br /&gt;
!Column 3&lt;br /&gt;
!Column 4&lt;br /&gt;
|-&lt;br /&gt;
|img1&lt;br /&gt;
[[File:TX RX System.jpg|center|thumb]]&lt;br /&gt;
|img 2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Structural Design ==&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
&lt;br /&gt;
# Environmental Protection: The enclosure must shield the rider from adverse weather conditions (such as wind, rain, and extreme ambient temperatures) and airborne debris.&lt;br /&gt;
# Occupant and internal component safety&#039;&#039;&#039;:&#039;&#039;&#039; The structural shell must act as a protective barrier, reducing the risk of injury to the rider from external impacts or accidental collisions.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
&lt;br /&gt;
# The vehicle must be constructed with a solid frame and outer panels.&lt;br /&gt;
# The enclosure must be designed to facilitate natural ventilation.&lt;br /&gt;
# vant. form. glazing&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
&lt;br /&gt;
# Time limitation.&lt;br /&gt;
# As this was our first project of this nature, we encountered several challenges stemming from our lack of experience and the inherent tolerances of 3D printing. The 3D printers were less precise than anticipated, resulting in minor dimensional errors. These discrepancies complicated the assembly process and ultimately compromised the structural integrity of the final product.&lt;br /&gt;
# Due to a smaller team size than anticipated, group members had to balance their time to complete the work of other subteams.&lt;br /&gt;
&lt;br /&gt;
[[File:Screenshot_2026-06-12_111850.png|thumb|238x238px|&#039;&#039;&#039;Figure 1:&#039;&#039;&#039; Isometric View of the Enclosure Chassis with Panels and Doors omitted for clarity.]]&lt;br /&gt;
&lt;br /&gt;
==== The Design ====&lt;br /&gt;
Designed with a minimalist and futuristic aesthetic, the enclosure features a slim structure that protects the rider from weather conditions and external hazards.&lt;br /&gt;
&lt;br /&gt;
=== Enclosure ===&lt;br /&gt;
[[File:Door_Design.png|left|thumb|138x138px|&#039;&#039;&#039;Figure 2:&#039;&#039;&#039; Insolated View of the Final Door Design]]&lt;br /&gt;
&#039;&#039;&#039;Door&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot_2026-06-12_113744.png|thumb|157x157px|&#039;&#039;&#039;Figure 3:&#039;&#039;&#039; Isometric View of the Door in a Open State]]&lt;br /&gt;
The door is designed as a pantograph door to provide sufficient clearance for the rider to enter and exit the vehicle regardless of how or where it is parked. &#039;&#039;&#039;Figure 3&#039;&#039;&#039; illustrates the enclosure door mechanism in its open position on the vehicle chassis.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Natural Ventilation&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Natural ventilation is achieved by opening or entirely removing the lateral and rear door. This open configuration serves a dual purpose, facilitating passive airflow to cool internal electronics while simultaneously granting unhindered access to the breadboard for inspection and circuit modification.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111446.png|left|thumb|151x151px|&#039;&#039;&#039;Figure 4:&#039;&#039;&#039; HVAC Support (Part 1)]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;HVAC Supports&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
As illustrated in &#039;&#039;&#039;figure 4&#039;&#039;&#039; &#039;&#039;&#039;and&#039;&#039;&#039; &#039;&#039;&#039;5&#039;&#039;&#039; both components are rigidly connected to the enclosure chassis, providing structural support to stabilize the HVAC system&#039;s position. Additionally, they serve as structural reinforcement to maintain the alignment and stability of the surrounding components.&lt;br /&gt;
[[File:Screenshot_2026-06-12_111541.png|thumb|134x134px|&#039;&#039;&#039;Figure 5:&#039;&#039;&#039; HVAC Support (Part 2)]]&lt;br /&gt;
&#039;&#039;&#039;Extra Features&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot 2026-06-13 103104.png|left|thumb|178x178px|&#039;&#039;&#039;Figure 6:&#039;&#039;&#039; Rear Door]]&lt;br /&gt;
&#039;&#039;&#039;Rear Door&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The rear door seals the back of the enclosure and assists with the vehicle&#039;s passive cooling. It can be opened or completely removed to allow airflow, which prevents the internal electronics from overheating. Removing the door also provides quick, direct access to the breadboard for inspections and wiring adjustments. Depending on user preference, the door can be installed as a permanent fixture or kept easily removable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Design Alternatives ===&lt;br /&gt;
[[File:CamScanner_2026-06-13_11.39.jpg|left|thumb|212x212px|&#039;&#039;&#039;Figure 7:&#039;&#039;&#039; Design Alternative 1]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 1:&#039;&#039;&#039;&lt;br /&gt;
[[File:Screenshot_2026-06-11_132348.png|thumb|&#039;&#039;&#039;Figure 8:&#039;&#039;&#039; Design Alternative 2]]&lt;br /&gt;
The initial design focused on a lightweight bicycle chassis that omitted both doors and a full enclosure, allowing easier access to the bike interior and maximizing natural ventilation. However, this lack of doors and an enclosure presents a major issue with respect to protection; the internal components are exposed, resulting in a high risk of component damage as well as environmental hazards for the rider.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Design Alternative 2 (Final):&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The second design alternative (the final design) features a full enclosure that ensures the protection of both the rider and the internal components. This configuration incorporates pantograph doors and a rear door, both of which can be made removable or permanent depending on user preference.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components.&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|center|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:HVAC_system_flowchart.jpg|center|thumb|VANT151 VD1 Team 1 Electrical HVAC System Flowchart]]&lt;br /&gt;
|[[File:Fan_circuit_team_1.jpg|center|thumb|VANT151 VD1 team1 electrical fan circuit]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|center|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|center|thumb|[[Images/1/1d/Electrical sketch.jpg|2026 VANT151 electrical sketch]]]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[:File:Receiver team1 2026.docx]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|Jimmy Chong Wang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:HVAC_system_flowchart.jpg&amp;diff=898174</id>
		<title>File:HVAC system flowchart.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:HVAC_system_flowchart.jpg&amp;diff=898174"/>
		<updated>2026-06-14T20:28:59Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=VANT151 VD1 Team 1 Electrical HVAC System Flowchart}}&lt;br /&gt;
|date=2026-06-14&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:Fan_circuit_team_1.jpg&amp;diff=898173</id>
		<title>File:Fan circuit team 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:Fan_circuit_team_1.jpg&amp;diff=898173"/>
		<updated>2026-06-14T20:28:59Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=VANT151 VD1 team1 electrical fan circuit}}&lt;br /&gt;
|date=2026-06-09&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897978</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897978"/>
		<updated>2026-06-11T16:53:57Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components. &lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
The functions of the electrical components are to:&lt;br /&gt;
&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver|center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This is the flowchart of the automation program[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart|center]]&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_team1_2026.docx|thumb|2026 VANT151 receiver code References]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897977</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897977"/>
		<updated>2026-06-11T16:52:23Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
The electrical sub-team is responsible for connecting circuits and powering all electrical components of the Electrical tricycle. The electrical sub-team also does programming and operations of these components. &lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver|center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This is the flowchart of the automation program[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart|center]]&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_team1_2026.docx|thumb|2026 VANT151 receiver code References]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897976</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897976"/>
		<updated>2026-06-11T16:48:45Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver|center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|This is the flowchart of the automation program[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart|center]]&lt;br /&gt;
|-&lt;br /&gt;
|This picture shows the position of the receiver for the remote control[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_team1_2026.docx|thumb|2026 VANT151 receiver code References]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=897975</id>
		<title>VANT151/2026/Capstone/APSC/Team1</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=VANT151/2026/Capstone/APSC/Team1&amp;diff=897975"/>
		<updated>2026-06-11T16:34:45Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!Column 1&lt;br /&gt;
!Column 2&lt;br /&gt;
!Column 3&lt;br /&gt;
!Column 4&lt;br /&gt;
|-&lt;br /&gt;
|img1&lt;br /&gt;
[[File:TX RX System.jpg|center|thumb]]&lt;br /&gt;
|img 2&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Documentation&lt;br /&gt;
|-&lt;br /&gt;
|Ernest Goh&lt;br /&gt;
Documentation sub-team member &amp;amp; Team Leader&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Yifan Zhao&lt;br /&gt;
Documentation sub-team member&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Mechanical&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Structural&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Thermal&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|-&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |User-Interface&lt;br /&gt;
|-&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|First name family name&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Contact Information ===&lt;br /&gt;
You may add an electronic address or social media links for the public to follow the project/company.&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897897</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897897"/>
		<updated>2026-06-09T22:35:02Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver|center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart|center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch|center]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_team1_2026.docx|thumb|2026 VANT151 receiver code References]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897896</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897896"/>
		<updated>2026-06-09T22:08:09Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver|center]]&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_connection_Team_1.jpg|center|thumb|Receiver connection for VANT151 VD1 Team 1]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_team1_2026.docx|thumb|2026 VANT151 receiver code References]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:Receiver_connection_Team_1.jpg&amp;diff=897895</id>
		<title>File:Receiver connection Team 1.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:Receiver_connection_Team_1.jpg&amp;diff=897895"/>
		<updated>2026-06-09T22:05:44Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=Receiver connection for VANT151 VD1 Team 1}}&lt;br /&gt;
|date=2026-06-09&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897852</id>
		<title>Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:VANT151/2026/Capstone/APSC/Team1/Electrical&amp;diff=897852"/>
		<updated>2026-06-09T17:29:32Z</updated>

		<summary type="html">&lt;p&gt;TimCai: created the page&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1. Remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. Complete a figure-8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. Able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. Able to have direction lights&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_team1_2026.docx|thumb|2026 VANT151 receiver code References]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897731</id>
		<title>Sandbox:Team 1 Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897731"/>
		<updated>2026-06-04T18:07:13Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1. remote control the vehicle&lt;br /&gt;
&lt;br /&gt;
2. pre-programmed automation of the vehicle&lt;br /&gt;
&lt;br /&gt;
3. complete a figure of 8 path without toppling over&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1. able to brake the vehicle&lt;br /&gt;
&lt;br /&gt;
2. able to have direction light&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1. Maximum allowable electrical power consumption: nominal 9.6 V DC, 2.8 A.&lt;br /&gt;
&lt;br /&gt;
2. Able to maintain a different temperature from the ambient temperature at the intended rider&#039;s chest location.&lt;br /&gt;
&lt;br /&gt;
3. Able to move in a straight line path.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_team1_2026.docx|thumb|2026 VANT151 receiver code]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897722</id>
		<title>Sandbox:Team 1 Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897722"/>
		<updated>2026-06-04T17:59:03Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Receiver_team1_2026.docx|thumb|2026 VANT151 receiver code]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:Receiver_team1_2026.docx&amp;diff=897720</id>
		<title>File:Receiver team1 2026.docx</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:Receiver_team1_2026.docx&amp;diff=897720"/>
		<updated>2026-06-04T17:57:09Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=2026 VANT151 receiver code}}&lt;br /&gt;
|date=2026-06-04&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897714</id>
		<title>Sandbox:Team 1 Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897714"/>
		<updated>2026-06-04T17:44:57Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
!&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897713</id>
		<title>Sandbox:Team 1 Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897713"/>
		<updated>2026-06-04T17:40:43Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== Appendices ==&lt;br /&gt;
&lt;br /&gt;
=== PDF Drawings ===&lt;br /&gt;
Add your PDF drawings here.&lt;br /&gt;
&lt;br /&gt;
=== Arduino Code ===&lt;br /&gt;
[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]IMPORTANT! Put your code in a Microsoft Word document and protect the document with a password! I shall ask for the password when I grade your code.&lt;br /&gt;
&lt;br /&gt;
=== References ===&lt;br /&gt;
Add your reference list here.&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897710</id>
		<title>Sandbox:Team 1 Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897710"/>
		<updated>2026-06-04T17:37:03Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]&lt;br /&gt;
[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{YouTube|id=Timcjt|playlist=https://youtube.com/shorts/IIe3DMzaRSA?si=phZQ-y-tZe6PCRKT|width=500|height=400}}&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897708</id>
		<title>Sandbox:Team 1 Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897708"/>
		<updated>2026-06-04T17:32:37Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]&lt;br /&gt;
[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897707</id>
		<title>Sandbox:Team 1 Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897707"/>
		<updated>2026-06-04T17:32:20Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{YouTube|id=Timcjt|width=500|height=400}}&lt;br /&gt;
&lt;br /&gt;
== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]&lt;br /&gt;
[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897698</id>
		<title>Sandbox:Team 1 Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897698"/>
		<updated>2026-06-04T17:16:34Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
[[File:Electrical_sketch.jpg|thumb|2026 VANT151 electrical sketch]]&lt;br /&gt;
[[File:Electrical_flowchart.jpg|thumb|2026 VANT151 team1 electrical flowchart]]&lt;br /&gt;
[[File:Transmitter_&amp;amp;_receiver.jpg|thumb|2026 VANT151 Team 1 transmitter &amp;amp; receiver]]&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:Electrical_flowchart.jpg&amp;diff=897691</id>
		<title>File:Electrical flowchart.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:Electrical_flowchart.jpg&amp;diff=897691"/>
		<updated>2026-06-04T17:14:04Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=2026 VANT151 team1 electrical flowchart}}&lt;br /&gt;
|date=2026-05-26&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:Transmitter_%26_receiver.jpg&amp;diff=897690</id>
		<title>File:Transmitter &amp; receiver.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:Transmitter_%26_receiver.jpg&amp;diff=897690"/>
		<updated>2026-06-04T17:14:04Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=2026 VANT151 Team 1 transmitter &amp;amp; receiver}}&lt;br /&gt;
|date=2026-06-02&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=File:Electrical_sketch.jpg&amp;diff=897689</id>
		<title>File:Electrical sketch.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=File:Electrical_sketch.jpg&amp;diff=897689"/>
		<updated>2026-06-04T17:14:04Z</updated>

		<summary type="html">&lt;p&gt;TimCai: Uploaded own work with UploadWizard&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=={{int:filedesc}}==&lt;br /&gt;
{{Information&lt;br /&gt;
|description={{en|1=2026 VANT151 electrical sketch}}&lt;br /&gt;
|date=2026-05-26&lt;br /&gt;
|source={{own}}&lt;br /&gt;
|author=[[User:TimCai|TimCai]]&lt;br /&gt;
|permission=&lt;br /&gt;
|other versions=&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=={{int:license-header}}==&lt;br /&gt;
{{self|cc-by-nc-sa-4.0}}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
	<entry>
		<id>https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897681</id>
		<title>Sandbox:Team 1 Electrical</title>
		<link rel="alternate" type="text/html" href="https://wiki.ubc.ca/index.php?title=Sandbox:Team_1_Electrical&amp;diff=897681"/>
		<updated>2026-06-04T17:04:36Z</updated>

		<summary type="html">&lt;p&gt;TimCai: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Home ==&lt;br /&gt;
&lt;br /&gt;
=== Welcome to ===&lt;br /&gt;
&lt;br /&gt;
== Electrical/Electronic Design ==&lt;br /&gt;
Overview of the electrical and electronic sub-system&lt;br /&gt;
&lt;br /&gt;
=== Requirements ===&lt;br /&gt;
&lt;br /&gt;
==== Functions ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
==== Objectives ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
==== Constraints ====&lt;br /&gt;
1.&lt;br /&gt;
&lt;br /&gt;
2.&lt;br /&gt;
&lt;br /&gt;
3.&lt;br /&gt;
&lt;br /&gt;
=== The Design ===&lt;br /&gt;
&lt;br /&gt;
==== Drive and Steering Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Fan Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Peltier Circuit ====&lt;br /&gt;
&lt;br /&gt;
==== Boards Mounting ====&lt;br /&gt;
&lt;br /&gt;
==== Autonomous Program ====&lt;br /&gt;
&lt;br /&gt;
==== Extra Features (if any) ====&lt;br /&gt;
&lt;br /&gt;
== About Us ==&lt;br /&gt;
&lt;br /&gt;
=== Sub-teams: ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; |Electrical/Electronic&lt;br /&gt;
|-&lt;br /&gt;
|Tim Cai&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|Jianyu Zhang&lt;br /&gt;
Position (role played in the group)&lt;br /&gt;
&lt;br /&gt;
In a paragraph, say who you are, state your contributions to the project and mention something relevant that you learned from the experience.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>TimCai</name></author>
	</entry>
</feed>