tag:blogger.com,1999:blog-40615157763360884362024-03-16T11:53:07.630-07:00Dzl's Evil Genius LairGeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.comBlogger125125tag:blogger.com,1999:blog-4061515776336088436.post-42148844488893894532018-05-19T03:11:00.000-07:002018-05-19T03:11:33.979-07:00My blog has moved...<br />
<h2>
Please visit my new blog at <a href="http://blog.dzl.dk/">blog.dzl.dk</a></h2>
<br />
This site will remain here as historical reference. Some links may break over time and I will try to fix them if I find out. I have transferred as much content to the new blog as possible. See you over there :)<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com1tag:blogger.com,1999:blog-4061515776336088436.post-89072731115111252242016-01-27T11:15:00.001-08:002016-01-27T11:15:51.972-08:00Hello Dzl, where are you?Hi all.<br />
<br />
In case you wonder why I haven't posted anything lately, then it is because I do most of my activities at FabLabRUC these days.<br />
<br />
Check it out: <a href="http://fablab.ruc.dk/">FabLabRUC</a>GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com2tag:blogger.com,1999:blog-4061515776336088436.post-75489195454844444702015-02-02T14:39:00.002-08:002015-02-02T14:39:44.090-08:00Electronic scale .. just because..Bought a bunch of stuff on Ebay, here among: HX711 strain gauge A/D converters, 40Kg. load cells, 2,8" TFT touch display Arduino shields.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikNQhMlPOL-J8Hhccp3kMQg18UdHMTdCLwCg1kwQwIGah_LNvE9BtK7n_OqLebFBoX4qmgvCeT8M9CnV_dW3ywlqkgWnGJRLfLwlyVMJ1kLGB2mFSoVpRAfM-uclG-DWxJXhjPDJ3rWg8/s1600/Stuffs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikNQhMlPOL-J8Hhccp3kMQg18UdHMTdCLwCg1kwQwIGah_LNvE9BtK7n_OqLebFBoX4qmgvCeT8M9CnV_dW3ywlqkgWnGJRLfLwlyVMJ1kLGB2mFSoVpRAfM-uclG-DWxJXhjPDJ3rWg8/s1600/Stuffs.jpg" height="284" width="320" /></a></div>
<br />
<br />
These items were all bought for different projects but screamed to be put together into a Arduino powered scale:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyrj5miKkp2CQFEVjiHcXvDPdrNMJj5SsPG5ia7PXLWlWbaQBx9Rd7HpqDB82OHy2dG8ok5jGqwgZZwaRY882j584IoXixMlVx-JTDwNSHX9cDhXYrxtGuzFwP0CjlXax9gnMP5vgXn3E/s1600/2015-01-08+12.15.50-2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiyrj5miKkp2CQFEVjiHcXvDPdrNMJj5SsPG5ia7PXLWlWbaQBx9Rd7HpqDB82OHy2dG8ok5jGqwgZZwaRY882j584IoXixMlVx-JTDwNSHX9cDhXYrxtGuzFwP0CjlXax9gnMP5vgXn3E/s1600/2015-01-08+12.15.50-2.jpg" height="180" width="320" /></a></div>
All components were just mounted on pieces of CNC cut plywood:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZSFD0x0h4oYv7RHplI0AuB5PWdOhSqtm6yx0XY6yTIWidQdoKc806v8IUcwakWra81Be0lhMOQc5LC-nHUpQyHmzf1BQFtR2FLbKRV26YqUW4SVvIIXfD-rEpoduPCdzbDFB6A1PENpI/s1600/2015-01-08+12.18.08.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZSFD0x0h4oYv7RHplI0AuB5PWdOhSqtm6yx0XY6yTIWidQdoKc806v8IUcwakWra81Be0lhMOQc5LC-nHUpQyHmzf1BQFtR2FLbKRV26YqUW4SVvIIXfD-rEpoduPCdzbDFB6A1PENpI/s1600/2015-01-08+12.18.08.jpg" height="180" width="320" /></a></div>
With this set-up I will be experimenting with different weight related issues such as:<br />
counting items, mediated chemical recepies, food monitoring, paint usage ...<br />
<br />
More to come on this.<br />
<br />
<br />
<a href="https://dl.dropboxusercontent.com/u/2248531/blog/scale.zip">Arduino source</a> (as is!) for a couple of experimentsGeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com1tag:blogger.com,1999:blog-4061515776336088436.post-7342960431804728842015-02-02T13:49:00.001-08:002015-02-02T13:50:33.820-08:00Induction heater<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL3BAQCMjGhy0VC0v8vS6fLgm3Gu0n3XdocU8h5y3bGs4RTnoSYy1KDgNs9S1SmzX2xdaYuuDsURjivk-oaPMOcgILY1YIzPVy2yc42WODmeBGAlDK25F7PN8n4vCLylpvBgZ_EYX8kAk/s1600/20150202_155021.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL3BAQCMjGhy0VC0v8vS6fLgm3Gu0n3XdocU8h5y3bGs4RTnoSYy1KDgNs9S1SmzX2xdaYuuDsURjivk-oaPMOcgILY1YIzPVy2yc42WODmeBGAlDK25F7PN8n4vCLylpvBgZ_EYX8kAk/s1600/20150202_155021.JPG" height="180" width="320" /></a></div>
<br />
At <a href="http://fablab.ruc.dk/">FabLabRUC</a> we have been experimenting with differnt kinds of metal casting. One of the methods is "lost PLA casting" where a 3D printed <a href="http://en.wikipedia.org/wiki/Polylactic_acid">PLA</a> model is covered with plaster and made to melt away when molten metal is poured over it.<br />
<div>
Problem is that the metal (aluminium in this case) cools off too quickly when it contacts the plastic.</div>
<div>
I wanted to find a method to keep the metal molten while inside the mold.</div>
<div>
One solution seemed to be using <a href="http://en.wikipedia.org/wiki/Induction_heating">induction heating</a>.</div>
<div>
A lot of people on the Internet seemed to have success with a simple induction heater circuit so decided to build one inspired by these:</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXol_xc6ehNW8yK3qb89o10-rWTiZ-JaZHWGE4RNxQubiSfQTEehhysnrL3aioSFNGVDx8GUPyh3fA51VPdIBbXoZSOa0Lfx0rOMreM3Kl45MTu5TrvyihBQNj5lT1qfO3BF6QHGSPXpQ/s1600/IMG_20150202_223707.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXol_xc6ehNW8yK3qb89o10-rWTiZ-JaZHWGE4RNxQubiSfQTEehhysnrL3aioSFNGVDx8GUPyh3fA51VPdIBbXoZSOa0Lfx0rOMreM3Kl45MTu5TrvyihBQNj5lT1qfO3BF6QHGSPXpQ/s1600/IMG_20150202_223707.jpg" height="240" width="320" /></a></div>
<div>
A <a href="https://www.facebook.com/video.php?v=815772378478176">video</a> (Danish) of an early prototype from FabLabRUC:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://www.facebook.com/video.php?v=815772378478176"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjY8M4lyiKWMr9OqFoJlIlqasmxYY4LieY9AMgH3kROvaxd3metQpc_bzz2xmc24hWasROAzX2a8PikMyKdCUdBkNj9R-hOL1Fq5e8aKYgQI6LvnRA34lj0jXyPFrz6QtZbJnMYyFjx5v8/s1600/safe_image.jpg" height="179" width="320" /></a></div>
<div>
More about this heater and the casting process later..</div>
<div>
<br /></div>
<div>
<br />
<br /></div>
GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com0tag:blogger.com,1999:blog-4061515776336088436.post-75013982133720471852014-11-13T17:44:00.000-08:002014-11-13T17:44:35.058-08:00Our stab at a line follower robotFound this old post that I somehow forgot to publish:<br />
<br />
I and a couple of people from <a href="http://illutron.dk/">Illutron</a> are running three workshops about robotics. One of the projects we are presenting is a line follower robot. We have chosen this since making a robot capable of following a black line on a piece of paper presents a number of good hardware and software challenges for the worksop participants.<br />
This is our first version the hardware.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5KYZwDUyrl3egFWLEnsbU38y15Bwkt0UafUvJhNu_QVRaEQ9uP8Dsu4tMDKE3Gl_zPd4QbKnRVuatJ7DR3Fn6nwxGjQf3Dx82T8llaV1pCe_ipEM6fqZm94zxZTmxz7Xuijb7zHf8XMI/s1600/IMG_20140120_101705.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg5KYZwDUyrl3egFWLEnsbU38y15Bwkt0UafUvJhNu_QVRaEQ9uP8Dsu4tMDKE3Gl_zPd4QbKnRVuatJ7DR3Fn6nwxGjQf3Dx82T8llaV1pCe_ipEM6fqZm94zxZTmxz7Xuijb7zHf8XMI/s1600/IMG_20140120_101705.jpg" height="240" width="320" /></a></div>
The robot is laser cut from 4mm HDF board and consists of a flat chassis driven by two <a href="http://www.instructables.com/id/How-to-hack-a-servo-for-continuous-rotation-Towe/">hacked servos</a>. A top structure is added to carry batteries and various sensors.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6-r-OeL6eAY88MtTk-JMfrZL8S2juStZ-yAAYWe5VK1md13qNN7_BdDJmGvPYvasK4xJSjHEU5tXiJpGrAZUalg4LQ16BfMt1YzMiFJJS-5U2J-kWevM0if-a9bTSq5-cCl-_TI8qBtA/s1600/IMG_20140120_101839.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6-r-OeL6eAY88MtTk-JMfrZL8S2juStZ-yAAYWe5VK1md13qNN7_BdDJmGvPYvasK4xJSjHEU5tXiJpGrAZUalg4LQ16BfMt1YzMiFJJS-5U2J-kWevM0if-a9bTSq5-cCl-_TI8qBtA/s1600/IMG_20140120_101839.jpg" height="240" width="320" /></a></div>
A curved structure at the back acts as the 3'rd wheel.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjat9HvhgfXy3pnDhMuVEU6UO4sd5_Fqpp3gaLU-NV2YhEKj_9FmgrwdgDVeOApF2z0vEDSSWXq2SSfSDZSmj1u8e9f-nZEHaOI0ASdXwgkYF2HjAmlgpxUKeb8WlKXJgzgnTMKy6Tld6M/s1600/IMG_20140120_102505.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjat9HvhgfXy3pnDhMuVEU6UO4sd5_Fqpp3gaLU-NV2YhEKj_9FmgrwdgDVeOApF2z0vEDSSWXq2SSfSDZSmj1u8e9f-nZEHaOI0ASdXwgkYF2HjAmlgpxUKeb8WlKXJgzgnTMKy6Tld6M/s1600/IMG_20140120_102505.jpg" height="240" width="320" /></a></div>
Good traction is achieved by gluing sand paper to the wheels.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoxmLy1jIqePCVYzfZF1hcBDhQNF9S9yq-zr355A7x_DwJNjqrCONxVwX9AOP8CsWBZ3eXJ5qgUtsxd8po6EYnuGGUe7SLHxP0rB3j_QkSHO3hXPRJKaM2Gqlbak2zqfue_z5TEg1erCs/s1600/sensor.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoxmLy1jIqePCVYzfZF1hcBDhQNF9S9yq-zr355A7x_DwJNjqrCONxVwX9AOP8CsWBZ3eXJ5qgUtsxd8po6EYnuGGUe7SLHxP0rB3j_QkSHO3hXPRJKaM2Gqlbak2zqfue_z5TEg1erCs/s1600/sensor.jpg" height="185" width="320" /></a></div>
The sensor is made from layered HDF board.<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com0tag:blogger.com,1999:blog-4061515776336088436.post-47038599784584892392014-11-13T12:07:00.001-08:002014-11-13T12:07:23.345-08:00Minimalistic APRS transponder beaten by the internetWhen starting the minimalistic APRS transponder project the goal was to make a semi-disposable APRS transponder costing less than 28 Euro (~35USD).<br />
After spending many nights designing a VHF transmitter from cheap easily obtainable parts the price landed around (for the transmitter) 13.5 Euro (16.75 USD). This was not including about 1 hour of assembly time. All seem good but then I found <a href="http://dorji.com/docs/data/DRA818V.pdf">this module</a> on the Internet for 11.12 Euro, including shipping. Not only was it cheaper than I could ever build something myself but it was also a fully programmable VHF tranceiver and had 1W output.<br />
I have now decided to base my APRS tranceiver around this module and use the left over money(!) on a more powerful processor.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwR6lDqFWb5vnVkhYQKy_VlGWTXP1ftoFJk77CpgKnmAGDd7gHMYQmYWnedV6IsqOeFBbQDEPGj4bC5TRdTUAZLPiXo34EOlF551oJehcUByUUlPhecLNE9hlu1D0-BYeeZG7V1VnCoww/s1600/2014-11-13+20.11.17.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="180" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwR6lDqFWb5vnVkhYQKy_VlGWTXP1ftoFJk77CpgKnmAGDd7gHMYQmYWnedV6IsqOeFBbQDEPGj4bC5TRdTUAZLPiXo34EOlF551oJehcUByUUlPhecLNE9hlu1D0-BYeeZG7V1VnCoww/s320/2014-11-13+20.11.17.jpg" width="320" /></a></div>
<br />
<br />
Here is a picture of my initial prototype. Schematic and source follow shortly.GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com0tag:blogger.com,1999:blog-4061515776336088436.post-64331613631949586872014-11-07T08:56:00.001-08:002014-12-17T14:08:51.761-08:00APRS transponder now with 1W output<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOC-p80cLmARq964eOdxGjsIV50ivJg5xBF2MxpY_b8hmilbf2GOd1vMNjWAmAKlZ-4UBoWkdYrCxG2jBBP6c67FMFjLxAjhMsTGk-UDKDFIwEtWTtlgK5oSdxS3yIy5t_stnovwhNj4E/s1600/2014-11-04+22.09.07.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOC-p80cLmARq964eOdxGjsIV50ivJg5xBF2MxpY_b8hmilbf2GOd1vMNjWAmAKlZ-4UBoWkdYrCxG2jBBP6c67FMFjLxAjhMsTGk-UDKDFIwEtWTtlgK5oSdxS3yIy5t_stnovwhNj4E/s1600/2014-11-04+22.09.07.jpg" height="180" width="320" /></a></div>
<br />
Did some more work on the <a href="http://dzlsevilgeniuslair.blogspot.dk/2014/10/minimalistic-aprs-transponder.html">minimalistic APRS transponder</a>. Made a test circuit board that allowed for adjusting component values. It now output 1Watt at 7.2V<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiajjyqi6-OL8Y0TNVRYQVrm42lsjbhGYOWxDRYSE4sb5lqTTTjKQTsYodZtNep6_QgYIpTiSyptiaoZDeFMesq77h2OyliH8z76FtoOB6kCh0SXK4vnYYmigbqqUT-JtcDjraIkKYww_s/s1600/aprs_nano2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiajjyqi6-OL8Y0TNVRYQVrm42lsjbhGYOWxDRYSE4sb5lqTTTjKQTsYodZtNep6_QgYIpTiSyptiaoZDeFMesq77h2OyliH8z76FtoOB6kCh0SXK4vnYYmigbqqUT-JtcDjraIkKYww_s/s1600/aprs_nano2.PNG" height="180" width="320" /></a></div>
<span style="color: red;">UPDATE: Some pins have changed so this schematic is NOT compatible with the code posted earlier</span><br />
<span style="color: red;">Updated code </span><a href="https://dl.dropboxusercontent.com/u/2248531/blog/tinyaprs4_hw2.zip">HERE</a><br />
Added a voltage regulator for 2LiPo cell operation.<br />
Here is a <a href="https://www.youtube.com/watch?v=O3en0f3-I5w&feature=youtu.be">quick video</a> of my test setup transmitting 1W.GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com1tag:blogger.com,1999:blog-4061515776336088436.post-11672770006971351632014-10-28T15:28:00.002-07:002014-10-28T15:31:30.094-07:00Tone/DTMF detector library for ArduinoWas playing with <a href="http://www.youtube.com/watch?v=56PvtAqacz8">some cheap radios</a> and decided that the keypad DTMF tones could be used for remote control.<br />
I had some old source that detected touch tones using a AVR microcontroller and decided to convert it for Arduino.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSmTIiZD8LSbIlacA3sqxwNYrz1CLs0_M_9pCpaPUkcUu2fbXhVKvlBhFD9sWC_1EUb0jaTY0aIsywa8Y7eYFb73NT_Jtz3wiEyXQocJqagBBLb1zc_cVeSkPP-Zw1R7g8ck99GbYglXM/s1600/connect.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSmTIiZD8LSbIlacA3sqxwNYrz1CLs0_M_9pCpaPUkcUu2fbXhVKvlBhFD9sWC_1EUb0jaTY0aIsywa8Y7eYFb73NT_Jtz3wiEyXQocJqagBBLb1zc_cVeSkPP-Zw1R7g8ck99GbYglXM/s1600/connect.JPG" height="279" width="320" /></a></div>
<br />
This resulted in a library that detect audio tones played into any Arduino pin.<br />
The audio is first clipped to a 1-bit signal (played loudly into a digital pin) then sampled at 10kHz.<br />
256 1-bit samples (25.6mS) can then be analyzed for the content of one or more audio tones.<br />
The analyzer uses a crude 1-bit <a href="http://en.wikipedia.org/wiki/Discrete_Fourier_transform">DFT</a> but works surprisingly well at detecting multible tones such as DTMF or guitar plucks.<br />
The result can be presented as either a DTMF symbol or approximate signal strength for any frequency analyzed (up to 5kHz).<br />
<br />
Here is the <a href="https://dl.dropboxusercontent.com/u/2248531/blog/tonedetect.zip">library for now</a> (will move to github).<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com2tag:blogger.com,1999:blog-4061515776336088436.post-31557744523562864172014-10-28T13:15:00.001-07:002014-10-28T13:15:35.439-07:00Magnetic levitationSome students wanted to build a toothbrush holder that floated a toothbrush in mid air to avoid contamination.<br />
I build a prototype to see if it was possible to implement the control system in software.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirJgzEtNvb-sDwVpTfWIT5is2U_56HuXGtQ5XZctfSRQnkbMdGdP_2GA8prDG236XVmxkpvfNSKvLh0DmdcJlbfisa4R5NgduO9SpOh0bqGybOgccVg-vz-O1q2oQ1ixLqRd9gIhh9CiE/s1600/2014-10-16+13.44.20.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEirJgzEtNvb-sDwVpTfWIT5is2U_56HuXGtQ5XZctfSRQnkbMdGdP_2GA8prDG236XVmxkpvfNSKvLh0DmdcJlbfisa4R5NgduO9SpOh0bqGybOgccVg-vz-O1q2oQ1ixLqRd9gIhh9CiE/s1600/2014-10-16+13.44.20.jpg" height="180" width="320" /></a></div>
This project allow a small permanent magnet to be levitated by a electro magnet.<br />
<a href="http://http//en.wikipedia.org/wiki/Magnetic_levitation">Since static passive magnetic levitation is not possible</a> a <a href="http://http//en.wikipedia.org/wiki/Hall_effect">HALL effect sensor</a><br />
is used to constantly regulate the magnetic field.<br />
To achieve stability a software based <a href="http://en.wikipedia.org/wiki/PID_controller">PID controller</a> is used.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr2p91_ndVwwrEKNxekAwkRWeFUp5ugBExBsX-pB0D_qy6EJgV13cLf_uuO60UjElUlPx0NDQV6ZkK3dzhrDO94Z3q0rOxIY51Qe_Felfsb13k_8rEZ0RScUDB3ybNqJAlzo97ptZPVvw/s1600/schematic.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhr2p91_ndVwwrEKNxekAwkRWeFUp5ugBExBsX-pB0D_qy6EJgV13cLf_uuO60UjElUlPx0NDQV6ZkK3dzhrDO94Z3q0rOxIY51Qe_Felfsb13k_8rEZ0RScUDB3ybNqJAlzo97ptZPVvw/s1600/schematic.JPG" height="204" width="320" /></a></div>
5 potentiometers is used to control the PID parameters.<br />
<a href="https://dl.dropboxusercontent.com/u/2248531/maglev.zip">This is the Arduino code for the project</a><br />
<div>
<br /></div>
GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com3tag:blogger.com,1999:blog-4061515776336088436.post-16166241656013785412014-10-28T12:47:00.001-07:002014-12-17T14:04:10.147-08:00Minimalistic APRS transponderAfter working on a High altitude Balloon project I got interested in <a href="http://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System">APRS</a>.<br />
APRS is basically a radio amateur driven network that among other things lets you broadcast your position worldwide on VHF radio.<br />
For out project we used this <a href="http://www.byonics.com/microtrak/mt300.php">APRS transponder</a> to keep track of the balloon.<br />
Mostly for the challenge I decided to build a really small and inexpensive APRS tracker you wouldn't be too sad to loose.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXuBpktXBzGEfGkH7URWmRiw6e_XIykCva1ON7coxK61a-1Xo74XrDMLAV_zBQEOfcVSiXaOkNoaHrSKXPze7EOQSRnqJNpBXlATdOP5wsMLXx8jEWaIuYJzqJ9tyu81DVqjgbus07MZo/s1600/aprs_nano.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXuBpktXBzGEfGkH7URWmRiw6e_XIykCva1ON7coxK61a-1Xo74XrDMLAV_zBQEOfcVSiXaOkNoaHrSKXPze7EOQSRnqJNpBXlATdOP5wsMLXx8jEWaIuYJzqJ9tyu81DVqjgbus07MZo/s1600/aprs_nano.JPG" height="195" width="320" /></a></div>
<br />
<span style="color: red;">UPDATE: </span><span style="color: red;">The example code uses a ATTINY85. Change to ATTINY45 in AtmelStudio if using this chip.</span><br />
<br />
<span id="goog_1165401704"></span><span id="goog_1165401705"></span>I used a <a href="http://www.onsemi.com/pub/Collateral/FS6377-D.PDF">FS6377</a> integrated clock synthesizer as the VHF transmitter. This chip is I2C programmable and is able to generate 144.8MHz (or 144.39MHz for US) from a 20MHz crystal.<br />
The FS6377 does not have a modulation input but I was able to modulate the crystal oscillator using a simple variable capacitance diode.<br />
I chose the ATTINY85 microcontroller form Atmel because it is cheap and available in a really small package.<br />
The <a href="http://en.wikipedia.org/wiki/Bell_202_modem">BELL202</a> modem signal needed for APRS is synthesized inside the ATTINY85 microcontroller and output as a PWM signal.<br />
The frequency of the modem tones need to be very precise and since the internal clock is not very accurate I chose to generate a 10MHz clock frequency externally. It is possible to tune the internal clock in software to gain an extra I/O pin but I didn't need it here.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc7G0ZfK4djmGjHLeFdOU3KwKbIoooWBk1y1acBjcRqxEwRa04luv0Y-nkCUDRqJBKFNNFDacTLnhfOruvmAXI3piJg4McQo3LtGVBwch-5Y4Tw15lsMias1hdC_7sC4-m7Wox8KUIGfI/s1600/IMG_20141025_183748.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhc7G0ZfK4djmGjHLeFdOU3KwKbIoooWBk1y1acBjcRqxEwRa04luv0Y-nkCUDRqJBKFNNFDacTLnhfOruvmAXI3piJg4McQo3LtGVBwch-5Y4Tw15lsMias1hdC_7sC4-m7Wox8KUIGfI/s1600/IMG_20141025_183748.jpg" height="240" width="320" /></a></div>
<br />
<br />
The transponder really show potential to miniaturized. The transmit power is around 30mW enough for long range if transmitting in line of sight.<br />
<br />
The project is heavily inspired by the <a href="https://code.google.com/p/trackuino/">Trackduino project</a>.<br />
<br />
Here is <a href="https://dl.dropboxusercontent.com/u/2248531/blog/nano_aprs.zip">the source code</a> for the project as an <a href="http://www.atmel.com/tools/atmelstudio.aspx">AtmelStudo</a> project<br />
<br />
<span style="color: red;">UPDATE: Fuses are EXTENDED 0xFF : HIGH 0xDF : LOW 0xC0</span><br />
<br />
<span style="color: red;">UPDATE:</span><br />
<span style="color: red;">Use this program to change for other frequencies:</span><br />
<a href="http://www.onsemi.com/pub/Collateral/FS6377_REV3.1.0.ZIP"><span style="color: blue;">http://www.onsemi.com/pub/Collateral/FS6377_REV3.1.0.ZIP</span></a><br />
<span style="color: red;">This is the current configuration. Mind that the registers are in reverse order from the order they are sent in transmitter.cpp in the project.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1cd9JMLFVzHPnM7Ofug7rcqkiNXZkW4KidjlV9kKNKiI6QGw6f-bZfX0ZBEK2_8t2N6vktXHvqtFSuStEIk_gONI0wDhnNslGodpS785BuN_MZH82GSVfugdiveewNmgz-Sv7XCKY4Cc/s1600/aprs_setup.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj1cd9JMLFVzHPnM7Ofug7rcqkiNXZkW4KidjlV9kKNKiI6QGw6f-bZfX0ZBEK2_8t2N6vktXHvqtFSuStEIk_gONI0wDhnNslGodpS785BuN_MZH82GSVfugdiveewNmgz-Sv7XCKY4Cc/s1600/aprs_setup.JPG" height="233" width="320" /></a></div>
<br />
<br />
<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com1tag:blogger.com,1999:blog-4061515776336088436.post-38934781189217924152014-05-12T13:24:00.002-07:002014-05-12T13:24:47.429-07:00A bit more wheelchair stuff<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeYsZXXcEcFmjaV3tDVyrVIUotftM0bXXfeYK5BUUc91qGS9SZL7iNpvC82Zmylitaju7_6vJiAXzlP320bzcvKVqirzygnzWmecTrvfEvZkxI5KEFBpaartNF56JmXOSxW1g-ScrEJk/s1600/PGP_format.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeYsZXXcEcFmjaV3tDVyrVIUotftM0bXXfeYK5BUUc91qGS9SZL7iNpvC82Zmylitaju7_6vJiAXzlP320bzcvKVqirzygnzWmecTrvfEvZkxI5KEFBpaartNF56JmXOSxW1g-ScrEJk/s1600/PGP_format.jpg" height="194" width="320" /></a></div>
Figured out some more details about the actuator data format.<br />
Also a <a href="https://fbcdn-video-a.akamaihd.net/hvideo-ak-prn2/v/t43.1792-2/10314180_672105679511514_233935503_n.mp4?oh=b738dba0b1ad011270ff6364143276b4&oe=53712A4E&__gda__=1399927055_35f016b499654ea5f228533cbf2df7e1">short video</a> from FabLabRuc of me driving the wheelchair using a HCD controller.<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com2tag:blogger.com,1999:blog-4061515776336088436.post-46158765720174579172014-05-11T11:36:00.001-07:002014-05-11T12:32:45.324-07:00Hacking electric wheelchair driveWhile building some robots for a museum we came up with the idea of using an electric wheelchair as the base for the robot.<br />
Not wanting to replace the electronics we gave it a shot to try to use the existing motor driver and control it from an Arduino. On inspection it turned out to be a very common Penny and Giles Pilot plus drive.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.wheelchairdriver.com/images-life/penny-and-giles-controller.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.wheelchairdriver.com/images-life/penny-and-giles-controller.jpg" height="261" width="320" /></a></div>
<div style="text-align: right;">
(Photo <a href="http://wheelchairdriver.com/">wheelchairdriver.com</a>)</div>
Very little technical information is available about the interface between the joystick- and motor unit of this system. So we started reverse engineering. Here is what we have found so far.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPvW2BXxsQGkCZIveZSacL-aAtHLAkcTwnEpOJpLMNxhsS7ieyXbnKrF1DpPayK6q27GGtbDi-yAABR9YVD8RQXQWVFpli-FiHKiifKukH83LkQvFdkCmOBjlufwWjM9n5IhEOp33uBZg/s1600/IMG_20140510_172150.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhPvW2BXxsQGkCZIveZSacL-aAtHLAkcTwnEpOJpLMNxhsS7ieyXbnKrF1DpPayK6q27GGtbDi-yAABR9YVD8RQXQWVFpli-FiHKiifKukH83LkQvFdkCmOBjlufwWjM9n5IhEOp33uBZg/s1600/IMG_20140510_172150.jpg" height="320" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
By opening up the joystick and probing connections inside we found that the joystick movement are communicated as serial data @19200BAUD, 8 databits and even parity. Apart from the driving data the joystick unit also emit an additional, and completely different, data stream for controlling various lights and actuators on the chair.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJLCaPYevjkeRZa2qqv6pjuZbzy19kvbT7FANKYnbLAJpXYHht0GjRO0FoWO_0II5e_SiSpb2aahbSX-xZGgps_P2B5CUzL4nUm4LmrowDFv6L-0mM1sk4hkOyAuScwU0GqgLQO9Ssuvc/s1600/PGPlus_connector.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJLCaPYevjkeRZa2qqv6pjuZbzy19kvbT7FANKYnbLAJpXYHht0GjRO0FoWO_0II5e_SiSpb2aahbSX-xZGgps_P2B5CUzL4nUm4LmrowDFv6L-0mM1sk4hkOyAuScwU0GqgLQO9Ssuvc/s1600/PGPlus_connector.jpg" height="298" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
The physical connection is using a propitiatory 6 way connector.<br />
<br />
I turns out that the joystick sends drive data packets with checksum roughly every 10mS. Immediately after the data line changes direction and the motor controller returns a packet of data, again with checksum.<br />
Simultaneously but not in sync another data signal is sent to control lights and actuators.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfibpe_tqccT8OXFSgf1ipl5bHF94b1dB3Z6pnBEIxFsduB-sy16hJ12RwnDI8VHg0Hrtg-0xGkllJ23BKMqHMv2Rhmv37-GEFu8ifJFXR6IARGXuB0Kj1ds9_SIAF1eXV4Ju_pjH88Pc/s1600/IMG_20140511_202447.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfibpe_tqccT8OXFSgf1ipl5bHF94b1dB3Z6pnBEIxFsduB-sy16hJ12RwnDI8VHg0Hrtg-0xGkllJ23BKMqHMv2Rhmv37-GEFu8ifJFXR6IARGXuB0Kj1ds9_SIAF1eXV4Ju_pjH88Pc/s1600/IMG_20140511_202447.jpg" height="240" width="320" /></a></div>
The data format seem to be completely non-standard but relatively simple to encode.<br />
<br />
Probably for safety reasons the system does not tolerate any signals being missing or corrupted without shutting down so a fair bit of probing and fiddling went in to eliminating the joystick and replacing it with an arduino.<br />
Here is a <a href="https://dl.dropboxusercontent.com/u/2248531/blog/wheelchair/PGPlus_test/PGPlus_test.ino">rough cut first Arduino sketch</a> that allowed us to drive the wheelchair motors actuators and lights.<br />
<a href="https://dl.dropboxusercontent.com/u/2248531/blog/wheelchair/VID_20140510_172233.mp4">Quick shaky video of it running</a>.<br />
<br />
We plan to turn out a easy-to-use Arduino library for controlling the PG Pilot Plus soon.<br />
<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com19tag:blogger.com,1999:blog-4061515776336088436.post-89408062160717416182014-04-26T14:34:00.001-07:002014-04-26T14:55:38.051-07:00The_synth Arduino library got an upgrade<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo6h__BzfjVP7UUJ5r8rCbEU6LxKxbe8Em4bYkm2HemDA6ma4hR928z6Mh1fCE3D6Pyn715njw3Qbf5q0UtcePYSyYB8qyzuyby8QPuXiwwXrKzUX4IkSJUfMaAaKTEuE39s6ZhBtXn54/s1600/IMG_20140426_234304.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjo6h__BzfjVP7UUJ5r8rCbEU6LxKxbe8Em4bYkm2HemDA6ma4hR928z6Mh1fCE3D6Pyn715njw3Qbf5q0UtcePYSyYB8qyzuyby8QPuXiwwXrKzUX4IkSJUfMaAaKTEuE39s6ZhBtXn54/s1600/IMG_20140426_234304.jpg" height="240" width="320" /></a></div>
A while ago I released a <a href="https://github.com/dzlonline/the_synth">Arduino synthesizer library</a>. A new and improved version is now available github:<br />
<br />
https://github.com/dzlonline/the_synth<br />
<br />
I was asked to play a small concert at <a href="http://www.hobye.dk/publications/homoExplorens">my friends PhD defense</a> using an Arduino running this library.<br />
<br />
Listen to the result <a href="https://dl.dropboxusercontent.com/u/2248531/the_synth_concert.mp3">here</a>:<br />
<br />
https://dl.dropboxusercontent.com/u/2248531/the_synth_concert.mp3<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0u7iYtmcQfqlApTW93Z02yiu35BSS7qaYZ9F43ww_hOfrIt80wFZ4hyUitZcbB9vauapPn5NHjP7s8xAnLS5epUZQjtJ3dVR_ESKDN1RiW4dsLbYlcC23UXgLipdnHW1PIG5isKHLHK4/s1600/midi.JPG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0u7iYtmcQfqlApTW93Z02yiu35BSS7qaYZ9F43ww_hOfrIt80wFZ4hyUitZcbB9vauapPn5NHjP7s8xAnLS5epUZQjtJ3dVR_ESKDN1RiW4dsLbYlcC23UXgLipdnHW1PIG5isKHLHK4/s1600/midi.JPG" height="96" width="320" /></a></div>
<br />
The music was sequenced using Ableton Live and sent to the Arduino via. MIDI @ 31250 BAUD serial data. The output from the Arduino was a 8 bit PWM signal that was subsequently lowpass filtered using a simple LC filter.<br />
Part of the low pass filtered audio signal was sent back through a echo effect processor (inside Ableton) to add a bit of flavor and make it tolerable to regular people :)<br />
<br />
<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com2tag:blogger.com,1999:blog-4061515776336088436.post-35764552511304110192014-02-24T07:19:00.003-08:002014-02-24T07:19:34.212-08:00Easy to use Arduino wireless library<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf8it6LDVGX5xGY-Ddfcm3Xv6hkgzLVKxcaAeDBtLpTNpoo-qbz258-HwB0dQTONehz-fUR5GlsTO8noz8rWx4kUBOrQAmdZOJsn6R3De0GzM_mW_UMLg0V5HDzyT2MEXWVCbNxwT24-0/s1600/HCD_basestation2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhf8it6LDVGX5xGY-Ddfcm3Xv6hkgzLVKxcaAeDBtLpTNpoo-qbz258-HwB0dQTONehz-fUR5GlsTO8noz8rWx4kUBOrQAmdZOJsn6R3De0GzM_mW_UMLg0V5HDzyT2MEXWVCbNxwT24-0/s1600/HCD_basestation2.jpg" height="240" width="320" /></a></div>
<br />
When working on the HCD project it came apparent that the small radio chips used could be used for general purpose wireless communication.<br />
The BK2421 based radio turns out to be compatible with a lot of other devices like the <a href="http://docs-europe.electrocomponents.com/webdocs/0f44/0900766b80f441e6.pdf">RFM70</a> or the <a href="https://www.sparkfun.com/products/705">nRF24L01</a> from Sparkfun.<br />
I have made a simple to use library for Arduino that uses the HCD or similar radio for simple character driven communication.<br />
In addition to communicating between Arduinos it can be used to connect to the HCD or similar handsets so they may be used for controlling your own stuff.<br />
See the library examples for basic functionality.<br />
<br />
Check out the <a href="https://github.com/dzlonline/easycom.git">Arduino library</a>.GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com1tag:blogger.com,1999:blog-4061515776336088436.post-55404689733975264772014-01-10T00:15:00.001-08:002014-01-10T00:59:16.658-08:00Fun with thermopile generator<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.youtube.com/watch?v=lasaPoYaxmA&feature=youtu.be"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjygfGf3fgsha48BDWnM_h4DMAbfLPbqRb80QZX-d6UBFul2Uml0aWbUncJkE5iGN7Xgx5rEf9KV2PGaCV8cBR6lnmtWBFHeyo46X_z_NE7Utd-lpNrU2P0rVUZsvYZMtzG_kl0qaOuSxw/s1600/IMG_20140110_090024.jpg" height="240" width="320" /></a></div>
<br />
Got a bag of <a href="http://en.wikipedia.org/wiki/Thermoelectric_cooling">Peltier cooling elements</a> (thanks Dan) and experimented with using them as thermoelectric generators. These devices will generate an electric current when subjected to a temperature difference.<br />
When placed on a hot oven they will generate about 1,8V and 650mA for a few seconds and then fade out due to heat conducting through the element and cancelling out the temperature difference.<br />
I found a really fancy heat sink from an old server. By placing the heat sink on top of the element I was able to sustain generation for a much longer time.<br />
Even the heat sink eventually gets hot causing the power output to decrease. Sitting on top of the oven in a column of warm air it is not able to dissipate heat well.<br />
I found that blowing cold(er) air from the surroundings onto the heat sink increased the efficiency dramatically.<br />
As a small cooling fan I used a motor/prop assembly from one of the <a href="http://dzlsevilgeniuslair.blogspot.dk/search/label/HCD">HCD's</a>, powered directly from the Peltier element. This allows sustained power generation.<br />
Just for fun I connected a color changing LED (Thanks Jim), powered by modified <a href="http://www.youtube.com/watch?v=0GVLnyTdqkg">Joule Thief</a> circuit:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVo9-K6rZfPDqTYuZ1nGBwoJUzXUeX9r5Z6Hk_kMhwT-aA9DYGk4DL6JWAKVqqFRPWVjlNMzAL1rrgJO_dNabqvEzuKfiMHnn2cickuxTuwImeJWTB8jg5dkjD2IEH-lRKqn2g5K-mV1k/s1600/IMG_20140110_091157.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVo9-K6rZfPDqTYuZ1nGBwoJUzXUeX9r5Z6Hk_kMhwT-aA9DYGk4DL6JWAKVqqFRPWVjlNMzAL1rrgJO_dNabqvEzuKfiMHnn2cickuxTuwImeJWTB8jg5dkjD2IEH-lRKqn2g5K-mV1k/s1600/IMG_20140110_091157.jpg" height="240" width="320" /></a></div>
<br />
<br />
<a href="http://www.youtube.com/watch?v=lasaPoYaxmA&feature=youtu.be">Video</a> of the thing going.<br />
<br />
Update: Picked up the cold generator and <a href="http://www.youtube.com/watch?v=TOVKYR6mTE8&feature=youtu.be">held it in my hand</a>. After a few seconds the fan started just from the heat of my hand!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.youtube.com/watch?v=TOVKYR6mTE8&feature=youtu.be"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvICzyx_URQxw1tGXFJlEDRdU_pvdaE4Z8pERheiWJp5OBtKwl1SMDuKv4VNrNZFURDokKSJyB_sj5QlcETWe5Ic4BMNQfjDJrEyGqu9C1vgcnZzM1iwzZKmvCNDeWdA3ch-_-FK9Uw60/s1600/IMG_20140110_094859.jpg" height="240" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com3tag:blogger.com,1999:blog-4061515776336088436.post-13429833570071579052013-12-01T23:27:00.001-08:002013-12-01T23:32:16.707-08:00More cheap drones on the horizon<div class="separator" style="clear: both; text-align: center;">
<a href="http://makezine.com/2013/11/27/micro-ufo-quadcopter-a-quad-for-a-newbie/"><img border="0" height="235" src="http://makezineblog.files.wordpress.com/2013/11/screen-shot-2013-11-27-at-10-26-09-am.png" width="320" /></a></div>
<br />
I have noticed that these have started to show up in the <a href="http://makezine.com/2013/11/27/micro-ufo-quadcopter-a-quad-for-a-newbie/">maker community stores</a>. This is exciting since A-I own a couple and B-they are compatible with the hardware I use for the <a href="http://dzlsevilgeniuslair.blogspot.dk/search/label/HCD">HCD</a>.<br />
I actually started work on the radio interface for the HCD using one of these.<br />
I find them less easy to fly and they have less load capacity but they have a cool flip feature that let's the quad do a flip just by sending a command.<br />
If these takes on I plan to expand the <a href="https://dl.dropboxusercontent.com/u/2248531/blog/HCD/HCD.zip">HCD library</a> (NOTE: not currently compatible with this model) to control these too..GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com3tag:blogger.com,1999:blog-4061515776336088436.post-6965442526168153532013-11-22T15:53:00.002-08:002013-11-26T23:54:01.037-08:00Data visualizer for drone tracker<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<a href="http://www.youtube.com/watch?v=eoNYuzEc6AU&feature=youtu.be"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEic0A-NZqLADgrQu9mocTuvDRddOoWcD0XfdXPtAHbe_QhEPmUjuaxYz6e38Wmm4yXi154zxvdo_QrchzI21aAP30IVeYjgX8n3_LmRyRwSm9OV82ninQW5kF7X42k-6nS82TvOqeMtY1Y/s320/visualizer.jpg" width="320" /></a><br />
<div>
<br /></div>
I needed a way to visualize the spatial data from the drone tracking software. I wrote a OpenFrameworks program to do this. Click <a href="http://www.youtube.com/watch?v=eoNYuzEc6AU&feature=youtu.be">here</a> or on image to see it in action.GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com0tag:blogger.com,1999:blog-4061515776336088436.post-27759124100210099362013-11-22T15:39:00.001-08:002013-11-26T23:53:52.823-08:00Did a hover testHere is a <a href="http://www.youtube.com/watch?v=CfAZoiHoqIs&feature=youtu.be">video</a> of the testGeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com0tag:blogger.com,1999:blog-4061515776336088436.post-16363346316814490192013-11-18T22:18:00.001-08:002013-11-26T23:53:42.978-08:00Tangible paramter tuning thingy<div class="separator" style="clear: both; text-align: center;">
</div>
When tuning <a href="http://en.wikipedia.org/wiki/PID_controller">PID</a> parameters for the HCD flight controller I pretty much spend 2 evenings waiting for the program to recompile.<br />
I would change some parameter a tiny bit, recompile, get the HCD in the air to evaluate and then repeat the process over and over.<br />
At some point I realized that tuning the parameters in mid-air would be much more efficient.<br />
For this i made this simple controller:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9eaDOlrFE1gNBrMrq-9MKZrMC9FGkW9rSIu0p9jkB_zo2sNhWSFC9b5aLxnGRqCh8MhLZRxqyLCYbAEfmrJKcH0GTHddFLWiVE5LBxTD3taKtWDuQE2K9U5kcwRITgs-qNCGPeUd-jQw/s1600/IMG_20131118_230643.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9eaDOlrFE1gNBrMrq-9MKZrMC9FGkW9rSIu0p9jkB_zo2sNhWSFC9b5aLxnGRqCh8MhLZRxqyLCYbAEfmrJKcH0GTHddFLWiVE5LBxTD3taKtWDuQE2K9U5kcwRITgs-qNCGPeUd-jQw/s320/IMG_20131118_230643.jpg" width="320" /></a></div>
It's simply 6 faders hooked up to an Arduino. It transmits the 6 fader values to the flight controller software where they are scaled to the appropriate range and fed into the feedback controller in real time.GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com2tag:blogger.com,1999:blog-4061515776336088436.post-58362109396073152782013-11-16T17:55:00.000-08:002013-11-26T23:53:33.007-08:00The loop has been closedAfter a lot of crashing and swearing in the lair closed-loop control of the HCDs has now been achieved!!<br />
The rough control parameters has been established so autonomous take off, flight and landing can be continously reproduced.<br />
Now I need to fine tune the flight controller software and package everything nicely into something others can use too.<br />
<br />
<a href="http://www.youtube.com/watch?v=ba5qMRz3RhM&feature=youtu.be">Video</a>GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com1tag:blogger.com,1999:blog-4061515776336088436.post-2299470720781706992013-11-15T14:33:00.003-08:002013-11-26T23:53:24.281-08:00Fly by wire<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX4NnfAoqMoEu_rBneQoGozxZ8FzkL4XKXnCyUMvYcATJKVPQn9epgS5rOmH9KPgKj2XtSzmDfi86XstGgMTQ9AMSVmmUJmIa-i_X17P_6tyT2ROEawjdtbUZN9VZJauKVQeR7z_F21MY/s1600/IMG_20131115_232447.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjX4NnfAoqMoEu_rBneQoGozxZ8FzkL4XKXnCyUMvYcATJKVPQn9epgS5rOmH9KPgKj2XtSzmDfi86XstGgMTQ9AMSVmmUJmIa-i_X17P_6tyT2ROEawjdtbUZN9VZJauKVQeR7z_F21MY/s320/IMG_20131115_232447.jpg" width="320" /></a></div>
<div>
<br /></div>
Hooked a HCD handset up to an Arduino to send raw joystick values to my tracking software.<br />
<div>
The tracking software then sent the joystick commands via. another Arduino with a <a href="http://docs-europe.electrocomponents.com/webdocs/0f44/0900766b80f441e6.pdf">BK2421 radio</a> to a HCD.</div>
<div>
This tells me that my tracking software is able to control a Quadcopter (for now with a little help from a pilot).</div>
<div>
Next step is to create a control-loop that will enable me to fly one or more Quadrotors under complete software control.</div>
<div>
Here is a <a href="http://www.youtube.com/watch?v=2zoDZFS07Go&feature=youtu.be">video</a> of one of the first tests.</div>
<div>
<br /></div>
<div>
<br /></div>
GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com7tag:blogger.com,1999:blog-4061515776336088436.post-11545693605629159142013-11-15T07:26:00.000-08:002013-11-26T23:53:12.864-08:00Tracking flying quadcopter<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.youtube.com/watch?v=t9NfwzdxELk"><img border="0" height="250" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP02zL47WfEMhgq0AreE-tWTiff-F0UCxR3IWTzjmNZIh8xf8KpnfRR9klWiN49ELfldTg7XdX4vALs1h2N4WSQw4LtzSI8l5bIQhk7o45DswiPsPXcNjIXo6h8eu2hwkOfYg7oBVOWjQ/s320/Capture.JPG" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Made some tracking software to track the HCD's. Click <a href="http://www.youtube.com/watch?v=t9NfwzdxELk">here</a> or on picture for video.<br />
The tracker is made using Kinect and OpenFrameworks. I use the Kinects color video image to track orientations and the depth camera for altitude.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiAoHogzVILE-DANoZzpA7-qDbZQx_cs70uxNYHeOVF9dNB616bsMKYlHNj_kUgCA-2igbDvi7eGaX3-X87IefLWKd3f2-eC8XfCPKNdBU5_EZawPqcv9v259oO3NDtA9dTGwiefweEkI/s1600/IMG_20131115_162746.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiiAoHogzVILE-DANoZzpA7-qDbZQx_cs70uxNYHeOVF9dNB616bsMKYlHNj_kUgCA-2igbDvi7eGaX3-X87IefLWKd3f2-eC8XfCPKNdBU5_EZawPqcv9v259oO3NDtA9dTGwiefweEkI/s320/IMG_20131115_162746.jpg" width="320" /></a></div>
<br />
<br />
The tracker locks on to colored tags made from pink post-it notes and use their position to select which part of the depth information is relevant.<br />
It's all very experimental at the moment but seems promising.<br />
The aim is to autonomously fly one or more HCD's in formation.GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com1tag:blogger.com,1999:blog-4061515776336088436.post-63914481572497365192013-11-12T04:36:00.000-08:002014-12-13T07:51:52.336-08:00Controlling toy quadcopter(s) with ArduinoThe last couple of days I have done some more work on the small toy quadcopters (now dubbed HCD for Hamster Cage Drone). The goal was to hack the communication so that they could be controlled using computer vision software. Basically the poor mans version of <a href="http://www.youtube.com/watch?v=AiCFtmdrvHM">this</a> (don't bother you have already seen it).<br />
<br />
<span style="color: red;">UPDATE: Use <a href="https://dl.dropboxusercontent.com/u/2248531/blog/nfr24L01_mod.zip">this modified code</a> to be compatoble with SparkFuns NRF24L01 radio.</span><br />
<br />
<span style="color: yellow;">UPDATE: I have made a <a href="https://dl.dropboxusercontent.com/u/2248531/blog/HCD/HCD.zip">Arduino library</a> for controlling <a href="http://www.youtube.com/watch?v=e5NNDgr2pc4">this particular Quadrotor</a> (may work with similar products). You will need to build <a href="https://dl.dropboxusercontent.com/u/2248531/blog/HCD/HCD_basestation.jpg">this</a> simple hardware (discribed on this page) to use the library. All parts (apart from Arduino) may be found inside the remote controller that comes with the quadcopter.</span><br />
<br />
The first thing I did was to take the remote control handset apart to see what kind of radio system was used.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIKdU0QoUv4abiV2GUBdVhUc3O4LnSQC4j7iZ58-xOvQcQNAo54_tg4cAmwC-XT_-y7IBVb-htLsuhF-W2dXAAEBAAe5-jZ1oNludGRivu1y8CBTQqPGSpKBtDWEQgBq10Z4FxiRvJavo/s1600/IMG_20131111_182257.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjIKdU0QoUv4abiV2GUBdVhUc3O4LnSQC4j7iZ58-xOvQcQNAo54_tg4cAmwC-XT_-y7IBVb-htLsuhF-W2dXAAEBAAe5-jZ1oNludGRivu1y8CBTQqPGSpKBtDWEQgBq10Z4FxiRvJavo/s320/IMG_20131111_182257.jpg" height="240" width="320" /></a></div>
Inside was pretty much what you'd expect. A couple of cheap paper PCB's with not a lot on them.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyBb6D72X0aLXjVyC5dBBmd4m8xQLDHVMVkPyX98zuDa_jDu4T9iPKdroY0eWGcxN0jcfp6lsuX8W3UYaVk4x3QHl2G65lXZYpuI6QS7HxwxU_tVdafCWyMqqgk_4amuATSXFHwApETWs/s1600/IMG_20131111_182446.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyBb6D72X0aLXjVyC5dBBmd4m8xQLDHVMVkPyX98zuDa_jDu4T9iPKdroY0eWGcxN0jcfp6lsuX8W3UYaVk4x3QHl2G65lXZYpuI6QS7HxwxU_tVdafCWyMqqgk_4amuATSXFHwApETWs/s320/IMG_20131111_182446.jpg" height="240" width="320" /></a></div>
The radio communication is handled by a small discrete radio module. After a lot of internet digging it turned out that the module was based on the <a href="http://www.bekencorp.com/en/Botong.Asp?Parent_id=2&Class_id=8&Id=13">BK2421</a> 2.4GHz tranceiver IC. This also seem to be the choice for a lot of cheap RC toys coming out now.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-wEGnjzF8zWYQa6fEPV5dEx_XGO-DrjrkMRd9dBZWOaK0xOq76X_fzxAebFLxOSL6hLNm3pbhuOBgn9riDz6zJufJsZnHNpOoyWd77I0ig4Z3MJ0k4ibXdjq53000G1vr1S-plhFB2SY/s1600/IMG_20131112_123917.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-wEGnjzF8zWYQa6fEPV5dEx_XGO-DrjrkMRd9dBZWOaK0xOq76X_fzxAebFLxOSL6hLNm3pbhuOBgn9riDz6zJufJsZnHNpOoyWd77I0ig4Z3MJ0k4ibXdjq53000G1vr1S-plhFB2SY/s320/IMG_20131112_123917.jpg" height="240" width="320" /></a></div>
With a <a href="http://www.electrodragon.com/wp-content/uploads/2012/01/Beken-BK2421.pdf">datasheet</a> for this chip and an oscilloscope it was simple enough to figure out the pin configuration for the SPI communication between the radio module and the handset.<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj13OU7E9LbERqYpkh2EVeXuuJv3BGz-r050ln7BgOSxWwqj13rWsSv34cinF-eAaLY9tbZ4Ua_6TJHcbvFHkxIq9YB2_SZkaiFdbc5ed-aYdj9Jd6hOapFAxuibWFkttUWmWrxbfI9ecI/s1600/IMG_20131111_204118.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj13OU7E9LbERqYpkh2EVeXuuJv3BGz-r050ln7BgOSxWwqj13rWsSv34cinF-eAaLY9tbZ4Ua_6TJHcbvFHkxIq9YB2_SZkaiFdbc5ed-aYdj9Jd6hOapFAxuibWFkttUWmWrxbfI9ecI/s320/IMG_20131111_204118.jpg" height="240" width="320" /></a></div>
Using an ArduinoUNO to eavesdrop on this comunication I was able to figure out the initialization and thereby the mode of communication. Here is a <a href="https://dl.dropboxusercontent.com/u/2248531/blog/HCD/HCD_init.txt">annotated list of the initialization sequence</a>.<br />
<br />
Without going into detail about the low level communication the following happen when the handset and<br />
Quadcopter are turned on:<br />
1) Handset broadcast it's unique network address or ID.<br />
2) Quadcopter receives the broadcast it acknowledges this and start listening to data from that ID.<br />
3) Upon acknowledge the handset then start transmitting flying data packet every 20 mS.<br />
<br />
Multible Quadcopters can be controlled simultaneously by assigning them different addresses.<br />
The passing of ID is done on one fixed radio channel and flying data is sent on one of about 12 random radio channels. The quadrotors seem to auto scan the radio channels until they find data.<br />
<br />
Flying data is transmitted as 8 byte packets in following format:<br />
Byte 0 = throttle 0-255<br />
Byte 1 =Yaw 0-255<br />
Byte 2 =Yaw_trim 0-128<br />
Byte 3 = Pitch 0-255<br />
Byte 4 = Roll 0-255<br />
Byte 5 = Pitch_trim 0-128<br />
Byte 6 = Roll_trim 0-128<br />
Byte 7 = Fly/run 0=fly, 16=run (toggle button on handset)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioIg0gYaC5peH0Mi5B-rlCJgdzn8rH_n4QyCEWrJee__0TwvOqU0lJr_r7QC3IZkEKY3xNS-MTt4Ay5uPU1dxYRwFqW6GtW58Tjx2M5ERhj3MwI0BmN1VSpb6HUlXEUHbE9rXiTIfUSpI/s1600/HCD_connections.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioIg0gYaC5peH0Mi5B-rlCJgdzn8rH_n4QyCEWrJee__0TwvOqU0lJr_r7QC3IZkEKY3xNS-MTt4Ay5uPU1dxYRwFqW6GtW58Tjx2M5ERhj3MwI0BmN1VSpb6HUlXEUHbE9rXiTIfUSpI/s320/HCD_connections.jpg" height="240" width="320" /></a></div>
Next I created a base station that would connect to the quadrotors. I happened to have some <a href="http://docs-europe.electrocomponents.com/webdocs/0f44/0900766b80f441e6.pdf">RFM-70</a> modules that contain the same BK2421 chip. Not reading the datasheet properly I initially thought that this module required 3.3V logic and hence all the resistors. They are not needed since the BK2421 has 5V tolerant data pins.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7lr7KolNdHuyR8yqYRWPsJKCqRhSBElw7OrlBtAQlmC8hjABzn3xMQJcGudw_L-qhCVVi-l1joMHM6h0_Np4QXkt39Jk41Q_O4q9NrW4QVHE9ZGsvvpcQn_-TGsOHiMMyuLmg1nVegXA/s1600/IMG_20131112_125351.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh7lr7KolNdHuyR8yqYRWPsJKCqRhSBElw7OrlBtAQlmC8hjABzn3xMQJcGudw_L-qhCVVi-l1joMHM6h0_Np4QXkt39Jk41Q_O4q9NrW4QVHE9ZGsvvpcQn_-TGsOHiMMyuLmg1nVegXA/s320/IMG_20131112_125351.jpg" height="240" width="320" /></a></div>
<br />
NOTE: CE goes to pin 8 (missing on drawing)<br />
<br />
I eventually ended up with a much simpler set-up using just the module salvaged from the handset and an Arduino.<br />
To enable future experimentation I have written a <a href="https://dl.dropboxusercontent.com/u/2248531/blog/HCD/HCD.zip">Arduino library</a> for connecting to one or more of these quadcopters.<br />
The library should work on any ATMEGA88 to ATMEGA328P based Arduino boards.<br />
If you want to have a go yourself you may get the HCD's <a href="http://hobbyking.com/hobbyking/store/__44705__Skywalker_Caged_Quadcopter_with_2_4Ghz_Mode_2_Transmitter.html">here</a> or <a href="http://www.xheli.com/28h-1306-skywalker-green.html">here</a> among other places. These are just random hits on google, you may get them elsewhere.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dwIL105v2nJpvmbwVpkQ2XIQAZ43sZb4tD90uDI4GutKwsLXckrHKCEHzfHkdnCN5uHxmsNDWiQo46YVopO' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
Less crappy video <a href="http://www.youtube.com/watch?v=Laibu0cr7Ko&feature=youtu.be">here</a>.<br />
<br />
<br />
Please share if you find other toys that may be hacked using similar methods.<br />
Happy hacking.<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com51tag:blogger.com,1999:blog-4061515776336088436.post-16461405637113194402013-11-06T16:21:00.000-08:002013-11-26T23:52:47.097-08:00Fun with cheap toy quadcoptersGot a whole bunch of these from an <a href="http://re-new.org/">art festival</a> I was involved in.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.hobbyking.com/hobbyking/store/catalog/44705.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="234" src="http://www.hobbyking.com/hobbyking/store/catalog/44705.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhueDYVIk2X6kAFvgtjsyvSN_x37RobLD4FM2JWTwhgFrNwVHjTrzfJ_d9qK-LyT4x5oxhsBSoDu0iVPgqOqfvWd-UO9EBlx5zrRiM1Iiuv47Idi_vosv1N6Yi6WklRUF4rwZLNgzT1gBs/s1600/IMG_20131103_113903.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhueDYVIk2X6kAFvgtjsyvSN_x37RobLD4FM2JWTwhgFrNwVHjTrzfJ_d9qK-LyT4x5oxhsBSoDu0iVPgqOqfvWd-UO9EBlx5zrRiM1Iiuv47Idi_vosv1N6Yi6WklRUF4rwZLNgzT1gBs/s320/IMG_20131103_113903.jpg" width="320" /></a></div>
<br />
I have now started using them for all kinds of fun projects.<br />
The first experiment was to remove the cage. Without the cage the little quads are really stable and capable of carrying a lot of weight.<br />
Obviously i HAD to add a small wirerless camera. Here is the first result:<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvshaXvdMLp77LY2wjzOocCjX7QVXE00XSMY_7pk93NBeu1FtdMzqE6DQgh0RyLFgacaTYwHZp8PCIKxZE9sykNUADpMXN2K786uHI3oWwWnFofbc0x3Ye3y51SmicPXAIyfi3e6hY3Iw/s1600/IMG_20131106_202703.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvshaXvdMLp77LY2wjzOocCjX7QVXE00XSMY_7pk93NBeu1FtdMzqE6DQgh0RyLFgacaTYwHZp8PCIKxZE9sykNUADpMXN2K786uHI3oWwWnFofbc0x3Ye3y51SmicPXAIyfi3e6hY3Iw/s320/IMG_20131106_202703.jpg" width="320" /></a></div>
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.blogger.com/video.g?token=AD6v5dxwi9cbjXGTm5S4LIZUupdYd6QtyT-7oK_egxTh27rYZqnuXCGZUyN7I-2cKqbMEYwm083Np41dm5qD0A5kEA' class='b-hbp-video b-uploaded' frameborder='0'></iframe></div>
I am also hacking the communication protocol so that they may be controlled from a computer but more about that in later posts.<br />
<br />GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com3tag:blogger.com,1999:blog-4061515776336088436.post-42316904689831921492013-08-26T00:55:00.001-07:002013-09-01T23:20:41.541-07:00DIY active anti corrosion system<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9bsAED2ou3uEgPKvxe2TsmXGpvhbh7psMukDagivdfNMmpycBvVdoXLfxDBsp9-_dFmG-Y-LiYMIax0dDvtVlBwJnnQcGpqBgCKgVFjVeEOhAFC5Jld33K0v0X6QWXzw7ctmgWZH7YcI/s1600/chatodic_mounted.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="231" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg9bsAED2ou3uEgPKvxe2TsmXGpvhbh7psMukDagivdfNMmpycBvVdoXLfxDBsp9-_dFmG-Y-LiYMIax0dDvtVlBwJnnQcGpqBgCKgVFjVeEOhAFC5Jld33K0v0X6QWXzw7ctmgWZH7YcI/s320/chatodic_mounted.jpg" width="320" /></a></div>
<div>
<br /></div>
I'm part of <a href="http://illutron.dk/">Illutron</a>. We have our main workshop at a large steel barge and we are always worried about corrosion.<br />
<div>
Since we could not afford to have the barge sand blasted and painted we looked into other options.</div>
<div>
<a href="http://en.wikipedia.org/wiki/Cathodic_protection">Cathodic protection</a> is a process where you actively impress an electric current between a ships hull and some anode. The replaceable anode is then corroded in place of the ship and everybody is happy.</div>
<div>
<div>
The Anode may be any large clump of metal submerged next to the ship, e.g. an old engine block. We use 3 meters of rail track.</div>
</div>
<div>
A variable voltage between 0 and 1.5V and a current between 0 and 10A is required.</div>
<div>
For this I designed a simple power supply circuit:</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwulM9MEo7RxSI1Ti1natULFXtbf-HCEQajHUEOhAhztk_HYOKE1K7TZAwGXkX0OecRrWNnKUwhJvH3Fe0XZPMKmHqLQD6PnotxeY9_7mVEZsQQyt_IqrnEVQRmOq5pc1LQ8_OGlXjh_I/s1600/aonode1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwulM9MEo7RxSI1Ti1natULFXtbf-HCEQajHUEOhAhztk_HYOKE1K7TZAwGXkX0OecRrWNnKUwhJvH3Fe0XZPMKmHqLQD6PnotxeY9_7mVEZsQQyt_IqrnEVQRmOq5pc1LQ8_OGlXjh_I/s320/aonode1.jpg" width="320" /></a></div>
<div>
Mains is first converted to 12V using an efficient industrial switch mode power supply. A low frequency <a href="http://en.wikipedia.org/wiki/Buck_converter">Buck converter</a> (low frequency=low switching loss) then lower the voltage further under microcontroller control.</div>
<div>
Low frequency switching require a rather large inductor. The transformer like object in the picture below is a 55mH(1) inductor (schematic says 100, not critical) for the Buck converter. If you want to build this you may use the primary of an old microwave transformer (remove secondary!!).</div>
<div>
<div>
( 1: used to say micro-Henry it need to say mili-Henry. Thanks Fred )</div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxDTPd8IUs8DN1X7J5e6dRu2kFOgly8KiAQPKwg7oXV6ApI8jqdyfyAQcwkL4wwfILv3Os7Lf436VWUv0m_0-W_IPlAQmbc6AjQmv2K_uLOwHr8pmsZjEDtYOe_Q0evxvMbBMk2dAwtic/s1600/IMG_20130703_002015.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxDTPd8IUs8DN1X7J5e6dRu2kFOgly8KiAQPKwg7oXV6ApI8jqdyfyAQcwkL4wwfILv3Os7Lf436VWUv0m_0-W_IPlAQmbc6AjQmv2K_uLOwHr8pmsZjEDtYOe_Q0evxvMbBMk2dAwtic/s320/IMG_20130703_002015.jpg" width="320" /></a></div>
<div>
<br /></div>
<div>
The microcontroller measures the output current and voltage and displays them on a standard 2x16 chr. LCD. I used an Arduino and connected the LCD according to the <a href="http://arduino.cc/en/Tutorial/LiquidCrystal">Arduino LCD example</a>.</div>
<div>
I use the somewhat exotic <a href="http://dk.farnell.com/infineon/btn7970p/ic-half-bridge-driver-44a-to220/dp/2215543?Ntt=BTN7970">BTN7970</a> as H-bridge driver for the Buck converter. This offer very low switching losses but could be replaced by your favorite choice of H-bridge device.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL-YDF4FlBnQkRcFXljo7uGkQOkY87WFHCVYTQUKkmuEMjMAsBi7vfeJhv1r5Hz5sAX3dPHZlB5w9uCqqqJaeAkKKIYwpAYrKa9P4zHxs_2KoXZ8x0JnXBxEzVLZuYoLh8GlQq9XOTPDM/s1600/IMG_20130704_130559.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjL-YDF4FlBnQkRcFXljo7uGkQOkY87WFHCVYTQUKkmuEMjMAsBi7vfeJhv1r5Hz5sAX3dPHZlB5w9uCqqqJaeAkKKIYwpAYrKa9P4zHxs_2KoXZ8x0JnXBxEzVLZuYoLh8GlQq9XOTPDM/s320/IMG_20130704_130559.jpg" width="320" /></a></div>
<div>
The <a href="https://dl.dropboxusercontent.com/u/2248531/blog/anode/controller0.ino">Arduino code</a> implements the following functions:</div>
<div>
By pressing the switches you can adjust the voltage in small steps. Press both switches to lock the keys from unintended access, press both again to unlock.<br />
Up-time is displayed and a clearable message appears if the unit have been power-cycled.</div>
<div>
<br /></div>
<div>
Does it work? </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPdIaZedq9c_GOIRFTFQpAYcnpBs-vevgxmuS27sr3Yts0rmAiq6AY1GwtD-SqjWpAOxI0EjC4FbtXdb7ugT6rF8fRpzHNS3u1-z5My2DaPeOuD5FkS0rvPSMF5Hn7s_UXIq18Nf16WTQ/s1600/IMG_20130707_171426.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjPdIaZedq9c_GOIRFTFQpAYcnpBs-vevgxmuS27sr3Yts0rmAiq6AY1GwtD-SqjWpAOxI0EjC4FbtXdb7ugT6rF8fRpzHNS3u1-z5My2DaPeOuD5FkS0rvPSMF5Hn7s_UXIq18Nf16WTQ/s320/IMG_20130707_171426.jpg" width="320" /></a></div>
<div>
Yes!<br />
<br /></div>
<div>
These two mild steel plates was submerged next to the barge. The left is isolated from the hull and the right is electrically connected to it.</div>
<div>
This picture is taken after two days.</div>
<div>
<br /></div>
<div>
A WORD OF WARNING:</div>
<div>
If you attempt to use this system on your own ship/structure you need to <a href="http://www.gamry.com/assets/Application-Notes/Getting-Started-with-Electrochemical-Corrosion-Measurement.pdf">know what you are doing</a>. Reversing the polarity result in the ship being corroded super-fast and running too much current result in calcium build up on the hull potentially stripping off existing paint.</div>
<div>
You need to measure the corrosion potential and adjust the voltage accordingly.</div>
<div>
<br /></div>
<div>
You may use the following method if you are careful:</div>
<div>
Connect a piece of blank steel to the hull with a beefy bable. Slowly increase the voltage over several days until the steel stays blank. Clean the steel between inspections with steel wool.<br />
Good luck.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
GeekPhysicalhttp://www.blogger.com/profile/03618081858214322062noreply@blogger.com6