{"id":104,"date":"2012-11-22T18:38:33","date_gmt":"2012-11-22T18:38:33","guid":{"rendered":"http:\/\/organicthemes.com\/demo\/tech\/?p=104"},"modified":"2016-02-15T00:04:05","modified_gmt":"2016-02-15T00:04:05","slug":"google-acquires-sparrow","status":"publish","type":"post","link":"https:\/\/mellottsvrpage.com\/index.php\/google-acquires-sparrow\/","title":{"rendered":"Wireless Glove Project"},"content":{"rendered":"<p align=\"left\">Well this project is finally complete. I&#8217;ve learned more then I could of hoped from all of this. I started this project over a year ago. First it started out with just brainstorming and research. After I got the proper test equipment, I would say I spent a few months of free time, after work, on the glove. Improvement and redesigning the concept. I started with an entirely analog system. That was a mistake. Then I went digital but the circuits were still to space consuming. Finally when I got my act together I went with a ATmega163 microcontroller. Cheaper overall, less space consuming, and easier to work with.  This project is a little different then the others.  It not so much a step by step but more of an overview. The amount of depth that I would have to go into would take up a huge amount of time.  I will add more as time permits but if you need any details let me know.  <\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/enclosure2.jpg\" width=\"546\" height=\"368\"><\/p>\n<p align=\"left\">Excluding the equipment costs, this project will cost approx. 100 to 150 dollars. Without equipment, unless your just doing it for the challenge, I would not recommend this project for most people. The programmer for the microcontroller was 100 dollars with a 250 dollar O&#8217;scope, and a variety of tools stacked on top of that. One thing I will do, if you really want to do this project, is burn the chips for you. Send me the money or a chip and I&#8217;ll burn one for you and send it out as fast as possible. That will keep your cost down. You will definitely need an O&#8217;scope for troubleshooting and repair. Otherwise, it will be cheaper and easier to buy a 5DT glove for around 495 dollars.<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/ghand.jpg\" width=\"597\" height=\"453\"><\/p>\n<p align=\"left\">I&#8217;m going to give you a basic run down of the operation of this glove.  In its simplest form, what we have here is a wireless A to D converter.  Lets start with the transmitter section.  On the AtoD pins, the microcontroller reads the values of the voltage dividers determined by the position of your fingers.  The internal program constantly loops and reads these values.  It then converts them to digital and sends them out the on board UART. The data is send out at a 4800,n,8,1 format.  Which means a port speed of 4800, 8 data bits, and 1 stop bit. Finally the UART pin feeds to an AM modulated link which is transferred to radio waves.  Other then the microcontroller and the AM link: there is a voltage regulator, voltage divider for the glove, a 4 MHz crystal for the microcontroller, a 3 dB pad for matching, and the antenna. <\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/Rblock.jpg\" width=\"509\" height=\"168\"><\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/Tblock.jpg\" width=\"509\" height=\"168\"><\/p>\n<p align=\"left\">In the receiver the AM link picks up the radio waves and converts them back to a digital format.  The receiver feeds this data to a Max232 line driver.  This line driver converts the 0 to 5V signal to a +12 to -12 RS-232 format.  That is then feed to one of your COM ports.  The other components in the receiver are: an antenna, a 3 dB pad, and a voltage regulator.  So as you can see this project doesnt consist of much component wise.  But the amount of time to generate the glove is consuming.  The fun is making it all work together.<\/p>\n<p align=\"left\">This project is to show that it is possible to produce homebrew VR equipment. And I display it here for anyone who wants to give it a go.  With the test equipment I&#8217;ve purchased initially I can now produce a variety of other VR projects. So enough talking lets start with what you&#8217;ll need.<\/p>\n<p align=\"left\"> <strong>You will need: <\/strong><\/p>\n<ol>\n<li>The hand portion of a power glove or five resistive flex  sensors.<\/li>\n<li>Approx everything in this <a href=\"http:\/\/mellottsvrpage.com\/material.htm\"> material<\/a> list.<\/li>\n<li>Desktop PC with Com2 serial port.<\/li>\n<li>ATI programmer-STK500.<\/li>\n<li>Oscope.<\/li>\n<li>Soldering Iron<\/li>\n<li>Dremel with attachments.<\/li>\n<li>Hack saw and vise (PCB design).<\/li>\n<li>Hell of a lot of time!!!!<\/li>\n<\/ol>\n<p align=\"left\"> I recommend building the unit on a breadboard before putting it together on your PCB boards. It may save you a lot of time in troubleshooting and will also get you familiar with  to breadboard or wire wrapped boards. The PCB&#8217;s can take some time to make. Otherwise, the first step is to build your the operation of the unit. The unexperienced my want to stickcustom PCB boards. This will take some time.<\/p>\n<p align=\"left\"> <img loading=\"lazy\" decoding=\"async\" src=\"images\/pcb6.jpg\" width=\"204\" height=\"407\" align=\"right\" \/>The first thing to do is take a piece of paper and fold it in half. The top half will be the top of your PCB and the bottom will be the bottom of the PCB. Take your enclosure and place it on top of the top section and trace it. Now flip over the enclosure and make note of the holes you&#8217;ll have to drill and make note of them on your traced box. Basically you want your traced picture to look exactly like the inside of your enclosure where the PCB will be mounted. This will give you a template to draw your PCB layout.<\/p>\n<p align=\"left\"> The receiver side will be the same process except you will have a back side.  With the receiver you want to take your drawing and fold it in half so you can hold it up to a light to see through the drawing. This way you can see where your traces are relative to the front.   I started with placing the Vcc and Ground traces around the board.  This may or may not be the correct thing to do as far as PCB design, but that&#8217;s what I choose to do.  Then I placed all my components with respect to those traces.  You have to of course take into effect where outside components will be entering the box. <\/p>\n<p align=\"left\"> Here are some pictures of my rough PCB&#8217;s with the components installed.  I wish I could provide better pictures but this is all I have access to at this time. You can use this as your guide along with the schematics ( just email me) to place your components. I recommend using a 40 pin socket instead of soldering the IC directly to the PCB like I did. Also make sure all your holes are drilled in your enclosure before you stuff your boards. This will prevent any damage from happening to your boards (trust me, I know). <\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/pcb1.jpg\" width=\"640\" height=\"480\" style=\"padding-left: 15px;\" \/><\/p>\n<p align=\"left\">On the transmitter PCB I have included a 6 pin header to update the firmware in the system.  I have also included a 3 pin header that is connected to the microcontroller.  This 3 pin header is for the future x,y,z tracking cordinates.  Its unclear but you can just make them out.  I have grounded the 3 pin header until further use.  This keeps the data in the lower program easier to look at. <\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/hpin.jpg\" width=\"640\" height=\"480\"><\/p>\n<p> One thing you may wish to do, that I didn&#8217;t, is to place test points on the PCB&#8217;s. A few that I would recommend are: the microprocessor out (pin 15), the receiver out, and the MAX232 line driver out. These points will be useful in your troubleshooting and signal conditioning if needed.<\/p>\n<p>You may notice I may have a few extra components in my PCB pictures ( if you can see them. haha) then in the material list or in the schematic. You can see a rough copy of the schematics below. (If you save the pictures to your desktop then you can zoom in at a more detailed schematic.) <\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/tmp4.jpg\" width=\"640\" height=\"756\" \/><\/p>\n<p>&nbsp;<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/tmp5.jpg\" width=\"640\" height=\"297\" \/><\/p>\n<p>&nbsp;<\/p>\n<p>This   is why I had packs of extra components in the material list.  You may   have to add caps and or resistors to help the circuit  with signal conditioning.  This will depend highly on the quality and   layout of your PCB.\u00a0   This is where your electronics experience will play a crucial role.  The   receiver picked up   a lot more noise when I placed it in the enclosure compared to the   breadboard.  So I had to place additional caps between Vcc and Gnd and a   few other key points, like the line driver.  Its still not as stable as   when it was mounted on a breadboard.  Thats due to my limited   experience on circuit design.  Experiment with the circuit  somewhat and see what works the best. <\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/ghand.jpg\" width=\"597\" height=\"453\" \/><\/p>\n<p align=\"left\">As for the hand portion of the glove, I placed a PCB board where the old  ultrasonic electronics was mounted.\u00a0 Instead of soldering directly to the  flex sensors themselves I used a PCB board.\u00a0 The board is mounted to the  glove and the flex sensors are soldered to them.\u00a0 Then my cable, to the  bulk of the electronics, is mounted to the board.\u00a0 The PCB is just a  straight through connection.\u00a0 This relieves the stress of movement off of  the flex sensors so that they won&#8217;t be damaged over a period of time.\u00a0 Its  much easier to replace the cable then the flex sensors inside the glove.\u00a0 I  then wrapped the board in electrical tape just to hide the wires.\u00a0 It&#8217;s not  the neatest way to go but it works.\u00a0 I also zip tied the cable to the glove   through two slits in the material.\u00a0 This holds the cable down and prevents   it from pulling on the wires.\u00a0 Also note that the PCB on the hand  portion of the glove will pick up RF noise from near by sources like your  monitor and or computer.\u00a0 I didn&#8217;t shield it directly but the electrical  tape alone helped some what.\u00a0 But as we electronic guys go, it should be  shielded.\u00a0 <\/p>\n<p align=\"left\">A little on the enclosures.\u00a0 On the transmitter side you will have to drill a hole for the antenna, one  for the cable from the glove, two for the LED&#8217;s, and another one for the  switch.\u00a0 I notched the enclosure to take my SPST switch.\u00a0 The LED  holders will need a 1\/4 hole and the cable hole will depend on the type you  use.\u00a0 I used a 3\/8 hole.\u00a0 You will also need to drill a small\u00a0 hole for the  9V battery snap on.\u00a0 The antenna hole is approx a 3\/8 hole.\u00a0 The battery clip seen in the picture was attached with  a self tapping screw.\u00a0 As far as the arm strap, I notched the enclosure on  both sides to accommodate the size of the arm strap.\u00a0 I used the strap from  a duffle bag.\u00a0 Velcro straps would be nicer.<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/enclosure1.jpg\" width=\"640\" height=\"348\" \/><\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/enclosure2.jpg\" width=\"546\" height=\"368\" \/><\/p>\n<p align=\"left\">The receiver will need six holes drilled.\u00a0 One for the antenna, two LED  1\/4 holes, a cable hole, a hole for the toggle switch, and a final hole for the  power jack. The cable hole is 3\/8 and the toggle switch I used is a 1\/4  hole.\u00a0 The hole for the antenna will depend on the one your purchase.\u00a0  The unit from RFDigital.com is about a 3\/8 hole. The power jack hole will also  depend on the type purchased.\u00a0I had to shave the enclosure to get the power  jack to fit because it was really small.\u00a0 The enclosure was too  thick.\u00a0 This is where your Dremel with those grinding attachments will come  in handy.\u00a0 Just use common sense.\u00a0 One option, that  I wish I would have done, was to put a serial port connection on the enclosure  instead of attaching a cable.\u00a0 Then you can use any old serial cable that  you have laying around.\u00a0\u00a0<\/p>\n<p>When the PCB&#8217;s are complete and the boards are stuffed.\u00a0 Mount  everything and attach the switches and LED&#8217;s.\u00a0 Keep your holes for the  antennas a little tight.\u00a0 Then use a zip tie around the base of the antenna  to keep it secure.\u00a0 If you can configure your PCB to attach the antenna  directly to the board, that&#8217;s the way it was designed to be used (<a href=\"http:\/\/www.RFDigital.com\"> RFDigital.com <\/a>).\u00a0  When you power on the unit, TRX and RCX, the Red power LED&#8217;s should come on  first.\u00a0 Then the Green data LED&#8217;s should light shortly after.\u00a0 This is  a visual indication that the unit is operating properly.\u00a0 On initial power  up I would leave the enclosures open and do a bench test.\u00a0 More then likely  you&#8217;ll have to adjust or check something.\u00a0 Unless your just that good. <\/p>\n<p align=\"left\">The only thing left is to put together all the pieces.\u00a0 After the boards   are mounted and the holes are made for the cables.\u00a0 Run your cables in to   the enclosures and attach them.\u00a0 You should attach the LED&#8217;s, switches, and   antenna&#8217;s at about the same time you mount your boards.\u00a0 Then place zip   ties on the inside of the enclosures on the cables to prevent them from pulling   loose.\u00a0 Put the tops on and your ready for some data testing.\u00a0 <\/p>\n<p align=\"left\"> Once your circuit is operational hook it up to the serial port and a   terminal program to see if data is being   received on your port.  It will be transmitted in HEX$ format.\u00a0 So make  sure your terminal program can read Hex.\u00a0 You should be able to see a   format of 80 0 X X X X X 0 0 0.  The first two bytes are for syncing and   the last three are for  the x,y,z  coordinates that will be added in a later project.\u00a0 The X&#8217;s are the   finger flexure data.\u00a0  This data, depending on the resistors you chose as the flex sensor   counterparts,  should be between 0 and 255.\u00a0 255 being completely unflexed and 0 being  bent over like crazy.\u00a0 Normal operation you should see data between   approx  70 to 255. If you get data at 255 that doesn&#8217;t respond while your moving   your  fingers, then the voltage going to the microprocessor is above 2.5 V.\u00a0   You  need to change the resistors in the voltage divider to get a little   under 2.5V  when your hand is flat.\u00a0 These corresponding resistors will vary from   unit  to unit and some experimentation will be required.\u00a0 Typically you want   the  resistors to be slightly less resistive then the flex sensor when flat.\u00a0  This will give you the correct voltages.\u00a0 You can see in the schematic   the  values I have chosen.\u00a0\u00a0<\/p>\n<p align=\"left\">For this particular project I added a fifth flex sensor in the pinky of the   power glove.\u00a0 For software purposes I tied this finger to the ring finger   because when I inserted the sensor it was folded over.\u00a0 So the response is   somewhat non-linear.\u00a0 It&#8217;s never the less available for use.\u00a0 Whether   you want to use it or not is up to you.\u00a0\u00a0<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" src=\"images\/program.jpg\" width=\"383\" height=\"309\" \/><\/p>\n<p align=\"left\"> Here is a test <a href=\"http:\/\/www.geocities.com\/mellott123\/zips\/Comglove.ZIP\"> program<\/a> I wrote in VB6 for the glove.\u00a0   Sorry about the really terrible picture.\u00a0  It displays formatted data  in decimal format and also displays a rough hand model the mimics your hand movements.\u00a0  The program uses Com2 as the serial port.\u00a0 It is not extremely fast so  some lag is noticeable.\u00a0 This comes from the way I read and sort data read  from the serial port.\u00a0 Keep in mind this is only a test program and if you  want to use the glove for anything other then this, you will have to write your  own software.\u00a0 The glove will also work in QBasic with a similar program to  that of the glove built in the <a href=\"http:\/\/mellottsvrpage.com\/DataGlove.htm\"> DataGlove<\/a> Project.\u00a0 Basically the glove will  operate with any system that can read data from a serial port.\u00a0The glove  continues to send data to the PC as soon as its on.\u00a0 The data stream is continuous.\u00a0 <\/p>\n<p align=\"left\">\u00a0If you notice that the hand model is glitching a lot, then you   need to adjust the receiver on your PCB.\u00a0  It&#8217;s out of tune. One thing might   be to drill a hole in your enclosure to adjust the receiver from the   outside.  You need to adjust the inductor on the receiver for  the best signal.  The best way to do this is with your Oscope connected   to the  signal out of the MAX232 line driver while adjusting the inductor for   the  cleanest signal. <\/p>\n<p align=\"left\">The wireless glove does work rather well.\u00a0 The link is pretty  stable.\u00a0 I would recommend a FM link though if possible.\u00a0 The AM link  used in this glove appears to be sensitive to temperature.\u00a0 It has a range  of approx 20 feet, depending on any RF noise in the room. It will operate, if  its in the same room ,but degrades with increased distance.\u00a0 The glove  operates best when the receiving station is higher then the transmitter.\u00a0 I  didn&#8217;t use any type of shielding in the receiver.\u00a0 Addition of shielding  may improve the operation.\u00a0 The transmitter didn&#8217;t seem to improve the link  with shielding but the receiver did drastically.\u00a0 The glove looses connection occasionally but the test  software is written to recover from this condition rather well.\u00a0 A better  link would make this glove a robust product.\u00a0 It does serve its purpose  though, as far as homebrew is concerned.<\/p>\n<p align=\"left\"> Well I know this is kind of a rough, quick run down of the project but it should get your started.  If you have any   question please <a href=\"mailto:klmellott@hotmail.com\"> email <\/a> me.  I have ENORMOUS amounts of information on this project.  I have spent countless hours on it, so  don&#8217;t hesitate.\u00a0 So on with the next project and good luck!!!! <\/p>\n<p align=\"center\"> Here is the <a href=\"http:\/\/mellottsvrpage.com\/burnIC.htm\"> program<\/a> that is burned into the ATmega163 chip. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well this project is finally complete. I&#8217;ve learned more then I could of hoped from all of this. I started this project over a year ago. First it started out with just brainstorming and research. After&#8230;<\/p>\n","protected":false},"author":1,"featured_media":257,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"page-full.php","format":"standard","meta":{"footnotes":""},"categories":[2,3,79],"tags":[161,90,121,124,122,147,160],"class_list":["post-104","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","category-featured-2","category-projects","tag-bend-sensors","tag-data-glove","tag-nintendo-power-glove","tag-pg","tag-power-glove","tag-wireless-data-glove","tag-wireless-glove"],"_links":{"self":[{"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/posts\/104","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/comments?post=104"}],"version-history":[{"count":9,"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/posts\/104\/revisions"}],"predecessor-version":[{"id":3999,"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/posts\/104\/revisions\/3999"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/media\/257"}],"wp:attachment":[{"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/media?parent=104"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/categories?post=104"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mellottsvrpage.com\/index.php\/wp-json\/wp\/v2\/tags?post=104"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}