Skip to content

Commit

Permalink
fixed welcome page, ported over ALL images from old guide + added new…
Browse files Browse the repository at this point in the history
… ones
  • Loading branch information
tguyenn committed Sep 13, 2024
1 parent 76c3d5b commit cc10fb4
Show file tree
Hide file tree
Showing 33 changed files with 120 additions and 84 deletions.
Binary file added docs/_assets/images/IR-sensor-wiring-diagram.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/color_sensor.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/color_sensor_wiring.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/dc_motor.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/ir-sensor-functionality.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/ir-sensor-graph.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/ir_sensor.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/l298n_driver_pinout.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/l298n_motor_driver.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/line_sensor_diodes.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/line_sensor_wiring.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/servo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/_assets/images/wroom_pinout.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 11 additions & 6 deletions docs/_sections/_guide-general/forms.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,15 @@ nav_order: 4

# Forms TODO: add actual links

This page contains all the links and forms that you might need!
This page contains direct links and forms that you might need for Robotathon!

<!-- change colors to whatever idc -->
[Robotathon Linktree](a){: .btn .btn-purple }
[Robotathon Interest Form](a){: .btn .btn-purple }
[Robotathon Dues Form](a){: .btn .btn-green }
[RAS Membership Form](a){: .btn .btn-blue }
[Robotathon Linktree (todo)](a){: .btn .btn-purple }
[Robotathon Dues Form (todo)](a){: .btn .btn-green }
[RAS Dues Form](https://utdirect.utexas.edu/nlogon/txshop/item_details.WBX?application_name=ENENGALU&component=0&dept_prefix=E2&item_id=199&cat_seq_chosen=02&subcategory_seq_chosen=000){: .btn .btn-green }
[RAS Safety Waiver](https://docs.google.com/forms/d/e/1FAIpQLSdRvNc2R3vnG0AXu4k7bypacyeB2jgF_D1nDPq76kE8WIIBmQ/viewform){: .btn .btn-green }
[Robotathon Sign Up Form](https://docs.google.com/forms/d/e/1FAIpQLScSTcmRPuThAxm5Y_3yomNF6AkQEQ5HVp_gJdVz3lGVPYHTgw/viewform){: .btn .btn-purple }

Here are some more general links for RAS:

[RAS Membership Form](https://docs.google.com/forms/d/e/1FAIpQLSf5v1L3MB3naSaYESixKXnwWSFYm6uatYRvCiesrBWiLwvQuQ/viewform){: .btn .btn-blue }
[RAS Mailing List](https://docs.google.com/forms/d/e/1FAIpQLScdAMIHPdN18ZUY6EZq9AYJMJMIKXiRspwr9NHgzLCBaIh4nw/viewform){: .btn .btn-blue }
8 changes: 0 additions & 8 deletions docs/_sections/_guide-general/rulebook.md

This file was deleted.

39 changes: 22 additions & 17 deletions docs/_sections/_guide-general/schedule.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,31 @@ nav_include: true
nav_order: 2
---

# TODO: Integrate office hours into the calendar shown here?
# todo: office hours where??
# Competition Schedule
<iframe src="https://calendar.google.com/calendar/embed?src=1e8b00794a07180514fdc54c5b78dca70637bc1a8a72076e64dc787ebe2a71cb%40group.calendar.google.com&ctz=America%2FChicago" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>

{: .highlight}
Tip: You can add this calendar to your personal Google calendar by clicking the plus button above^^
{: .callout-toby}

## Dates List:

**Kickoff** - Sept 17th
**Team Assembly Checkpoint** - Sept 17th (at kickoff)
**Design Checkpoint** - Sept 22nd
**Programming Workshop I** - Sept 23
**LED Blink Checkpoint** - Sept 29
**Programming Workshop II** - Sept 30
**Moving Base Checkpoint** - Oct 6
**Solidworks Workshop** - Oct 7
**Line/Wall/Color Checkpoint** - Oct 13
**Breadboarding Workshop** - Oct 14
**Line/Wall/Color Checkpoint** - Oct 20
**Color Sensor Workshop** - Oct 21
**Line/Wall Follow Workshop** - Oct 28
**Mechanical Design Checkpoint** - Nov 3
**Line/Wall/Color Checkpoint** - Nov 10
**Competition Day** - Nov 16
**Kickoff** - Sept 17th<br>
**Team Assembly Checkpoint** - Sept 17th (at kickoff)<br>
**Design Checkpoint** - Sept 22nd<br>
**Programming Workshop I** - Sept 23<br>
**LED Blink Checkpoint** - Sept 29<br>
**Programming Workshop II** - Sept 30<br>
**Moving Base Checkpoint** - Oct 6<br>
**Solidworks Workshop** - Oct 7<br>
**Line/Wall/Color Checkpoint** - Oct 13<br>
**Breadboarding Workshop** - Oct 14<br>
**Line/Wall/Color Checkpoint** - Oct 20<br>
**Color Sensor Workshop** - Oct 21<br>
**Line/Wall Follow Workshop** - Oct 28<br>
**Mechanical Design Checkpoint** - Nov 3<br>
**Line/Wall/Color Checkpoint** - Nov 10<br>
**Competition Day** - Nov 16<br>

Note: Line/Wall/Color means your team has a choice between the three different sensors to demo for the checkpoint
20 changes: 19 additions & 1 deletion docs/_sections/_guide-general/welcome.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,5 +6,23 @@ nav_include: true
nav_order: 1
---

# Robotathon Docs TODO: move stuff from preface to here
# Robotathon Docs

Hello! This guide is separated into multiple sections each with graphics, tips, and sample code or examples.

We suggest that you read the pages as you progress with your robot - please reference back to this guide when you need direction. Also understand that this guide, while broad, is not comprehensive. We want you to discover solutions by yourselves, so we will only provide the bare minimum to create a working robot.

Finally, if you have any technical questions or don’t understand a topic, ask the mentors or during office hours! We can help to resolve your problems, or point you to the right person who can. The mentors, office hours, tech talks, our youtube video series, and other teammates are valuable resources to turn to.

## Overview

The first section, Getting Started, sets you up for success in regards to getting familiar with the ESP32 microcontroller, the software build process, and embedded systems development in general. We highly recommend that you at least take a look at Environment Setup, as this page will streamline your development process and prevent a lot of environment errors you may get in the future.

The second section, Sensors and Actuators, involves building the circuits and programming the software that controls your robot. To soften the learning curve, we abstract a lot of logic needed to program the ESP32, and provide high level interfaces for you to use described in our [wiki](https://github.com/ut-ras/Rasware/wiki). We encourage you to utilize our APIs beyond what is used in each instructional page.

The third section, Designing a Robot, is pretty self explanatory. We’ll cover the computer aided design (CAD) software - SOLIDWORKS - that Mechanical Engineers will use in their courses here. We’ll also discuss the physical construction of a robot, as well as the resources the engineering Makerspace provides to students.


The fourth section, Debugging, provides optional, but highly recommended guides to problem solving. Trust us, >95% of your code problems can be solved with the right Google search, saving you time and stress.

Finally, the Robotathon steering committee appreciates your feedback! If you have questions that you think should be clarified here, or topics that you think should be covered in the next revision of this guide, please fill out our [google form!](https://forms.gle/6UpwaETAtQpkvoMa8)
4 changes: 3 additions & 1 deletion docs/_sections/_guide-primaries/checkpoints/checkpoints.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ title: Checkpoints
nav_include: true
has_children: true
nav_order: 5
---
---

<!-- this file is for the section drop down bar -->
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ nav_include: true
parent: Checkpoints
nav_order: 4
---
# Mechanical Checkpoint
# Mechanical Checkpoint (content unedited)
Your team has to come up with a mechanical design that translates individual robot components into how you envision your robot completing particular tasks.
A lil intro to engineering projects! Along with your team, these are the bare bones of what it takes to create a project (ahem ahem like a robot?? ahem ahem) from start to finish. For more elaboration on these key steps, I recommend checking out our tutorial on the Engineering Design Process here.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ nav_order: 2

Below is the premise for this checkpoint:
Checkpoint 4: I’m Dumb, Not Stupid (Wall Following)
Have your robot stop for walls that are placed in front of it
OR have your robot go around obstacles in its way (optional)

Some things you should look out for:
IR sensor placement
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ title: Designing a Robot
nav_include: true
has_children: true
nav_order: 3
---
---

<!-- this file is for the section drop down bar -->
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Remember, you have an external budget that you can use to buy more servos and ca

Now let’s look at the drive system. In this article, we’ll be looking specifically at two wheeled drive. With two wheels, you’re pretty limited in how you can drive. Typically, a robot with two wheels has the wheels on the sides, like below. The red regions are where you can put the wheel axles.

<img src="{{ '/_assets/images/wheel_placement.png' | prepend: site.baseurl }}" alt="4 :(">
<img src="{{ '/_assets/images/wheel_placement.png' | prepend: site.baseurl }}" alt="wheel placement">

Can you think of any ways that having two wheels may affect the balance of your robot? What if the wheels were in the front and the back side had a heavy battery on it? Additionally, another thing your team should consider is: how will the robot move with your wheel configuration? Will it drive in straight lines? Rotate? How can you error correct for tilting?

Expand All @@ -23,7 +23,7 @@ As you can see, the wheel positions will immensely affect the design of your mec
After you’ve decided upon your wheels placement, how you drive your wheels (software) can also result in different movements. See the below two diagrams and observe their center of movement (the white circle). You can drive both sides at once, or a single side. You can drive them in opposite directions, and you can drive them at different rates. There are so many options!


<img src="{{ '/_assets/images/chassis_rotation.png' | prepend: site.baseurl }}" alt="4 :(">
<img src="{{ '/_assets/images/chassis_rotation.png' | prepend: site.baseurl }}" alt="chassis rotation">



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,6 @@ title: Getting Started
nav_include: true
has_children: true
nav_order: 2
---
---

<!-- this file is for the section drop down bar -->
Original file line number Diff line number Diff line change
Expand Up @@ -10,23 +10,25 @@ nav_order: 4
Microcontrollers are cool and all, but they’re a lot more interesting when you can do stuff in the real world!

## Programming goal
For this tutorial, we want to turn on the LED if: PA2 is turned high (to power the LED) and the switch is closed. The example code can be found in our github.
For this tutorial, we want to turn on the LED by setting PA2 to output high (to power the LED) and the switch (button) is closed (pressed).

## Interfacing example
For this example, we’ll use an LED and a switch. You will need six components - a red LED, switch, 470 ohm resistor, TM4C, breadboard, and some wires.

{: .highlight}
Our microcontroller pin outputs way too much current for our LED to handle, so we need to put a resistor in series with the microcontroller output pin and LED.
Our microcontroller pin outputs way too much current for our LED to handle, so we need to put a resistor in series with the microcontroller output pin and LED. The exact resistance depends on the current rating of the diode.
{: .callout-toby}

1. Connect a wire to a GPIO pin (let’s choose PA2 for this example). The other end goes to one of the switch legs.
1. Stick the long side of the LED on another switch leg. Use the continuity mode on the multimeter to make sure the leg is disconnected by putting each of the probes at each end of the switch (see below). Pressing the switch should short the legs.
1. Put the resistor in series with the short end of the LED (-), and connect the GND pin to the other end of the resistor.

<img src="{{ '/_assets/images/led-pinout.png' | prepend: site.baseurl }}" alt="led interface :()" width=550 height=235>
<img src="{{ '/_assets/images/led-pinout.png' | prepend: site.baseurl }}" alt="led interface" width=550 height=235>

<img src="{{ '/_assets/images/outdated-circuit-diagram.png' | prepend: site.baseurl }}" alt="outdated-circuit-diagram :()">
<img src="{{ '/_assets/images/outdated-circuit-diagram.png' | prepend: site.baseurl }}" alt="outdated-circuit-diagram">

<img src="{{ '/_assets/images/button-diagram.png' | prepend: site.baseurl }}" alt="led interface">
<img src="{{ '/_assets/images/button-diagram.png' | prepend: site.baseurl }}" alt="button-diagram.png">

<img src="{{ '/_assets/images/continuity-test.png' | prepend: site.baseurl }}" alt="led interface">
<img src="{{ '/_assets/images/continuity-test.png' | prepend: site.baseurl }}" alt="continuity-test.png">

<img src="{{ '/_assets/images/wroom_pinout.jpg' | prepend: site.baseurl }}" alt="wroom_pinout.jpg">
22 changes: 0 additions & 22 deletions docs/_sections/_guide-primaries/guide-manual.md

This file was deleted.

22 changes: 22 additions & 0 deletions docs/_sections/_guide-primaries/sensors-and-actuators/actuators.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@

<!-- cover servos -->

1.) define servos (what are they, how do they work)
2.) how to use servos
3.) code
<img src="{{ '/_assets/images/servo.png' | prepend: site.baseurl }}" alt="servo.png">


<!-- cover DC motors and motor controllers -->

1.) define DC motors
2.) how to use motor contorllers
3.) code

<img src="{{ '/_assets/images/dc_motor.jpg' | prepend: site.baseurl }}" alt="dc_motor.jpg">
<img src="{{ '/_assets/images/l298n_pinout.png' | prepend: site.baseurl }}" alt="l298n_pinout.png">
<img src="{{ '/_assets/images/l298n_motor_driver.jpg' | prepend: site.baseurl }}" alt="l298n_motor_driver.jpg">

difference between the two
1.) why use one over the other?
2.) why does one need a motor contorller while the other doesnt?
Original file line number Diff line number Diff line change
Expand Up @@ -27,3 +27,8 @@ Try to threshold a level of error for your sensor and think about the following
* Different distances?
* What about various shades of red? Is red one specific RGB value?
If you have a moving base, try to drive in a certain direction based on color. How about going right on a red tile?

<img src="{{ '/_assets/images/color_sensor_wiring.png' | prepend: site.baseurl }}" alt="color_sensor_wiring.png">
<img src="{{ '/_assets/images/color_sensor.jpg' | prepend: site.baseurl }}" alt="color_sensor.jpg">

todo make the color sensor picture a lot smaller lol
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,25 @@ nav_order: 1

# IR Sensor (UNEDITED)

<img src="{{ '/_assets/images/ir_sensor.png' | prepend: site.baseurl }}" alt="ir_sensor.png">

A necessary component for any challenge that utilizes walls, analog IR sensors are a staple of Robotathon. This particular sensor is the GP2Y0A21, and detects distances from 10 to 80 cm.

## How it Works
IR distance sensors emit long wavelength (700 nm - 1 mm) light towards a surface. The light bounces off objects it hits, and then enters a proximity sensor. The output is then transformed into a voltage that can be fed into the ESP32 and read.

<img src="{{ '/_assets/images/ir-sensor-functionality.png' | prepend: site.baseurl }}" alt="ir-sensor-functionality.png">
<img src="{{ '/_assets/images/ir-sensor-graph.png' | prepend: site.baseurl }}" alt="ir-sensor-graph.png">

## Interfacing
There are 3 pins (red, black, white) to the device as seen in the top right picture, associated to Power, Ground, and Output Signal, respectively. For testing the distance sensor, let’s use the analog pin, pin 27, as the signal pin. Hook up the circuit as follows.

<img src="{{ '/_assets/images/IR-sensor-wiring-diagram.png' | prepend: site.baseurl }}" alt="ir-sensor-wiring-diagram.png">

## Programming
The following program will allow you to read values from the IR sensor in a loop. After you build and flash the program, you should see the values in the UART change as you move it towards and away from an object.

## Extensions
You received values from the sensor, but do they mean anything? The next step for the IR sensor is translating and thresholding it. Take a look at the above graph. There is a strong linear relationship between your signal value and the inverse of the distance away from the object. It’s your job now to code a function that returns an accurate distance given a voltage input value. After that, your team needs to threshold the data. When do the values become inconsistent (too close or too far)? What do you do with your robot when that happens?
You received values from the sensor, but do they mean anything? The next step for the IR sensor is translating and thresholding it. Take a look at the above graph. There is a strong linear relationship between your signal value and the inverse of the distance away from the object. It’s your job now to code a function that returns an accurate distance given a voltage input value. After that, your team needs to threshold the data. When do the values become inconsistent (too close or too far)? What do you do with your robot when that happens?


Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ nav_order: 1
A necessary component for any challenge that requires your robot to follow a line. This one is the QTR-8A Reflectance Sensor Array and uses IR transmitters and receivers on it to detect lines.

## How it Works
The line sensor is made up of an array of 8 IR LED/phototransistor pairs, each take an analog reflectance reading by timing how long it takes the output voltage to decay due to the phototransistor..
The line sensor is made up of an array of 8 IR LED/phototransistor pairs, each take an analog reflectance reading by timing how long it takes the output voltage to decay due to the phototransistor. By pointing the line sensor IR LEDs/phototransistors at the line, the robot is able to tell where the dark line of tape is by reading the output voltage of each phototransistor

## Interfacing
Alongside connecting Vcc and ground to the main board (Like for the IR sensor), there are 8 sensors that you can use to collect data by connecting to the analog input pins on the main board. Choose the ones you want to use wisely since the board has limited input pins.
<img src="{{ '/_assets/images/line_sensor_diodes.png' | prepend: site.baseurl }}" alt="line_sensor_diodes.png">

{: .highlight}
Note that you do NOT have to use all 8 of the LED/phototransistor pairs — You can leave the ones you do not want to use disconnected from the MCU.
{: .callout-toby}

## Programming
The following program will allow you to continuously read a general position value of the sensor across a line. After you build and flash the program, you should see the values in the UART change as you shift the line across the
Expand All @@ -29,3 +32,4 @@ What do you do with your robot when that happens? I.e. adjusting movement
Consistency in data collection is key for calibration


<img src="{{ '/_assets/images/line_sensor_wiring.png' | prepend: site.baseurl }}" alt="line_sensor_wiring.png">
Loading

0 comments on commit cc10fb4

Please sign in to comment.