<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>General &#8211; Tech Workshop</title>
	<atom:link href="https://techworkshop.org/category/general/feed/" rel="self" type="application/rss+xml" />
	<link>https://techworkshop.org</link>
	<description></description>
	<lastBuildDate>Wed, 11 Mar 2026 15:11:55 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://techworkshop.org/wp-content/uploads/2025/08/tech-workshop_favicon-150x150.png</url>
	<title>General &#8211; Tech Workshop</title>
	<link>https://techworkshop.org</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Limiting Screen Time &#8211; Finding a Healthy Balance</title>
		<link>https://techworkshop.org/limiting-screen-time-finding-a-healthy-balance/</link>
		
		<dc:creator><![CDATA[Thomas May]]></dc:creator>
		<pubDate>Tue, 23 Dec 2025 18:45:17 +0000</pubDate>
				<category><![CDATA[General]]></category>
		<guid isPermaLink="false">https://techworkshop.org/?p=26229</guid>

					<description><![CDATA[As a father of two sons, I know firsthand how challenging it can be to limit screen time. Screens are everywhere—schoolwork, social connections, entertainment, even hobbies—and avoiding them entirely just isn’t realistic in today’s world. The goal isn’t to eliminate screens, but to help our kids build a healthy, balanced relationship with technology that supports [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">As a father of two sons, I know firsthand how challenging it can be to limit screen time. Screens are everywhere—schoolwork, social connections, entertainment, even hobbies—and avoiding them entirely just isn’t realistic in today’s world. The goal isn’t to eliminate screens, but to help our kids build a healthy, balanced relationship with technology that supports their growth rather than replacing it.</p>



<p class="wp-block-paragraph">Here are a few practical strategies that have helped in our home and may help in yours.</p>



<h2 class="wp-block-heading"><strong>Create Screen-Free Times</strong></h2>



<p class="wp-block-paragraph">One of the most effective ways to manage screen use is by setting clear, predictable times when screens are simply off-limits. These boundaries help kids understand that technology has a place—but not everywhere.</p>



<p class="wp-block-paragraph">Common screen-free times might include:</p>



<ul class="wp-block-list">
<li><strong>Family meals</strong>, especially dinner, where conversation and connection matter most</li>



<li><strong>Homework time</strong>, so focus and learning come first</li>



<li><strong>After 9pm on weekdays</strong>, to protect sleep and support healthy routines</li>
</ul>



<p class="wp-block-paragraph">By tying screen-free time to daily rhythms, the rules feel less arbitrary and more like part of a healthy lifestyle.</p>



<h2 class="wp-block-heading"><strong>Use Parental Controls as a Support Tool</strong></h2>



<p class="wp-block-paragraph">Parental controls aren’t about spying or punishment—they’re about setting guardrails. Most devices and platforms now offer tools that allow parents to:</p>



<ul class="wp-block-list">
<li>Set daily time limits</li>



<li>Restrict access during certain hours</li>



<li>Filter age-inappropriate content</li>
</ul>



<p class="wp-block-paragraph">Used thoughtfully, these tools reinforce expectations and reduce daily negotiations. They also provide peace of mind, especially as kids grow older and explore more digital spaces.</p>



<h2 class="wp-block-heading"><strong>Model Healthy Behavior</strong></h2>



<p class="wp-block-paragraph">Kids are always watching. If we’re checking phones during conversations or scrolling endlessly after work, they notice—even if we don’t realize it.</p>



<p class="wp-block-paragraph">Modeling healthy screen habits can be as simple as:</p>



<ul class="wp-block-list">
<li>Putting your phone away during family time</li>



<li>Talking out loud about why you’re choosing to unplug</li>



<li>Showing balance by enjoying books, hobbies, or outdoor time</li>
</ul>



<p class="wp-block-paragraph">When children see adults managing screen use intentionally, it gives them a powerful example to follow.</p>



<h2 class="wp-block-heading"><strong>Encourage Alternatives to Screens</strong></h2>



<p class="wp-block-paragraph">Screens often fill empty space, so offering engaging alternatives makes a big difference. Encourage activities that spark creativity, movement, and curiosity, such as:</p>



<ul class="wp-block-list">
<li>Sports, biking, or neighborhood play</li>



<li>Reading, drawing, or building projects</li>



<li>Board games, puzzles, or family challenges</li>
</ul>



<p class="wp-block-paragraph">The key is helping kids discover that fun and fulfillment exist beyond a screen—and sometimes require just a little nudge to get started.</p>



<h2 class="wp-block-heading"><strong>Be Consistent and Clear</strong></h2>



<p class="wp-block-paragraph">Consistency builds trust. If screen rules change daily or aren’t enforced, kids quickly become frustrated or confused.</p>



<p class="wp-block-paragraph">Try to:</p>



<ul class="wp-block-list">
<li>Clearly explain expectations ahead of time</li>



<li>Apply rules evenly (including consequences)</li>



<li>Revisit guidelines as kids grow and responsibilities change</li>
</ul>



<p class="wp-block-paragraph">When expectations are clear and consistent, children are more likely to respect boundaries—even if they don’t always agree with them.</p>



<h2 class="wp-block-heading"><strong>Finding Balance, Not Perfection</strong></h2>



<p class="wp-block-paragraph">Limiting screen time isn’t about being perfect—it’s about being intentional. Screens are a part of modern life, and when used thoughtfully, they can be educational, social, and inspiring. By setting boundaries, modeling healthy habits, and offering meaningful alternatives, we help our children learn balance—an essential skill they’ll carry with them long after they leave our homes.</p>



<p class="wp-block-paragraph">As parents, we’re navigating this challenge together, one unplugged moment at a time.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>FTC Robotics &#8211; Auto-aiming Using Odometry</title>
		<link>https://techworkshop.org/ftc-robotics-auto-aiming-using-odometry/</link>
		
		<dc:creator><![CDATA[Thomas May]]></dc:creator>
		<pubDate>Sun, 21 Dec 2025 22:10:41 +0000</pubDate>
				<category><![CDATA[FTC Robotics]]></category>
		<category><![CDATA[General]]></category>
		<guid isPermaLink="false">https://techworkshop.org/?p=26221</guid>

					<description><![CDATA[The 2025–26 FTC season introduced a game titled Decode, where robots are tasked with collecting 5-inch wiffle balls and launching them into a raised goal. One of the biggest challenges teams faced was consistently aiming their shooting mechanism at the target. Some teams chose to aim manually, but this approach was often slow, inconsistent, and [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">The 2025–26 FTC season introduced a game titled <strong>Decode</strong>, where robots are tasked with collecting 5-inch wiffle balls and launching them into a raised goal. One of the biggest challenges teams faced was consistently aiming their shooting mechanism at the target.</p>



<p class="wp-block-paragraph">Some teams chose to aim manually, but this approach was often slow, inconsistent, and highly dependent on driver skill. Other teams implemented automatic aiming using either AprilTag vision tracking or odometry. In this article, we’ll explore how to build an auto-aiming system using odometry, with a focus on reliability, speed, and repeatability during TeleOp.</p>



<h2 class="wp-block-heading">Why Use Odometry?</h2>



<p class="wp-block-paragraph">Odometry uses sensors to track a robot’s precise location on the field, including both position and heading. A common FTC implementation uses <em>dead wheels</em>—non-powered omni or mecanum wheels that remain in constant contact with the field and rotate as the robot moves. Encoders attached to these wheels measure rotation, which can be converted into distance traveled and direction.</p>



<p class="wp-block-paragraph">By continuously tracking these movements, the software estimates the robot’s current pose, defined as its x-position, y-position, and heading (orientation).</p>



<p class="wp-block-paragraph">When properly tuned, odometry can be extremely accurate—even over the course of an entire 2½-minute match. Dedicated odometry processors can be even more precise, as they sample encoder and IMU data at a higher frequency than the main robot controller. One FTC-legal example is the goBILDA Pinpoint Odometry Computer, which uses two dead wheels combined with an internal IMU to provide accurate pose estimates.</p>



<h2 class="wp-block-heading">Pathing Libraries</h2>



<p class="wp-block-paragraph">Teams using odometry are strongly encouraged to pair it with a pathing library such as Road Runner or Pedro Pathing. While these libraries are commonly associated with autonomous routines, they are equally powerful during TeleOp for:</p>



<ul class="wp-block-list">
<li>Tracking real-time robot position</li>



<li>Automating short paths</li>



<li>Enabling features like auto-aim and auto-alignment</li>
</ul>



<p class="wp-block-paragraph">Both libraries require programming in Java, typically using Android Studio.</p>



<p class="wp-block-paragraph">For TeleOp auto-aiming, it’s important to preserve your robot’s pose between Autonomous and TeleOp. Otherwise, TeleOp will start without knowing the robot’s actual location on the field. This is commonly handled using static variables to store the final Autonomous pose and reinitialize it at the start of TeleOp.</p>



<pre class="wp-block-code"><code>// Example pose storage between Auton and TeleOp
public class PoseStorage {
   public static Pose2d currentPose = new Pose2d(0, 0, 0);
}</code></pre>



<h2 class="wp-block-heading">Using Trigonometry to Find Distance and Angle</h2>



<p class="wp-block-paragraph">Once we know the robot’s current pose from our pathing library, we can use basic trigonometry to calculate both the angle and distance to the goal.  The following example will use the game from the 2025-26 FTC season, titled &#8220;Decode&#8221;, the field coordinates from Pedro Pathing, and assumes that your team is on the Blue Alliance.</p>



<h3 class="wp-block-heading">Understanding the Coordinate System</h3>



<p class="wp-block-paragraph">Pedro Pathing uses a right-hand coordinate system, which differs from the FTC SDK’s standard coordinate layout. All units are measured in inches:</p>



<ul class="wp-block-list">
<li>(0, 0) represents the front-left corner of the field</li>



<li>(144, 144) represents the back-right corner</li>
</ul>



<p class="wp-block-paragraph">For a detailed explanation, refer to the <a href="https://pedropathing.com/docs/pathing/reference/coordinates">Pedro Pathing coordinate system documentation</a>.</p>



<h3 class="wp-block-heading">Defining the Target</h3>



<p class="wp-block-paragraph">For the Blue Alliance, we can represent the target as some point within the triangular goal. For this example, we&#8217;ll use (x:10, y:138). From odometry, we&#8217;ll know the x and y position of our robot, so we can easily determine our robot&#8217;s x-offset and y-offset from the goal. As seen in the diagram below, this can be represented as a simple triangle.</p>



<p class="wp-block-paragraph">From odometry, we already know the robot’s current x and y position. This allows us to calculate the horizontal and vertical offsets between the robot and the target, forming a right triangle as seen in the diagram below.</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img decoding="async" src="https://techworkshop.org/wp-content/uploads/2025/12/blog_odometry-autoaim_v2-1024x1015.png" alt="" class="wp-image-26343" style="object-fit:cover;width:500px;height:500px"/></figure>



<p class="has-text-align-center has-small-font-size wp-block-paragraph">Diagram 1: Decode game field showing distance and angle to goal.  Credit to <a href="https://visualizer.pedropathing.com/">Pedro Pathing Visualizer</a></p>



<h3 class="wp-block-heading">Calculating Angle</h3>



<p class="wp-block-paragraph">As you may remember from Trigonometry, the &#8220;tan&#8221; function can be used to relate the angles of a right triangle to the ratio of its opposite and adjacent sides.</p>



<pre class="wp-block-code"><code>tan(angle) = opposite / adjacent</code></pre>



<p class="wp-block-paragraph">We can find the required angle using the inverse tangent function:</p>



<pre class="wp-block-code"><code>angleToTarget = atan2(yOffset, xOffset)</code></pre>



<p class="wp-block-paragraph">The <code>atan2</code> function is preferred because it automatically handles quadrant corrections.</p>



<h3 class="wp-block-heading">Calculating Distance</h3>



<p class="wp-block-paragraph">To calculate the distance to the goal, we use the Pythagorean Theorem:</p>



<pre class="wp-block-code"><code>distance = sqrt(xOffset² + yOffset²)</code></pre>



<p class="wp-block-paragraph">This distance can later be used to adjust shooter velocity, flywheel RPM, or launch angle.</p>



<h2 class="wp-block-heading">Code Example</h2>



<p class="wp-block-paragraph">While auto-aiming <em>can</em> be implemented using Blocks, most teams pursuing odometry-based solutions will be using <strong>Java</strong> with Android Studio, as this is required for both Pedro Pathing and Road Runner.</p>



<p class="wp-block-paragraph">The code snippet below uses Java and Pedro Pathing to compute distance and angle from the robot to the goal.</p>



<pre class="wp-block-code"><code>//Get the robot's current pose from odometry
Pose2d robotPose = drive.getPose();

//Define goal's position
double targetX = 10;
double targetY = 138;

//Calculate x/y offsets from goal
double xOffset = targetX - robotPose.getX();
double yOffset = targetY - robotPose.getY();

//Determine angle/distance to goal
double angleToTarget = Math.atan2(yOffset, xOffset);
double distanceToTarget = Math.hypot(xOffset, yOffset);</code></pre>



<h2 class="wp-block-heading">Final Thoughts</h2>



<p class="wp-block-paragraph">The next step in developing a complete auto-aiming system is using these calculated values to rotate your robot or turret toward the target and launch the game element with the correct speed and loft. Since shooter designs vary widely, those implementation details are beyond the scope of this article.</p>



<p class="wp-block-paragraph">Vision-based auto-aiming is also a viable approach. Many teams successfully used cameras such as the Limelight 3A to track the AprilTag mounted on the goal, allowing the robot to aim and estimate distance simultaneously. Our team began the season using vision but ultimately found that odometry-based auto-aiming was faster, more responsive, and more consistent, especially during high-speed TeleOp gameplay.</p>



<p class="wp-block-paragraph">Used correctly, odometry can be a powerful tool—not just for autonomous routines, but for advanced TeleOp features that give your team a competitive edge.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Introducing Community Projects</title>
		<link>https://techworkshop.org/introducing-community-projects/</link>
		
		<dc:creator><![CDATA[Thomas May]]></dc:creator>
		<pubDate>Sun, 21 Dec 2025 22:08:02 +0000</pubDate>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[General]]></category>
		<guid isPermaLink="false">https://techworkshop.org/?p=26219</guid>

					<description><![CDATA[Drop-in Workshops are a great way for kids to work on their own personal projects with guidance from Tech Workshop staff. But what happens when your child doesn’t yet have a project of their own? That’s where Community Projects come in. Community Projects are shared, technology-focused projects where local youth collaborate, learn new skills, and [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Drop-in Workshops are a great way for kids to work on their own personal projects with guidance from Tech Workshop staff. But what happens when your child doesn’t yet have a project of their own?</p>



<p class="wp-block-paragraph">That’s where <strong>Community Projects</strong> come in.</p>



<p class="wp-block-paragraph"><strong>Community Projects</strong> are shared, technology-focused projects where local youth collaborate, learn new skills, and build real-world solutions together. Instead of working alone, participants join a team to design, plan, and build something meaningful from start to finish. Projects are proposed by the community, selected as a group, and developed collaboratively—giving students hands-on experience with teamwork, problem-solving, and creative thinking.</p>



<h2 class="wp-block-heading">Propose a New Community Project</h2>



<p class="wp-block-paragraph">We welcome ideas from students, parents, and the broader community! If you have an idea for a Community Project, feel free to propose it by sending an email to <a href="mailto: info@techworkshop.org">info@techworkshop.org</a>.</p>



<p class="wp-block-paragraph">Proposed projects should meet the following criteria:</p>



<ul class="wp-block-list">
<li>Cross multiple technical themes (for example: CAD, robotics, and coding)</li>



<li>Allow multiple participants to work on the project simultaneously</li>



<li>Go beyond a simple purchased kit and require customization or original design</li>



<li>Encourage creativity and learning new skills</li>



<li>Stay within a reasonable budget</li>



<li>Have a timeline of at least one month, but no longer than one year</li>
</ul>



<p class="wp-block-paragraph">Ideally, completed projects can be reused, expanded upon, or serve as learning tools for future workshops.</p>



<h2 class="wp-block-heading">How to Get Involved</h2>



<p class="wp-block-paragraph">All middle and high school–aged students are welcome to contribute to Community Projects. Getting involved is easy—just show up during one of our scheduled <strong><a href="https://techworkshop.org/classes/details/?ID=10" data-type="link" data-id="https://techworkshop.org/classes/details/?ID=10">Drop-in Workshop</a></strong> periods and join a project that interests you.</p>



<p class="wp-block-paragraph">As always, participation is free, and everyone is welcome.</p>



<p class="wp-block-paragraph">To see our proposed, active, and completed projects, visit our <a href="https://techworkshop.org/projects/" data-type="link" data-id="https://techworkshop.org/projects/">Community Projects </a>page and discover what our community is building together.</p>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
