Commit 9509b757 authored by Gleb Bulygin's avatar Gleb Bulygin

group2_site_update

parent d274265f
......@@ -20,10 +20,10 @@ video: machine2.mp4
# Tablet dispenser
<h2>The Idea</h2>
<p style="text-indent: 20px">After a small discussion, our group agreed on the effervescent vitamin C making-machine. The idea is simple: put a cup of water in the machine, push the button, receive a ready drink.</p>
<p><img src="src/picture1.jpg" style="width: 100%; border-radius: 10px"><legend>We did some sketching</legend></p>
<p><img src="src/sketching1.jpg" style="width: 100%; border-radius: 10px"></p>
<p><img src="src/sketching2.jpg" style="width: 100%; border-radius: 10px"><legend>And some discussion</legend></p>
<p><img src="src/paper_model.jpg" style="width: 100%; border-radius: 10px"><legend>And a paper model for better understanding of the geometry and dimensions</legend></p>
<p><img src="src/picture1.jpg" style="width: 80%; border-radius: 10px"><legend>We did some sketching</legend></p>
<p><img src="src/sketching1.jpg" style="width: 80%; border-radius: 10px"></p>
<p><img src="src/sketching2.jpg" style="width: 80%; border-radius: 10px"><legend>And some discussion</legend></p>
<p><img src="src/paper_model.jpg" style="width: 80%; border-radius: 10px"><legend>And a paper model for better understanding of the geometry and dimensions</legend></p>
<p>So, we made a short list of the parts of our machine and started to design them.</p>
<ul>
<li>Body - box, lasercut from 3mm MDF</li>
......@@ -36,8 +36,8 @@ video: machine2.mp4
<h2>Mechanical Parts</h2>
<p style="text-indent: 20px">We sketched the body of our machine in Autodesk Fusion360 and then we created a drawing in Inkscape using Tabbed box maker extension. It is not possible to create a complicated box at once, but it is possible to create several boxes and combine them in one drawing. At that point, we hadn't designed the dispenser, so all holes for it were cut after.
</p>
<p><img src="src/cut_settings.png" style="width: 100%; border-radius: 10px"><legend>Settings for the laser cutting on Epilog Fusion M2 40 (75W)</legend></p>
<p><img src="src/dispenser.png" style="width: 100%; border-radius: 10px"><legend>Rotating part to transfer the tablet</legend></p>
<p><img src="src/cut_settings.png" style="width: 80%; border-radius: 10px"><legend>Settings for the laser cutting on Epilog Fusion M2 40 (75W)</legend></p>
<p><img src="src/dispenser.png" style="width: 80%; border-radius: 10px"><legend>Rotating part to transfer the tablet</legend></p>
<p><img src="src/tube.jpg" style="width: 70%; border-radius: 10px"><legend>Tablet dispenser</legend></p>
<p><img src="src/front.jpg" style="width: 70%; border-radius: 10px"><legend>Front view</legend></p>
<video style="width: 100%"; controls loop muted>
......@@ -46,6 +46,57 @@ video: machine2.mp4
</video>
<p style="text-align: center">Quick test</p>
<p><img src="src/machine2.jpg" style="width: 100%; border-radius: 10px"><legend></legend></p>
<p><img src="src/machine1.jpg" style="width: 100%; border-radius: 10px"><legend></legend></p>
<p><img src="src/machine2.jpg" style="width: 80%; border-radius: 10px"><legend></legend></p>
<p><img src="src/machine1.jpg" style="width: 80%; border-radius: 10px"><legend></legend></p>
<h2>Code</h2>
<p>Programming is done in <b>Arduino IDE</b> as our microcontroller board is Arduino UNO. We did not used all the potential that Arduino UNO has, there is plenty of pins unused. VitaFab could be easily improved and capabilities expanded. There is plenty of space inside to add features. Device could be controlled over bluetooth or wi-fi, it could store information about amount of tablets, which were dropped or remind user about taking them once per day. Finally, it could have LCD screen with a clock and counter. In here we are leaving a lot of space for our future followers.</p>
<p>Let's explain the code. More detailed description might be find in Lucas <a href="http://fabacademy.org/2019/labs/oulu/students/lukasz-surazynski">documentation</a>.</p>
<img src="src/1Variables.png" style="width: 80%; border-radius: 10px"><caption><center>Variables and setup loop</center></caption><br>
<p>Servo motor and EEPROM libraries are imported. Then, two button pins are declared (one used to start whole procedure of making a drink, second one to check if cup holder is in correct place). Following variables are used with stepper motor driver, state of pins describes activation of steps and step direction. Sleep is additional feature in order to not draw current while stepper motor is idle.</p>
<p>In <i>void setup()</i> we are defining inputs and outputs. Inputs are our two buttons and outputs are used in order to control stepper motor driver.</p>
<img src="src/1Variables.png" style="width: 80%; border-radius: 10px"><caption><center>Main loop</center></caption><br>
<p>Main loop is very simple. First of all we are executing function, which check if cup holder is in start position. This will prevent any failures if user managed to stop device in middle of it operation. Then it waits for an interruption (button in this case) and executes second function, which is main functionality: moving cup to right position, load the tablet, drop it to the cup and return cup to its place. Drink is done at this point.</p>
<img src="src/2Main.png" style="width: 80%; border-radius: 10px"><caption><center>Self homing function</center></caption><br>
<p><i>checkSteps()</i> is very important function for whole operation. It assumes that user is <s>an idiot</s>. It is checking if button, which serves as our position sensor, is pushed. If it not, then it moves cup holder to the very left until it will be pushed. Self-homing operation assure that no one will break any walls.</p>
<img src="src/3CheckSteps.png" style="width: 80%; border-radius: 10px"><caption><center>Operating procedure 1/2</center></caption><br>
<p><i>runProcedure()</i> is main part of the code. It is responsible for main operation of VitaFab. It waits for interruption from the user. When button on the top is pushed, stepper motor is waking up. Then it moves for around 18 500 iterations, which is exactly needed to cover the distance required to drop the tablet. Finally, cup is reaching right side of the device and servo motor start to operate. First, from idle position (90 degrees) it loads the tablet) 0 degrees) and push it to the hole (180 degrees), where it drops. </p>
<img src="src/4RunProcedure1.png" style="width: 80%; border-radius: 10px"><caption><center>Operating procedure 2/2</center></caption><br>
<p>In the end, stepper motor driver reverse polarity and cup holder is coming back to the beginning position.</p>
<img src="src/4RunProcedure2.png" style="width: 80%; border-radius: 10px"><caption><center>Operating procedure 2/2</center></caption><br>
<h2>Problems and solutions</h2>
<p>The first problem we solved was on the mechanical design stage. We got the Idea of the box we want, but we had not determined the list of all electronic parts and their places on the machine. So, mounting holes for the stepper motor, servo, tablet dispenser, and Adruino Uno were cut on main body parts afterward. To do that properly we used center engraving setting on the laser cutter and precise marks on the MDF parts.</p>
<p>And the second problem was the auto-homing feature. The case was that, if at the beginning of the loop the cart is not at the origin point, it will hit the right wall. So, we put a button on the left wall and right after turning on the machine, the cart is automatically moved to the left until the button is pressed. Nice and simple solution, I think.</p>
<h2>Future development opportunities</h2>
<p>VitaFab machine can be further developed to be a drink automate by adding e.g. a mobile app that can be used to buy a drink.</p>
<p>The second option is a tablet dispensing machine integrated into a smart home environment. For example, it can put in a cup all the tablets person need to take and make a signal to remind to take the medicine. It can be a very useful machine for the living alone elderly.</p>
<h2>Design files</h2>
<p>Here's the link to download all the design files in one <a href="src/VitaFab_design_files/Vitafab_design_files.7z" download="" title="Download Vitafab_design_files.7z">archive</a></p>
<p>VitaFab_design_files.7z</p>
<ul>
<li>box-back.svg</li>
<li>inner top.svg</li>
<li>logo.jgp</li>
<li>logo.svg</li>
<li>machine big box.svg</li>
<li>servo-divider.svg</li>
<li>top part.svg</li>
</ul>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment