<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-8243947812572077370</id><updated>2024-10-24T05:51:51.363-10:00</updated><category term="PIC-16F877A"/><category term="Infrared Project"/><category term="PIC-18f25k20"/><category term="PWM with ADC"/><category term="Analog"/><category term="C18"/><category term="PIC-18F1220"/><category term="Arduino"/><category term="Assembly"/><category term="Character LCD"/><category term="LTSpice"/><category term="Misc"/><category term="Rabbitcore 2000"/><category term="drive circuit"/><category term="reflow oven"/><category term="scrapbot"/><category term="sensor circuit"/><category term="H-Bridge"/><category term="LED Matrix"/><category term="Past Projects"/><category term="UART"/><category term="vacation"/><category term="Android"/><category term="BASYS2"/><category term="FPGA"/><category term="MATLAB"/><category term="PIC-18F27J53"/><category term="PIC-BASIC"/><category term="POV display"/><category term="VHDL"/><title type='text'>Learning Electronics</title><subtitle type='html'>Documenting my progress in learning about electronics.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://robo-nut.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-2599066309548342727</id><published>2014-04-04T19:59:00.001-10:00</published><updated>2014-04-04T23:01:42.462-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="reflow oven"/><title type='text'>Installing the Solid State Relay</title><content type='html'>&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifOhkT1basKeu2Qvta-VtumQ4tvWl42mw_TCOYajPgmiTAd7IGT8vWCkr084VIG87utCDBc3GhU3GEdsZw8qSnKT6JNx266Xe986cK9x343ULqaMYM7-6wn3GLKMxxjxXSFQHibNTD3BU/s800/IMG_20140404_220437.jpg&quot; style=&quot;display: none;&quot; /&gt;

&lt;embed flashvars=&quot;host=picasaweb.google.com&amp;amp;captions=1&amp;amp;hl=en_US&amp;amp;feat=flashalbum&amp;amp;RGB=0x000000&amp;amp;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2F101968504143451210803%2Falbumid%2F5998668131003357201%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCJ2jtMHajN3aRQ%26hl%3Den_US&quot; height=&quot;400&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot; src=&quot;https://photos.gstatic.com/media/slideshow.swf&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;600&quot;&gt;&lt;/embed&gt;

&lt;br /&gt;
&lt;br /&gt;
I conducted a simple test today by hooking up the Solid State Relay (SSR) to the toaster oven and an Arduino&#39;s power supply.&lt;br /&gt;
&lt;br /&gt;
The hot wire was already connected to both heating elements so I just connected the neutral side of the heaters to terminal 1 of the SSR using a connector I bought from RadioShack. Terminal 2 is connected to neutral in the power outlet. Terminal 3 and 4 are simply connected to 5V and GND on my Arduino. Having 5V across terminals 3 and 4 turns on the relay, creating a return path for current to pass through the heating elements. You can see that the toaster was successfully turned on.&lt;br /&gt;
&lt;br /&gt;
Now, all I have to do is install the thermocouple and digitally control the temperature using the Arduino.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/2599066309548342727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/2599066309548342727'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2014/04/installing-solid-state-relay_4.html' title='Installing the Solid State Relay'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEifOhkT1basKeu2Qvta-VtumQ4tvWl42mw_TCOYajPgmiTAd7IGT8vWCkr084VIG87utCDBc3GhU3GEdsZw8qSnKT6JNx266Xe986cK9x343ULqaMYM7-6wn3GLKMxxjxXSFQHibNTD3BU/s72-c/IMG_20140404_220437.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-8078701290820873731</id><published>2014-03-30T20:22:00.000-10:00</published><updated>2014-04-04T22:44:13.468-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="reflow oven"/><title type='text'>Taking Apart the Toaster Oven</title><content type='html'>&lt;img src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-BRVuUysu0Ac18zPWkpkSLEkXDQLcq7SdC7R5tkjj5gg8IsItjkeooOFEmTmgs2cfH39AVtJ2QXFTefodqXyn3CMn4F3mFk1iE4CtRC9d3xlKqlnrgtXBp65KiOFpAuDVA3vGMWjrbRg/s800/IMG_20140331_014422.jpg&quot; style=&quot;display: none;&quot; /&gt;

&lt;embed type=&quot;application/x-shockwave-flash&quot; src=&quot;https://photos.gstatic.com/media/slideshow.swf&quot; width=&quot;600&quot; height=&quot;400&quot; flashvars=&quot;host=picasaweb.google.com&amp;captions=1&amp;hl=en_US&amp;feat=flashalbum&amp;RGB=0x000000&amp;feed=https%3A%2F%2Fpicasaweb.google.com%2Fdata%2Ffeed%2Fapi%2Fuser%2F101968504143451210803%2Falbumid%2F5998725146977065457%3Falt%3Drss%26kind%3Dphoto%26authkey%3DGv1sRgCNye6KeirvvSiwE%26hl%3Den_US&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot;&gt;&lt;/embed&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
Today I spent some time taking apart the toaster oven that&#39;ll be modified into a reflow oven. Not surprisingly, it was mostly empty. The wires seen here are temperature resistant, so I will be hanging onto these, and unlike most others I plan to keep the knobs in place for aesthetics. Now I need to figure out where to mount the thermocouple, which by the way I had to remove the heat shrink from because it will be heated beyond its 250C rating. I also now need to order the Solid State Relay I&#39;ve been putting off buying.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/8078701290820873731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/8078701290820873731'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2014/03/taking-apart-toaster-oven.html' title='Taking Apart the Toaster Oven'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-BRVuUysu0Ac18zPWkpkSLEkXDQLcq7SdC7R5tkjj5gg8IsItjkeooOFEmTmgs2cfH39AVtJ2QXFTefodqXyn3CMn4F3mFk1iE4CtRC9d3xlKqlnrgtXBp65KiOFpAuDVA3vGMWjrbRg/s72-c/IMG_20140331_014422.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-7115040227433035609</id><published>2014-03-25T14:18:00.000-10:00</published><updated>2014-04-04T22:46:20.321-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="reflow oven"/><title type='text'>Making a Reflow Oven</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBDG3CRWAgbJVTRNpc_li1aONcaTPJT4in6v7oCvIV7H_2lCT0epUsA0D8TTMxAAJfNX4zmEeYz_uUxJXxQwO1HD-Psm-2EFKxq6JsgAz5Ns5h8CUCSq15uH0w6Qt6VFeRbCx645YjE2g/s1600/IMG_20140325_195535.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBDG3CRWAgbJVTRNpc_li1aONcaTPJT4in6v7oCvIV7H_2lCT0epUsA0D8TTMxAAJfNX4zmEeYz_uUxJXxQwO1HD-Psm-2EFKxq6JsgAz5Ns5h8CUCSq15uH0w6Qt6VFeRbCx645YjE2g/s1600/IMG_20140325_195535.jpg&quot; height=&quot;300&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
I&#39;ve started working on a DIY reflow oven based on &lt;a href=&quot;http://www.instructables.com/id/DIY-Soldering-Reflow-Oven/?ALLSTEPS&quot;&gt;this instructable&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Instead of working on it my usual way from scratch I decided to do it the easiest and fastest way using an arduino and a breakout board from adafruit &lt;a href=&quot;http://www.adafruit.com/products/269#Description&quot;&gt;linked here&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Today I got my breakout board and thermocouple in the mail so I put it together and tested it with the example code provided on the &lt;a href=&quot;http://learn.adafruit.com/thermocouple/wiring-the-thermocouple&quot;&gt;website&lt;/a&gt;. It turns out that as people have noticed the thermocouples have incorrectly colored wires. This was easily fixed by reversing the wires.&lt;br /&gt;
&lt;br /&gt;
I broke down the project into the following steps, of which I am now moving on to step 2. However, before moving on to the next step I will need to figure out if the heat shrink around the sensor can handle high temperatures. When I tested it over a lighter it was smoking a bit and most pictures don&#39;t show a heat shrink tube around it.&lt;br /&gt;
&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Setup and test the thermocouple&lt;/li&gt;
&lt;li&gt;Install thermocouple in toaster oven and monitor its temperature&lt;/li&gt;
&lt;li&gt;Order then install a solid state relay to control the temperature&lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/7115040227433035609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/7115040227433035609'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2014/03/making-reflow-oven.html' title='Making a Reflow Oven'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBDG3CRWAgbJVTRNpc_li1aONcaTPJT4in6v7oCvIV7H_2lCT0epUsA0D8TTMxAAJfNX4zmEeYz_uUxJXxQwO1HD-Psm-2EFKxq6JsgAz5Ns5h8CUCSq15uH0w6Qt6VFeRbCx645YjE2g/s72-c/IMG_20140325_195535.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-5273285808533525089</id><published>2013-08-20T21:43:00.002-10:00</published><updated>2013-08-20T21:44:33.999-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Android"/><title type='text'>Android App Tutorial</title><content type='html'>Just built my first android app following&amp;nbsp;&lt;a href=&quot;http://developer.android.com/training/basics/firstapp/index.html&quot;&gt;android&#39;s official tutorial&lt;/a&gt;. I&#39;ve been pretty frustrated by the lack of Kindle apps so I decided I will build them myself. Specifically, I am frustrated most by Bloomberg&#39;s android smartphone and kindle fire apps. They are awful..&lt;br /&gt;
&lt;br /&gt;
The tutorial itself felt kind of lacking. Given the ridiculous amount of app developers out there I&#39;d assumed that the tutorial would be much easier to follow, but it does require programming experience. In fact it requires experience learning a new programming language or API. I&#39;m no expert in either, but I guess I knew enough to get through the first step of the tutorial. Here are some interesting takeaways from my first step:&lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;All &#39;Activity&#39;s must be declared in the manifest&lt;/li&gt;
&lt;li&gt;Every &#39;Activity&#39; is invoked by an &#39;Intent&#39;&lt;/li&gt;
&lt;li&gt;&#39;Activity&#39;s can get its invoker using getIntent()&lt;/li&gt;
&lt;li&gt;Most programming is done within the framework provided. My job as an app builder is to work on the actual content&lt;/li&gt;
&lt;/ol&gt;
I&#39;m not sure how long this will last, but hopefully my efforts will be fruitful.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/5273285808533525089'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/5273285808533525089'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2013/08/android-app-tutorial.html' title='Android App Tutorial'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><georss:featurename>Pittsburgh, PA, USA</georss:featurename><georss:point>40.447469599603707 -79.959182739257812</georss:point><georss:box>40.399175599603709 -80.039863739257811 40.495763599603706 -79.878501739257814</georss:box></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-3571319942766924027</id><published>2013-03-21T20:24:00.005-10:00</published><updated>2013-11-03T18:13:22.228-10:00</updated><title type='text'>The Trap of Design vs Analysis</title><content type='html'>&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&quot;Don&#39;t be intimidated and just start somewhere&quot;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Over my years as an undergrad, school exposed me to much theory and many closed form solutions. I have been inspired by the science and mathematics behind engineering. Having started from DIY high school I always found theories to be irrelevant for the most part, simply because any circuit can be tweaked to operate correctly. However, despite my initial preference towards practical learning, I somehow became obsessed with closed form solutions: solutions that can be entirely and certainly solved through theory and math. I couldn&#39;t step up to the task in my earlier graduate courses in analog IC design. In thinking too deeply about everything that could go wrong I forgot that what matters is that your design works.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A few days ago at my design review meeting with my professor about my LNA my professor clearly saw I was struggling. Even with the deadline approaching I was still characterizing the IC process to derive constants of the transistor devices. He then told me to stop being intimidated and start somewhere. I always found this prof to be very intimidating for how he speaks, but this time his words resonated (no pun intended) with me. He began sketching up a design based on the project specifications and very simple device parameters; before I knew it, he was done with enough to begin simulation. &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Although his design was using idealized components (no noise, loss-less, etc.) with all of the theory I&#39;ve learned I can easily make up for the discrepancies later. Back when I didn&#39;t understand anything and I didn&#39;t know better but to build first, then learn, then fix. It turns out that I was doing the right thing all along! The only difference that knowledge of theory seems to make is in early design stages and when the bugs arise; with each bug we are simply able to make informed and goal-directed decisions. What&#39;s great is that this type of work can also lead to invention and innovation, as the frontier or engineering may simply seem like another bug. Theory moves engineering forward but only through implementation!&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
After telling my classmates the same thing all along, it&#39;s ironic that I would be trapped by the same mistakes of thinking I&#39;m a scientist when I&#39;m an engineer. I could never understand why people couldn&#39;t build, but now I understand why. I will forever appreciate my professor for saying that right thing at the right time.&amp;nbsp;&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/3571319942766924027'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/3571319942766924027'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2013/03/the-trap-of-design-vs-analysis.html' title='The Trap of Design vs Analysis'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-1969686873181663100</id><published>2012-09-03T11:37:00.000-10:00</published><updated>2012-09-03T11:40:18.835-10:00</updated><title type='text'>Realization</title><content type='html'>I&#39;ve slowly come to realize how naive I am as a circuit designer. While working on my robotics circuits I have experienced unreliable circuit performance countless times. However, I had never considered to mitigate this effect through better design practices; instead I have constantly relied on programmed software calibrations to counteract variations between circuits. Considering that I use very basic 8-bit microcontrollers in my robotics projects, the several instructions for software calibrating sensor data was wasted processing time. Additionally, as someone studying circuit design this is a depressing state of ability to be in after studying so hard. Looking back to all of my circuits, I see that although my ability to analyze complex transistor&amp;nbsp;typologies&amp;nbsp;have grown I have never applied any of my new found skills. From now on I hope to utilize what I spent the last 4 years as an undergraduate studying as I rebuild old circuits and design new ones.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/1969686873181663100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/1969686873181663100'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2012/09/realization.html' title='Realization'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-4670188852791062453</id><published>2012-04-01T09:15:00.002-10:00</published><updated>2012-04-01T09:16:30.271-10:00</updated><title type='text'>Optical Encoder Tested</title><content type='html'>&lt;span style=&quot;text-align: justify;&quot;&gt;I tested the completed speed sensor. The first picture below is the output waveform (sinusoidal-looking yellow line) of the photo-transistor. It looks like there are two traces because the infrared LED is pulsed. The straight top yellow line is when the infrared LED is off. The peaks of the output occur when the photo-transistor sees the least infrared light (reflected off the dark part of the encoder wheel) and the troughs occur when the photo-transistor sees the white sector of the encoder wheel.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzWDt-x4Spp83I4oruKoxsQ5-pfUhmuQL31WtRLzcBwhMSu8FSR9egRpFXRKlWYoS4og2gi1Cgn-FigN7-uqcEHyHlUxwimZd9HeaSmkLpf-fxPdarK3m8_Qq09wEvxnCVpRrEPNBctaI/s1600/motor_.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;259&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzWDt-x4Spp83I4oruKoxsQ5-pfUhmuQL31WtRLzcBwhMSu8FSR9egRpFXRKlWYoS4og2gi1Cgn-FigN7-uqcEHyHlUxwimZd9HeaSmkLpf-fxPdarK3m8_Qq09wEvxnCVpRrEPNBctaI/s320/motor_.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
The two screen captures below show the output of the photo-transistor and comparator circuit. The comparator circuit compares the output to the photo-transistor with a reference voltage of 4V (mid-way between the peak and trough) and outputs 0V or 5V depending on whether the sensor output is bigger or smaller than 4V. The periodic glitches seen in the circuit is from the H-bridge, which is driving the motor with a 25% duty-cycle square wave. For the final mobot we will use separate power sources for the motor and the rest of the mobot.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXcobsjy_T6NXbX9wj8dMyvcFduyM5ynT_brLY22gkhP9fXtxi2S1eii28z9o9UJB6QX00rJZU4Lqt1mt7C3BctitYj1m6sJTpz_J-tQFeFT-fqzfxuTd4GZ4fhmyytj8UiHHnBbtbnQc/s1600/comparator_zoom.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;259&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhXcobsjy_T6NXbX9wj8dMyvcFduyM5ynT_brLY22gkhP9fXtxi2S1eii28z9o9UJB6QX00rJZU4Lqt1mt7C3BctitYj1m6sJTpz_J-tQFeFT-fqzfxuTd4GZ4fhmyytj8UiHHnBbtbnQc/s320/comparator_zoom.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoak5_7MNX-fTDcHxjR0r-3HFsApgtXZZ4kGgoC7pw9xZjtK-y4KvFGVdWXosT9xzy_ZVVPEmavkooZ2ly7L4L2PH7acSNGoXx30EbtOStat3VLt6CqVQWD_g6axSpIcPPW87N7wADJg8/s1600/comparator.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;259&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoak5_7MNX-fTDcHxjR0r-3HFsApgtXZZ4kGgoC7pw9xZjtK-y4KvFGVdWXosT9xzy_ZVVPEmavkooZ2ly7L4L2PH7acSNGoXx30EbtOStat3VLt6CqVQWD_g6axSpIcPPW87N7wADJg8/s320/comparator.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/4670188852791062453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/4670188852791062453'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2012/04/optical-encoder-tested.html' title='Optical Encoder Tested'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhzWDt-x4Spp83I4oruKoxsQ5-pfUhmuQL31WtRLzcBwhMSu8FSR9egRpFXRKlWYoS4og2gi1Cgn-FigN7-uqcEHyHlUxwimZd9HeaSmkLpf-fxPdarK3m8_Qq09wEvxnCVpRrEPNBctaI/s72-c/motor_.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-7174169341722039072</id><published>2012-03-31T22:23:00.000-10:00</published><updated>2012-04-01T10:19:08.657-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C18"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC-18F27J53"/><title type='text'>config vs config1 explained</title><content type='html'>Recently I started to use pic18f27j53 for a robot project. I picked it since it had USB functionality, and I thought I could learn about USB through it.&amp;nbsp;Just as I copy-pasted my old code from my previous robot projects, error messages began to show up on the compiler output saying that opentimer1() was missing an argument. This confused me and, upon research, I discovered that many others were confused as well. So I decided to look through the source file (t1open.c) in the C18 library to see why there were two arguments (config and config1) as opposed to just one (config1).&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Well, it turns out that some of the new microchip hardware has included some new functionality called Gate Control to the timer hardware, which introduces the possibility of controlling it through external asynchronous inputs such as the comparator module. This, I think, allows users to count the duration of an input.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Anyways, for those who do not intend to use the Gate Control Hardware,&lt;b&gt; &lt;u&gt;config1=0&lt;/u&gt;&lt;/b&gt;&lt;u&gt; &lt;b&gt;should do the trick&lt;/b&gt;&lt;/u&gt;. Since&amp;nbsp;config1 controls TxGCON (Timer X Gate Control), according to the datasheet, if you set config1 to zero Gate Control will be disabled.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/7174169341722039072'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/7174169341722039072'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2012/03/config-vs-config1-explained.html' title='config vs config1 explained'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-941059852037864624</id><published>2012-02-26T09:05:00.000-10:00</published><updated>2012-03-30T09:06:32.734-10:00</updated><title type='text'>Optical Encoder Protoype</title><content type='html'>&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvnk21d0Cy5z4652z3VFk2ul4IDXROUGQou7Xyk57JZrGp1U11-xUCage6FQvSzk2HhpSVvp3G9sgh1m18ZUwm936WLTSEB4lds9UUnO4kyiUULAUxjCYtjJUEaaaiJ83ATWpuY-I-T-k/s1600/P1030235.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvnk21d0Cy5z4652z3VFk2ul4IDXROUGQou7Xyk57JZrGp1U11-xUCage6FQvSzk2HhpSVvp3G9sgh1m18ZUwm936WLTSEB4lds9UUnO4kyiUULAUxjCYtjJUEaaaiJ83ATWpuY-I-T-k/s320/P1030235.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
Above is the speed sensor prototype and its schematic. The infrared LED (TSMF1020) and photo-transistor (TEMT2020) will be reading from a rotating disk colored black and white. The photo-transistor will detect the&amp;nbsp;highest&amp;nbsp;levels of infrared light when it sees the white part of the disk, which will lead to a higher voltage drop across the 100 ohm resistor.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
The board will be tested to find the optimum system geometry and the system&#39;s sensing limitations (e.g. max velocity).&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/941059852037864624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/941059852037864624'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2012/02/optical-encoder-protoype.html' title='Optical Encoder Protoype'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvnk21d0Cy5z4652z3VFk2ul4IDXROUGQou7Xyk57JZrGp1U11-xUCage6FQvSzk2HhpSVvp3G9sgh1m18ZUwm936WLTSEB4lds9UUnO4kyiUULAUxjCYtjJUEaaaiJ83ATWpuY-I-T-k/s72-c/P1030235.JPG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-8425836539847245536</id><published>2011-08-10T21:45:00.011-10:00</published><updated>2011-08-18T17:48:59.819-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Analog"/><title type='text'>Transmission Line Effect: Bouncing Voltages</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;It&#39;s&amp;nbsp;4am on&amp;nbsp;black Friday at Walmart. A single door opens and millions of people including yourself run to the entrance as one mob. You&#39;re running as fast as everybody around you. As the people near the building, those who luckily made it to the door enter the building. However, you, being at the front of the mob and having not run close enough to the door, smash into the outer walls of the building. The people behind you don&#39;t see the wall yet and keep running, pushing you into the wall even more. Soon enough, you have the collective force of thousands of people squishing you.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;The same thing happens with voltage. When entering a high impedance load (narrow doorway) from a low impedance cable (wide parking lot), voltage (pain) can spike up as you can see in the simulations below (Line C, top trace). The input voltage is only 100V, but the voltage at the load jumps up to 160V.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4YCBQE_XADgVnX_4j4pMghFgFJ9JlPSJERBSli5_nYkqF0F6xhNEo0QsB9FMFTxQ4roT222gTSXVIGv00FfhfPNoqKS3bboi-LdaQF_KexqsfSz8NTMvVrS6UzbKFvEyNxOJHld5SzB8/s1600/4+transmission+traces.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;383&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4YCBQE_XADgVnX_4j4pMghFgFJ9JlPSJERBSli5_nYkqF0F6xhNEo0QsB9FMFTxQ4roT222gTSXVIGv00FfhfPNoqKS3bboi-LdaQF_KexqsfSz8NTMvVrS6UzbKFvEyNxOJHld5SzB8/s400/4+transmission+traces.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;When you push back, the people behind you push the people behind them, and a wave of shoving propagates down the mob of people. When this wave reaches the end of the mob (the people at the very back) they push forward and that wave propagates back to you. This phenomenon is called ringing as demonstrated in the oscillation seen in the top trace.&lt;/div&gt;&lt;div class=&quot;&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Below are models of cabling. The inductor keeps the current going, just like you want to run at the same speed as the people behind you (to stay alive). The capacitor is like the space infront of you; it&#39;s somewhere to run to. Almost all conducting cables can be modeled this way, a chain of infinitesimally small units of L, R, and C. All cables have parasitic inductance and capacitance. Line D and the top trace demonstrates how doubling the cable length (double length of Line C) doubles the amount of time for the voltage to hit the load. This is just like having the parking lot double in length. It takes twice as long for you to run into the wall.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlZsoY2YdCCIKmRqy-7f-RC6k_KTkW7WT6Isl9xtkFjcTfEWX3_lUyhY8QM4DpwLsht8BdUXg3Euy-UXmfsAEZAKl8-qF8tbRf23SRXxkIDW00QZfxbBfRDHUotuOEyLSlXLLeq-NX5Uk/s1600/4+transmission+lines.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlZsoY2YdCCIKmRqy-7f-RC6k_KTkW7WT6Isl9xtkFjcTfEWX3_lUyhY8QM4DpwLsht8BdUXg3Euy-UXmfsAEZAKl8-qF8tbRf23SRXxkIDW00QZfxbBfRDHUotuOEyLSlXLLeq-NX5Uk/s400/4+transmission+lines.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&amp;nbsp;Moral of the story:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;Walmart on black fridays is dangerous.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Unexpected voltage spikes fry parts when cables are too long or impedances are not matched.&lt;/li&gt;
&lt;/ul&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/8425836539847245536'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/8425836539847245536'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/08/transmission-line-effect-bouncing.html' title='Transmission Line Effect: Bouncing Voltages'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg4YCBQE_XADgVnX_4j4pMghFgFJ9JlPSJERBSli5_nYkqF0F6xhNEo0QsB9FMFTxQ4roT222gTSXVIGv00FfhfPNoqKS3bboi-LdaQF_KexqsfSz8NTMvVrS6UzbKFvEyNxOJHld5SzB8/s72-c/4+transmission+traces.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-762104890483309975</id><published>2011-07-12T20:53:00.002-10:00</published><updated>2011-07-12T20:55:07.388-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Analog"/><category scheme="http://www.blogger.com/atom/ns#" term="H-Bridge"/><category scheme="http://www.blogger.com/atom/ns#" term="scrapbot"/><title type='text'>Dual H-Bridge Board</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Below is the result of one full week of thinking, layout, and planning. These H-bridges are made to control two small dc motors. The H-bridge can take up to a 500 mA load. This board will probably be integrated into my &lt;a href=&quot;http://robo-nut.blogspot.com/2010/10/unfortunately-one-side-looks-really.html&quot;&gt;scrapbot&lt;/a&gt;. The simulation for this circuit can be found &lt;a href=&quot;http://robo-nut.blogspot.com/2011/06/h-bridge-simulation.html&quot;&gt;here&lt;/a&gt;.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;I am currently working on a microcontroller to modularize the h-bridge unit. The plan is to be able to send serial instructions to the H-bridge driver microcontroller to drive the motor.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS3zhlXVz0GEuUudNsB0SqlWzp2XGBRWQlS62qDZm7ihkizxB8Fh4b83LyhOjmICB9pTxMFJtG-WBrCRx7LUlMu5KfISXpXBE-N95f-g2EOoFHGv86Q0v_dTiJSPhoGyUYau2baYJkOaY/s1600/P1030205.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS3zhlXVz0GEuUudNsB0SqlWzp2XGBRWQlS62qDZm7ihkizxB8Fh4b83LyhOjmICB9pTxMFJtG-WBrCRx7LUlMu5KfISXpXBE-N95f-g2EOoFHGv86Q0v_dTiJSPhoGyUYau2baYJkOaY/s200/P1030205.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6UW1QA26eq1mzh-zekVsB8TrG83aI4i9WhkrRRODOd4M5jmHRo0gigYwkV3HHL0fP1GfQ1o3HHY9UdOvRZIi7rkd0B52TPrmh4LsLFp-N3NKPB-35GtuPLtkGpSolmNWj8a_yVKuvFxg/s1600/P1030203.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6UW1QA26eq1mzh-zekVsB8TrG83aI4i9WhkrRRODOd4M5jmHRo0gigYwkV3HHL0fP1GfQ1o3HHY9UdOvRZIi7rkd0B52TPrmh4LsLFp-N3NKPB-35GtuPLtkGpSolmNWj8a_yVKuvFxg/s200/P1030203.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzlIVjcLNDIFRaq5irjxaMNbeSDJmc87F1Q_GRsa98eqrdGAQ29EkL3jjTvP4eOpnYrMu2HmwBFe7mjIJncSyIuybYCznk_OszhqphWj-TPy-jMCxL_G4eTJO_D1Gw7SZRzM0_MP47-zo/s1600/P1030209.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgzlIVjcLNDIFRaq5irjxaMNbeSDJmc87F1Q_GRsa98eqrdGAQ29EkL3jjTvP4eOpnYrMu2HmwBFe7mjIJncSyIuybYCznk_OszhqphWj-TPy-jMCxL_G4eTJO_D1Gw7SZRzM0_MP47-zo/s200/P1030209.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/762104890483309975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/762104890483309975'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/07/dual-h-bridge-board.html' title='Dual H-Bridge Board'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgS3zhlXVz0GEuUudNsB0SqlWzp2XGBRWQlS62qDZm7ihkizxB8Fh4b83LyhOjmICB9pTxMFJtG-WBrCRx7LUlMu5KfISXpXBE-N95f-g2EOoFHGv86Q0v_dTiJSPhoGyUYau2baYJkOaY/s72-c/P1030205.JPG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-529420289882276056</id><published>2011-07-10T11:49:00.000-10:00</published><updated>2011-07-10T11:49:24.786-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Misc"/><title type='text'>Awesome Resource on PIC ASM</title><content type='html'>I have recently been working on a project that requires me to return to Microchips Pic Assembly Suite. Having worked mostly on Pic C18 for a while, it was a little difficult to program in assembly again. After a couple minutes of research on the web, I found an awesome resource for Pic hardware and assembly.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.gooligum.com.au/tutorials.html&quot;&gt;Gooligum Electronics&lt;/a&gt;&amp;nbsp;has very detailed information on various ranges of hardware complexity and accompanying assembly code to help use the hardware as well. This link will also be included in the useful links box on the right.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/529420289882276056'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/529420289882276056'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/07/awesome-resource-on-pic-asm.html' title='Awesome Resource on PIC ASM'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-1674000229882822743</id><published>2011-06-30T20:39:00.004-10:00</published><updated>2011-06-30T21:34:27.811-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Analog"/><category scheme="http://www.blogger.com/atom/ns#" term="H-Bridge"/><category scheme="http://www.blogger.com/atom/ns#" term="LTSpice"/><title type='text'>H-bridge simulation</title><content type='html'>&lt;div style=&quot;text-align: left;&quot;&gt;I always believed that to build an H-bridge I needed to use FETs. I&#39;m guessing that it was because of the small device package of Bipolar Transistors that I thought that it will not be able to power it. Well today I realized that some of my motors are probably small enough (low power) to be powered by BJTs. This also made for a great&amp;nbsp;opportunity&amp;nbsp;to test LTSpice some more. Eventually I hope to improve my &lt;a href=&quot;http://mobot11.blogspot.com/2011/04/h-bridge-works.html&quot;&gt;mobot H-bridge&lt;/a&gt; design in efficiency using these tools.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
Below are the results. You can see that the flyback diodes really do help protect by limiting the various potential differences to below their respective breakdown levels. The blue trace represents the input signal and the green trace is the voltage at one end of the inductor with respect to ground.&amp;nbsp;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglNGVUpCvYxm6MNgsxZ0r6gBZM430PypKihiPN8p8OLwcDkE23Syo55YjnDH_sirbyO6wnzI4zMTDO5nAukeg9ap2n7-YxxnDctciHiEmXBXRYvIpQOhwVPDftOoRDuFu474nl3IUN_K4/s1600/no+flyback+diode.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglNGVUpCvYxm6MNgsxZ0r6gBZM430PypKihiPN8p8OLwcDkE23Syo55YjnDH_sirbyO6wnzI4zMTDO5nAukeg9ap2n7-YxxnDctciHiEmXBXRYvIpQOhwVPDftOoRDuFu474nl3IUN_K4/s1600/no+flyback+diode.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;191&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglNGVUpCvYxm6MNgsxZ0r6gBZM430PypKihiPN8p8OLwcDkE23Syo55YjnDH_sirbyO6wnzI4zMTDO5nAukeg9ap2n7-YxxnDctciHiEmXBXRYvIpQOhwVPDftOoRDuFu474nl3IUN_K4/s400/no+flyback+diode.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjljGm-CZHINZmnPjJ9LZyJJBUia76FjDNa_qgQeCOkYJ2yEbW6H0DfAmTT-Xjpe1Aoovql5tmw3fS38OIFdrozokPTgiGN8Y2d_mWVYtk1ckzN-Hz8dsTXqnAk0jTiK4YkIUHDjUVAgUg/s1600/with+flyback+diode.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;191&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjljGm-CZHINZmnPjJ9LZyJJBUia76FjDNa_qgQeCOkYJ2yEbW6H0DfAmTT-Xjpe1Aoovql5tmw3fS38OIFdrozokPTgiGN8Y2d_mWVYtk1ckzN-Hz8dsTXqnAk0jTiK4YkIUHDjUVAgUg/s400/with+flyback+diode.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/1674000229882822743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/1674000229882822743'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/06/h-bridge-simulation.html' title='H-bridge simulation'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEglNGVUpCvYxm6MNgsxZ0r6gBZM430PypKihiPN8p8OLwcDkE23Syo55YjnDH_sirbyO6wnzI4zMTDO5nAukeg9ap2n7-YxxnDctciHiEmXBXRYvIpQOhwVPDftOoRDuFu474nl3IUN_K4/s72-c/no+flyback+diode.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-181224161355955673</id><published>2011-06-25T15:18:00.001-10:00</published><updated>2011-06-25T15:18:50.055-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="BASYS2"/><category scheme="http://www.blogger.com/atom/ns#" term="FPGA"/><category scheme="http://www.blogger.com/atom/ns#" term="VHDL"/><title type='text'>WOOOOO! FPGAA</title><content type='html'>I just got my new FPGA development board, BASYS2, by Digilent. Since everybody at my workplace seems to be using VHDL rather than Verilog, which is what I learned in school, I will be attempting VHDL this summer!&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;http://www.digilentinc.com/Data/Products/BASYS2/BASYS2-top-400.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;195&quot; src=&quot;http://www.digilentinc.com/Data/Products/BASYS2/BASYS2-top-400.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;My first project will be to make an oscilloscope by the end of this summer. I will be polling an external analog to digital converter, giving it a time stamp, and sending it over USB to a Python script that will process the data and display it. The reason for using an FPGA is first to get practice with it since it looks like people like digital hardware experience. The second reason is because I can simultaneously poll and communicate if I create a buffer. If I were to do this with a microcontroller I would have to interlace the two actions, which is a pain.&lt;br /&gt;
&lt;br /&gt;
My first step is to make basic components such as a register so I can start creating finite state machines and whatnot.</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/181224161355955673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/181224161355955673'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/06/wooooo-fpgaa.html' title='WOOOOO! FPGAA'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-2052976445827714289</id><published>2011-06-25T07:19:00.000-10:00</published><updated>2011-11-29T20:27:01.305-10:00</updated><title type='text'>Completed Mobot</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKnP3tBXzN-r-IsFaPoFo2LqYsZyLUiEI9ha59mAHZKk9kl_QWumZunJKIX7k3xGqV9A2vMoEfLw5dyuo4RRBJo3nz_XPsk5pnhfpx8THUlaQXJch0UVr4nZektyyCEAw_WlgumdXoJlU/s1600/mobot+2011.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKnP3tBXzN-r-IsFaPoFo2LqYsZyLUiEI9ha59mAHZKk9kl_QWumZunJKIX7k3xGqV9A2vMoEfLw5dyuo4RRBJo3nz_XPsk5pnhfpx8THUlaQXJch0UVr4nZektyyCEAw_WlgumdXoJlU/s320/mobot+2011.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;30 minutes into the competition, after about 20 hours of non-stop building, we finally completed our mobot. The mobot, patched together by band-aids, gave us problems until the the very end, until everything just came together and worked. From the back of the mobot, you can see the h-bridge, microcontroller, and power board. In the very front under the cardboard is the sensor board.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;We were able to make our last heat, but unfortunately we were not able to place. Other than our lack of time we had issues such as an under-spec motor and incomplete sensor board, which essentially decreased the mobot&#39;s performance. The motor was run at almost double its rated voltage and as a result we saw constantly degrading speed and torque. The sensor unit used was actually the sensor module built for testing and not for the competition. We simply didn&#39;t have enough time to create a new one.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Overall, this season of mobot was pretty good considering the quality and sophistication of hardware produced. Being students at Carnegie Mellon, we are fed so much information and work at a sporadic rate that the difficulty of managing time is understandable. However, this will be our main challenge going into mobot 2012.&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/2052976445827714289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/2052976445827714289'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/06/completed-mobot.html' title='Completed Mobot'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKnP3tBXzN-r-IsFaPoFo2LqYsZyLUiEI9ha59mAHZKk9kl_QWumZunJKIX7k3xGqV9A2vMoEfLw5dyuo4RRBJo3nz_XPsk5pnhfpx8THUlaQXJch0UVr4nZektyyCEAw_WlgumdXoJlU/s72-c/mobot+2011.JPG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-7054975292939368502</id><published>2011-06-12T19:02:00.001-10:00</published><updated>2011-06-12T19:05:10.616-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Analog"/><category scheme="http://www.blogger.com/atom/ns#" term="LTSpice"/><title type='text'>Playing with Darlington Pairs</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;I wanted to light an LED without affecting the input impedance of the device I was measuring without buying a FET. Having the Darlington pair creates the digital-like steep ramp you see below in the simulation results by achieving the product of the current gains (beta) of each of the NPN transistors. The base resistor decreases the base current to a minimum to prevent affecting the load of V2. The green line shows the I-V relationship of voltage source V2 and its current output. You can see a slight change in slope (Ohms) at the output end, but it is negligible considering the purpose.&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqqZVdRvMiDOmAeIGhLXRXelTlzY8Nhnv66-xbq-04mZrdpI5JhsNkON44Ngv-JNr1RtH3n7r8MG-UpdRTCB-UsInS9mk18dacqIKJQskTiYn7MTtbUgfrFBqvaOYYPVIM7xSQ2WhcIEk/s1600/Pretty+Much+Digital+1.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: left;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;199&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqqZVdRvMiDOmAeIGhLXRXelTlzY8Nhnv66-xbq-04mZrdpI5JhsNkON44Ngv-JNr1RtH3n7r8MG-UpdRTCB-UsInS9mk18dacqIKJQskTiYn7MTtbUgfrFBqvaOYYPVIM7xSQ2WhcIEk/s400/Pretty+Much+Digital+1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/7054975292939368502'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/7054975292939368502'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/06/playing-with-darlington-pairs.html' title='Playing with Darlington Pairs'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqqZVdRvMiDOmAeIGhLXRXelTlzY8Nhnv66-xbq-04mZrdpI5JhsNkON44Ngv-JNr1RtH3n7r8MG-UpdRTCB-UsInS9mk18dacqIKJQskTiYn7MTtbUgfrFBqvaOYYPVIM7xSQ2WhcIEk/s72-c/Pretty+Much+Digital+1.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-5074725839758045831</id><published>2011-05-25T20:03:00.003-10:00</published><updated>2011-05-25T20:35:11.386-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="MATLAB"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC-18f25k20"/><title type='text'>Custom Interface Design</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dzUxrW6BchDk6sF6FzKzRv82yoIZQn_63dBjZyy0X8u4lyw74V2SkCLvOX-uFUkqrpFO-upvJyO6o4Pp3U3RA&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;For the last three months I have been designing a custom interface for the &lt;a href=&quot;http://www.psy.cmu.edu/~auditorylab/AuditoryLab.html&quot;&gt;auditory lab&lt;/a&gt; at Carnegie Mellon University. I built an array of infrared sensors and interfaced them to MATLAB using PIC18f25k20 and other proprietary hardware. The chassis was put together by Guilliaume Lemaitre and Nicolas Zuniga from the auditory lab. The goal of this project is to measure motor response time to auditory stimulation.&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Below are photos of the setup and circuits. The sensor unit shown below is a part of &lt;a href=&quot;http://mobot11.blogspot.com/2011/03/sensor-unit-design.html&quot;&gt;this circuit&lt;/a&gt;.&amp;nbsp;The infrared LED driver portion can be seen on the cpu board. They were separated to minimize sensor size. The cpu board accepts up to 4 sensors: one IR long distance (5cm) sensor and three IR (1cm) sensors. The 5cm sensor is used to detect&amp;nbsp;vertical&amp;nbsp;movement and the 1cm units detect if and object is above it. The IR sensors used to be contact switches, but they had to be replaced because it contaminated the auditory stimuli.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMswWlinaLgWedFmnXd2hqAmlcXjkpdIZizEGMkD2NRe0BVSCTc8MCN87M7nIUr4OmJ0OdJsnZ0zH5X5PeaHd74fEOlKpmOTo0AUqHMr1E5Dr8KVNkCTFb1tNExloAzeTxI4sq5-R-k1k/s1600/photo+%25282%2529.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMswWlinaLgWedFmnXd2hqAmlcXjkpdIZizEGMkD2NRe0BVSCTc8MCN87M7nIUr4OmJ0OdJsnZ0zH5X5PeaHd74fEOlKpmOTo0AUqHMr1E5Dr8KVNkCTFb1tNExloAzeTxI4sq5-R-k1k/s200/photo+%25282%2529.JPG&quot; width=&quot;150&quot; /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: none; color: black;&quot;&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM3-ee0RbrZYA_5tv6bOmomZuZ-LE5T1V7qwVwManV6FIh-f0HnVolWymWWj3VAhCvvziH2xFMr94Mg7LLPX5Y-D3kZkrnd1fPw3U5dulL4Ju_eUdUiR_wbkEWhG5xzA5AbIWaP4U-EvQ/s1600/photo+%25286%2529.JPG&quot; imageanchor=&quot;1&quot; style=&quot;display: inline !important; margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgM3-ee0RbrZYA_5tv6bOmomZuZ-LE5T1V7qwVwManV6FIh-f0HnVolWymWWj3VAhCvvziH2xFMr94Mg7LLPX5Y-D3kZkrnd1fPw3U5dulL4Ju_eUdUiR_wbkEWhG5xzA5AbIWaP4U-EvQ/s200/photo+%25286%2529.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Ezl3hupMmqk2qLq8anUGgGb8PR8Ndo_hkvv4B_JbKkIhm1CXsp7PPo7qjy4ifonYnIkec1jjGGlfXptbHVpcrdfH_6x0UIXbxEVosPfyI-lFSH1k7t6nqtW0DG7Okajzm5Ffwzh0l-k/s1600/photo+%25283%2529.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;153&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi1Ezl3hupMmqk2qLq8anUGgGb8PR8Ndo_hkvv4B_JbKkIhm1CXsp7PPo7qjy4ifonYnIkec1jjGGlfXptbHVpcrdfH_6x0UIXbxEVosPfyI-lFSH1k7t6nqtW0DG7Okajzm5Ffwzh0l-k/s200/photo+%25283%2529.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVR4pyYJ-5ecKe7yeX1BTHsm614e4shuXXevkaTSCJ1mjLl-1Yq2c_w5LRGATCFuQj_AUaIhO0KjSJjjdyY2n8SgumH2dBueznzi1MxRPb4lpk-c07gasKTn_yDZBxoR3zMZFin9OSsFk/s1600/photo.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; display: inline !important; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;150&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVR4pyYJ-5ecKe7yeX1BTHsm614e4shuXXevkaTSCJ1mjLl-1Yq2c_w5LRGATCFuQj_AUaIhO0KjSJjjdyY2n8SgumH2dBueznzi1MxRPb4lpk-c07gasKTn_yDZBxoR3zMZFin9OSsFk/s200/photo.JPG&quot; width=&quot;200&quot; /&gt;&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/5074725839758045831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/5074725839758045831'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/05/interface-design.html' title='Custom Interface Design'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjMswWlinaLgWedFmnXd2hqAmlcXjkpdIZizEGMkD2NRe0BVSCTc8MCN87M7nIUr4OmJ0OdJsnZ0zH5X5PeaHd74fEOlKpmOTo0AUqHMr1E5Dr8KVNkCTFb1tNExloAzeTxI4sq5-R-k1k/s72-c/photo+%25282%2529.JPG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-4961825941783352136</id><published>2011-05-20T06:35:00.000-10:00</published><updated>2011-11-29T20:27:01.306-10:00</updated><title type='text'>Tutorial on H-bridges</title><content type='html'>Here is a pretty descriptive tutorial on H-bridges :&amp;nbsp;&lt;a href=&quot;http://www.pyroelectro.com/tutorials/h_bridge_4_transistor/index.html&quot;&gt;http://www.pyroelectro.com/tutorials/h_bridge_4_transistor/index.html&lt;/a&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/4961825941783352136'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/4961825941783352136'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/05/tutorial-on-h-bridges.html' title='Tutorial on H-bridges'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-2705965942929017681</id><published>2011-04-26T22:21:00.001-10:00</published><updated>2013-08-20T21:56:57.072-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Analog"/><category scheme="http://www.blogger.com/atom/ns#" term="LTSpice"/><title type='text'>Back to Basics</title><content type='html'>&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;After briefly reading my textbook, I decided to build a current mirror using random BJTs that were lying around. Q3 is there to reduce the base-current error. Since I don&#39;t have a desktop current source I decided to use a biased PNP transistor. This was a great opportunity for me to try the simulation capabilities of LTSpice. As you can see below, the LTSpice simulation closely matched the actual data.&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;Strangely, regardless of Q3, there was a 33% loss in the current mirror. This was probably because of the low current level I was mirroring. High beta values lead to higher error as well.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: black; font-family: &#39;Times New Roman&#39;; font-size: small; line-height: normal;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3sEq3TEfMkiHNv0wjEHTflI6YYaxEcjg1zhRUmT9Z6EewexUqonR9_1wIzNlDdMqUaIjLqkrLfAt6zN31JzGP_MeA0M-sQsQztH0vVmdVOfQDCRINv2jidSoYfXjIRvpjQnnejNf62BQ/s1600/Picture0078.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3sEq3TEfMkiHNv0wjEHTflI6YYaxEcjg1zhRUmT9Z6EewexUqonR9_1wIzNlDdMqUaIjLqkrLfAt6zN31JzGP_MeA0M-sQsQztH0vVmdVOfQDCRINv2jidSoYfXjIRvpjQnnejNf62BQ/s320/Picture0078.jpg&quot; style=&quot;cursor: move;&quot; width=&quot;256&quot; /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQm0pJpOG8QIvJdKZc7YHxqdWerSxZTKGx938EfODGiVAXGamnM90vyxi9s6J399R_jj-agstEAEVyjos-x_rC-MxX-d4zzPi-Z1McCl57rxaoJhbBUnGfnmHGwr42J0X5xaOrMHA4gk0/s1600/ltspice+results.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;198&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjQm0pJpOG8QIvJdKZc7YHxqdWerSxZTKGx938EfODGiVAXGamnM90vyxi9s6J399R_jj-agstEAEVyjos-x_rC-MxX-d4zzPi-Z1McCl57rxaoJhbBUnGfnmHGwr42J0X5xaOrMHA4gk0/s400/ltspice+results.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1WnsLEoW_vu7kIzRgHkwWADobdk86Aqen_JaZEijGVWC90fr3j43L06cl9ncLx9IdSh8ZswNxBtyHoXX-zq6MJqdFiTKQwuI3QsEND68305Z5Z0LMefVJb_Elr1FSdYQq-tRFXtUnEGA/s1600/measurements.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1WnsLEoW_vu7kIzRgHkwWADobdk86Aqen_JaZEijGVWC90fr3j43L06cl9ncLx9IdSh8ZswNxBtyHoXX-zq6MJqdFiTKQwuI3QsEND68305Z5Z0LMefVJb_Elr1FSdYQq-tRFXtUnEGA/s400/measurements.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-style-span&quot; style=&quot;color: #333333; font-family: Arial, Tahoma, Helvetica, FreeSans, sans-serif; font-size: 13px; line-height: 18px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/2705965942929017681'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/2705965942929017681'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/04/back-to-basics.html' title='Back to Basics'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh3sEq3TEfMkiHNv0wjEHTflI6YYaxEcjg1zhRUmT9Z6EewexUqonR9_1wIzNlDdMqUaIjLqkrLfAt6zN31JzGP_MeA0M-sQsQztH0vVmdVOfQDCRINv2jidSoYfXjIRvpjQnnejNf62BQ/s72-c/Picture0078.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-5013345413106394139</id><published>2011-04-12T04:21:00.000-10:00</published><updated>2011-11-29T20:27:01.306-10:00</updated><title type='text'>Two days left!!</title><content type='html'>There are only two days remaining between today and the competition!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We have successfully integrated the&amp;nbsp;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/5013345413106394139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/5013345413106394139'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/04/two-days-left.html' title='Two days left!!'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-1638974080536996686</id><published>2011-04-09T09:39:00.000-10:00</published><updated>2011-11-29T20:27:01.308-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="drive circuit"/><title type='text'>H-bridge Board Complete</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;The H-bridge board is now complete! Time to go get heat sinks.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dx5p-snXAM7-5Am_XSJtH_tsGw3MVRRNTTTFVXKjrCB8UGefLLV3BKYD8ZoylQaxA7iTc70ZPILLorrAaO4YQ&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;-webkit-text-decorations-in-effect: underline;&quot;&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ4DiIrJDz8PdsJzZbt4SZJ46cOjzLOTVZq9jnXylpTP3eEsrQylx8Z0Tf0X-IE0JWoczouk_2G1A1m3STDWxNnwk5WACA1Ddqk5D0JPeWL9pJbQOyMRH9bl6VYYmZ82RHKr4VbCCr6do/s1600/P1020995.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ4DiIrJDz8PdsJzZbt4SZJ46cOjzLOTVZq9jnXylpTP3eEsrQylx8Z0Tf0X-IE0JWoczouk_2G1A1m3STDWxNnwk5WACA1Ddqk5D0JPeWL9pJbQOyMRH9bl6VYYmZ82RHKr4VbCCr6do/s320/P1020995.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvxAAaLqug2-jfMmkmrWYzU13JUNwb4jtOL3UqBgoLu7MdBs2C5pUpKMbWAxqsxeqlY74OV6Qf52jNrBPzNA34tYMS2WVobs3AOnfnm0RT16zanjT2jjmAeWhWWqiGwhv0011fnZrdtmA/s1600/P1020999.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjvxAAaLqug2-jfMmkmrWYzU13JUNwb4jtOL3UqBgoLu7MdBs2C5pUpKMbWAxqsxeqlY74OV6Qf52jNrBPzNA34tYMS2WVobs3AOnfnm0RT16zanjT2jjmAeWhWWqiGwhv0011fnZrdtmA/s320/P1020999.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/1638974080536996686'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/1638974080536996686'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/04/h-bridge-board-complete.html' title='H-bridge Board Complete'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZ4DiIrJDz8PdsJzZbt4SZJ46cOjzLOTVZq9jnXylpTP3eEsrQylx8Z0Tf0X-IE0JWoczouk_2G1A1m3STDWxNnwk5WACA1Ddqk5D0JPeWL9pJbQOyMRH9bl6VYYmZ82RHKr4VbCCr6do/s72-c/P1020995.JPG" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-7188974130684088605</id><published>2011-04-06T12:41:00.001-10:00</published><updated>2011-04-26T22:36:16.322-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="C18"/><category scheme="http://www.blogger.com/atom/ns#" term="Character LCD"/><category scheme="http://www.blogger.com/atom/ns#" term="PIC-18f25k20"/><title type='text'>LCD bug fixed</title><content type='html'>I have finally fixed the accuracy of my LCD code. Previously, my code contained many bugs, which essentially made the LCD unreliable. In fact, it was reliably dropping characters and ignoring commands.&amp;nbsp;From the beginning, I had made sure that that I obeyed the timing diagram. However, I had completely forgotten to refer to the execution times listed by the instruction summary in the LCD driver datasheet. This means that I was sending instructions before the previous one completed.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I have finally implemented the proper delays allowing the commands to complete. Later, I use the busy flag or interrupt based display queue instead.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe allowfullscreen=&#39;allowfullscreen&#39; webkitallowfullscreen=&#39;webkitallowfullscreen&#39; mozallowfullscreen=&#39;mozallowfullscreen&#39; width=&#39;320&#39; height=&#39;266&#39; src=&#39;https://www.blogger.com/video.g?token=AD6v5dwA4MhWgpnObt3ZUiFX0uDr97SS7fiRW58BFINdCruZwJ8GRuIUQWF15P6pPM120XGEyn1SmN8w7FJCC8Zh-g&#39; class=&#39;b-hbp-video b-uploaded&#39; frameborder=&#39;0&#39;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/7188974130684088605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/7188974130684088605'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/04/lcd-bug-fixed.html' title='LCD bug fixed'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-1247673840117936858</id><published>2011-04-03T23:08:00.000-10:00</published><updated>2011-11-29T20:27:01.308-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="drive circuit"/><title type='text'>H-bridge works!</title><content type='html'>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;All problems in the previous post has been solved! A single power supply can run the entire circuit without interruption by the motor. The FETs don&#39;t heat up anymore and driving them with a PWM signal actually varies the speed!&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Below is the schematic for the working h-bridge. D1~D4 are 1N4007, which has a peak repetitive reverse voltage of 1000V. I am anticipating only a couple hundred volts being produced from switching the inductive load, but it&#39;s best to be safe since they cost about the same anyways.The resistors keep the h-bridge FETs all off when there is no input. The FETs are IRF530 and IRF9530, which can handle a much bigger load, but since these were the ones I initially ordered these are the ones that we&#39;re using. The inverters are actually NOR gates from a 4001 IC; this is to amplify the 3.3V/0V (High/Low) microcontroller output to 5V/0V (High/Low), which correspond to the power supply voltage for bridge.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpew3jBrhA2xC8tpXCtLsIIZjsowgD0z0JCB0Z4jCQVIswRv5ZDdvjWZjE0I4IhDd1L1bbxp6JEaQEk5cEkxknJgKktHHdPUrKOebO9wdNOWAjsYIAieLcWNRIuwc0pqpaAkDL1Ztosdg/s1600/h-bridge.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;181&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpew3jBrhA2xC8tpXCtLsIIZjsowgD0z0JCB0Z4jCQVIswRv5ZDdvjWZjE0I4IhDd1L1bbxp6JEaQEk5cEkxknJgKktHHdPUrKOebO9wdNOWAjsYIAieLcWNRIuwc0pqpaAkDL1Ztosdg/s400/h-bridge.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;Test program decremented pulse width, switched direction, then incremented pulse width again. The FETs did not get hot (motor unloaded). Other than that, I am not sure why the motor voltage is not symmetrical. The measure function is reading Vpp,max =10V, but it seems to work fine. Loading the motor (pressing axel with finger) did not affect the waveform significantly. I guess I just have to solder it now.&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnd94YhcOLdi5-lVRfnnE_qrRptr3dWx080Zwx8D_cY3-8zLTWVmgtLEaUR3HTWxQJwaWTFjpPjLAIK3GVLfvF3W_5WRyUjhr0EQ3HStDdLEIqf4CL8ozv3u84-K2MXl1i-y2UxXZFOZM/s1600/Final.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnd94YhcOLdi5-lVRfnnE_qrRptr3dWx080Zwx8D_cY3-8zLTWVmgtLEaUR3HTWxQJwaWTFjpPjLAIK3GVLfvF3W_5WRyUjhr0EQ3HStDdLEIqf4CL8ozv3u84-K2MXl1i-y2UxXZFOZM/s400/Final.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;br /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/1247673840117936858'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/1247673840117936858'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/04/h-bridge-works.html' title='H-bridge works!'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpew3jBrhA2xC8tpXCtLsIIZjsowgD0z0JCB0Z4jCQVIswRv5ZDdvjWZjE0I4IhDd1L1bbxp6JEaQEk5cEkxknJgKktHHdPUrKOebO9wdNOWAjsYIAieLcWNRIuwc0pqpaAkDL1Ztosdg/s72-c/h-bridge.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-5599612150060608534</id><published>2011-04-03T11:55:00.000-10:00</published><updated>2011-11-29T20:27:01.308-10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="drive circuit"/><title type='text'>H-bridge trouble</title><content type='html'>Instead of just buying one off the shelf, I decided that I should try building a H-bridge myself. I do not have any experience actually designing one myself so I thought this would be a good experience. I later found out that it was not as easy as it looked. I was able to successfully drive a motor, but there were also many problems.&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a list of problems I ran into:&lt;/div&gt;&lt;div&gt;&lt;ol&gt;&lt;li&gt;Power supply affected by switching FETs &amp;gt; microcontroller resets :(&lt;/li&gt;&lt;li&gt;PWM heats up the board (also doesn&#39;t work)&lt;/li&gt;&lt;li&gt;Slow response of motor (~0.5 sec) &amp;gt; definitely why PWM doesn&#39;t work&lt;/li&gt;&lt;/ol&gt;&lt;div&gt;(problem 1): I solved this by adding a separate power supply to the robot. This is not ideal since the robot can&#39;t support a large load.&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(problem 2): This is possibly caused by two reasons. The first is that we may be switching the FETs in a bad order, causing a momentary short-circuit in between switches. The second is that I need to include a flyback diode. I believe that this is most likely the cause even though in the datasheet they say there is an internal diode (some times datasheets lie {also the diode&#39;s current tolerance may be under-spec}).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(problem 3): Having taken a course on control theory (doesn&#39;t help much), applying our knowledge we have decided to blame the time constant of the system. There are several issues that may be contributing to the slowness. I haven&#39;t removed the pull-up/down resistors from the gates from when I was testing it (to avoid floating inputs). In order to save power, I made them very large (100k Ohm), which means that the RC circuit created by the parasitic cap in the FET and the resistor has a massive time constant. The other problem may be that we are driving the motor at a voltage far off from what it&#39;s meant to be used at. It&#39;s also possible that the drain-source voltage of the FET is smashed (FET no longer in saturation region) and needs time to recover.&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;br /&gt;about flyback diodes: &lt;a href=&quot;http://en.wikipedia.org/wiki/Flyback_diode#Derivation&quot;&gt;flyback diode wiki&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/5599612150060608534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/5599612150060608534'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/04/h-bridge-trouble.html' title='H-bridge trouble'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-8243947812572077370.post-2941775870432503708</id><published>2011-03-30T13:56:00.000-10:00</published><updated>2011-03-30T13:56:16.245-10:00</updated><title type='text'>Mobile Robot Race</title><content type='html'>I have been participating in an annual competition called Mobot (Mobile Robot Race) at Carnegie Mellon University for the last two years. The objective is to build a line following robot to follow a line drawn outside on a sidewalk on the CMU campus. The 2011 race will be in two weeks during CMU&#39;s spring carnival and I have been documenting my progress in building the robot on a &lt;a href=&quot;http://mobot11.blogspot.com/&quot;&gt;separate blog&lt;/a&gt;. We use infrared LED-sensor pairs to detect the reflectiveness of parts of the ground. The white line we have to follow will reflect the most light, so this way we should be able to follow it to the goal. Challenges in completing the task are: the inconsistency of whiteness of the line, gaps between the blocks of concrete in the sidewalk, two very steep hills, and decision points where the line splits and the robot has to go in a pre-determined direction.&lt;br /&gt;
&lt;br /&gt;
Up to this point I have been able to complete half of the course (up to the decision points) at most. Hopefully, this year we will go farther. However, I have set myself a cost goal of under $50, which I &amp;nbsp;try to adhere to. My robot from Mobot Races 2009 was $20 and the one from Mobot Races 2010 was $50. Below are pictures the robots (unfortunately after I&#39;ve salvaged some parts):&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WOa4-Sk4UM8LJcW7BhRfGjCu5-nBZZo1jTMO73zezhfXxUrzRDbkEG4DvsAc3HyIlDdTeukBYTEx52C3i0YhHabMm2UIs1J_aEbwAireezsKk1kiYtIP-yeSvCwSZKPseWeKdv7TEVg/s1600/P1020981.JPG&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WOa4-Sk4UM8LJcW7BhRfGjCu5-nBZZo1jTMO73zezhfXxUrzRDbkEG4DvsAc3HyIlDdTeukBYTEx52C3i0YhHabMm2UIs1J_aEbwAireezsKk1kiYtIP-yeSvCwSZKPseWeKdv7TEVg/s1600/P1020981.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WOa4-Sk4UM8LJcW7BhRfGjCu5-nBZZo1jTMO73zezhfXxUrzRDbkEG4DvsAc3HyIlDdTeukBYTEx52C3i0YhHabMm2UIs1J_aEbwAireezsKk1kiYtIP-yeSvCwSZKPseWeKdv7TEVg/s320/P1020981.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwWzFFcUxb2AhgeJm5U4E8D9yBwmRxTovIv7FsSMsGHg5XPLDUI0KjAb1JJyyTWlCwevW7iznRDVPrhoyTaQlP9PUhq_VS71iOsNkbxJbf2lXpk9KDWJuztnBsq_CjuSFQigr7YMGf5iE/s1600/P1020980.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;180&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwWzFFcUxb2AhgeJm5U4E8D9yBwmRxTovIv7FsSMsGHg5XPLDUI0KjAb1JJyyTWlCwevW7iznRDVPrhoyTaQlP9PUhq_VS71iOsNkbxJbf2lXpk9KDWJuztnBsq_CjuSFQigr7YMGf5iE/s320/P1020980.JPG&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/2941775870432503708'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/8243947812572077370/posts/default/2941775870432503708'/><link rel='alternate' type='text/html' href='http://robo-nut.blogspot.com/2011/03/mobile-robot-race.html' title='Mobile Robot Race'/><author><name>Anonymous</name><uri>http://www.blogger.com/profile/02737657074999594799</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0WOa4-Sk4UM8LJcW7BhRfGjCu5-nBZZo1jTMO73zezhfXxUrzRDbkEG4DvsAc3HyIlDdTeukBYTEx52C3i0YhHabMm2UIs1J_aEbwAireezsKk1kiYtIP-yeSvCwSZKPseWeKdv7TEVg/s72-c/P1020981.JPG" height="72" width="72"/></entry></feed>