-
Charlotte Vandenbulcke authoredCharlotte Vandenbulcke authored
week08.html 22.23 KiB
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="GitLab Pages">
<meta name="description" content="Fab Academy documentation site for Charlotte Fab-C">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
<link rel="stylesheet" href="../assets/css/main.css" />
<title>Charlotte Fab-C - Fab Academy</title>
</head>
<body class="is-preload">
<!-- Wrapper -->
<div id="wrapper">
<!-- Main -->
<div id="main">
<div class="inner">
<!-- Header -->
<header id="header">
<a href="../index.html" class="logo"><strong>Charlotte - FabLab de Charleroi</strong> Fab Academy website</a>
<ul class="icons">
<li><a href="https://www.facebook.com/littlebelge" class="icon brands fa-facebook-f" target="_blank"><span class="label">Facebook</span></a></li>
<li><a href="https://www.instagram.com/little.belge/" class="icon brands fa-instagram" target="_blank"><span class="label">Instagram</span></a></li>
<li><a href="https://gitlab.fabcloud.org/charlotte-vandenbulcke" class="icon brands fa-gitlab" target="_blank"><span class="label">Gitlab</span></a></li>
</ul>
</header>
<!-- Section -->
<section id="banner">
<div class="content">
<header class="main">
<h2>8. Electronics Design</h2>
</header>
<section>
<h3>Hero shot</h3>
<span class="image object">
<img src="../images/current-hero-shot.jpg" alt="..." />
</span>
<br>
</section>
<hr>
<section>
<h3>Group assignment</h3>
<p>We were asked to observe the operation of a microcontroller circuit board.</p>
<p>For that, we used our Quentorres + our "blink" Arduino code + an Arduino "fade" code and we checked the measurements with our RIGOL DS1054 oscilloscope.</p>
<h4>RIGOL DS1054 oscilloscope</h4>
<span class="image object">
<img src="../images/oscilloscope.jpg" alt="..." />
</span>
<h5>Specifications</h5>
<table>
<tbody>
<tr>
<th scope="row">Memory</th>
<td>24 Mpts (divided by number of channels)</td>
</tr>
<tr>
<th scope="row">Sample rate</th>
<td>250 MS/s (4 channels active),<br>
500 MS/s (2 channels active), <br>
1 GS/s (1 channel active)</td>
</tr>
<tr>
<th scope="row">Display</th>
<td>7" TFT, 800x480 pixels 160,000 colors</td>
</tr>
<tr>
<th scope="row">Input impedance</th>
<td>1 MΩ</td>
</tr>
<tr>
<th scope="row">Number of channels</th>
<td>4</td>
</tr>
<tr>
<th scope="row">Horizontal scale (input)</th>
<td>5 ns/div - 50s/div</td>
</tr>
<tr>
<th scope="row">Vertical Sensitivity (input)</th>
<td>1 mV/div - 10 V/div</td>
</tr>
<tr>
<th scope="row">A/D converter</th>
<td>8 bits resolution</td>
</tr>
<tr>
<th scope="row">Maximum voltage</th>
<td>CAT I 300 Vrms, CAT II 100 Vrms, transient overvoltage 100Vpk</td>
</tr>
<tr>
<th scope="row">Rise Time</th>
<td>DS1104Z: 3.5 ns<br>
DS1074Z: 5 ns<br>
DS1054Z: 7 ns</td>
</tr>
<tr>
<th scope="row">Probe support</th>
<td>0.1x - 1000x</td>
</tr>
<tr>
<th scope="row">Measured noise value</th>
<td>1 mVpp (at 100ms,1mV/div, record length: 3Mpts)</td>
</tr>
<tr>
<th scope="row">Connections</th>
<td>USB 2.0 type A, USB 2.0 type B, LAN</td>
</tr>
<tr>
<th scope="row">Weight (without box)</th>
<td>3.2 Kg</td>
</tr>
<tr>
<th scope="row">Dimensions</th>
<td>313 x 161 x 122 mm</td>
</tr>
</tbody>
</table>
<h4>Coding the Quentorres</h4>
<h5>The Arduino Blink Code</h5>
<pre>
<code>
const int ledPin = 26;
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(ledPin, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(ledPin, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(ledPin, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
</code>
</pre>
<h5>The Arduino Fade Code</h5>
<pre>
<code>
int led = 26; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by
// the setup routine runs once when you press reset:
void setup() {
// declare pin to be an output:
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
// set the brightness
analogWrite(led, brightness);
// change the brightness for next time through the loop:
brightness = brightness + fadeAmount;
// reverse the direction of the fading at the ends of the fade:
if (brightness <= 0 || brightness >= 255) {
fadeAmount = -fadeAmount;
}
// wait for 100 milliseconds to see the dimming effect
delay(100);
}
</code>
</pre>
<h4>Microcontroller observation</h4>
<p>The oscilloscope displayed different variations when we launched the blink program and then the fade program.</p>
<span class="image object">
<img src="../images/blink-oscilloscope.jpg" alt="..." />
</span>
<span class="image object">
<img src="../images/blink-oscilloscope-1s-2s.jpg" alt="..." />
</span>
<span class="image object">
<img src="../images/fade-oscilloscope.jpg" alt="..." />
</span>
<span class="object">
<video width="600" height="300" controls>
<source src="../images/fade-oscilloscope.mp4" type="video/mp4">
</video>
</span>
<br>
<p>Link to our <a href="https://fabacademy.org/2024/labs/fabc/group-assignment/week008/" target="_blank">Group page</a></p>
</section>
<hr>
<section>
<h3>Individual assignment</h3>
<h4>Discovering Kicad</h4>
<p>On our previous electronics assignments, we've already had the design files ready to be used (thanks to Quentin and Adrian).</p>
<p>This week it was our turn to do everything and for that we took our firsts steps in the "world of electonics board design" by learning to use the <a href="https://www.kicad.org/" target="_blank">Kicad software</a>.</p>
<p>Our instructor (Sylvain Denis) taught us to install the program and the different libraries (symbols and footprints) that already contain all the components we will use during the Fab Academy.</p>
<h4>My Micro-Cat-Controller</h4>
<p>To create my electronics board, we chose some components that would be useful for my final project :</p>
<p>
<ul>
<li>A distance detector</li>
<li>A LED ring</li>
<li>A Seeed Studio</li>
</ul>
</p>
<span class="image object">
<img src="../images/...jpg" alt="..." />
</span>
<h5>Design</h5>
<p>Well, no surprise. I wanted to make a cat ! XD</p>
<p>To find out the shape of the board and the components' placement, I first tried to draw everything on paper but then I came with the idea to draw the components on a transparent plastic A4 sheets, cut them out and place all the pieces manually like solving a puzzle.</p>
<span class="image object">
<img src="../images/first-doodles.jpg" alt="..." />
</span>
<span class="image object">
<img src="../images/components-drawings.jpg" alt="..." />
</span>
<p>Then I took another transparent plastic sheet and covered the pieces to draw my "cat shape" ideas for the board.</p>
<span class="image object">
<img src="../images/cathead-shape-ideas.jpg" alt="..." />
</span>
<span class="image object">
<img src="../images/paw-shape-ideas.jpg" alt="..." />
</span>
<p>It really helped me to visualize how to place every piece of the complete board and how it would look like at the end.</p>
<p>It will result on a cat with an open luminar mouth requesting food !</p>
<span class="image object">
<img src="../images/cat-head-final-idea.jpg" alt="..." />
</span>
<p>I first drew the cat head myself in Kicad but it didn't work out because the lines weren't closed all together so the GBR edges cut file was empty.</p>
<span class="image object">
<img src="../images/catPCBv1.jpg" alt="..." />
</span>
<p>I searched after a solution on internet and found a <a href="https://www.youtube.com/watch?v=rhqlP8CRct0&ab_channel=StuartPatterso" target="_blank">video tutorial</a> explaining how to import a complexe file made in Inkscape to use it as edge cut in Kicad.</p>
<span class="image object">
<img src="../images/...jpg" alt="..." />
</span>
<p>I chose on internet simple cat head silhouettes and vectorized one in Inkscape, following the instruction on the video tutorial.</p>
<span class="image object">
<img src="../images/...jpg" alt="..." />
</span>
<p>
<blockquote>
Funny thing is that I unintentionally placed the routes to look like a real cat face, with closed mouth and a nose (created by the Seeed Studio) !
</blockquote>
</p>
<p>I generated the GBR files by clicking on "trace" in Kicad and then converted them in PNG images using the great <a href="https://quentinbolsee.pages.cba.mit.edu/gerber2img/" target="_blank">gbr2img program</a> made by Quentin Bolsee (thanks a lot ! <3).</p>
<span class="image object">
<img src="../images/...jpg" alt="..." />
</span>
<p>
<blockquote>
I had to change my cat head shape because the width was too large for the copper plate (100mm x 100mm)... So back in Inkscape I resized it to fit 80mm width, which was perfect without changing the whole board too much.
</blockquote>
</p>
<h5>Milling</h5>
<p>The milling part was simple.</p>
<p>After generating the G-Code of the interior file and the traces file in Mods with the right CNC parameters, I sent them on the CNC program.</p>
<p>After fixing the plate and the tool, we made the z-zero and launched the auto-leveling to mostly make sure that the shape really fits on the plate.</p>
<span class="image object">
<img src="../images/...jpg" alt="..." />
</span>
<p>Time to launch the routes tracing. It took approximately 25min.</p>
<p>Next step was to quickly clean the plate with our mini duster, change the tool, check the z-zero again and launch the cutting.</p>
<p>At the end, quick dusting, plate water cleaning (with soap and a toothbrush) + drying... and <strong>TADAAAA</strong> : a beautiful meow-cat-controller ! YAY :D <3</p>
<span class="image object">
<img src="../images/cat-controller-milled.jpg" alt="..." />
</span>
<h5>Soldering</h5>
<p></p>
<h5>Functioning</h5>
<p></p>
</section>
<hr>
<section>
<h3>My journey</h3>
<p></p>
<span class="image object">
<img src="../images/...jpg" alt="..." />
</span>
</section>
<hr>
<section>
<h3>Files and resources</h3>
<p><strong>My files</strong></p>
<ul>
<li><a href="../files/cat-controller.kicad_pro" target="_blank">Cat-Controller Kicad-Pro file</a></li>
<li><a href="../files/cat-controller.kicad_pcb" target="_blank">Cat-Controller Kicad-PCB file</li>
<li><a href="../files/cat-controller-v2.kicad_pcb" target="_blank">Cat-Controller v2 Kicad-PCB file</li>
<li><a href="../files/cat-controller.kicad_sch" target="_blank">Cat-Controller Kicad-Schematic file</li>
<li><a href="../files/cathead.svg" target="_blank">Cat-Controller edge-cuts SVG file</a></li>
<li><a href="../files/cathead2.svg" target="_blank">Cat-Controller v2 edge-cuts SVG file</a></li>
<li><a href="../files/cathead.dxf" target="_blank">Cat-Controller edge-cuts DXF file</a></li>
<li><a href="../files/cat-interior.png" target="_blank">Cat-Controller Interior PNG file</a></li>
<li><a href="../files/cat-interior.png.nc" target="_blank">Cat-Controller Interior G-Code file</a></li>
<li><a href="../files/cat-traces.png" target="_blank">Cat-Controller Traces PNG file</a></li>
<li><a href="../files/cat-traces.png.nc" target="_blank">Cat-Controller Traces G-Code file</a></li>
<li><a href="../files/cat-interior2.png" target="_blank">Cat-Controller Interior v2 PNG file</a></li>
<li><a href="../files/cat-interior2.png.nc" target="_blank">Cat-Controller Interior v2 G-Code file</a></li>
<li><a href="../files/cat-traces2.png" target="_blank">Cat-Controller Traces v2 PNG file</a></li>
<li><a href="../files/cat-traces2.png.nc" target="_blank">Cat-Controller Traces v2 G-Code file</a></li>
</ul>
<p><strong>Resources</strong></p>
<ul>
<li><a href="https://www.kicad.org/" target="_blank">Kicad website</a></li>
<li><a href="https://www.youtube.com/watch?v=rhqlP8CRct0&ab_channel=StuartPatterso" target="_blank">English tutorial : Complex Edge Cuts in KiCAD 5.x with Inkscape</a></li>
<li><a href="https://quentinbolsee.pages.cba.mit.edu/gerber2img/" target="_blank">Quentin Bolsee's gerber2img program page</a></li>
<li><a href="https://fabacademy.org/2024/labs/fabc/" target="_blank">Our group page</a></li>
</ul>
</section>
</div>
</section>
</div>
</div>
<!-- Sidebar -->
<div id="sidebar">
<div class="inner">
<!-- Menu -->
<nav id="menu">
<header class="major">
<h2>Menu</h2>
</header>
<ul>
<li><a href="../index.html">Homepage</a></li>
<li><a href="../assignments.html">Assignments</a></li>
<li>
<span class="opener">Week per week</span>
<ul>
<li><a href="../assignments/week01.html">1. Project Management</a></li>
<li><a href="../assignments/week02.html">2. Computer Aided Design</a></li>
<li><a href="../assignments/week03.html">3. Computer Controlled Cutting</a></li>
<li><a href="../assignments/week04.html">4. Electronics Production</a></li>
<li><a href="../assignments/week05.html">5. 3D Scanning And Printing</a></li>
<li><a href="../assignments/week06.html">6. Embedded Programming</a></li>
<li><a href="../assignments/week07.html">7. Computer Controlled Machining</a></li>
<li><a href="../assignments/week08.html">8. Electronics Design</a></li>
<li><a href="../assignments/week09.html">9. Output Devices</a></li>
<li><a href="../assignments/week10.html">10. Mechanical Design And Machine Design</a></li>
<li><a href="../assignments/week11.html">11. Input Devices</a></li>
<li><a href="../assignments/week12.html">12. Molding and Casting</a></li>
<li><a href="../assignments/week13.html">13. Networking And Communications</a></li>
<li><a href="../assignments/week14.html">14. Interface And Application Programming</a></li>
<li><a href="../assignments/week15.html">15. Wildcard Week</a></li>
<li><a href="../assignments/week16.html">16. Applications And Implications</a></li>
<li><a href="../assignments/week17.html">17. Invention, Intellectual Property And Income</a></li>
<li><a href="../assignments/week18.html">18. Project Development</a></li>
</ul>
</li>
<li><a href="../final-project.html">Final Project</a></li>
<li><a href="../about.html">About Me</a></li>
</nav>
<!-- Footer -->
<footer id="footer">
<p class="copyright">© Charlotte - FabLab de Charleroi. Fab Academy 2024. All rights reserved. Design: <a href="https://html5up.net">HTML5 UP</a>.</p>
</footer>
</div>
</div>
</div>
<!-- Scripts -->
<script src="../assets/js/jquery.min.js"></script>
<script src="../assets/js/browser.min.js"></script>
<script src="../assets/js/breakpoints.min.js"></script>
<script src="../assets/js/util.js"></script>
<script src="../assets/js/main.js"></script>
</body>
</html>