[{"data":1,"prerenderedAt":515},["ShallowReactive",2],{"i-lucide:menu":3,"i-lucide:arrow-up-right":8,"i-lucide:moon":10,"i-lucide:sun":12,"i-lucide:rss":14,"i-simple-icons:github":16,"i-simple-icons:linkedin":18,"post-\u002F2014\u002Fboxofwords-arduino-based-suggestion-generator-for-improvisers":21,"surround-\u002F2014\u002Fboxofwords-arduino-based-suggestion-generator-for-improvisers":502,"i-lucide:arrow-left":511,"i-lucide:arrow-right":513},{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":7},0,24,false,"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4 5h16M4 12h16M4 19h16\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":9},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M7 7h10v10M7 17L17 7\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":11},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":13},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Ccircle cx=\"12\" cy=\"12\" r=\"4\"\u002F>\u003Cpath d=\"M12 2v2m0 16v2M4.93 4.93l1.41 1.41m11.32 11.32l1.41 1.41M2 12h2m16 0h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":15},"\u003Cg fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\">\u003Cpath d=\"M4 11a9 9 0 0 1 9 9M4 4a16 16 0 0 1 16 16\"\u002F>\u003Ccircle cx=\"5\" cy=\"19\" r=\"1\"\u002F>\u003C\u002Fg>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":17},"\u003Cpath fill=\"currentColor\" d=\"M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":19,"hidden":20},"\u003Cpath fill=\"currentColor\" d=\"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037c-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85c3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.06 2.06 0 0 1-2.063-2.065a2.064 2.064 0 1 1 2.063 2.065m1.782 13.019H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z\"\u002F>",true,{"id":22,"title":23,"body":24,"category":455,"comments":456,"date":480,"description":30,"excerpt":481,"extension":482,"image":211,"meta":483,"navigation":20,"path":484,"readingTime":485,"seo":486,"stem":487,"subtitle":481,"tags":488,"wordCount":500,"__hash__":501},"posts\u002F2014\u002Fboxofwords-arduino-based-suggestion-generator-for-improvisers.md","BoxOfWords - Arduino-Based Suggestion Generator for Improvisers",{"type":25,"value":26,"toc":437},"minimark",[27,31,34,37,53,56,61,76,79,82,112,116,119,124,133,140,144,154,160,163,166,173,177,187,191,199,202,216,220,223,226,229,244,248,251,254,257,260,266,270,278,282,289,295,298,301,304,307,310,314,317,321,329,333,336,344,348,351,355,358,362,370,373,376,380,383,386,390,393,397,400,403,409,413],[28,29,30],"p",{},"BoxOfWords is a hand-held, cigarette-box sized electronics project for improvisational theatre practitioners.",[28,32,33],{},"The purpose of the project is to offer randomized word suggestions during an improv workshop or a training session.",[28,35,36],{},"BoxOfWords has a memory card reader, control buttons and a small LCD screen. The improviser selects his preferred word file (emotions, locations, professions...) and can call up new randomized suggestions to the LCD screen with a press of a button.",[28,38,39,40,47,48,52],{},"The project was built as a present to ",[41,42,46],"a",{"href":43,"rel":44},"http:\u002F\u002Fwww.trentasaurus.com",[45],"nofollow","Trent Pancy",", the organizer of the ",[41,49,51],{"href":50},"http:\u002F\u002Ffinlandimprovfestival.com","Third Annual Finland International Improv Festival",".",[28,54,55],{},"This was my second successfully completed production electronics project and the first to include a custom-made PCB and run on batteries.",[57,58,60],"h1",{"id":59},"operation","Operation",[28,62,63,64,68,69,68,72,75],{},"The purpose of the device is to offer randomized words of a certain word category file. For example, we have the following text files (on the SD card): ",[65,66,67],"code",{},"emotions.txt",", ",[65,70,71],{},"locations.txt",[65,73,74],{},"adjectives.txt"," and so on. The user selects his desired category (word file) and the device calls up random words from that file.",[28,77,78],{},"There are four navigation buttons: back, left, right, enter.",[28,80,81],{},"A simple usage scenario would be as follows:",[83,84,85,89,92,95,98,101,104,106,109],"ul",{},[86,87,88],"li",{},"Power On",[86,90,91],{},"Main Menu is shown (the title of the first file)",[86,93,94],{},"The user navigates to the desired file ([right], [right], [enter])",[86,96,97],{},"A random word from that file is shown",[86,99,100],{},"The user wants another random word ([right])",[86,102,103],{},"The user wants another category ([back], [right], [enter])",[86,105,97],{},[86,107,108],{},".....",[86,110,111],{},"Power Off",[57,113,115],{"id":114},"technical-challenges","Technical Challenges",[28,117,118],{},"I learned a lot through the project. Here are the things I found most challenging.",[120,121,123],"h2",{"id":122},"power","Power",[28,125,126,127,132],{},"Portable projects need a power source. I decided to use 4xAA batteries. They're cheap (compared to Li-ion or power banks), offer larger capacity than a 9V battery and output just the right voltage (6V). An article on ",[41,128,131],{"href":129,"rel":130},"http:\u002F\u002Fletsmakerobots.com",[45],"Let's Make Robots"," taught me how to regulate that voltage to a stable 5.0 volts using the Lm2940ct-5 low-dropout voltage regulator. I soldered my first power regulation circuitry.",[28,134,135],{},[136,137],"img",{"alt":138,"src":139},"On breadboard","\u002Fcontent\u002F2014\u002F06\u002Fbreadboard.jpg",[120,141,143],{"id":142},"reading-files-from-an-sd-card","Reading files from an SD card",[28,145,146,147,68,150,153],{},"The main menu should let users choose between txt word files on the SD card. Initially, I planned to just read the contents of a directory and list all the found files on the LCD. After over six hours of hacking with the SD library I was unable to get a file listing into a workable array of strings so I abandoned the idea and decided to use preset file names: ",[65,148,149],{},"WORDS_00.TXT",[65,151,152],{},"WORDS_01.TXT"," and so forth.",[28,155,156],{},[136,157],{"alt":158,"src":159},"LCD","\u002Fcontent\u002F2014\u002F06\u002Flcd_on.jpg",[28,161,162],{},"This put some limits to the project and I settled on having exactly eight files to choose from (this is an artificial limit, I could as well have chosen to have sixteen). That way, I would know exactly which files are present on the card.",[28,164,165],{},"The user still needed some way of distinguishing between files (which file contained Emotions?) so I created a settings system.",[28,167,168,169,172],{},"The SD card has a file called ",[65,170,171],{},"SETTINGS.TXT"," which looks like this.",[174,175,176],"pre",{},"brightness=199\nscrollSpeed=180\ntitle0=Emotions\ntitle1=Professions\ntitle2=Relationships\ntitle3=Locations\ntitle4=Random words\ntitle5=Adjectives\ntitle6=Film Styles\ntitle7=Activities",[28,178,179,180,183,184,186],{},"The file contains two runtime settings and human-readable titles for all of the eight word files. The titles are mapped to the files (",[65,181,182],{},"title0"," = ",[65,185,149],{},") and the LCD shows not the actual file name but the configured title.",[120,188,190],{"id":189},"the-pcb","The PCB",[28,192,193,194,198],{},"Soldering the PCB was a challenge on its own. I've tried to make a PCB before, failed twice, ",[41,195,197],{"href":196},"\u002F2014\u002Fattiny85-melody-module","succeeded once",". The task involves working with delicate parts, lots of small wires and tin. There's always a chance for something shorting.",[28,200,201],{},"I spent a whole day with preparing the wires (instead of soldering ribbon cable directly to the board I opted for a more modular, but complex solution and used headers) and soldering the parts together. At the end of the day, I was spent but victorious: all of the connections worked, there were no shorts and I had my spiders-nest of a PCB, ready for action.",[28,203,204,208,212],{},[136,205],{"alt":206,"src":207},"PCB","\u002Fcontent\u002F2014\u002F06\u002Fpcb.jpg",[136,209],{"alt":210,"src":211},"PCB backside","\u002Fcontent\u002F2014\u002F06\u002Fpcb_back.jpg",[136,213],{"alt":214,"src":215},"PCB on hand","\u002Fcontent\u002F2014\u002F06\u002Fhandheld.jpg",[120,217,219],{"id":218},"physical-enclosure","Physical enclosure",[28,221,222],{},"The project needed a nice-looking, sturdy case which would ideally be as small as possible for comfortable handling. The material of the enclosure needed to be easily workable with hand-held tools for I have no access to 3D printing or computerized mills.",[28,224,225],{},"The first attempt of creating the enclosure was with a thick paper pencil holder I saw at the supermarket. The material was easy to work with (it's basically paper) and sturdy enough to protect the project from deformation. In the end, the enclosure proved to be too small to fit all of the components and wires and I had to look for an alternative.",[28,227,228],{},"The local electronics supply store stocked the perfect plastic box with thick walls, the right size and sleek look. It took some work and creative use of tools to create the openings for the LCD, SD and switches, but the result was satisfactory.",[28,230,231,235,238,241],{},[136,232],{"alt":233,"src":234},"Enclosure","\u002Fcontent\u002F2014\u002F06\u002Fenclosure1.jpg",[136,236],{"alt":233,"src":237},"\u002Fcontent\u002F2014\u002F06\u002Fenclosure2.jpg",[136,239],{"alt":233,"src":240},"\u002Fcontent\u002F2014\u002F06\u002Fenclosure3.jpg",[136,242],{"alt":233,"src":243},"\u002Fcontent\u002F2014\u002F06\u002Fenclosure4.jpg",[120,245,247],{"id":246},"fixing-the-parts-in-place","Fixing the parts in place",[28,249,250],{},"The various modules needed to stay securely in place inside the enclosure. For that, I used screws, super glue and velcro.",[28,252,253],{},"The project gave me reason to visit the hardware store for the first time in my life, voluntarily. I bought a few dozens of 3mm metal and wood screws (the smallest they had), which fit perfectly to the PCB and LCD mounting holes. The SD card required smaller screws which I was unable to obtain so I used super glue which turned out to be really effective.",[28,255,256],{},"Inspired, I thought to glue the power switch to the enclosure - but it turns out it's easy to superglue a plastic rocker switch shut. I had to install a replacement.",[28,258,259],{},"A lot of 3mm screws, bolts, nuts and washers were used to secure various elements. I used a combination of screws and velcro to secure the battery pack.",[28,261,262],{},[136,263],{"alt":264,"src":265},"Enclosure legs","\u002Fcontent\u002F2014\u002F06\u002Flegs.jpg",[120,267,269],{"id":268},"long-text-on-the-16char-lcd","Long text on the 16char LCD",[28,271,272,273,277],{},"I had to take into account that some of the suggestions might be long: ",[274,275,276],"em",{},"Acting Director \u002F Stage worker",", longer than the maximum length of the LCD. The solution? Scrolling the text (marquee). Programming the function for that caused some headache, the end result was satisfactory, but could have been better.",[120,279,281],{"id":280},"reading-push-buttons","Reading push-buttons",[28,283,284,285,288],{},"I'd made a mistake in soldering the four input buttons: pressing one button would result in the neighbouring buttons ",[65,286,287],{},"analogRead"," value to lower dangerously low, too. As a result, pressing one button would be identified as pressing two buttons at once. I had a choice: redo the button module (some hours of risky PCB work) or create a software workaround.",[28,290,291,292,294],{},"I opted for the latter and created a function that determined which of the buttons had the closest ",[65,293,287],{}," value to ground. Still, a logic error in the code that dealt with reading the buttons delayed project completion by a week, resulting in missing the perfect window for handing over the gift.",[28,296,297],{},"I discovered the error some time later during a debugging session and was quite annoyed at myself when changing",[174,299,300],{},"if (buttonValues[i] \u003C buttonValues[i-1])",[28,302,303],{},"to",[174,305,306],{},"if (buttonValues[i] \u003C buttonValues[lowestIndex])",[28,308,309],{},"yielded the desired result.",[57,311,313],{"id":312},"lessons-learned","Lessons learned",[28,315,316],{},"I'd do a few things differently if I had to start over.",[120,318,320],{"id":319},"include-a-programming-header","Include a programming header",[28,322,323,324,328],{},"I had a breadboard setup of my project attached to an Arduino where I tested the code I developed. Once I was reasonably certain the code worked as I wanted it to I would remove the Atmega chip from the PCB, put it into the Arduino, program it, then press it back into the PCB IC socket. The process was time consuming, delicate (at any point I could have damaged one of the pins of the IC) and annoying. My next Atmega PCB will include a ",[41,325,327],{"href":326},"http:\u002F\u002Fatmega32-avr.com\u002Fadding-icsp-header-to-your-arduinoavr-board-using-isp10pin-microcontroller\u002F","convenient ICSP header"," that allows me to program the chip without removing it from the socket.",[120,330,332],{"id":331},"cannot-set-lcd-contrast-with-pwm","Cannot set LCD contrast with PWM",[28,334,335],{},"At first, I wanted both the brightness and contrast of the LCD to be controllable from the software. I used two PWM pins for that. Unfortunately, the contrast can not be controlled as simply: the LCD module went nuts and started displaying gibberish.",[28,337,338,339,343],{},"After some searching around in the Arduino forums, I found an explanation: ",[41,340,342],{"href":341},"http:\u002F\u002Fwww.pcbheaven.com\u002Fcircuitpages\u002FPWM_LCD_Contrast_Control\u002F","you need a low-pass filter"," for that. I didn't bother and just used a small trimpot.",[120,345,347],{"id":346},"test-for-power-consumption","Test for power consumption",[28,349,350],{},"I didn't test the power usage of the project before it was assembled and already shipped. Getting an idea on how much power the project consumes, both on standby and operating mode (reading the SD card) would let me give an estimate on how long the batteries last.",[120,352,354],{"id":353},"optimize-power","Optimize power",[28,356,357],{},"There wasn't a lot of focus on power optimization. I know I could increase the battery lifetime by a large margin if I tried: shutting of the IC when no buttons are pressed, caching SD card results, dimming the backlight...",[120,359,361],{"id":360},"think-about-pcb-fabrication","Think about PCB fabrication",[28,363,364,365,369],{},"Frizing, the software I used to design the circuitry, also has a ",[41,366,368],{"href":367},"http:\u002F\u002Ffab.fritzing.org\u002Ffritzing-fab","PCB fabrication service",". Basically, I send them the blueprints for the board and get a professional, sleek-looking PCB some days later in the mail, ready for soldering.",[28,371,372],{},"This would look so much more professional and as an added bonus - no jumper wires. A nest of crossing wires beneath the board is a risk: any one of them might come loose, especially during mounting.",[28,374,375],{},"I calculated the fabrication of my board to cost around 30-40 euros.",[120,377,379],{"id":378},"put-more-work-into-designing-the-exterior","Put more work into designing the exterior",[28,381,382],{},"Some of the edges of the holes I cut into the enclosure aren't smooth. Putting more effort into that would yield more professional-looking results.",[28,384,385],{},"I used ordinary paper to print out the labels for the controls, then laminated the printout. Using a photo paper would look nicer or better yet, figuring out how to paint the designs to the plastic...",[57,387,389],{"id":388},"skill-ups","Skill-ups",[28,391,392],{},"Skills obtained or perfected with this project: (Arduino) \u002F C programming, PCB design and production, manufacturing (enclosure), electrical engineering, soldering, UX design",[57,394,396],{"id":395},"conclusion","Conclusion",[28,398,399],{},"Overall, I am very satisfied with the result. I stared the project during the winter of 2014 while still in the army (I had my minimal prototyping electronics kit and a laptop with me, I used to work on the programming during our scarce spare time in the common area) and finished in June. The day when the last bug (malfunctioning [enter] button) was fixed and I finally mailed the finished project to Trent felt so fulfilling - I had accomplished something that took me a lot of time and effort to create.",[28,401,402],{},"I'm satisfied with the amount of knowledge I got from this project. The code and schematics are open source, hopefully it's of help or inspiration to someone somewhere.",[28,404,405],{},[136,406],{"alt":407,"src":408},"Finished product","\u002Fcontent\u002F2014\u002F06\u002Ffinished_small.jpg",[120,410,412],{"id":411},"links","Links",[83,414,415,421,427,431],{},[86,416,417],{},[41,418,420],{"href":419},"http:\u002F\u002Fknowable.org","Box Of Words @ Knowable",[86,422,423],{},[41,424,426],{"href":425},"https:\u002F\u002Fgithub.com\u002Fanroots\u002Fbox-of-words","GitHub (source code and schematics)",[86,428,429],{},[41,430,51],{"href":50},[86,432,433],{},[41,434,436],{"href":435},"http:\u002F\u002Fimprov.ee\u002Fin-english\u002F","Improvisational Theater in Estonia",{"title":438,"searchDepth":439,"depth":439,"links":440},"",2,[441,442,443,444,445,446,447,448,449,450,451,452,453,454],{"id":122,"depth":439,"text":123},{"id":142,"depth":439,"text":143},{"id":189,"depth":439,"text":190},{"id":218,"depth":439,"text":219},{"id":246,"depth":439,"text":247},{"id":268,"depth":439,"text":269},{"id":280,"depth":439,"text":281},{"id":319,"depth":439,"text":320},{"id":331,"depth":439,"text":332},{"id":346,"depth":439,"text":347},{"id":353,"depth":439,"text":354},{"id":360,"depth":439,"text":361},{"id":378,"depth":439,"text":379},{"id":411,"depth":439,"text":412},"Hardware",[457,462,467,471,475],{"id":458,"author":459,"author_url":438,"date":460,"content":461},2718,"Martin Vahi","2014-06-21 22:47:00 +0300","Electronics can be lots of fun, but it's nice to get maximum amount of results for the same time that is spent on having fun. Applications that can be created in the form of free software that runs on \"standard\" hardware, should not be implemented in special purpose hardware, unless the hardware is as easy to create as printing a page of paper from a laser printer and even then there's still the issue that exists with paper books: physical hardware is cumbersome and harder to store than bitstreams.\n\nRight now You only have one instance of the box, but if You wrote the application as an Android software, then You could offer the benefits of the application to all of Your friends and add a link to the application to Your Resume. (A link to a video that explains the general idea: \nhttps:\u002F\u002Fwww.youtube.com\u002Fwatch?v=2fcpT5zz07w )\n\nUnless You are creating custom microchips (for about 3k€ it is possible to get about ten, 10, of them), custom electronics is only good for switching power (motors, lights, solenoids, etc.) and receiving measurement data (door switches, pressure sensors, light sensors, etc.). Ordinary computers, including the Raspberry Pi, can usually do most of the computing, unless You are developing computerized ordnance (programmable canon shells, rockets, things like that).\n\nA few links to products (in shops in Tallinn) that might interest You:\n\nhttp:\u002F\u002Fwww.oomipood.ee\u002Fproduct\u002Fvell_vtstrip5\u002Fise-seadistuv-puhastaja-l-otilde-ikur\nhttp:\u002F\u002Fittgroup.ee\u002Fet\u002Fe-shop\u002Fdetail\u002F3-draiverid\u002Fflypage|ask\u002F208-servo-draiver-6-usb?sef=hcfp\nhttp:\u002F\u002Fittgroup.ee\u002Fet\u002Fe-shop\u002Fdetail\u002F9-muundurid\u002Fflypage\u002F60-usb-i2c?sef=hcfp\n\nThank You for reading. :-)",{"id":463,"author":464,"author_url":438,"date":465,"content":466},2719,"Ando David Roots","2014-06-21 23:17:00 +0300","Thank you for your comment. I agree, the production of custom-built hardware IS several (hundred) times higher than doing it in software. In addition, software replication costs are near zero. Solutions like the BoxOfWords would be economical to realize as software so that it could be easily distributed, modified, replicated and even sold.\n\nHowever, I'd like to clarify the purposes of the project. The goal wasn't to earn money, fame or distribute it to a wider audience. I took those factors into account when planning this. I wanted to create something unique, something that took considerable effort to create, something 'real' in the sense that you could hold it in your hand and think, \"damn, there's some affection right there\".\n\nQuoting from the [Teensy Moonica](\u002F2013\u002Fteensy-moonica-the-8-legged-gift-for-a-developer\u002F) project:\n\n\"Money can come and go, but my time on this planet is finite. How I spend my time, or who I spend it with means more than anything else in my universe. From at least the selfish view, giving my time is the most valuable gift I can give.\" (S. Berkun)\n\nFrom that, I stick to my decision that MAKE-ing this with my two hands and electronic components was the right choice. As for replication, all interested parties can make it themselves, the schematics and code are available. They only need to be willing to invest effort. Again, this isn't meant to be a \"$ cp -r\", 1-sec-and-done solution.\n\nEvery script kiddie can make an application these days. Codecademy is growing in popularity, as are code generation tools. Electronics is not that far yet and requires a wider skill-set, both intellectual and physical, hence looking even better on ones resume.\n\nI disagree strongly to the notion that making more complex circuits than an ON \u002F OFF switch or a temperature reader is all that it's economical for a amateur user to do. There are some pretty damn impressive projects (http:\u002F\u002Fknowable.org) that utilize the power of hackable hardware modules. Everyone has their motivation, be it learning, creating, teaching - the fact of the matter is that even though it might be doable in software there are valid reasons to take the road less traveled by. And I think that's awesome.\n\nSorry - the links are meaningless to me without context. Wire strippers? - already on my shelf.",{"id":468,"author":459,"author_url":438,"date":469,"content":470},2720,"2014-06-21 23:48:00 +0300","Than You for the answer. :-)\n\nApplying finite effort X to a project that has higher yield does not lessen the effort. \n\nA few more links to products that might become handy:\n\nhttp:\u002F\u002Fwww.oomipood.ee\u002Fproduct\u002Fesac305\u002F8\u002Fsmd-jootepasta-sustlas-8g-2-5ml-sn96-5ag3cu0-5-25-45um-217\nhttp:\u002F\u002Fwww.oomipood.ee\u002Fproduct\u002Fchem-wik%20s5\u002Ftinasukk-3mm-1-5m\n\n\n\n:-)",{"id":472,"author":459,"author_url":438,"date":473,"content":474},2721,"2014-06-22 00:56:00 +0300","I do not have the time to do that project myself right now, but an interesting application to do might be the determining of the 3D coordinates of a talking person by measuring the sound with multiple microphones and using time differences that it takes to reach the mics for calculations.\n\nThe calculations do not have to be real-time. Those can be done with a \"powerful\" PC, but the measurement has to be \"bare metal\", something with microcontrollers with ADC's. I would start the experimentation with a triangle that has mics at every vertex and I would have fourth (4.) mic at the \"top of the pyramid\" that has the 3 mics at its lower corners. The purpose of the electronics would be extremely precise time measurement and signal gathering from the 4 mics. All calculations, analysis, would be done on a PC. The end result might work soft-realtime, but during the development of the analysis algorithm, the measurement data is read from pre-stored files.\n\nIf that device could be hooked up with Android, then a more advanced version of it might have military applications: determine flight path of planes, small arms fire, may be some sonar applications, etc. It might be even developed to an appliance that is interface compatible with home security systems.\n\nSome of the inspiration sources:\nhttp:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FPhased_array\nhttp:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FX-ray_computed_tomography\nhttp:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FMagnetic_resonance_imaging\nhttp:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FSOSUS",{"id":476,"author":477,"author_url":438,"date":478,"content":479},17231,"Erna","2015-02-06 14:44:25 +0200","What you are promoting may go together with different present on-line outlets iff you're utilizing \ndiscount coupons correctly.\n\nFeel feee to surf to my blog post - \u003Ca href=\"http:\u002F\u002FminiURL.fouiner.info\u002Fnewport_coupons__couponcabin_749269\" rel=\"nofollow\">cigarette coupons info\u003C\u002Fa>","2014-06-16",null,"md",{},"\u002F2014\u002Fboxofwords-arduino-based-suggestion-generator-for-improvisers","about 9 minutes",{"title":23,"description":30},"2014\u002Fboxofwords-arduino-based-suggestion-generator-for-improvisers",[489,490,491,492,493,494,495,496,497,498,499],"project","prototyping","improvisation","electronics","hardware","lcd","arduino","pcb","atmega328","sd","make",1791,"OiJzEvjwd-muCOh1tfwD3-aXVIl3RYGlORe54FyBOpc",[503,507],{"title":504,"path":505,"stem":506,"children":-1},"Military Service - Month #10","\u002F2014\u002Fmilitary-service-month-10-april-2014","2014\u002Fmilitary-service-month-10-april-2014",{"title":508,"path":509,"stem":510,"children":-1},"Simple And Secure Identity Protection: LastPass + YubiKey","\u002F2014\u002Fsimple-and-secure-identity-protection-lastpass-yubikey","2014\u002Fsimple-and-secure-identity-protection-lastpass-yubikey",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":512},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"m12 19l-7-7l7-7m7 7H5\"\u002F>",{"left":4,"top":4,"width":5,"height":5,"rotate":4,"vFlip":6,"hFlip":6,"body":514},"\u003Cpath fill=\"none\" stroke=\"currentColor\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 12h14m-7-7l7 7l-7 7\"\u002F>",1790886932442]