<?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/"
	 xmlns:media="http://search.yahoo.com/mrss/" >

<channel>
	<title>Projects &#8211; ItsMyBot</title>
	<atom:link href="https://itsmybot.com/projects/feed/" rel="self" type="application/rss+xml" />
	<link>https://itsmybot.com</link>
	<description>Coding Classes for Kids &#38; Teens</description>
	<lastBuildDate>Tue, 17 Mar 2026 04:54:10 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://itsmybot.com/wp-content/uploads/2024/06/cropped-faviconV2-32x32.png</url>
	<title>Projects &#8211; ItsMyBot</title>
	<link>https://itsmybot.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>My Fairy Story with GenAI</title>
		<link>https://itsmybot.com/projects/my-fairy-story-with-genai/</link>
		
		<dc:creator><![CDATA[Poornima Sasidharan​]]></dc:creator>
		<pubDate>Wed, 02 Apr 2025 13:51:47 +0000</pubDate>
				<guid isPermaLink="false">https://z45whjehb6.onrocket.site/?post_type=projects&#038;p=15007</guid>

					<description><![CDATA[About The Project: I made a fairy story with GenAI!&#160; Generative Artificial Intelligence, GenAI, is really cool! It helps me create stories, pictures, and animations—it&#8217;s like magic! My Story Idea: In my story, Adventures of Bella, Bella explores the enchanted forest. A wise owl gives her a map to hidden treasure! How I Did It: [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About The Project:</h2>



<p class="wp-block-paragraph">I made a fairy story with GenAI!&nbsp;</p>



<p class="wp-block-paragraph"><strong>Gen</strong>erative<strong> A</strong>rtificial<strong> I</strong>ntelligence,<strong> GenAI,</strong> is really cool! It helps me create stories, pictures, and animations—it&#8217;s like magic!</p>



<h2 class="wp-block-heading">My Story Idea:</h2>



<p class="wp-block-paragraph">In my story, <em>Adventures of Bella</em>, Bella explores the enchanted forest. A wise owl gives her a map to hidden treasure!</p>



<h3 class="wp-block-heading"><strong>How I Did It:</strong></h3>



<p class="wp-block-paragraph">🌲 I imagined an enchanted forest.</p>



<p class="wp-block-paragraph">🦉 I added Bella, an owl, and treasure.</p>



<p class="wp-block-paragraph">✨ GenAI made pictures for my story!</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Line-Following Robo &#8211; Goods Mover</title>
		<link>https://itsmybot.com/projects/line-following-robo-goods-mover/</link>
		
		<dc:creator><![CDATA[Poornima Sasidharan​]]></dc:creator>
		<pubDate>Fri, 21 Mar 2025 04:51:59 +0000</pubDate>
				<guid isPermaLink="false">https://z45whjehb6.onrocket.site/?post_type=projects&#038;p=14808</guid>

					<description><![CDATA[About&#160; The Project: Have you ever seen robots that help move boxes in big warehouses? Now, you can build a mini version! This little robot will follow a black line on the ground to move from one place to another, just like real robots in factories and warehouses. It’s a fun way to learn how [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About&nbsp; The Project:</h2>



<p class="wp-block-paragraph">Have you ever seen robots that help move boxes in big warehouses? Now, you can build a <strong>mini</strong> version! This little robot will follow a black line on the ground to move from one place to another, just like real robots in factories and warehouses. It’s a fun way to learn how robots follow paths!</p>



<p class="wp-block-paragraph">We can enhance our robot by adding an ultrasonic sensor to detect obstacles and stop automatically, and by controlling it with an IR remote for manual operation</p>



<p class="wp-block-paragraph"><strong>Components Needed</strong></p>



<ol class="wp-block-list">
<li><strong>ATmega328P-ELF Mainboard</strong> (The brain of the robot)</li>



<li><strong>Double-way Line-following Sensor</strong> (To detect and follow the black line)</li>



<li><strong>Motors &amp; Wheels</strong> (To move the robot)</li>



<li><strong>USB Cable</strong> (To connect to the laptop for programming)</li>



<li><strong>Ultrasonic Sensor</strong> (Optional &#8211; To detect obstacles and stop automatically)</li>



<li><strong>IR Receiver &amp; IR Remote Control</strong> (Optional &#8211; For manual operation and control)</li>
</ol>



<p class="wp-block-paragraph"><strong>Pseudo Code:</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Bash</span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># Initialize Libraries and Components
Initialize line-following sensor
Initialize ultrasonic sensor
Initialize motors and wheels
Initialize IR receiver (optional)
Initialize IR remote (optional)

# Start the robot movement
While robot is running:
    Read line-following sensor data
    If sensor detects line:
        Move robot forward
    Else:
        Turn robot to stay on the line
    
    # Obstacle detection
    If ultrasonic sensor detects obstacle:
        Stop robot
        Wait for 1 second
        Avoid obstacle (turn or move back)
    
    # Optional: Manual control via IR remote
    If IR receiver receives signal:
        Follow manual control commands from remote
</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955"># Initialize Libraries and Components</span></span>
<span class="line"><span style="color: #DCDCAA">Initialize</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">line-following</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sensor</span></span>
<span class="line"><span style="color: #DCDCAA">Initialize</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">ultrasonic</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sensor</span></span>
<span class="line"><span style="color: #DCDCAA">Initialize</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">motors</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">wheels</span></span>
<span class="line"><span style="color: #DCDCAA">Initialize</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">IR</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">receiver</span><span style="color: #D4D4D4"> (optional)</span></span>
<span class="line"><span style="color: #DCDCAA">Initialize</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">IR</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">remote</span><span style="color: #D4D4D4"> (optional)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #6A9955"># Start the robot movement</span></span>
<span class="line"><span style="color: #DCDCAA">While</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">robot</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">is</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">running:</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">Read</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">line-following</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sensor</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">data</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">If</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sensor</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">detects</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">line:</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">Move</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">robot</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">forward</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">Else:</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">Turn</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">robot</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">stay</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">on</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">line</span></span>
<span class="line"><span style="color: #D4D4D4">    </span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955"># Obstacle detection</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">If</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">ultrasonic</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sensor</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">detects</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">obstacle:</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">Stop</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">robot</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">Wait</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">for</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">second</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">Avoid</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">obstacle</span><span style="color: #D4D4D4"> (turn </span><span style="color: #CE9178">or</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">move</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">back</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">    </span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #6A9955"># Optional: Manual control via IR remote</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">If</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">IR</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">receiver</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">receives</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">signal:</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">Follow</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">manual</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">control</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">commands</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">from</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">remote</span></span>
<span class="line"></span></code></pre></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Cold, Warm, Hot&#8230; And Kick!</title>
		<link>https://itsmybot.com/projects/cold-warm-hot-and-kick/</link>
		
		<dc:creator><![CDATA[Poornima Sasidharan​]]></dc:creator>
		<pubDate>Thu, 20 Mar 2025 12:07:02 +0000</pubDate>
				<guid isPermaLink="false">https://z45whjehb6.onrocket.site/?post_type=projects&#038;p=14805</guid>

					<description><![CDATA[About&#160; The Project: Have you ever played a game where someone gives hints like “cold” or “hot” to help you find something? Now, you can play it on Scratch! How to Play: Move your mouse to search for the hidden ball. The game will give you hints:Cold – You’re far away.Warm – You’re getting closer.Hot [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About&nbsp; The Project:</h2>



<p class="wp-block-paragraph">Have you ever played a game where someone gives hints like “cold” or “hot” to help you find something? Now, you can play it on Scratch!</p>



<h3 class="wp-block-heading">How to Play:</h3>



<p class="wp-block-paragraph">Move your mouse to search for the hidden ball. The game will give you hints:<br><strong>Cold</strong> – You’re far away.<br><strong>Warm</strong> – You’re getting closer.<br><strong>Hot</strong> – You’re very close!</p>



<p class="wp-block-paragraph">Once you find the ball, <strong>kick it</strong> to score points! You can add fun sounds, colorful effects, and even a timer to challenge yourself.</p>



<p class="wp-block-paragraph">Can you find and kick the ball the fastest? Let’s play!</p>



<p class="wp-block-paragraph"><strong>Project Link:</strong> <a href="https://scratch.mit.edu/projects/983042559" target="_blank" rel="noopener">https://scratch.mit.edu/projects/983042559</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rock, Paper, Scissors &#8211; Shoot</title>
		<link>https://itsmybot.com/projects/rock-paper-scissors-shoot/</link>
		
		<dc:creator><![CDATA[Poornima Sasidharan​]]></dc:creator>
		<pubDate>Thu, 20 Mar 2025 11:55:04 +0000</pubDate>
				<guid isPermaLink="false">https://z45whjehb6.onrocket.site/?post_type=projects&#038;p=14801</guid>

					<description><![CDATA[About  The Project: We play Rock-Paper-Scissor( RPS)&#160; in classrooms, on the playground, on the school bus, or at home —&#160; anytime and anywhere! Sometimes we even use it to decide who goes first in other games. Do you know we could play RPS with a computer too? We can build an RPS game using Scratch [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About  The Project:</h2>



<p class="wp-block-paragraph">We play Rock-Paper-Scissor( RPS)&nbsp; in classrooms, on the playground, on the school bus, or at home —&nbsp; anytime and anywhere! Sometimes we even use it to decide who goes first in other games. Do you know we could play RPS with a computer too?</p>



<p class="wp-block-paragraph">We can build an RPS game using Scratch block coding. To make it fun, we can add colorful costumes, backgrounds, messages, sound effects and a scoreboard.</p>



<p class="wp-block-paragraph">We can enhance the game by adding a timer so that the players have to select their move within the given time and declare the winner as the first to score 10 points</p>



<p class="wp-block-paragraph"><strong>Project Link:  </strong><a href="https://scratch.mit.edu/projects/1136468065" target="_blank" rel="noopener">https://scratch.mit.edu/projects/1136468065</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>My Pet’s Stories</title>
		<link>https://itsmybot.com/projects/my-pets-stories/</link>
		
		<dc:creator><![CDATA[Poornima Sasidharan​]]></dc:creator>
		<pubDate>Thu, 20 Mar 2025 11:47:45 +0000</pubDate>
				<guid isPermaLink="false">https://z45whjehb6.onrocket.site/?post_type=projects&#038;p=14797</guid>

					<description><![CDATA[About  The Project: We all love our pets! They are our best friends, bringing joy and happiness into our lives. In this project, we will create a Pet Profile Page using HTML &#38; CSS to share our pets&#8217; pictures and stories. You can enhance the project by adding a gallery, interactive features like a &#8216;Like&#8217; [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About  The Project:</h2>



<p class="wp-block-paragraph">We all love our pets! They are our best friends, bringing joy and happiness into our lives. In this project, we will create a Pet Profile Page using HTML &amp; CSS to share our pets&#8217; pictures and stories.</p>



<p class="wp-block-paragraph">You can enhance the project by adding a gallery, interactive features like a &#8216;Like&#8217; button, or even an option to download images.</p>



<h2 class="wp-block-heading">Technologies Used:</h2>



<ul class="wp-block-list">
<li><strong>HTML</strong> – To structure the webpage.</li>



<li><strong>CSS</strong> – To style and enhance the page layout.</li>



<li><strong>IDE</strong>: EduBlocks HTML</li>
</ul>



<h3 class="wp-block-heading">1. Set up the Page</h3>



<ul class="wp-block-list">
<li>Create a new <strong>HTML project</strong>.</li>



<li>Use the <strong>HTML block</strong> to add &lt;html>, &lt;head>, and &lt;body>.</li>
</ul>



<h3 class="wp-block-heading">2. Create the Pet Profile</h3>



<ul class="wp-block-list">
<li>Add a &lt;h1> tag for the title: <strong>&#8220;My Pet’s Story&#8221;</strong>.</li>



<li>Use an &lt;img> tag to insert the pet’s picture (use a URL or upload).</li>



<li>Add &lt;p> tags for pet details (Name, Age, Breed).</li>



<li>Write the pet’s story inside another &lt;p> tag.</li>
</ul>



<h3 class="wp-block-heading">3. Style with CSS</h3>



<ul class="wp-block-list">
<li>Use a &lt;style> tag inside &lt;head>.</li>



<li>Set background-color, font-size, and text-align.</li>



<li>Apply border-radius and box-shadow to images for a neat look.</li>
</ul>



<h3 class="wp-block-heading">4. Optional Enhancements</h3>



<ul class="wp-block-list">
<li>Add a &lt;button> below the profile for a <strong>&#8220;Like&#8221;</strong> feature.</li>



<li>Use multiple &lt;img> tags to create a simple <strong>gallery</strong>.</li>
</ul>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Password Strength Meter &#038; Generator</title>
		<link>https://itsmybot.com/projects/password-strength-meter-generator/</link>
		
		<dc:creator><![CDATA[Poornima Sasidharan​]]></dc:creator>
		<pubDate>Thu, 20 Mar 2025 11:43:41 +0000</pubDate>
				<guid isPermaLink="false">https://z45whjehb6.onrocket.site/?post_type=projects&#038;p=14794</guid>

					<description><![CDATA[About  The Project: We use many apps and websites everyday for school, work, research , personal use or just for fun! Most of these require us to register /sign- up with a username and password. It&#8217;s important to have a strong password to protect our private information. This project helps you to check the strength [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About  The Project:</h2>



<p class="wp-block-paragraph">We use many apps and websites everyday for school, work, research , personal use or just for fun! Most of these require us to register /sign- up with a username and password. It&#8217;s important to have a strong password to protect our private information.</p>



<p class="wp-block-paragraph">This project helps you to check the strength of your password and even helps you in generating a stronger one.</p>



<p class="wp-block-paragraph">You can also enhance the project by providing a “Copy to Clipboard” option and tips for creating strong passwords.</p>



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



<ul class="wp-block-list">
<li><strong>Python (3.x or later)</strong>: The programming language for this project.</li>



<li><strong>Tkinter</strong>: For creating the graphical user interface (GUI).</li>



<li><strong>Random</strong>: To generate random characters for passwords.</li>



<li><strong>String</strong>: For handling letters, digits, and symbols in passwords.</li>
</ul>



<h3 class="wp-block-heading">Key Programming Steps:</h3>



<ol class="wp-block-list">
<li><strong>Initialize:</strong>
<ul class="wp-block-list">
<li>Import Python libraries (Tkinter, Random, String).</li>



<li>Set up the GUI window using Tkinter.</li>



<li>Create input fields for entering and displaying passwords.</li>
</ul>
</li>



<li><strong>Password Strength Detection:</strong>
<ul class="wp-block-list">
<li>Check the password length, presence of numbers, uppercase letters, and special characters.</li>



<li>Display password strength (Weak, Medium, Strong) based on these factors.</li>
</ul>
</li>



<li><strong>Password Generator:</strong>
<ul class="wp-block-list">
<li>Generate a random password using letters, numbers, and special characters when the &#8220;Generate Password&#8221; button is clicked.</li>



<li>Display the generated password in the input field.</li>
</ul>
</li>



<li><strong>User Feedback:</strong>
<ul class="wp-block-list">
<li>Display password strength immediately after entering or generating the password.</li>



<li>Provide tips for improving password strength (e.g., adding uppercase letters, numbers).</li>
</ul>
</li>



<li><strong>Optional Enhancements:</strong>
<ul class="wp-block-list">
<li>Add a &#8220;Copy to Clipboard&#8221; button for easy copying of the generated password.</li>



<li>Display a message or suggestion for creating strong passwords.</li>
</ul>
</li>
</ol>



<p class="wp-block-paragraph"><strong>Pseudo Code:</strong></p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Bash</span><span role="button" tabindex="0" data-code="Import necessary libraries (tkinter, random, string)

Define function to check password strength:

    Set initial strength as &quot;Weak&quot;

    If password length &gt;= 8:

        If password contains digits, uppercase letters, and special characters:

            Set strength to &quot;Strong&quot;

        Else if password contains digits or uppercase letters:

            Set strength to &quot;Medium&quot;

    Return strength

Define function to generate a random strong password:

    While loop to generate a password:

        Create password by selecting random characters from letters, digits, and special symbols

        Check password strength

        If strength is &quot;Strong&quot;:

            Exit the loop

    Return password

Define function to check the entered password's strength:

    Get password from input field

    Call function to check strength and display result

Set up GUI window (Tkinter):

    Create label with instructions for entering or generating password

    Create input field for password

    Create label to display strength of password

    Create button to check strength

    Create button to generate a strong password

Run the main event loop to display GUI" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">Import</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">necessary</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">libraries</span><span style="color: #D4D4D4"> (tkinter, </span><span style="color: #CE9178">random,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">string</span><span style="color: #D4D4D4">)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">Define</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">function</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">check</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">strength:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">    Set</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">initial</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">strength</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">as</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;Weak&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">    If</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">length</span><span style="color: #D4D4D4"> &gt;</span><span style="color: #CE9178">=</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">8</span><span style="color: #CE9178">:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">        If</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">contains</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">digits,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">uppercase</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">letters,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">special</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">characters:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">            Set</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">strength</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;Strong&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">        Else</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">if</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">contains</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">digits</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">or</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">uppercase</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">letters:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">            Set</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">strength</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;Medium&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">    Return</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">strength</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">Define</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">function</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">generate</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">a</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">random</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">strong</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">    While</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">loop</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">generate</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">a</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">        Create</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">by</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">selecting</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">random</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">characters</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">from</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">letters,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">digits,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">special</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">symbols</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">        Check</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">strength</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">        If</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">strength</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">is</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;Strong&quot;:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">            Exit</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">loop</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">    Return</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">Define</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">function</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">check</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">entered</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">password&#39;s strength:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #CE9178">    Get password from input field</span></span>
<span class="line"></span>
<span class="line"><span style="color: #CE9178">    Call function to check strength and display result</span></span>
<span class="line"></span>
<span class="line"><span style="color: #CE9178">Set up GUI window (Tkinter):</span></span>
<span class="line"></span>
<span class="line"><span style="color: #CE9178">    Create label with instructions for entering or generating password</span></span>
<span class="line"></span>
<span class="line"><span style="color: #CE9178">    Create input field for password</span></span>
<span class="line"></span>
<span class="line"><span style="color: #CE9178">    Create label to display strength of password</span></span>
<span class="line"></span>
<span class="line"><span style="color: #CE9178">    Create button to check strength</span></span>
<span class="line"></span>
<span class="line"><span style="color: #CE9178">    Create button to generate a strong password</span></span>
<span class="line"></span>
<span class="line"><span style="color: #CE9178">Run the main event loop to display GUI</span></span></code></pre></div>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Quake Ready App with IoT and 3-Axis Accelerometer (Python STEM Board)</title>
		<link>https://itsmybot.com/projects/quake-ready-app-and-3-axis-accelerometer/</link>
		
		<dc:creator><![CDATA[Poornima Sasidharan​]]></dc:creator>
		<pubDate>Sat, 15 Mar 2025 06:43:04 +0000</pubDate>
				<guid isPermaLink="false">https://z45whjehb6.onrocket.site/?post_type=projects&#038;p=14756</guid>

					<description><![CDATA[About&#160; The Project: Quake-Ready is a smart application that uses an IoT device (Python STEM Board)&#160; with a 3-axis accelerometer to detect ground vibrations and sound sensors to find trapped individuals. It provides real-time alerts with visual and sound notifications. The app also shows resource data (hospitals, camps, population) to help with response planning and [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About&nbsp; The Project:</h2>



<p class="wp-block-paragraph">Quake-Ready is a smart application that uses an IoT device (Python STEM Board)&nbsp; with a 3-axis accelerometer to detect ground vibrations and sound sensors to find trapped individuals. It provides real-time alerts with visual and sound notifications. The app also shows resource data (hospitals, camps, population) to help with response planning and coordination</p>



<h2 class="wp-block-heading">Components Needed</h2>



<ol class="wp-block-list">
<li>Python STEM Board (ESP-WROOM-32)</li>



<li>3-Axis Accelerometer (for detecting ground vibrations)</li>



<li>Sound Sensors (for detecting trapped individuals)</li>



<li>OLED Screen (for displaying alerts)</li>



<li>RGB LEDs (for visual notifications)</li>



<li>Buzzer (for sound notifications)</li>



<li>Wi-Fi Module (for internet connectivity)</li>



<li>MQTTX (for real-time data communication)</li>



<li>USB Cable (for connecting the board to the computer)</li>
</ol>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="576" src="https://itsmybot.com/wp-content/uploads/2025/03/image2-1024x576.png" alt="Implementation diagram: IoT accelerometer and sound sensors send MQTT data to a central system with real-time visualization." class="wp-image-14759" srcset="https://itsmybot.com/wp-content/uploads/2025/03/image2-1024x576.png 1024w, https://itsmybot.com/wp-content/uploads/2025/03/image2-300x169.png 300w, https://itsmybot.com/wp-content/uploads/2025/03/image2-768x432.png 768w, https://itsmybot.com/wp-content/uploads/2025/03/image2-1536x864.png 1536w, https://itsmybot.com/wp-content/uploads/2025/03/image2.png 1920w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Bash</span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>STEM Python Board 
Initialize mPython, Wi-Fi, MQTT, sensors
Display message on OLED
While True:
    Read and publish sound and accelerometer data
    If sound > threshold:
        Display "ALERT: High sound" and trigger notifications
    If acceleration > threshold:
        Display "ALERT: Earthquake" and trigger notifications
    Plot sound and acceleration data with color-coded severity
    Wait for a few  seconds
End loop

APPLICATION LOGIC

Initialize MQTT client and connect to broker
Subscribe to sound and accelerometer topics
Define thresholds for sound and acceleration
Set up data storage (sound_data, acceleration_data)
Define on_connect callback to subscribe to topics
Define on_message callback to process incoming data and store in respective queues
Define function to plot sound data:
    Plot sound as bar chart with color based on severity (green, yellow, red)
Define function to plot accelerometer data:
    Plot acceleration as bar chart with color based on severity (yellow, orange, red)
Run a loop (e.g., 10 times):
    Plot sound and accelerometer data
    Pause for 5 seconds before repeating

</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">STEM</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Python</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Board</span><span style="color: #D4D4D4"> </span></span>
<span class="line"><span style="color: #DCDCAA">Initialize</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">mPython,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Wi-Fi,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">MQTT,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sensors</span></span>
<span class="line"><span style="color: #DCDCAA">Display</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">message</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">on</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">OLED</span></span>
<span class="line"><span style="color: #DCDCAA">While</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">True:</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">Read</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">publish</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sound</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">accelerometer</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">data</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">If</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sound</span><span style="color: #D4D4D4"> &gt; </span><span style="color: #CE9178">threshold:</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">Display</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;ALERT: High sound&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">trigger</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">notifications</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">If</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">acceleration</span><span style="color: #D4D4D4"> &gt; </span><span style="color: #CE9178">threshold:</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #DCDCAA">Display</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;ALERT: Earthquake&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">trigger</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">notifications</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">Plot</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sound</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">acceleration</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">data</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">with</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">color-coded</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">severity</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">Wait</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">for</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">a</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">few</span><span style="color: #D4D4D4">  </span><span style="color: #CE9178">seconds</span></span>
<span class="line"><span style="color: #DCDCAA">End</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">loop</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">APPLICATION</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">LOGIC</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">Initialize</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">MQTT</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">client</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">connect</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">broker</span></span>
<span class="line"><span style="color: #DCDCAA">Subscribe</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sound</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">accelerometer</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">topics</span></span>
<span class="line"><span style="color: #DCDCAA">Define</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">thresholds</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">for</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sound</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">acceleration</span></span>
<span class="line"><span style="color: #DCDCAA">Set</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">up</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">data</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">storage</span><span style="color: #D4D4D4"> (sound_data, </span><span style="color: #CE9178">acceleration_data</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #DCDCAA">Define</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">on_connect</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">callback</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">subscribe</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">topics</span></span>
<span class="line"><span style="color: #DCDCAA">Define</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">on_message</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">callback</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">process</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">incoming</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">data</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">store</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">in</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">respective</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">queues</span></span>
<span class="line"><span style="color: #DCDCAA">Define</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">function</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">plot</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sound</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">data:</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">Plot</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sound</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">as</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">bar</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">chart</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">with</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">color</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">based</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">on</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">severity</span><span style="color: #D4D4D4"> (green, </span><span style="color: #CE9178">yellow,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">red</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #DCDCAA">Define</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">function</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">plot</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">accelerometer</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">data:</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">Plot</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">acceleration</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">as</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">bar</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">chart</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">with</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">color</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">based</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">on</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">severity</span><span style="color: #D4D4D4"> (yellow, </span><span style="color: #CE9178">orange,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">red</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #DCDCAA">Run</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">a</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">loop</span><span style="color: #D4D4D4"> (e.g., </span><span style="color: #B5CEA8">10</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">times</span><span style="color: #D4D4D4">):</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">Plot</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">sound</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">accelerometer</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">data</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #DCDCAA">Pause</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">for</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">5</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">seconds</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">before</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">repeating</span></span>
<span class="line"></span>
<span class="line"></span></code></pre></div>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Gesture Controlled Maze Game</title>
		<link>https://itsmybot.com/projects/gesture-controlled-maze-game/</link>
		
		<dc:creator><![CDATA[Poornima Sasidharan​]]></dc:creator>
		<pubDate>Thu, 20 Feb 2025 07:33:38 +0000</pubDate>
				<guid isPermaLink="false">https://z45whjehb6.onrocket.site/?post_type=projects&#038;p=14536</guid>

					<description><![CDATA[About The Project: This is a fun game where we control a Beetle through a maze using hand gestures! Using Scratch Machine Learning tools, we’ll train a Hand Gesture Classifier to recognize five gestures: Forward, Backward, Left, Right, and Stop. These gestures will control the Beetle, helping it avoid obstacles in the maze. Let’s get [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About The Project:</h2>



<p class="wp-block-paragraph">This is a fun game where we control a Beetle through a maze using hand gestures! Using Scratch Machine Learning tools, we’ll train a Hand Gesture Classifier to recognize five gestures: Forward, Backward, Left, Right, and Stop. These gestures will control the Beetle, helping it avoid obstacles in the maze. Let’s get started and make the game interactive with our own hands!</p>



<h3 class="wp-block-heading">Steps:</h3>



<ol class="wp-block-list">
<li>Set up the ML environment in the Scratch AI platform.</li>



<li>Collect hand gestures (e.g., palm facing forward for Forward, back of the palm for Backward, etc.).</li>



<li>Train the model using data captured from the webcam.</li>



<li>Test the model with real-time hand gestures.</li>



<li>Export the trained model for use in the game.</li>



<li>Create Scratch AI scripts to map the gestures to the Beetle&#8217;s movement.</li>
</ol>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Bash</span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>1. Open Scratch AI Platform and load the "Beetle in the Maze" project.

   > Project loaded successfully.

2. Create a new project and select the "Hand Gesture Classifier" extension.

   > New project created and Hand Gesture Classifier extension added.

3. Upload hand gesture data (Forward, Backward, Left, Right, Stop).

   > Data uploaded: Forward, Backward, Left, Right, Stop.

4. Train the model with 20+ samples for each gesture.

   > Training in progress... 20+ samples for each gesture added.

5. Test the model with the webcam for real-time recognition.

   > Model testing... Real-time gesture recognition is successful.

6. Export the trained model to Scratch AI Platform.

   > Model exported successfully.

7. In the Block Coding environment:

   - Use blocks to open the recognition window.

   - Use blocks to analyze gestures from the webcam.

   - Assign corresponding Beetle actions (e.g., move forward on "Forward").

   > Blocks created and configured.

8. Run the game with hand gestures controlling the Beetle.

   > Game running... Beetle controlled via hand gestures.</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #DCDCAA">1.</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Open</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Scratch</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">AI</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Platform</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">load</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;Beetle in the Maze&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">project.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   &gt;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Project</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">loaded</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">successfully.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">2.</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Create</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">a</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">new</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">project</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">select</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;Hand Gesture Classifier&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">extension.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   &gt;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">New</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">project</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">created</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Hand</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Gesture</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Classifier</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">extension</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">added.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">3.</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Upload</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hand</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">gesture</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">data</span><span style="color: #D4D4D4"> (Forward, </span><span style="color: #CE9178">Backward,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Left,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Right,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Stop</span><span style="color: #D4D4D4">).</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   &gt;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Data</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">uploaded:</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Forward,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Backward,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Left,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Right,</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Stop.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">4.</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Train</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">model</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">with</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">20</span><span style="color: #CE9178">+</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">samples</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">for</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">each</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">gesture.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   &gt;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Training</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">in</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">progress...</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">20</span><span style="color: #CE9178">+</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">samples</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">for</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">each</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">gesture</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">added.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">5.</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Test</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">model</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">with</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">webcam</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">for</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">real-time</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">recognition.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   &gt;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Model</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">testing...</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Real-time</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">gesture</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">recognition</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">is</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">successful.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">6.</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Export</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">trained</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">model</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Scratch</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">AI</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Platform.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   &gt;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Model</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">exported</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">successfully.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">7.</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">In</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Block</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Coding</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">environment:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   -</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Use</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">blocks</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">open</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">recognition</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">window.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   -</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Use</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">blocks</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">to</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">analyze</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">gestures</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">from</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">webcam.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   -</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Assign</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">corresponding</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Beetle</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">actions</span><span style="color: #D4D4D4"> (e.g., </span><span style="color: #CE9178">move</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">forward</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">on</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;Forward&quot;</span><span style="color: #D4D4D4">).</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   &gt;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Blocks</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">created</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">configured.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">8.</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Run</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">game</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">with</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hand</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">gestures</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">controlling</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">the</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Beetle.</span></span>
<span class="line"></span>
<span class="line"><span style="color: #DCDCAA">   &gt;</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Game</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">running...</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">Beetle</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">controlled</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">via</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">hand</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">gestures.</span></span></code></pre></div>



<h3 class="wp-block-heading">Pseudo Code:</h3>



<p class="wp-block-paragraph">1. Open Scratch AI Platform and load the &#8220;Beetle in the Maze&#8221; project.</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&gt; Project loaded successfully.</p>



<p class="wp-block-paragraph">2. Create a new project and select the &#8220;Hand Gesture Classifier&#8221; extension.</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&gt; New project created and Hand Gesture Classifier extension added.</p>



<p class="wp-block-paragraph">3. Upload hand gesture data (Forward, Backward, Left, Right, Stop).</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&gt; Data uploaded: Forward, Backward, Left, Right, Stop.</p>



<p class="wp-block-paragraph">4. Train the model with 20+ samples for each gesture.</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&gt; Training in progress&#8230; 20+ samples for each gesture added.</p>



<p class="wp-block-paragraph">5. Test the model with the webcam for real-time recognition.</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&gt; Model testing&#8230; Real-time gesture recognition is successful.</p>



<p class="wp-block-paragraph">6. Export the trained model to Scratch AI Platform.</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&gt; Model exported successfully.</p>



<p class="wp-block-paragraph">7. In the Block Coding environment:</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&#8211; Use blocks to open the recognition window.</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&#8211; Use blocks to analyze gestures from the webcam.</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&#8211; Assign corresponding Beetle actions (e.g., move forward on &#8220;Forward&#8221;).</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&gt; Blocks created and configured.</p>



<p class="wp-block-paragraph">8. Run the game with hand gestures controlling the Beetle.</p>



<p class="wp-block-paragraph">&nbsp;&nbsp;&nbsp;&gt; Game running&#8230; Beetle controlled via hand gestures.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Touchpad Password-Protected Device Using Python STEM Board</title>
		<link>https://itsmybot.com/projects/touchpad-password-protected-device-using-python-stem-board/</link>
		
		<dc:creator><![CDATA[Poornima Sasidharan​]]></dc:creator>
		<pubDate>Thu, 23 Jan 2025 07:08:13 +0000</pubDate>
				<guid isPermaLink="false">https://z45whjehb6.onrocket.site/?post_type=projects&#038;p=14221</guid>

					<description><![CDATA[About the Project: Have you ever thought of having your own digital locker to protect the things you treasure? Like a digital locker for your treasure box, yes, it&#8217;s possible! When you enter the correct password in the digital locker’s touchpad, the box gets opened; otherwise, it&#8217;s kept closed, and your things are safe. You could [&#8230;]]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">About the Project:</h2>



<p class="wp-block-paragraph">Have you ever thought of having your own digital locker to protect the things you treasure? Like a digital locker for your treasure box, yes, it&#8217;s possible! When you enter the correct password in the digital locker’s touchpad, the box gets opened; otherwise, it&#8217;s kept closed, and your things are safe.</p>



<p class="wp-block-paragraph">You could build a digital locker using a Python STEM Board, which has a cool touchpad LED screen and more,&nbsp; this board could be programmed using Micro-Python.</p>



<p class="wp-block-paragraph">You can also enhance the locker by adding lights and sound effects and you could even set an alarm for entering the wrong password!</p>



<h3 class="wp-block-heading">Components Needed</h3>



<ol class="wp-block-list">
<li><strong>ESP-WROOM-32 dual-core </strong><strong>Python Board</strong> (The main component we will use)</li>



<li><strong>USB cable</strong> (For connecting it to the computer)</li>



<li><strong>Computer</strong> (For coding)</li>



<li><strong>OLED screen</strong> (To show the output on the board)</li>



<li><strong>Touchpads</strong> (To enter the password)</li>



<li><strong>RGB LEDs</strong> and <strong>Buzzer</strong> (Optional, for light sound effects and alarm)</li>
</ol>



<h2 class="wp-block-heading">The Key Programming-Steps</h2>



<h3 class="wp-block-heading">1. Initialize:</h3>



<ul class="wp-block-list">
<li>Import mPython libraries.</li>



<li>Set up touchpads, OLED screen, RGB LEDs, and buzzer.</li>



<li>Define password (e.g., [&#8220;N&#8221;, &#8220;O&#8221;, &#8220;H&#8221;, &#8220;T&#8221;, &#8220;Y&#8221;, &#8220;P&#8221;]).</li>
</ul>



<h3 class="wp-block-heading">2. Display Instructions:</h3>



<ul class="wp-block-list">
<li>Show “Enter your password” and placeholders * * * * * * on OLED.</li>
</ul>



<h3 class="wp-block-heading">3. Input Detection:</h3>



<ul class="wp-block-list">
<li>Loop through each password character:
<ul class="wp-block-list">
<li>Wait for the touchpad press.</li>



<li>Compare input with the password character.</li>
</ul>
</li>
</ul>



<h3 class="wp-block-heading">4. Password Attempts:</h3>



<ul class="wp-block-list">
<li>Track failed attempts (e.g., limit to 3 attempts).</li>



<li>If max attempts are reached, lock the system temporarily and display a message.</li>
</ul>



<h3 class="wp-block-heading">5. Feedback:</h3>



<ul class="wp-block-list">
<li><strong>If correct</strong>: Show “Device Unlocked” on OLED, turn RGB LEDs green.</li>



<li><strong>If incorrect</strong>: Show “Wrong Password” on OLED, turn LEDs red, play buzzer sound.</li>
</ul>



<h3 class="wp-block-heading">6. Optional Enhancements:</h3>



<ul class="wp-block-list">
<li><strong>Password Change</strong>: Allow users to change the password after successful login.</li>



<li><strong>Buzzer</strong>: Sound buzzer for wrong password attempts.</li>



<li><strong>Max Attempts</strong>: Limit the number of attempts before locking the system.</li>
</ul>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">Python</span><span role="button" tabindex="0" data-code="Initialize mPython libraries

Initialize touchpads, OLED, RGB LEDs

Display instructions on OLED: &quot;Enter your password&quot; and &quot;using Touchpad&quot;

Define password as [&quot;Y&quot;, &quot;N&quot;, &quot;P&quot;, &quot;T&quot;, &quot;H&quot;, &quot;O&quot;]

Set i to 0 (index of password)

While i &lt; 6:

    Check if any touchpad is pressed

    If touchpad pressed, compare input with the password at position i

        If wrong, exit loop (wrong password)

    If correct, increment i

    Wait for 1 second

If i &lt; 6 (wrong password):

    Set RGB LEDs to red

    Display &quot;WRONG PASSWORD&quot; on OLED

Else (password correct):

    Set RGB LEDs to yellow

    Display &quot;Device unlocked!!!&quot; on OLED" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">Initialize mPython libraries</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">Initialize touchpads, OLED, RGB LEDs</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">Display instructions on OLED: </span><span style="color: #CE9178">&quot;Enter your password&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">and</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">&quot;using Touchpad&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">Define password </span><span style="color: #C586C0">as</span><span style="color: #D4D4D4"> [</span><span style="color: #CE9178">&quot;Y&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;N&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;P&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;T&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;H&quot;</span><span style="color: #D4D4D4">, </span><span style="color: #CE9178">&quot;O&quot;</span><span style="color: #D4D4D4">]</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">Set i to </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4"> (index of password)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">While i &lt; </span><span style="color: #B5CEA8">6</span><span style="color: #D4D4D4">:</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    Check </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">any</span><span style="color: #D4D4D4"> touchpad </span><span style="color: #569CD6">is</span><span style="color: #D4D4D4"> pressed</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    If touchpad pressed, compare </span><span style="color: #DCDCAA">input</span><span style="color: #D4D4D4"> </span><span style="color: #C586C0">with</span><span style="color: #D4D4D4"> the password at position i</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">        If wrong, </span><span style="color: #DCDCAA">exit</span><span style="color: #D4D4D4"> loop (wrong password)</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    If correct, increment i</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    Wait </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> second</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">If i &lt; </span><span style="color: #B5CEA8">6</span><span style="color: #D4D4D4"> (wrong password):</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    Set RGB LEDs to red</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    Display </span><span style="color: #CE9178">&quot;WRONG PASSWORD&quot;</span><span style="color: #D4D4D4"> on OLED</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">Else (password correct):</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    Set RGB LEDs to yellow</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    Display </span><span style="color: #CE9178">&quot;Device unlocked!!!&quot;</span><span style="color: #D4D4D4"> on OLED</span></span></code></pre></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
