Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Romi setup instructions + controller curriculum #23

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions ci/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,19 @@ <h3 id="Robot_software">Robot software</h3><a href=
patterns are covered as well as features of WPILib and FRC team 3512's
custom classes.</p>
</details><br>
<details>
<summary class="curriculum">
Romi robots
</summary>
<h3 id="RomiSetup">Romi Setup</h3><a href="romi/setup/">Module</a>
<p>Setup your Romi robot and flash the wpilibpi image onto it to start
learning FRC programming.</p>
<h3 id="RomiBangBang">Romi Project #1: Bang Bang</h3><a href=
"romi/bang-bang/">Module</a>
<p>Create a Bang-Bang style drivetrain controller for your romi.</p>
<h3 id="RomiPID">Romi Project #2: PID</h3><a href="romi/pid/">Module</a>
<p>Create a drivetrain system for your romi using PID controllers.</p>
</details><br>
<details>
<summary class="curriculum">
Miscellaneous computer science
Expand Down
78 changes: 78 additions & 0 deletions ci/romi/bang-bang/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="description" content="Romi Project #1: Bang-Bang">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Romi Project #1: Bang Bang</title>
<link rel="stylesheet" type="text/css" href="../../../main.css">
<link rel="shortcut icon" type="image/ico" href="../../../favicon.ico">
</head>
<body>
<header id="navbar">
<ul>
<li>
<a href="../../../">Home</a>
</li>
<li>
<a href="../../../admin/">Admin</a>
</li>
<li>
<a href="../../../bootstrap/">Developer Bootstrap</a>
</li>
<li>
<a href="../../../vpn/">VPN Setup</a>
</li>
<li>
<a href="../../../ci/">Curriculum</a>
</li>
<li>
<a href="../../../fll/">FLL</a>
</li>
<li>
<a href="../../../archives/">Archives</a>
</li>
</ul>
</header>
<div class="body">
<h1>Romi Project #1: Bang Bang</h1>
<h2 id="Introduction">Introduction</h2>
<p>A Bang-bang controller is defined as controlling a plant with two
states: on and off. This on state is applied when we went are system to
perform an action, while off serves as the "idle" state. In our specific
example, the drivetrain of the Romi would continue to drive until its
distance equals or is higher than the desired distance. If you are
interested in learning more, this <a href=
"https://en.wikipedia.org/wiki/Bang%E2%80%93bang_control">Wikipedia</a>
article is a great starting point.</p>
<h2 id="Goal">Project Goal</h2>
<p>Your goal is simply to have the Romi drivetrain move forward and then
stop after a certain distance.</p>
<h2 id="Recommendation">Recommendation</h2>
<p>While there are many different solutions to achieve the goal, one
recoomendation could be:</p>
<ul>
<li>Make a drive function that takes in a distance (in meters)</li>
<li>Apply voltage to the Romi motors constantly</li>
<li>Have logic to set the voltage to 0 once that distance is met</li>
</ul>
<blockquote>
<i>Note:</i> For this project, it does not matter if you run your code in
either the telop or autonomous period. However, its recommended to place
your code into autonomous to practice creating autons.
</blockquote>
<h2 id="Tutorial">Project Setup</h2>
<p>Type CTRL+SHIFT+P in Visual Studio Code, and type "Create a new project"
(Should have WPILib tagged in front of it). The wizard should appear. For
the project type, select "Template", "cpp", and then "Romi - Timed Robot".
Next, selected where to store your project. Team number doesn't matter, but
you may type your team number if you want to. Make sure to select "Desktop
Support". Once done, click "Create".</p>
<blockquote>
<i>Note:</i> The project needs to have an empty folder to be created. If
you intend to place your robot project into a Git repo, create it
somewhere else, and then copy it into it.
</blockquote>
</div>
</body>
</html>
63 changes: 63 additions & 0 deletions ci/romi/pid/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="description" content="Romi Project #2: PID Controller">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Romi Project #2: PID Controller</title>
<link rel="stylesheet" type="text/css" href="../../../main.css">
<link rel="shortcut icon" type="image/ico" href="../../../favicon.ico">
</head>
<body>
<header id="navbar">
<ul>
<li>
<a href="../../../">Home</a>
</li>
<li>
<a href="../../../admin/">Admin</a>
</li>
<li>
<a href="../../../bootstrap/">Developer Bootstrap</a>
</li>
<li>
<a href="../../../vpn/">VPN Setup</a>
</li>
<li>
<a href="../../../ci/">Curriculum</a>
</li>
<li>
<a href="../../../fll/">FLL</a>
</li>
<li>
<a href="../../../archives/">Archives</a>
</li>
</ul>
</header>
<div class="body">
<h1>Romi Project #2: PID Controller</h1>
<h2 id="Introduction">Introduction</h2>
<p>A PID controller is a feedback controller (), in which you are able to
set a reference (or a goal), and be able to reach that goal while the 3
terms are able to correct for slight lapses (or errors) during the journey
to reach that goal. If you are interested in learning more, this <a href=
"https://en.wikipedia.org/wiki/PID_controller">Wikipedia</a> article is a
great starting point.</p>
<h2 id="Goal">Project Goal</h2>
<p>Your goal is simply to have the Romi drivetrain move forward and then
stop after a certain distance.</p>
<h2 id="Tutorial">Project Setup</h2>
<p>Type CTRL+SHIFT+P in Visual Studio Code, and type "Create a new project"
(Should have WPILib tagged in front of it). The wizard should appear. For
the project type, select "Template", "cpp", and then "Romi - Timed Robot".
Next, selected where to store your project. Team number doesn't matter, but
you may type your team number if you want to. Make sure to select "Desktop
Support". Once done, click "Create".</p>
<blockquote>
<i>Note:</i> The project needs to have an empty folder to be created. If
you intend to place your robot project into a Git repo, create it
somewhere else, and then copy it into it.
</blockquote>
</div>
</body>
</html>
56 changes: 56 additions & 0 deletions ci/romi/setup/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="description" content="Romi Setup">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Romi Setup - FRC Team 3512</title>
<link rel="stylesheet" type="text/css" href="../../../main.css">
<link rel="shortcut icon" type="image/ico" href="../../../favicon.ico">
</head>
<body>
<header id="navbar">
<ul>
<li>
<a href="../../../">Home</a>
</li>
<li>
<a href="../../../admin/">Admin</a>
</li>
<li>
<a href="../../../bootstrap/">Developer Bootstrap</a>
</li>
<li>
<a href="../../../vpn/">VPN Setup</a>
</li>
<li>
<a href="../../../ci/">Curriculum</a>
</li>
<li>
<a href="../../../fll/">FLL</a>
</li>
<li>
<a href="../../../archives/">Archives</a>
</li>
</ul>
</header>
<div class="body">
<h1>Romi Setup</h1>
<h2 id="Introduction">Introduction</h2>
<p>Romis are small, inexpensive robots where students are able to program
them using the same tools used for regular FRC competition bots. It's
imaged with wpilibpi, meaning that its possible to implement solutions like
vision on to it, making it a great learning tool for newer software
students.</p>
<h2 id="Tutorial">Assembly</h2>
<p>Please refer to <a href=
"https://docs.wpilib.org/en/stable/docs/romi-robot/hardware.html">here</a>
for instructions on how to put together your Romi kit.</p>
<h2 id="Flashing">Flashing</h2>
<p>Please refer to <a href=
"https://docs.wpilib.org/en/stable/docs/romi-robot/imaging-romi.html">here</a>
on how to flash your SD card with wpilibpi and how to connect to the its
web UI.</p>
</div>
</body>
</html>