Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

EMG-Armband Updated #207

Merged
merged 1 commit into from
May 16, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions _projects/EMG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
layout: page
title: EMG-Armband
description: Design a EMG Armband with Esp-32 and implement ML model on it to detect Hand Movements
importance: 1
---

| Project Domains | Mentors | Project Difficulty |
|---------------------------------------------------------------------------|----------------------------------------|--------------------|
| PCB Designing, Embedded Systems, Electronics, Machine Learning | Atharva Atre, Purva Yeshi, Aryan Nanda | Hard |

<br>

### Project Description
Creating an EMG Armband is a multifaceted endeavor, engaging mentees in the intricacies of electronics engineering and IoT technology. At its core lies the meticulous crafting of a sophisticated Printed Circuit Board (PCB), carefully housing EMG (Electromyography) sensors, and seamlessly integrating them with the potent ESP-32 microcontroller.

<img src="/assets/img/EMG.gif" alt="EMG-Armband " width="600">

This fusion of hardware and software prowess facilitates the real-time detection of intricate hand movements and orientation, achieved by capturing muscle impulses directly from the forearm. The EMG armband, as the conduit for these signals, plays a pivotal role in the process.

Once captured, these signals undergo swift and efficient processing within the ESP-32. Leveraging its computational capabilities, the microcontroller executes a series of basic machine learning algorithms. These algorithms, grounded in the principles of neural networks, meticulously analyze the incoming signals. Their task is twofold: to discern patterns indicative of various hand gestures and to accurately classify these gestures in real-time.

### References
- EMG Signals and its Processing [Video Explanation](https://www.youtube.com/watch?v=ucwtJ28Yia0)
- Neural Networks [Overview](https://www.geeksforgeeks.org/neural-networks-a-beginners-guide/) \| [Video Explaination](https://www.youtube.com/watch?v=aircAruvnKk&t=1s)




Binary file added _site/assets/img/EMG.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
295 changes: 295 additions & 0 deletions _site/projects/EMG/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,295 @@
<!DOCTYPE html>
<html lang="en">

<!-- Head -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <!-- Metadata, OpenGraph and Schema.org -->


<!-- Standard metadata -->
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>EMG-Armband | Eklavya 2024 </title>
<meta name="author" content="Eklavya 2024 ">
<meta name="description" content="Design a EMG Armband with Esp-32 and implement ML model on it to detect Hand Movements">
<meta name="keywords" content="jekyll, jekyll-theme, academic-website, portfolio-website">


<!-- Bootstrap & MDB -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha256-DF7Zhf293AJxJNTmh5zhoYYIMs2oXitRfBjY+9L//AY=" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/mdb.min.css" integrity="sha256-jpjYvU3G3N6nrrBwXJoVEYI/0zw8htfFnhT9ljN3JJw=" crossorigin="anonymous">

<!-- Bootstrap Table -->
<link defer rel="stylesheet" href="https://unpkg.com/[email protected]/dist/bootstrap-table.min.css">

<!-- Fonts & Icons -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/[email protected]/css/all.min.css" integrity="sha256-mUZM63G8m73Mcidfrv5E+Y61y7a12O5mW4ezU3bxqW4=" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/css/academicons.min.css" integrity="sha256-i1+4qU2G2860dGGIOJscdC30s9beBXjFfzjWLjBRsBg=" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="https://fonts.googleapis.com/css?family=Roboto:300,400,500,700|Roboto+Slab:100,300,400,500,700|Material+Icons">

<!-- Code Syntax Highlighting -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jwarby/jekyll-pygments-themes@master/github.css" media="" id="highlight_theme_light">



<!-- Styles -->

<link rel="shortcut icon" href="/assets/img/favicon.ico">

<link rel="stylesheet" href="/assets/css/main.css">
<link rel="canonical" href="http://localhost:4000/projects/EMG/">

<!-- Dark Mode -->

<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/jwarby/jekyll-pygments-themes@master/native.css" media="none" id="highlight_theme_dark">

<script src="/assets/js/theme.js"></script>
<script src="/assets/js/dark_mode.js"></script>


</head>

<!-- Body -->
<body class="fixed-top-nav ">

<!-- Header -->
<header>

<!-- Nav Bar -->
<nav id="navbar" class="navbar navbar-light navbar-expand-sm fixed-top">
<div class="container">
<a class="navbar-brand title font-weight-lighter" href="/"><!-- <span class="font-weight-bold">Eklavya 2024&nbsp;</span> -->
<img src="/assets/img/EKLAVYA_2024__6_-removebg-preview.png" alt="heading" style="width: 300px; height: 40px; object-fit: cover; object-position: 0% 45%"></a>
<!-- Navbar Toggle -->
<button class="navbar-toggler collapsed ml-auto" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar top-bar"></span>
<span class="icon-bar middle-bar"></span>
<span class="icon-bar bottom-bar"></span>
</button>

<div class="collapse navbar-collapse text-right" id="navbarNav">
<ul class="navbar-nav ml-auto flex-nowrap">

<!-- About -->
<li class="nav-item ">
<a class="nav-link" href="/">Home</a>
</li>


<!-- Other pages -->
<li class="nav-item ">
<a class="nav-link" href="/leaderboard/">Leaderboard</a>
</li>
<li class="nav-item ">
<a class="nav-link" href="/projects/">Eklavya Projects</a>
</li>

<!-- Toogle theme mode -->
<!-- <li class="toggle-container">
<button id="light-toggle" title="Change theme">
<i class="fas fa-moon"></i>
<i class="fas fa-sun"></i>
</button>
</li> -->
</ul>
</div>
</div>
</nav>

<!-- Scrolling Progress Bar -->
<progress id="progress" value="0">
<div class="progress-container">
<span class="progress-bar"></span>
</div>
</progress>
</header>


<!-- Content -->
<div class="container mt-5">

<!-- page.html -->
<div class="post table-borderless">

<header class="post-header">
<h1 class="post-title">EMG-Armband</h1>
<p class="post-description">Design a EMG Armband with Esp-32 and implement ML model on it to detect Hand Movements</p>
</header>

<article>
<table>
<thead>
<tr>
<th>Project Domains</th>
<th>Mentors</th>
<th>Project Difficulty</th>
</tr>
</thead>
<tbody>
<tr>
<td>PCB Designing, Embedded Systems, Electronics, Machine Learning</td>
<td>Atharva Atre, Purva Yeshi, Aryan Nanda</td>
<td>Hard</td>
</tr>
</tbody>
</table>

<p><br></p>

<h3 id="project-description">Project Description</h3>
<p>Creating an EMG Armband is a multifaceted endeavor, engaging mentees in the intricacies of electronics engineering and IoT technology. At its core lies the meticulous crafting of a sophisticated Printed Circuit Board (PCB), carefully housing EMG (Electromyography) sensors, and seamlessly integrating them with the potent ESP-32 microcontroller.</p>

<p><img src="/assets/img/EMG.gif" alt="EMG-Armband " width="600"></p>

<p>This fusion of hardware and software prowess facilitates the real-time detection of intricate hand movements and orientation, achieved by capturing muscle impulses directly from the forearm. The EMG armband, as the conduit for these signals, plays a pivotal role in the process.</p>

<p>Once captured, these signals undergo swift and efficient processing within the ESP-32. Leveraging its computational capabilities, the microcontroller executes a series of basic machine learning algorithms. These algorithms, grounded in the principles of neural networks, meticulously analyze the incoming signals. Their task is twofold: to discern patterns indicative of various hand gestures and to accurately classify these gestures in real-time.</p>

<h3 id="references">References</h3>
<ul>
<li>EMG Signals and its Processing <a href="https://www.youtube.com/watch?v=ucwtJ28Yia0" rel="external nofollow noopener" target="_blank">Video Explanation</a>
</li>
<li>Neural Networks <a href="https://www.geeksforgeeks.org/neural-networks-a-beginners-guide/" rel="external nofollow noopener" target="_blank">Overview</a> | <a href="https://www.youtube.com/watch?v=aircAruvnKk&amp;t=1s" rel="external nofollow noopener" target="_blank">Video Explaination</a>
</li>
</ul>


</article>

</div>


</div>

<!-- Footer --> <!--
<footer class="fixed-bottom">
<div class="container mt-0">
&copy; Copyright 2024 Eklavya 2024 . Powered by <a href="https://jekyllrb.com/" target="_blank">Jekyll</a> with <a href="https://github.com/alshedivat/al-folio">al-folio</a> theme. Hosted by <a href="https://pages.github.com/" target="_blank">GitHub Pages</a>. Photos from <a href="https://unsplash.com" target="_blank">Unsplash</a>.

</div>
</footer> -->

<!-- JavaScripts -->
<!-- jQuery -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js" integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>

<!-- Bootsrap & MDB scripts -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha256-fgLAgv7fyCGopR/gBNq2iW3ZKIdqIcyshnUULC4vex8=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/js/mdb.min.js" integrity="sha256-NdbiivsvWt7VYCt6hYNT3h/th9vSTL4EDWeGs5SN3DA=" crossorigin="anonymous"></script>

<!-- Masonry & imagesLoaded -->
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/masonry.pkgd.min.js" integrity="sha256-Nn1q/fx0H7SNLZMQ5Hw5JLaTRZp0yILA/FRexe19VdI=" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/imagesloaded@4/imagesloaded.pkgd.min.js"></script>
<script defer src="/assets/js/masonry.js" type="text/javascript"></script>

<!-- Medium Zoom JS -->
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/medium-zoom.min.js" integrity="sha256-7PhEpEWEW0XXQ0k6kQrPKwuoIomz8R8IYyuU1Qew4P8=" crossorigin="anonymous"></script>
<script defer src="/assets/js/zoom.js"></script>

<!-- Bootstrap Table -->
<script defer src="https://unpkg.com/[email protected]/dist/bootstrap-table.min.js"></script>

<!-- Load Common JS -->
<script src="/assets/js/no_defer.js"></script>
<script defer src="/assets/js/common.js"></script>
<script defer src="/assets/js/copy_code.js" type="text/javascript"></script>


<script async src="https://d1bxh8uas1mnw7.cloudfront.net/assets/embed.js"></script>
<script async src="https://badge.dimensions.ai/badge.js"></script>

<!-- MathJax -->
<script type="text/javascript">
window.MathJax = {
tex: {
tags: 'ams'
}
};
</script>
<script defer type="text/javascript" id="MathJax-script" src="https://cdn.jsdelivr.net/npm/[email protected]/es5/tex-mml-chtml.js"></script>
<script defer src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>




<!-- Scrolling Progress Bar -->
<script type="text/javascript">
/*
* This JavaScript code has been adapted from the article
* https://css-tricks.com/reading-position-indicator/ authored by Pankaj Parashar,
* published on the website https://css-tricks.com on the 7th of May, 2014.
* Couple of changes were made to the original code to make it compatible
* with the `al-foio` theme.
*/
const progressBar = $("#progress");
/*
* We set up the bar after all elements are done loading.
* In some cases, if the images in the page are larger than the intended
* size they'll have on the page, they'll be resized via CSS to accomodate
* the desired size. This mistake, however, breaks the computations as the
* scroll size is computed as soon as the elements finish loading.
* To account for this, a minimal delay was introduced before computing the
* values.
*/
window.onload = function () {
setTimeout(progressBarSetup, 50);
};
/*
* We set up the bar according to the browser.
* If the browser supports the progress element we use that.
* Otherwise, we resize the bar thru CSS styling
*/
function progressBarSetup() {
if ("max" in document.createElement("progress")) {
initializeProgressElement();
$(document).on("scroll", function() {
progressBar.attr({ value: getCurrentScrollPosition() });
});
$(window).on("resize", initializeProgressElement);
} else {
resizeProgressBar();
$(document).on("scroll", resizeProgressBar);
$(window).on("resize", resizeProgressBar);
}
}
/*
* The vertical scroll position is the same as the number of pixels that
* are hidden from view above the scrollable area. Thus, a value > 0 is
* how much the user has scrolled from the top
*/
function getCurrentScrollPosition() {
return $(window).scrollTop();
}

function initializeProgressElement() {
let navbarHeight = $("#navbar").outerHeight(true);
$("body").css({ "padding-top": navbarHeight });
$("progress-container").css({ "padding-top": navbarHeight });
progressBar.css({ top: navbarHeight });
progressBar.attr({
max: getDistanceToScroll(),
value: getCurrentScrollPosition(),
});
}
/*
* The offset between the html document height and the browser viewport
* height will be greater than zero if vertical scroll is possible.
* This is the distance the user can scroll
*/
function getDistanceToScroll() {
return $(document).height() - $(window).height();
}

function resizeProgressBar() {
progressBar.css({ width: getWidthPercentage() + "%" });
}
// The scroll ratio equals the percentage to resize the bar
function getWidthPercentage() {
return (getCurrentScrollPosition() / getDistanceToScroll()) * 100;
}
</script>

</body>
</html>
18 changes: 16 additions & 2 deletions _site/projects/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -130,8 +130,22 @@ <h1 class="post-title">Eklavya Projects</h1>
<a href="/projects/ApexCore/">
<div class="card hoverable">
<div class="card-body">
<h2 class="card-title text-wrap">ApexCore a Risc-V based CPU</h2>
<p class="card-text">Developing a Risc-V based soft processor IP compatible with AMD's Xilinx Boards.</p>
<h2 class="card-title text-wrap">ApexCore a RISC-V based CPU</h2>
<p class="card-text">Developing a RISC-V based soft processor IP compatible with AMD's Xilinx Boards.</p>
<div class="row ml-1 mr-1 p-0">
</div>
</div>
</div>
</a>
</div>
<!-- _includes/projects.html -->
<div class="grid-sizer"></div>
<div class="grid-item">
<a href="/projects/EMG/">
<div class="card hoverable">
<div class="card-body">
<h2 class="card-title text-wrap">EMG-Armband</h2>
<p class="card-text">Design a EMG Armband with Esp-32 and implement ML model on it to detect Hand Movements</p>
<div class="row ml-1 mr-1 p-0">
</div>
</div>
Expand Down
Binary file added assets/img/EMG.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading