<?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-1753302385168969547</id><updated>2014-09-06T01:50:30.157-04:00</updated><category term="physical computing"/><category term="Arduino"/><category term="Microsoft"/><category term="China"/><category term="TV"/><category term="advertising"/><category term="funny"/><category term="multitouch"/><category term="tablets"/><category term="touch"/><category term="AdSense"/><category term="Apple"/><category term="CBS"/><category term="Chuck"/><category term="Google"/><category term="IE"/><category term="Linux"/><category term="Lipitor"/><category term="Mark Shuttleworth"/><category term="NBC"/><category term="NEO"/><category term="Seattle"/><category term="TV shows online"/><category term="UAC"/><category term="Ubuntu"/><category term="Vista"/><category term="alternative energy"/><category term="biofuels"/><category term="blue badge"/><category term="browser war"/><category term="charger"/><category term="commercials"/><category term="corn"/><category term="crappy user interface"/><category term="drivers"/><category term="e85"/><category term="esports"/><category term="ethanol"/><category term="experiment"/><category term="food"/><category term="gasoline"/><category term="gesture"/><category term="hollywood"/><category term="hydrogen fuel cell"/><category term="innertube"/><category term="interaction design"/><category term="kid nation"/><category term="layoffs"/><category term="multi-touch"/><category term="online ads"/><category term="organic"/><category term="pen input"/><category term="recession"/><category term="roger olesen"/><category term="rts"/><category term="sslp"/><category term="starcraft"/><category term="strike"/><category term="tsinghua university"/><category term="user interfaces"/><title type='text'>Geek Squawk</title><subtitle type='html'>Commentary on technology, internet, science, pop culture, and what it really means to be part of the internet generation.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>60</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-1741743015637812331</id><published>2014-06-12T13:43:00.001-04:00</published><updated>2014-06-12T13:43:53.548-04:00</updated><title type='text'>Professional Review of  Empirical Traditions in Human-Centered Design &amp; Engineering course</title><content type='html'>Through taking the Empirical Traditions in Human-Centered Design &amp;amp; Engineering course, I&#39;ve gained a systematic understanding of empirical research methods. I surveyed and understood the qualities of various ontological and epistemological stances found in fields of User-Centered Design (UCD) and Human-Computer Interaction (HCI). UCD and HCI research incorporates a variety of methods drawn from the fields of computer science, cognitive psychology, sociology, anthropology [2]. Through a diverse set of class readings, I gained an understanding of the foundations of research, spanning the positivist basis for the quantitative research methods commonly used in scientific research and the interpretivist basis for qualitative methods commonly used in sociological research. The difference between the two groups being positivists believe in an objective reality that can be measured, while interpretivists believe that reality cannot be separated from the subjectivity of an individual observing it [3].&lt;br /&gt;&lt;br /&gt;Class readings and discussions emphasized gaining an understanding of the components that make up an effective argument, the principles of scientific research, and the appropriate methods for carrying out high quality quantitative and qualitative research. For example, while random sampling and a large sample size are significant attributes of believable quantitative research, they are less important in qualitative research. Readings covered dozens of example manuscripts from a diverse range of research. Readings were analyzed using UBASE scaffolding technique that guides research reviews across themes of understandability, believability, applicability, significance, and ethics. UBASE was developed by Dr. Jennifer Turns, Professor at the University of Washington, and taught during lectures on Empirical Traditions in the department of Human Centered Design and Engineering.&lt;br /&gt;&lt;br /&gt;Understandability is evaluated based on the quality of the writing that contributes to how easy or hard a manuscript is to understand. Believability and applicability of results is evaluated based on adherence to established principles of scientific inquiry and use of well-established qualitative research methods. Significance of claims are evaluated based on the novelty of the results and its ability to lead to followup studies. Ethics is primarily evaluated based on how well researchers adhered to research standards of informed consent and participant confidentiality.&lt;br /&gt;&lt;br /&gt;Three major projects and two discussion papers, and comments on other students’ discussion papers in the course demonstrated various aspects of knowledge of empirical methods in HCDE. Discussion papers and comments on other students’ discussion papers demonstrated critical reading and analysis of in class readings and the ability to apply knowledge gained throughout the course on guidelines for trustworthy empirical research.&lt;br /&gt;&lt;br /&gt;The first project, an intensive survey of 144 articles from a year’s publication of Journal of the American Medical Informatics Association demonstrated my capabilities of understanding a publication’s epistemological stance, usage of figures and tables, and presence of competing interests.&lt;br /&gt;&lt;br /&gt;The second project, an in-depth analysis of A/B testing methodology used in a selection of empirical research manuscripts demonstrated understanding of how different factors of A/B testing methodology contribute to trustworthiness of results. Trustworthy A/B testing methodology 1) establishes elements of control that eliminate the influence of extraneous variables that could affect observations, 2) operationally defines variables and evaluation criteria in a measurable way, and 3) is conducted with replicable results [1].&lt;br /&gt;&lt;br /&gt;Lastly, an exhaustive review of a manuscript on augmented reality research demonstrated techniques for evaluating mixed methods empirical research using UBASE scaffolding technique.  Class readings were referenced as a basis for the analysis; A coding approach was used to analyze each sentence of Lessons Learned section of the manuscript to reveal the authors inclusions of implications for research and significant findings.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;References&lt;/h3&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Bakshy, E., Eckles, D., &amp;amp; Bernstein, M. S. (2014, April). Designing and deploying online field experiments. In Proceedings of the 23rd international conference on World Wide Web (pp. 283-292). International World Wide Web Conferences Steering Committee.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Rogers, Y. (2004). HCI theory: classical, modern, and contemporary. Synthesis Lectures on Human-Centered Informatics, 5(2), 1-129.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style=&quot;text-indent: -0.25in;&quot;&gt;Weber, R. (2004). &quot;The rhetoric of positivism versus interpretivism: A personal view.&quot; MIS Quarterly29(1): iii-xii.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;!--[if !supportLists]--&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;mso-list: l0 level1 lfo1; text-indent: -.25in;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;h1&gt;Artifact 1: A Mood Ring for Mobile: Analysis of Emotions in Touch Research&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Link: &lt;a href=&quot;http://hcde502empiricaltraditionsspring2014b.wordpress.com/2014/05/21/a-mood-ring-for-mobile-analysis-of-emotions-in-touch-research/&quot;&gt;http://hcde502empiricaltraditionsspring2014b.wordpress.com/2014/05/21/a-mood-ring-for-mobile-analysis-of-emotions-in-touch-research/&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h2&gt;Annotation&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class=&quot;MsoNormal&quot;&gt;This discussion paper I wrote mainly demonstrates analysis of the strengths and weaknesses of methodology used in an empirical research manuscript. The research used mixed methods with an emphasis on quantitative methods. Analysis was based on knowledge gained in class on topics such as the components that make up an effective argument, the principles of scientific research, and guidelines on appropriate methods for quantitative and qualitative research. The results of the analysis highlighted significant concerns over the believability of the results due to inadequate level of detail in how participants were selected and lack of detail explaining rationale for method design choices researchers made.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h1&gt;Artifact 2: Comment on another student’s discussion paper&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Link: &lt;a href=&quot;http://hcde502empiricaltraditionsspring2014b.wordpress.com/2014/05/19/professor-gao-and-the-curious-case-of-the-confusing-confusion-matrix/comment-page-1/#comment-15&quot;&gt;http://hcde502empiricaltraditionsspring2014b.wordpress.com/2014/05/19/professor-gao-and-the-curious-case-of-the-confusing-confusion-matrix/comment-page-1/#comment-15&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h2&gt;Annotation&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;&lt;div class=&quot;MsoNormal&quot;&gt;While this writing sample is brief in length, my identification of a flawed chain of reasoning of the argument of a student discussion paper represents significant critical reading, analysis, and attention to detail.. While authors spend a great deal of time and effort researching and constructing arguments when writing a manuscript, mistakes can be made, and it’s the reader’s responsibility to analyze the trustworthiness of claims and arguments authors present.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h1&gt;Artifact 3: Project 3 paper&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;&lt;div class=&quot;MsoNormal&quot;&gt;Link: &lt;a href=&quot;http://1drv.ms/1krIATL&quot;&gt;http://1drv.ms/1krIATL&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;h2&gt;Annotation&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;Project 3 paper presented an exhaustive review of a research manuscript. The paper I authored demonstrated techniques for evaluating mixed methods empirical research using UBASE scaffolding technique. Class readings were referenced as a basis for the analysis; Analysis revealed detailed descriptions, figures, and charts with a coherent chain of reasoning, and showed high believability by incorporating a domain-specific user study. The study was free of major ethical concerns. Applicability of the research was limited due to the type of research methods used. The manuscript exhibited significance in the field of augmented reality as it presented unique findings that differentiated it from prior research and suggested areas for further inquiry. In addition, a coding approach was used to analyze each sentence of &lt;i&gt;Lessons Learned&lt;/i&gt; section of the manuscript to reveal the authors inclusions of implications for research and significant findings.&lt;br /&gt;&lt;div class=&quot;MsoNormal&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/1741743015637812331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=1741743015637812331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/1741743015637812331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/1741743015637812331'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2014/06/professional-review-of-empirical.html' title='Professional Review of  Empirical Traditions in Human-Centered Design &amp;amp; Engineering course'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-8334205705115001044</id><published>2013-08-15T02:48:00.001-04:00</published><updated>2013-08-15T02:48:53.492-04:00</updated><title type='text'>Hands-free bicycle signal jacket – update #5</title><content type='html'>&lt;p&gt;&lt;em&gt;(This post is a followup to &lt;a href=&quot;http://geeksquawk.blogspot.com/2013/08/hands-free-bicycle-signal-jacket-update_8.html&quot; target=&quot;_blank&quot;&gt;update #4&lt;/a&gt;, &lt;a href=&quot;http://geeksquawk.blogspot.com/2013/08/hands-free-bicycle-signal-jacket-update.html&quot;&gt;update #3&lt;/a&gt;, &lt;a href=&quot;http://geeksquawk.blogspot.com/2013/07/hands-free-bicycle-signal-jacket-update.html&quot;&gt;update #2&lt;/a&gt; &amp;amp; &lt;/em&gt;&lt;a href=&quot;http://geeksquawk.blogspot.com/2013/07/hands-free-bicycle-signal-jacket.html&quot;&gt;&lt;em&gt;project proposal&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.)&lt;/em&gt;&lt;/p&gt; &lt;h3&gt;Hardware prototyping&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Obtained glove and taped FSR sensor to glove, proving it’s possible to trigger turn signals with finger.&lt;/li&gt; &lt;li&gt;Created longer, more flexible wires for FSR sensors.&lt;/li&gt; &lt;li&gt;Tested &lt;a href=&quot;http://amzn.com/B008BHAOQO&quot; target=&quot;_blank&quot;&gt;DC voltage regulator module&lt;/a&gt; by converting 12V DC from AC wall adapter to 5V DC.&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/-o5eA5DqWQMo/Ugx5w4c8S0I/AAAAAAAAA4g/xDEd9gghihc/s1600-h/image%25255B4%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/-6xFLFK1Ito8/Ugx5x8cbDLI/AAAAAAAAA4o/JI-JsJLb_o8/image_thumb%25255B2%25255D.png?imgmax=800&quot; width=&quot;484&quot; height=&quot;290&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;ul&gt; &lt;li&gt;Prototyped a battery-powered project using &lt;a href=&quot;http://amzn.com/B008BHAOQO&quot; target=&quot;_blank&quot;&gt;DC voltage regulator module&lt;/a&gt; and &lt;a href=&quot;http://www.adafruit.com/products/248&quot; target=&quot;_blank&quot;&gt;6x AA battery holder&lt;/a&gt; to power LED strip and Arduino.&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/-FmyqYQ_4akE/Ugx5zSY94TI/AAAAAAAAA4w/kXHz94laia0/s1600-h/image%25255B8%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh4.ggpht.com/-ACLbjTfiu18/Ugx51AbXcCI/AAAAAAAAA44/JRjRtjitIKM/image_thumb%25255B4%25255D.png?imgmax=800&quot; width=&quot;484&quot; height=&quot;274&quot;&gt;&lt;/a&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;h3&gt;Software programming&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Testing the sequence to hold down both turn signal FSR to trigger hazard flashing revealed bugs in the multi-button debounce algorithm. I needed to press both FSR at exactly the same time or else the debounce algorithm would only detect one or the other. This was fixed by modifying the multi-button debounce algorithm to check if either button is pressed.&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Next steps&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Adjusting turn signal LED sequence programming to improve viewability based on observations of signal lights on road work vehicles &lt;li&gt;Refining calibration of accelerometer, as previous testing showed accelerometer was returning inconsistent values.  &lt;li&gt;Sewing wiring for LED on sleeve and FSR on glove &lt;li&gt;Finalizing breadboard circuit and soldering it to a &lt;a href=&quot;http://learn.adafruit.com/adafruit-proto-shield-arduino&quot; target=&quot;_blank&quot;&gt;Proto Shield&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/8334205705115001044/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=8334205705115001044' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/8334205705115001044'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/8334205705115001044'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2013/08/hands-free-bicycle-signal-jacket-update_15.html' title='Hands-free bicycle signal jacket – update #5'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-6xFLFK1Ito8/Ugx5x8cbDLI/AAAAAAAAA4o/JI-JsJLb_o8/s72-c/image_thumb%25255B2%25255D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-6587329428317843743</id><published>2013-08-08T02:49:00.000-04:00</published><updated>2013-08-08T02:49:45.326-04:00</updated><title type='text'>Hands-free bicycle signal jacket – update #4</title><content type='html'>&lt;p&gt;&lt;em&gt;(This post is a followup to &lt;a href=&quot;http://geeksquawk.blogspot.com/2013/08/hands-free-bicycle-signal-jacket-update.html&quot; target=&quot;_blank&quot;&gt;update #3&lt;/a&gt;, &lt;a href=&quot;http://geeksquawk.blogspot.com/2013/07/hands-free-bicycle-signal-jacket-update.html&quot;&gt;update #2&lt;/a&gt; &amp;amp; &lt;/em&gt;&lt;a href=&quot;http://geeksquawk.blogspot.com/2013/07/hands-free-bicycle-signal-jacket.html&quot;&gt;&lt;em&gt;project proposal&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.)&lt;/em&gt;&lt;/p&gt; &lt;p&gt;This week, I progressed in hardware prototyping of the hands-free bicycle signal jacket. The jacket enables bicyclists to signal while keeping hands on handlebar. The jacket increases bicycle safety by allowing bicyclists to keep both hands on brakes while signaling turns, slowing down, or pointing out road hazards when riding in a group.&lt;/p&gt; &lt;h3&gt;Hardware prototyping&lt;/h3&gt; &lt;h5&gt;&lt;font style=&quot;font-weight: normal&quot;&gt;Based on previous progress on wiring for LED strip output, I worked on wiring for inputs and modifying the LED strip for mounting on jacket.&lt;/font&gt;&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;Wiring left &amp;amp; right force-resistive sensor (FSR) to prototype triggering LED strip &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/-p7gRBkKfcFE/UgM-nFqAThI/AAAAAAAAA34/_pCo5zHPIpg/s1600-h/BikeJacket_P3_bb%25255B3%25255D.png&quot;&gt;&lt;img title=&quot;BikeJacket_P3_bb&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;BikeJacket_P3_bb&quot; src=&quot;http://lh3.ggpht.com/-nyqKA1tNKdg/UgM-oGaTWYI/AAAAAAAAA4A/7ZeddassuDU/BikeJacket_P3_bb_thumb%25255B1%25255D.png?imgmax=800&quot; width=&quot;484&quot; height=&quot;523&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;Prototype circuit&lt;/em&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Cut digital LED strip to 2 separate, foot-long sections and soldered wires to connect strip together  &lt;li&gt;Prototyped layout of LED strip on jacket and conductive thread (path laid out in blue masking tape)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/-0TML9Rd3c3M/UgM-paCsV4I/AAAAAAAAA4I/ae61Ko-RdY4/s1600-h/IMG_24545.jpg&quot;&gt;&lt;img title=&quot;IMG_2454&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;IMG_2454&quot; src=&quot;http://lh5.ggpht.com/-EZ2Hmav6EEs/UgM-qJX9sWI/AAAAAAAAA4Q/2yhm2cYscqU/IMG_2454_thumb2.jpg?imgmax=800&quot; width=&quot;484&quot; height=&quot;380&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;Jacket with LED strips taped on&lt;/em&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Ordered &lt;a href=&quot;http://amzn.com/B008BHAOQO&quot; target=&quot;_blank&quot;&gt;DC voltage switching regulator&lt;/a&gt; and 6xAA battery holder  &lt;li&gt;Ordered &lt;a href=&quot;http://www.adafruit.com/products/1126&quot; target=&quot;_blank&quot;&gt;sewable snaps&lt;/a&gt; used for connecting gloves to jacket sleeve&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Software programming&lt;/h3&gt; &lt;p&gt;Based on previous progress controlling the LED strip output with Arduino (see &lt;a href=&quot;http://geeksquawk.blogspot.com/2013/08/hands-free-bicycle-signal-jacket-update.html&quot; target=&quot;_blank&quot;&gt;update #3&lt;/a&gt;), I expanded the software program to include the following functionality:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Flashing LED sequences for right/left turn signals, stop light, hazard  &lt;li&gt;Detecting left &amp;amp; right button presses and holds (with debounce)&lt;/li&gt;&lt;/ul&gt; &lt;h5&gt;Psuedo-code&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;Check accelerometer &lt;/li&gt; &lt;ul&gt; &lt;li&gt;If slowing, turn on stop light  &lt;li&gt;If panic stopping, flash stop light, sound horn,&amp;nbsp; &lt;li&gt;If crashing, flash hazards lights indefinitely&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Check turn buttons &lt;/li&gt; &lt;ul&gt; &lt;li&gt;If pressed &lt;/li&gt; &lt;ul&gt; &lt;li&gt;If signal isn&#39;t on, turn on signal for 3 seconds  &lt;li&gt;If signal is already on, turn off signal&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;If held for 2 seconds, turn on signal indefinitely&lt;/li&gt; &lt;li&gt;If both turn buttons are held, turn on signal indefinitely&lt;/li&gt; &lt;ul&gt; &lt;li&gt;If hazards signal is already showing, then turn off signal&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;h5&gt;RGB LED strip demo&lt;/h5&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;281&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/71948532&quot; webkitallowfullscreen=&quot;&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;a href=&quot;http://vimeo.com/71948532&quot;&gt;Signaling using digital RGB LED strip&lt;/a&gt;&lt;br /&gt;&lt;h5&gt;Next steps&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;Obtaining cheap glove for prototyping attaching FSR to glove.  &lt;li&gt;Refining calibration of accelerometer, as previous testing showed accelerometer was returning inconsistent values.  &lt;li&gt;Planning and ordering project enclosure  &lt;li&gt;Sewing wiring for LED on sleeve and FSR on glove&lt;/li&gt;&lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/6587329428317843743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=6587329428317843743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6587329428317843743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6587329428317843743'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2013/08/hands-free-bicycle-signal-jacket-update_8.html' title='Hands-free bicycle signal jacket – update #4'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-nyqKA1tNKdg/UgM-oGaTWYI/AAAAAAAAA4A/7ZeddassuDU/s72-c/BikeJacket_P3_bb_thumb%25255B1%25255D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-3959126365321762339</id><published>2013-08-01T02:56:00.001-04:00</published><updated>2013-08-01T03:00:45.630-04:00</updated><title type='text'>Hands-free bicycle signal jacket – update #3</title><content type='html'>&lt;em&gt;(This post is a followup to &lt;a href=&quot;http://geeksquawk.blogspot.com/2013/07/hands-free-bicycle-signal-jacket-update.html&quot; target=&quot;_blank&quot;&gt;update #2&lt;/a&gt; &amp;amp; &lt;/em&gt;&lt;a href=&quot;http://geeksquawk.blogspot.com/2013/07/hands-free-bicycle-signal-jacket.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;project proposal&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.)&lt;/em&gt;&lt;br /&gt;This week, I progressed from planning to hardware prototyping of the hands-free bicycle signal jacket. The jacket enables bicyclists to signal while keeping hands on handlebar. The jacket increases bicycle safety by allowing bicyclists to keep both hands on brakes while signaling turns, slowing down, or pointing out road hazards when riding in a group.&lt;br /&gt;&lt;h3&gt;Prototyping &lt;/h3&gt;&lt;h5&gt;LED strip &amp;amp; glove signals&lt;/h5&gt;&lt;a href=&quot;http://lh5.ggpht.com/-BxoihkLlVgI/UfDJ1oJKdSI/AAAAAAAAA1A/5Omwmv--WTo/s1600-h/image%25255B14%25255D.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;308&quot; src=&quot;http://lh6.ggpht.com/-6lyUssKUvjc/UfDJ2aLMnwI/AAAAAAAAA1I/0F4ImkkA5Ok/image_thumb%25255B8%25255D.png?imgmax=800&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;544&quot; /&gt;&lt;/a&gt;&lt;br /&gt;A &lt;a href=&quot;http://www.adafruit.com/products/306&quot; target=&quot;_blank&quot;&gt;digital RGB LED strip&lt;/a&gt; can be controlled using an Arduino. This was chosen because the flexibility of strip makes it suitable for fitting to a cyclists back and the ability to individually control color of each LED.&lt;br /&gt;I followed the &lt;a href=&quot;http://learn.adafruit.com/digital-led-strip&quot; target=&quot;_blank&quot;&gt;Adafruit tutorial&lt;/a&gt; on wiring and controlling the LED strip. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Used test clips to temporarily wire the LED strip and run test program&lt;/li&gt;&lt;/ul&gt;&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;281&quot; mozallowfullscreen=&quot;&quot; src=&quot;http://player.vimeo.com/video/71484551&quot; webkitallowfullscreen=&quot;&quot; width=&quot;500&quot;&gt;&lt;/iframe&gt; &lt;br /&gt;&lt;a href=&quot;http://vimeo.com/71484551&quot;&gt;RGB LED strip testing with Arduino&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Used 5V 2A AC adapter to separately power LED strip.  &lt;/li&gt;&lt;li&gt;&lt;strong&gt;LED strip and Arduino must share a common ground.&lt;/strong&gt; LED strip malfunctions if a common ground is not used.  &lt;/li&gt;&lt;li&gt;I programmed LED sequences for turn signal (wipe effect) and stop light effects.&lt;/li&gt;&lt;/ul&gt;&lt;h5&gt;Accelerometer&lt;/h5&gt;The &lt;a href=&quot;http://www.adafruit.com/products/163&quot;&gt;ADXL335 accelerometer&lt;/a&gt; was chosen due to it’s built in 5V regulator and +-3G range, which is sufficient for measuring the max 0.7g max deceleration when cycling.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;A &lt;a href=&quot;http://learn.adafruit.com/adafruit-analog-accelerometer-breakouts/programming&quot;&gt;calibration program&lt;/a&gt; was used that used earth’s gravity as a reference point.  &lt;/li&gt;&lt;li&gt;I encountered some difficult with calibration, as sensor returned unexpected measurements even after calibration.  &lt;/li&gt;&lt;li&gt;To measure the values returned by the accelerometer when braking on a bicycle, I added a LCD display and a 9V battery power source so that I can measure accelerometer values while riding a bicycle&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;a href=&quot;http://lh6.ggpht.com/-E_7YlgAtsZc/UfoGgq0tp3I/AAAAAAAAA28/0VXcQLDEEGY/s1600-h/image3.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;312&quot; src=&quot;http://lh6.ggpht.com/-rM-7JlTOSgA/UfoGiKrrMhI/AAAAAAAAA3E/uV9Nkipclyc/image_thumb1.png?imgmax=800&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;353&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Portable, 9V battery-powered&amp;nbsp; accelerometer measurement prototype&lt;/em&gt;&lt;/blockquote&gt;&lt;h5&gt;Force-resistive sensor (FSR)&lt;/h5&gt;The FSR sensor is attached to the glove and is used to detect when cyclist has pinched fingers together to trigger turn signal. Because the connectors on FSR are delicate and flimsy, I soldered wires to the FSR for easier prototyping.&lt;br /&gt;&lt;a href=&quot;http://lh3.ggpht.com/-woVo8L4J5QY/UfoGkIFEfjI/AAAAAAAAA3M/5CLwVJwfybI/s1600-h/image7.png&quot;&gt;&lt;img alt=&quot;image&quot; border=&quot;0&quot; height=&quot;276&quot; src=&quot;http://lh5.ggpht.com/-znAvwNWx0eI/UfoGltEsXGI/AAAAAAAAA3U/Hfib9g_A7Jg/image_thumb3.png?imgmax=800&quot; style=&quot;background-image: none; border-bottom-width: 0px; border-left-width: 0px; border-right-width: 0px; border-top-width: 0px; display: inline; padding-left: 0px; padding-right: 0px; padding-top: 0px;&quot; title=&quot;image&quot; width=&quot;351&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;em&gt;Extension wires soldered onto force-resistive resistor &lt;/em&gt;&lt;br /&gt;&lt;h5&gt;Powering project by battery&lt;/h5&gt;While current prototype uses a combination of USB and AC wall adapter as power sources, the final prototype should be powered by a single battery and DC voltage regulator (if needed). &lt;br /&gt;Details of how to power the Arduino and secondary circuits are in a separate blog post &lt;a href=&quot;http://geeksquawk.blogspot.com/2013/07/powering-arduino-and-secondary-circuits.html&quot; target=&quot;_blank&quot;&gt;Powering Arduino and secondary circuits&lt;/a&gt;.&lt;br /&gt;&lt;h3&gt;Next steps&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Detecting finger presses using force-resistive sensor  &lt;/li&gt;&lt;li&gt;Refining calibration of accelerometer &lt;/li&gt;&lt;li&gt;Cutting digital LED strip to length &lt;/li&gt;&lt;li&gt;Planning and ordering battery &amp;amp; DC voltage regulators to power final project &lt;/li&gt;&lt;li&gt;Combining test software programs for each component together into one overall program.&lt;/li&gt;&lt;/ul&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/3959126365321762339/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=3959126365321762339' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/3959126365321762339'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/3959126365321762339'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2013/08/hands-free-bicycle-signal-jacket-update.html' title='Hands-free bicycle signal jacket – update #3'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-6lyUssKUvjc/UfDJ2aLMnwI/AAAAAAAAA1I/0F4ImkkA5Ok/s72-c/image_thumb%25255B8%25255D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-157789619239948775</id><published>2013-07-31T02:39:00.001-04:00</published><updated>2013-07-31T02:49:02.257-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="physical computing"/><title type='text'>Powering Arduino and secondary circuits together</title><content type='html'>&lt;p&gt;If you’re using an Arduino to control LEDs, servos, motors that run on a different voltage (e.g. 5V or 12V) or require high current (e.g. &amp;gt; 40mA), you&#39;ll have mixed voltage circuits. Read on to learn how to use a single power source to power your mixed voltage circuits.&lt;/p&gt; &lt;h2&gt;Powering Arduino when accessories requires 7-12V&lt;/h2&gt; &lt;p&gt;Connect your 7-12V power source to your Arduino using a &lt;a href=&quot;http://www.adafruit.com/products/1329&quot;&gt;2.1mm DC Barrel Plug to Alligator clips &lt;/a&gt;or &lt;a href=&quot;http://www.adafruit.com/products/369&quot;&gt;male 2.1mm plug to screw terminal block&lt;/a&gt;. The Arduino Uno&#39;s DC power jack accepts 7-12V and internally uses a voltage regulator to convert it voltages used in the circuits. I have a few extras from a previous project that I can loan out.  &lt;h2&gt;Powering Arduino when accessories require exactly 5V&lt;/h2&gt; &lt;p&gt;Instead of using the DC power jack, &lt;a href=&quot;http://electronics.stackexchange.com/questions/65576/arduino-uno-r3-directly-supply-regulated-5v-to-5v-pin&quot;&gt;cut up a USB cable and connect the 5V and GND wires in the cable to the 5V and GND wires of your power supply&lt;/a&gt;. (If 5V is supplied to the DC power jack on Arduino, the Arduino&#39;s 5V pins may actually be less than five volts and the board may be unstable. This voltage is too low the Arduino&#39;s internal voltage regulator to operate.)  &lt;h2&gt;Powering the Arduino when accessories require &amp;gt;12V&lt;/h2&gt; &lt;p&gt;You&#39;ll need to use DC voltage regulator to convert the &amp;gt;12V used by accessories to a lower voltage that can be safely supplied to Arduino&#39;s DC power jack. &lt;a href=&quot;http://australianrobotics.com.au/news/fuelling-your-arduino-why-you-should-use-an-external-power-breakout&quot;&gt;The Arduino&#39;s internal linear voltage regulator overheats and can damage the board when supplied with &amp;gt;12V.&lt;/a&gt;  &lt;h2&gt;Powering the Arduino when accessories require &amp;lt; 7V but not 5V (ex: 3.3V)&lt;/h2&gt; &lt;p&gt;Using a 7-12V power source to power your Arduino directly using the DC power jack and a switching DC step down regulator to power your accessories is recommended. (If Arduino is supplied with less than 7V, the 5V pin may actually be less than five volts and the board may be unstable.)  &lt;p&gt;&amp;nbsp; &lt;h1&gt;DC voltage regulators&lt;/h1&gt; &lt;p&gt;There are 2 main types of DC voltage regulators used to convert between DC voltages: a &lt;strong&gt;switching&lt;/strong&gt; &lt;b&gt;regulator&lt;/b&gt; (also known as “buck converter”) is more energy efficient (&amp;gt;90% efficiency). A &lt;b&gt;linear regulator&lt;/b&gt; is cheaper but less energy efficient. The Arduino Uno uses a built-in linear regulator used to convert 7-12V supplied to 5V and 3.3V used in the internal circuitry.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/-1vPsIupl52U/UfixH2tMYPI/AAAAAAAAA2U/3V0tP6cVrfo/s1600-h/image%25255B2%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-Zg6I2S1FTrU/UfixIhfKcRI/AAAAAAAAA2c/g0AD_avGYMo/image_thumb.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;163&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;a href=&quot;http://amzn.com/B008BHAOQO&quot;&gt;&lt;em&gt;$7 buck converter module (Amazon)&lt;/em&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Below are a few example parts I found for converting DC voltages.  &lt;ul&gt; &lt;li&gt;&lt;a href=&quot;http://www.adafruit.com/products/1385&quot;&gt;This $10 wire with built-in buck converter (Adafruit)&lt;/a&gt; outputs 5V @ up to 3A when supplied with 6V-32V.  &lt;li&gt;&lt;a href=&quot;http://www.adafruit.com/products/1065&quot;&gt;This $15 step down switching DC regulator chip (Adafruit)&lt;/a&gt; outputs 5V @ up to 1A when supplied with 6.5V-32V.  &lt;li&gt;This &lt;a href=&quot;http://amzn.com/B008BHAOQO&quot;&gt;$7 buck converter module (Amazon)&lt;/a&gt; has adjustable output between 1.5-35V when supplied with 3V-40V.  &lt;li&gt;While this &lt;a href=&quot;https://www.sparkfun.com/products/317&quot;&gt;$2 DC inverting switching regulator (SparkFun) &lt;/a&gt;may be tempting due to low cost, designing a functioning circuit is probably graduate-level electrical engineering challenge, requiring &lt;a href=&quot;http://www.nomad.ee/micros/mc34063a/index.shtml&quot;&gt;calculating values of external resistors, capacitors, and inductors&lt;/a&gt;. If you&#39;re knowledgable about electronics, there&#39;s a &lt;a href=&quot;http://youtu.be/qGp82xhybs4&quot;&gt;37 minute YouTube video&lt;/a&gt; explaining this.&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Prototyping with AC wall adapter&lt;/h3&gt; &lt;p&gt;Before using a battery, prototype your circuit first using a AC wall adapter. Choose a AC wall adapter with the exact same voltage needed and same or higher current rating needed. (Add up the current draw (typically in mA) to calculate the total current used in your circuit.)&lt;/p&gt; &lt;p&gt;&lt;img alt=&quot;5V 2A (2000mA) switching power supply - UL Listed&quot; src=&quot;http://www.adafruit.com/images/medium/5v2A_MED.jpg&quot; width=&quot;205&quot; height=&quot;160&quot;&gt;&lt;br&gt;&lt;em&gt;&lt;a href=&quot;http://www.adafruit.com/products/276&quot; target=&quot;_blank&quot;&gt;5V 2A switching power supply&lt;/a&gt;&lt;/em&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Connect your 7-12V power source to your Arduino using a &lt;a href=&quot;http://www.adafruit.com/products/1329&quot;&gt;2.1mm DC Barrel Plug to Alligator clips &lt;/a&gt;or &lt;a href=&quot;http://www.adafruit.com/products/369&quot;&gt;male 2.1mm plug to screw terminal block&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;&lt;img alt=&quot;2.1mm DC Barrel Plug to Alligator Clips&quot; src=&quot;http://www.adafruit.com/images/medium/1329_MED.jpg&quot; width=&quot;225&quot; height=&quot;175&quot;&gt;&lt;br&gt;&lt;a href=&quot;http://www.adafruit.com/products/1329&quot;&gt;&lt;em&gt;2.1mm DC Barrel Plug to Alligator clips &lt;/em&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Adafruit has a &lt;a href=&quot;http://www.adafruit.com/category/44_134&quot; target=&quot;_blank&quot;&gt;small selection of AC wall adapters&lt;/a&gt;, and &lt;a href=&quot;http://www.repc.com/&quot; target=&quot;_blank&quot;&gt;RE-PC Seattle store&lt;/a&gt; near stadiums carries recycled AC wall adapters for $1.95.&lt;/p&gt; &lt;h1&gt;Battery types&lt;/h1&gt;  &lt;table cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; border=&quot;1&quot;&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;&lt;b&gt;Voltage&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;&lt;b&gt;Battery type&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;3.7V&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;Single cell rechargeable Lithium Ion Polymer (LiPo) battery (varies from 500mAh to 10,000mAh)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;4.8V&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;4x NiMH rechargeable AA batteries (1000mAh to 2000mAh) &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;6V&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;2x CR2032 coin cell battery (200mAh) or 4x Alkaline AA batteries (~2700mAh)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;7.2V&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;4x NiMH rechargeable AA batteries (1000mAh to 2000mAh) or NiMH battery packs (varies)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;7.4V&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;2 cell rechargeable Lithium Ion Polymer (LiPo) battery (varies from 500mAh to 10,000mAh)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;9V&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;9V battery (~500mAh) or 6x Alkaline AA batteries (1000mAh to 2000mAh) &lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;11.1V&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;3 cell rechargeable Lithium Ion Polymer (LiPo) battery (varies from 500mAh to 10,000mAh)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;12V&lt;/p&gt;&lt;/td&gt; &lt;td valign=&quot;top&quot;&gt; &lt;p&gt;8x Alkaline AA batteries (~2700mAh)&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p&gt;Battery storage capacity is measured in milliamp-hours (mAh). Higher mAh ratings for the same battery type will generally mean longer run times. A battery with a capacity rating of 1800 mAh could deliver a current of 1800mA for one hour. For reference, a typical 9V battery with 500mAh capacity powers just the Arduino for about 4 hours.  &lt;p&gt;Adafruit has a nice selection of &lt;a href=&quot;http://www.adafruit.com/category/44_135&quot;&gt;AA battery holders&lt;/a&gt; that hold 4, 6, or 8 AA batteries.  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/-XjTip3vq6xI/UfixJLNOBbI/AAAAAAAAA2k/E9-5nSJVy-0/s1600-h/image%25255B5%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; margin: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-ZPS_9hXTVxA/UfixJwM5iEI/AAAAAAAAA2s/b2lz9MRaN2A/image_thumb%25255B1%25255D.png?imgmax=800&quot; width=&quot;244&quot; height=&quot;143&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;&lt;a href=&quot;http://www.adafruit.com/products/830&quot;&gt;4x AA battery holder with on/off switch (Adafruit)&lt;/a&gt;&lt;/em&gt;  &lt;p&gt;For more information on rechargeable batteries, see &lt;a href=&quot;http://learn.adafruit.com/li-ion-and-lipoly-batteries/overview&quot;&gt;http://learn.adafruit.com/li-ion-and-lipoly-batteries/overview&lt;/a&gt; and &lt;a href=&quot;http://www.horizonhobby.com/article/2106-understanding-rc-batteries&quot;&gt;http://www.horizonhobby.com/article/2106-understanding-rc-batteries&lt;/a&gt;. Battery packs can be purchased from hobby stores that carry radio control accessories such as &lt;a href=&quot;http://www.horizonhobby.com/browse/productgrid/batteries-10001027&quot; target=&quot;_blank&quot;&gt;Horizon Hobby&lt;/a&gt; and &lt;a href=&quot;http://www.hobby-lobby.com/batteries_102_ct.htm&quot; target=&quot;_blank&quot;&gt;Hobby Lobby&lt;/a&gt;.  &lt;p&gt;&lt;em&gt;(Note: I am not affiliated with any companies mentioned here and don’t receive any compensation from them.)&lt;/em&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/157789619239948775/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=157789619239948775' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/157789619239948775'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/157789619239948775'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2013/07/powering-arduino-and-secondary-circuits.html' title='Powering Arduino and secondary circuits together'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-Zg6I2S1FTrU/UfixIhfKcRI/AAAAAAAAA2c/g0AD_avGYMo/s72-c/image_thumb.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-7498041301140046353</id><published>2013-07-25T01:56:00.001-04:00</published><updated>2013-07-25T03:08:33.326-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="physical computing"/><title type='text'>Hands-free bicycle signal jacket – update #2</title><content type='html'>&lt;p&gt;&lt;em&gt;(This post is a followup to the &lt;/em&gt;&lt;a href=&quot;http://geeksquawk.blogspot.com/2013/07/hands-free-bicycle-signal-jacket.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;project proposal&lt;/em&gt;&lt;/a&gt;&lt;em&gt;.)&lt;/em&gt;&lt;/p&gt; &lt;p&gt;This week, I further refined the design of the hands-free bicycle signal jacket. It enables bicyclists to signal while keeping hands on handlebar. The jacket increases bicycle safety by allowing bicyclists to keep both hands on brakes while signaling turns, slowing down, or pointing out road hazards when riding in a group.&lt;/p&gt; &lt;h3&gt;Design Iterations&lt;/h3&gt; &lt;h5&gt;LED strip &amp;amp; glove signals&lt;/h5&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/-BxoihkLlVgI/UfDJ1oJKdSI/AAAAAAAAA1A/5Omwmv--WTo/s1600-h/image%25255B14%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/-6lyUssKUvjc/UfDJ2aLMnwI/AAAAAAAAA1I/0F4ImkkA5Ok/image_thumb%25255B8%25255D.png?imgmax=800&quot; width=&quot;544&quot; height=&quot;308&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;To reduce likelihood of backpacks covering up LED strip, the placement of LED strip was moved to lower back instead of upper back. A &lt;a href=&quot;http://www.adafruit.com/products/306&quot; target=&quot;_blank&quot;&gt;digital RGB LED strip&lt;/a&gt; was ordered for this project, chosen because the flexibility of strip makes it suitable for fitting to a cyclists back and the ability to individually control color of each LED using Arduino.&lt;/p&gt; &lt;p&gt;After brainstorming, the best placement of the button to turn on turn signals was on the glove, triggered by tapping thumb against base of index finger. This gesture was selected as it can be accomplished while hand maintains grip of handlebars. Pressing button turns on turn signal for 5 seconds, while holding button turns on turn signals indefinitely until canceled by another press. Keeping turn signals flashing can be used when increased visibility is desired, such as when stopped on side of road.&lt;/p&gt; &lt;h5&gt;bell/horn&lt;/h5&gt; &lt;p&gt;A bell/horn will be included in jacket. When rapid deceleration associated with a panic stop is detected by accelerometer, special safety features are automatically triggered:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Instead of solid stop light, flash stop light (inspired by F1 race car stop lights)  &lt;li&gt;Sound bell/horn to alert bystanders or other cyclists following in group. &lt;/li&gt;&lt;/ol&gt; &lt;h5&gt;Alternate proposal - Arm sleeve signal LEDs&lt;/h5&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/-YyFsbakBhyY/UfDJ3v0xB2I/AAAAAAAAA1Q/XvscNu6KQAk/s1600-h/image%25255B18%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/-xtN9hv5WOvU/UfDJ5PjlBUI/AAAAAAAAA1Y/BLXFzcuVtuc/image_thumb%25255B10%25255D.png?imgmax=800&quot; width=&quot;544&quot; height=&quot;308&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Previous design included LED turn signals and stop light in the back of a jacket. This design has a few disadvantages: 1) LEDs are tied to a specific jacket, and 2) LEDs may be obscured if bicyclists is wearing a backpack.&lt;/p&gt; &lt;p&gt;To overcome these limitations, an alternate proposal was explored to include LEDs in an arm sleeve instead of jacket.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Design rejected &lt;/strong&gt;– After further consideration, the design was ultimately rejected for the following reasons:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;strong&gt;Reduced LED visibility &lt;/strong&gt;– the LEDs on arm band may not be as visible depending on orientation of arms (such as tucked in on aero bars on a road bicycle), for different body proportions. The ability to distinguish the direction of turn signal is reduced as LED strip is narrower.  &lt;li&gt;&lt;strong&gt;Increased prototyping &amp;amp; development cost &lt;/strong&gt;– Connecting 2 arm sleeves together with a wire would create additional usability challenges, and creating independent set of electronics for each sleeve would double costs. &lt;/li&gt;&lt;/ol&gt; &lt;h3&gt;Electronics&lt;/h3&gt; &lt;h5&gt;Prototyping planning&lt;/h5&gt; &lt;p&gt;&lt;a href=&quot;http://fritzing.org/&quot; target=&quot;_blank&quot;&gt;fritzing&lt;/a&gt; circuit prototyping software was used to plan the initial breadboard prototype. The following diagrams illustrates how accelerometer, LEDs, force-sensitive resistors, buttons, and resistors will be wired on breadboard.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/-w4da4Fb_t6w/UfDO6wcfX6I/AAAAAAAAA1o/6SP1zHXjLUU/s1600-h/BikeJacket_P1_bb%25255B4%25255D.png&quot;&gt;&lt;img title=&quot;BikeJacket_P1_bb&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;BikeJacket_P1_bb&quot; src=&quot;http://lh6.ggpht.com/-H-dTCOZBtWU/UfDO710K9PI/AAAAAAAAA1w/fzu9wbtAMyA/BikeJacket_P1_bb_thumb%25255B2%25255D.png?imgmax=800&quot; width=&quot;494&quot; height=&quot;604&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The Arduino Uno’s 6 analog input pins and 14 digital I/O pins fill up pretty quickly!&lt;/p&gt; &lt;p&gt;Fritzing includes common Arduino and SparkFun components, but doesn’t include Adafruit components. To add components from Adafruit in fritzing, I followed &lt;a href=&quot;http://learn.adafruit.com/using-the-adafruit-library-with-fritzing/download-the-fritzing-library-from-github&quot; target=&quot;_blank&quot;&gt;these instructions&lt;/a&gt;.&lt;/p&gt; &lt;h3&gt;Programming&lt;/h3&gt; &lt;p&gt;Pseudo-code for the software programming&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Check accelerometer &lt;/li&gt; &lt;ul&gt; &lt;li&gt;If slowing, turn on stop light  &lt;li&gt;If panic stopping, flash stop light, sound horn ?  &lt;li&gt;If crash, flash turn and stop lights indefinitely &lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Check turn signal buttons &lt;/li&gt; &lt;ul&gt; &lt;li&gt;If pressed, &lt;/li&gt; &lt;ul&gt; &lt;li&gt;If signal isn&#39;t on, turn on signal for 3 seconds  &lt;li&gt;If signal is on, turn off signal &lt;/li&gt;&lt;/ul&gt; &lt;li&gt;If held for 2 seconds, turn on signal indefinitely &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;h3&gt;Next steps&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;&lt;font style=&quot;font-weight: normal&quot;&gt;Implement breadboard based on planned layout and verify basic functionality.&lt;/font&gt; &lt;li&gt;&lt;font style=&quot;font-weight: normal&quot;&gt;Evaluate performance of &lt;/font&gt;&lt;a href=&quot;http://www.adafruit.com/products/163&quot;&gt;&lt;font style=&quot;font-weight: normal&quot;&gt;ADXL335&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;font style=&quot;font-weight: normal&quot;&gt;a&lt;/font&gt;&lt;font style=&quot;font-weight: normal&quot;&gt;ccelerometer, experimenting with detecting deceleration to automatically turn on stop light&lt;/font&gt;  &lt;li&gt;Prototyping with &lt;a href=&quot;http://www.adafruit.com/products/306&quot; target=&quot;_blank&quot;&gt;digital RGB LED strip&lt;/a&gt;, controlling color of each LED using Arduino to switch between red for stop light and yellow for turn signal, and also programming strobing animation to indicate direction of turn signals.  &lt;li&gt;Researching stitching techniques for next phase of prototyping using conductive thread. &lt;/li&gt;&lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/7498041301140046353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=7498041301140046353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/7498041301140046353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/7498041301140046353'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2013/07/hands-free-bicycle-signal-jacket-update.html' title='Hands-free bicycle signal jacket – update #2'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-6lyUssKUvjc/UfDJ2aLMnwI/AAAAAAAAA1I/0F4ImkkA5Ok/s72-c/image_thumb%25255B8%25255D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-8874319402873833798</id><published>2013-07-18T02:59:00.001-04:00</published><updated>2013-07-18T03:15:41.638-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="physical computing"/><title type='text'>Hands-free bicycle signal jacket – project proposal</title><content type='html'>&lt;p&gt;Bicyclists use hand signals to indicate turns and stops. Signaling with hands affects safety of bicyclists as they can&#39;t signal with hands and stop at the same time. Bicyclists may need both hands to steady bike under hard braking.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/-N3n3JYVFOlM/UeeSKO_VkAI/AAAAAAAAAz4/Gy21e7PC_Bw/s1600-h/image%25255B17%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-ZkZhrSREu40/UeeSKnn_p-I/AAAAAAAAA0A/gB3XakjeAKY/image_thumb%25255B9%25255D.png?imgmax=800&quot; width=&quot;431&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;When riding in a group formation (&lt;a href=&quot;http://en.wikipedia.org/wiki/Peloton&quot;&gt;&lt;em&gt;peloton&lt;/em&gt;&lt;/a&gt;), the lead bicyclist uses hand signals to point out road hazards in addition to signaling for stopping &amp;amp; turning. Bicyclists in the back of a group may not see signals from leader if their view of leader is blocked. &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/-QDXtQaAnznQ/UeeSLnlof4I/AAAAAAAAA0I/mCM7Uh_YjJ0/s1600-h/image%25255B21%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-HZoYN5qFJNo/UeeSMaeEh9I/AAAAAAAAA0Q/jxiU3b_5M9A/image_thumb%25255B11%25255D.png?imgmax=800&quot; width=&quot;431&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;h3&gt;Design proposal&lt;/h3&gt; &lt;p&gt;Over the next few weeks, I’m building a hands-free bicycle signal jacket to enable bicyclists to signal while keeping hands on handlebar. The jacket increases bicycle safety by allowing bicyclists to keep both hands on brakes while signaling turns, slowing down, or pointing out road hazards when riding in a group. &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/-l6U8x0P3cv8/UeeSMjf1aKI/AAAAAAAAA0Y/-e1nXS4gVfQ/s1600-h/image%25255B26%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-mnzomiWp-Dc/UeeSNNx9N-I/AAAAAAAAA0g/EPybyLaIgRU/image_thumb%25255B14%25255D.png?imgmax=800&quot; width=&quot;431&quot; height=&quot;244&quot;&gt;&lt;/a&gt; &lt;h5&gt;Phase 1&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;Force sensitive switch in a glove that turns on LED turn signals&lt;/li&gt; &lt;li&gt;Accelerometer triggered LED stop light&lt;/li&gt;&lt;/ul&gt; &lt;h5&gt;Phase 2&lt;/h5&gt; &lt;ul&gt; &lt;li&gt;Hazard LEDs on sleeve&lt;/li&gt; &lt;li&gt;XBee wireless communication between 2 prototype jackets&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Rejected designs&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Mounting buttons/switches on the bicycle is undesirable as it ties jacket to a specific bicycle. However, if an alternative is not found, then mounting buttons to handlebar will be considered.&lt;/li&gt; &lt;li&gt;EL wires were rejected due to lack of daylight visibility&lt;/li&gt; &lt;li&gt;Luxeon LEDs were rejected due to complexity required in heat dissipation and lens&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Challenges&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;Choosing LEDs that are daylight visible at a distance for turn signal &amp;amp; stoplight&lt;/li&gt; &lt;li&gt;Designing turn signal switches that can be easily accessed by rider while minimalizing interference with riding bicycle&lt;/li&gt; &lt;li&gt;Finding suitable threshold for turning on stop light automatically&lt;/li&gt; &lt;li&gt;Establishing wireless communication between 2 jackets&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Design inspirations&lt;/h3&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/-1ToS7HmSz_Q/UeeSOVxY_dI/AAAAAAAAA0o/HnzY5Ftc3cg/s1600-h/image%25255B33%25255D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh5.ggpht.com/-Mo4avUc-aeY/UeeSO4zKgrI/AAAAAAAAA0w/JC5NGlNktHk/image_thumb%25255B17%25255D.png?imgmax=800&quot; width=&quot;431&quot; height=&quot;244&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;My project was inspired by the following similar projects&lt;/p&gt; &lt;ol&gt; &lt;li&gt;&lt;a href=&quot;http://www.instructables.com/id/turn-signal-biking-jacket/&quot;&gt;Turn signal biking jacket by Leah Buechley&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;http://www.dismod.com/product/dismod-windproof-cycle-wearable-technology/&quot;&gt;Dismod / Windproof cycle&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href=&quot;http://www.instructables.com/id/Automatic-Trigger-Blink-Signal/&quot;&gt;Automatic Activated Blink Signal&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/8874319402873833798/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=8874319402873833798' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/8874319402873833798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/8874319402873833798'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2013/07/hands-free-bicycle-signal-jacket.html' title='Hands-free bicycle signal jacket – project proposal'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-ZkZhrSREu40/UeeSKnn_p-I/AAAAAAAAA0A/gB3XakjeAKY/s72-c/image_thumb%25255B9%25255D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-6987601397884157144</id><published>2013-07-17T03:18:00.001-04:00</published><updated>2013-07-17T03:22:45.479-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="physical computing"/><title type='text'>Building an Arduino bicycle computer - part #2</title><content type='html'>&lt;p&gt;This post is a followup to &lt;a href=&quot;http://geeksquawk.blogspot.com/2013/07/building-arduino-bicycle-computer.html&quot; target=&quot;_blank&quot;&gt;Building an Arduino bicycle computer&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/-nRYQws1slWw/UeZFOVw4BuI/AAAAAAAAAzo/C3dgTOKbz2Q/s1600-h/WP_20130716_001.jpg&quot;&gt;&lt;img title=&quot;WP_20130716_001&quot; style=&quot;border-top: 0px; border-right: 0px; background-image: none; border-bottom: 0px; padding-top: 0px; padding-left: 0px; border-left: 0px; display: inline; padding-right: 0px&quot; border=&quot;0&quot; alt=&quot;WP_20130716_001&quot; src=&quot;http://lh4.ggpht.com/-YLfk999KdmI/UeZFO4eivXI/AAAAAAAAAzw/BLULBfVuKx0/WP_20130716_001_thumb.jpg?imgmax=800&quot; width=&quot;438&quot; height=&quot;352&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;Completed Arduino bicycle computer&lt;/em&gt;&lt;/p&gt; &lt;p&gt;To learn fundamental concepts of prototyping interactive systems with Arduino, I built a bicycle computer that mimics functionality available in commercial bicycle computers like the &lt;a href=&quot;http://ecom1.planetbike.com/8003.html&quot;&gt;Planet Bike Protégé 9.0&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;The bicycle computer has the following planned features:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Speed (mph)  &lt;li&gt;Ride time  &lt;li&gt;Ride distance  &lt;li&gt;Odometer | temperature &amp;amp; time | avg speed &amp;amp; max speed &lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Real Time Clock&lt;/h3&gt; &lt;p&gt;The Arduino by itself can track time in milliseconds since last reset, but is unable to track current date and time across resets. Luckily, real time clock (RTC) chips are available and can be integrated with an Arduino.&lt;/p&gt; &lt;p&gt;A &lt;a href=&quot;http://learn.adafruit.com/ds1307-real-time-clock-breakout-board-kit/overview&quot; target=&quot;_blank&quot;&gt;DS1307 Real Time Clock&lt;/a&gt; was assembled, soldered and integrated with the bicycle computer based on instructions provided by Adafruit.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/-ffiYCbTKbZw/UeZFPng-ymI/AAAAAAAAAzA/aDbQA2DzQDw/s1600-h/WP_20130714_0063.jpg&quot;&gt;&lt;img title=&quot;WP_20130714_006&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;WP_20130714_006&quot; src=&quot;http://lh5.ggpht.com/-Zmw-cDuAJ3o/UeZFQDNGjgI/AAAAAAAAAzI/v3F3PsFtfw8/WP_20130714_006_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;183&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;Assembling the IC, oscillator, battery holder, resistors, capacitor on the circuit board&lt;/em&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/-eV98MPcRHbs/UeZFQ5vhtBI/AAAAAAAAAzQ/ANfM6EjLG-w/s1600-h/WP_20130714_0093.jpg&quot;&gt;&lt;img title=&quot;WP_20130714_009&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;WP_20130714_009&quot; src=&quot;http://lh3.ggpht.com/-pNJLyM9qNoE/UeZFRbPH6uI/AAAAAAAAAzY/Tbro6Yn-M7M/WP_20130714_009_thumb.jpg?imgmax=800&quot; width=&quot;244&quot; height=&quot;183&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;Checking the connections after soldering&lt;/em&gt;&lt;/p&gt; &lt;p&gt;A special Arduino program is used to initialize the clock to the correct time. The coin cell battery is capable of keeping the clock running for 5 years.&lt;/p&gt; &lt;h3&gt;Bicycle computer program&lt;/h3&gt; &lt;h4&gt;Pseudo-code&lt;/h4&gt; &lt;ol&gt; &lt;li&gt;Setup (runs once)  &lt;ol&gt; &lt;li&gt;Initialize temp &amp;amp; magnet sensor input pins and LED output PIN  &lt;li&gt;Initialize serial port, LCD, real-time clock  &lt;li&gt;Display static text on LCD&lt;/li&gt;&lt;/ol&gt; &lt;li&gt;Loop (runs over and over again forever)  &lt;ol&gt; &lt;li&gt;Check for button press  &lt;li&gt;Check magnet sensor status &amp;amp; calculate ride distance and current speed  &lt;li&gt;Check temperature sensor status (if temperature is currently displayed)  &lt;li&gt;Update LCD display based on current display mode (if LCD hasn’t been updated in 500ms)  &lt;li&gt;Output status to serial console (if debug mode is enabled)&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;u&gt;Checking for button press&lt;/u&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Filter button presses  &lt;ol&gt; &lt;li&gt;Current button state and button state 10ms ago needs to be pressed to be counted as pressed  &lt;li&gt;Current button state and button state 1s ago needs to be pressed to be counted as&lt;/li&gt;&lt;/ol&gt; &lt;li&gt;If button has been pressed  &lt;ol&gt; &lt;li&gt;Increment display mode counter.  &lt;li&gt;If display mode counter is &amp;gt; 5, reset display mode counter.  &lt;li&gt;Clear LCD  &lt;li&gt;Update LCD display with static text for current mode&lt;/li&gt;&lt;/ol&gt; &lt;li&gt;If button has been held  &lt;ol&gt; &lt;li&gt;Set start time to current time;  &lt;li&gt;Reset ride distance, ride time, max speed, average speed, counters to 0.&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;u&gt;Checking for magnet sensor&lt;/u&gt;&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Read current state of magnet sensor.  &lt;li&gt;If magnet is in range, then:  &lt;ol&gt; &lt;li&gt;Turn LED on  &lt;li&gt;If magnet wasn’t detected during last loop, then  &lt;ol&gt; &lt;li&gt;Calculate how much time elapsed since last time magnet was detected to determine time it took for wheel to turn one revolution  &lt;li&gt;Increment wheel revolutions counters  &lt;li&gt;Calculate ride distance by converting wheel revolutions to distance in miles  &lt;li&gt;Calculate current speed by converting time to complete last revolution to speed in mph  &lt;li&gt;Format current speed in mph to only include one digit after decimal point  &lt;li&gt;If average speed is currently displayed, calculate average speed by dividing total ride distance by total ride time.  &lt;li&gt;If current speed is greater than max speed, then set current speed as max speed to calculate maximum speed&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;li&gt;If magnet is not in range, then  &lt;ol&gt; &lt;li&gt;Turn LED off&lt;/li&gt;&lt;/ol&gt;&lt;/li&gt;&lt;/ol&gt; &lt;h4&gt;Development notes&lt;/h4&gt; &lt;ul&gt; &lt;li&gt;Adapted from sample code provided in class (Integration.ino, Indicator.ino, Temperature.ino, LCD.ino, Button.ino, Magnet.ino, Clock.ino, ClockSet.ino)  &lt;li&gt;Used &lt;a href=&quot;http://forums.adafruit.com/viewtopic.php?f=22&amp;amp;t=25656&quot; target=&quot;_blank&quot;&gt;LiquidTWI&lt;/a&gt; high-performance LCD and &lt;a href=&quot;https://github.com/adafruit/RTClib&quot; target=&quot;_blank&quot;&gt;RTClib&lt;/a&gt; third-party Arduino libraries.  &lt;li&gt;strcat implementation based on sample code from &lt;a href=&quot;http://forum.arduino.cc/index.php/topic,42070.0.html&quot; target=&quot;_blank&quot;&gt;forum.arduino.cc&lt;/a&gt;  &lt;li&gt;dstrtof implementation based on sample code from &lt;a href=&quot;http://forum.arduino.cc/index.php?topic=103935.0&quot; target=&quot;_blank&quot;&gt;forum.arduino.cc&lt;/a&gt;  &lt;li&gt;Button debouncing &amp;amp; hold logic adapted from Integration.ino sample code&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Problems encountered &amp;amp; concepts learned&lt;/h3&gt; &lt;ul&gt; &lt;li&gt;When connected to bicycle magnet sensor, missed detecting magnet due to amount of processing cycles required to update LCD. To fix this issue, the LCD update routine was updated to only refresh LCD every 500ms and only display values on LCD if they’re different from previous value.  &lt;li&gt;Hour is returned in 24 hour time. To convert to 12 hour time, I used a strcat function to add &lt;em&gt;am &lt;/em&gt;or &lt;em&gt;pm &lt;/em&gt;at end of the &lt;em&gt;sprintf &lt;/em&gt;time.  &lt;li&gt;Used pre-cut jumper wires to reduce wire clutter for 5V and GND wires, and used standard jumper wires for connections between Arduino and breadboard for ease in testing.&lt;/li&gt;&lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/6987601397884157144/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=6987601397884157144' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6987601397884157144'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6987601397884157144'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2013/07/building-arduino-bicycle-computer-part-2.html' title='Building an Arduino bicycle computer - part #2'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-YLfk999KdmI/UeZFO4eivXI/AAAAAAAAAzw/BLULBfVuKx0/s72-c/WP_20130716_001_thumb.jpg?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-4322872702122087504</id><published>2013-07-11T02:49:00.001-04:00</published><updated>2013-07-17T03:23:01.490-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Arduino"/><category scheme="http://www.blogger.com/atom/ns#" term="physical computing"/><title type='text'>Building an Arduino bicycle computer</title><content type='html'>&lt;p&gt;To learn fundamental concepts of prototyping interactive systems with Arduino, I built a bicycle computer that mimics functionality available in commercial bicycle computers like the &lt;a href=&quot;http://ecom1.planetbike.com/8003.html&quot; target=&quot;_blank&quot;&gt;Planet Bike Protégé 9.0&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;&lt;img src=&quot;http://ecom1.planetbike.com/planetbike/media/8003new.jpg&quot; width=&quot;130&quot; height=&quot;203&quot;&gt;&lt;br&gt;&lt;a href=&quot;http://ecom1.planetbike.com/8003.html&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Planet Bike Protégé 9.0&lt;/em&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;The bicycle computer has the following planned features:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Speed (mph)  &lt;li&gt;Ride time  &lt;li&gt;Ride distance  &lt;li&gt;Odometer | temperature &amp;amp; time | avg speed &amp;amp; max speed  &lt;li&gt;Speed comparison arrow (indicates if current speed is above or below average speed)&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Status&lt;/h3&gt; &lt;p&gt;All functions have been prototyped except for integration of real-time clock module to show time. Next week, I’ll be integrating real-time clock &amp;amp; testing on bike using the RJ45 adapter.&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/-ZEXnpJlbfFk/Ud5X3CD0waI/AAAAAAAAAyI/LQOMKpgwN9c/s1600-h/WP_20130709_001%25255B8%25255D.jpg&quot;&gt;&lt;img title=&quot;WP_20130709_001&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;WP_20130709_001&quot; src=&quot;http://lh4.ggpht.com/-dhkasbFhxaY/Ud5X3pOPlhI/AAAAAAAAAyQ/V9fiSVh3Qvo/WP_20130709_001_thumb%25255B2%25255D.jpg?imgmax=800&quot; width=&quot;419&quot; height=&quot;327&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;Current prototype&lt;/em&gt;&lt;/p&gt; &lt;h2&gt;Inputs&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Push button (mode selector)  &lt;li&gt;Hall effect (magnet) sensor  &lt;li&gt;Temperature sensor  &lt;li&gt;Real-time clock&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Processing / behaviors&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;Switch between LCD display modes based on push button  &lt;li&gt;Calculate current speed, ride distance, odometer based on wheel revolutions detected from hall effect sensor  &lt;li&gt;Convert temperature sensor values to degrees Fahrenheit  &lt;li&gt;Calculate average speed, speed comparison arrow based on current speed&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Outputs&lt;/h2&gt; &lt;ul&gt; &lt;li&gt;LED revolutions indicator  &lt;li&gt;LCD display  &lt;li&gt;Buzzer&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;LCD display&lt;/h2&gt; &lt;p&gt;The LCD display used displays 2 rows of up to 16 text characters in each row. It’s impossible to show all the information at once in the limited number of characters available, so the push button is used to cycle between different display modes.  &lt;p&gt;Design goals  &lt;ol&gt; &lt;li&gt;Show the most information possible at a time in each display mode  &lt;li&gt;Use minimum number of characters while maintaining readability  &lt;li&gt;Minimize the number of display modes&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Display modes&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;88.8mph&amp;nbsp; 8:88:88&lt;br&gt;DST:888.8 miles&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;88.8mph&amp;nbsp; 8:88:88&lt;/font&gt;&lt;font face=&quot;Courier New&quot;&gt;&lt;br&gt;88:88am&amp;nbsp;&amp;nbsp;&amp;nbsp; 88.8F&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;88.8mph&amp;nbsp; 8:88:88&lt;/font&gt;&lt;font face=&quot;Courier New&quot;&gt;&lt;br&gt;AVG SPD: 88.8mph&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;88.8mph&amp;nbsp; 8:88:88&lt;/font&gt;&lt;font face=&quot;Courier New&quot;&gt;&lt;br&gt;MAX SPD: 88.8mph&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;88.8mph&amp;nbsp; 8:88:88&lt;/font&gt;&lt;font face=&quot;Courier New&quot;&gt;&lt;br&gt;ODO:8888.8 miles&lt;/font&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/-cV6Dk0XmW-o/Ud5X4EUW8JI/AAAAAAAAAyY/TzKy9OZ-jn4/s1600-h/WP_20130709_002%25255B4%25255D.jpg&quot;&gt;&lt;img title=&quot;WP_20130709_002&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;WP_20130709_002&quot; src=&quot;http://lh3.ggpht.com/-R3gh0Ux4JM0/Ud5X4pU2RCI/AAAAAAAAAyg/vSy65yYAIOw/WP_20130709_002_thumb%25255B1%25255D.jpg?imgmax=800&quot; width=&quot;314&quot; height=&quot;433&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;Graph paper used to plan LCD display&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Concepts learned:  &lt;ul&gt; &lt;li&gt;Integer variable data types: int range is only ~32,000. unsigned long ranges up to ~2 million  &lt;li&gt;Float is used for calculations with floating-point numbers (numbers with a decimal point)  &lt;li&gt;Found &lt;a href=&quot;http://forum.arduino.cc/index.php/topic,18588.0.html&quot; target=&quot;_blank&quot;&gt;sample code online&lt;/a&gt; for converting time in millisecond to hour:minute:second format.  &lt;li&gt;To display speed with only one digit after decimal point, use &lt;a href=&quot;http://dereenigne.org/arduino/arduino-float-to-string&quot; target=&quot;_blank&quot;&gt;dtostrf function&lt;/a&gt; to convert float values to character arrays (strings).  &lt;li&gt;Arduino resets if dtostrf converts a float value to a character array that’s too small  &lt;li&gt;Distance wheel travels in one revolution was found in table in &lt;a href=&quot;http://planetbike.com/files/8003manual2006.pdf&quot; target=&quot;_blank&quot;&gt;Planet Bike computer manual&lt;/a&gt;.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Problems encountered:  &lt;ul&gt; &lt;li&gt;Temperature sensor can be off by 10 degrees F or more…  &lt;li&gt;Hall effect sensor doesn’t work when plugged in reversed  &lt;li&gt;LCD display was initially blank, and required adjusting contrast potentiometer.  &lt;li&gt;Lack of precision in Arduino Uno floating point math required defining a precalculated speed conversion factor that converts time for one wheel revolution to speed.&lt;/li&gt;&lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/4322872702122087504/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=4322872702122087504' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/4322872702122087504'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/4322872702122087504'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2013/07/building-arduino-bicycle-computer.html' title='Building an Arduino bicycle computer'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-dhkasbFhxaY/Ud5X3pOPlhI/AAAAAAAAAyQ/V9fiSVh3Qvo/s72-c/WP_20130709_001_thumb%25255B2%25255D.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-9041302229727995612</id><published>2013-07-02T03:55:00.001-04:00</published><updated>2013-07-04T01:18:55.955-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="physical computing"/><title type='text'>Physical computing experiments #1</title><content type='html'>&lt;p&gt;To learn fundamental concepts of prototyping interactive systems with Arduino, I completed the following projects:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;LED binary counter  &lt;li&gt;LED speedometer  &lt;li&gt;Button triggered LED binary counter  &lt;li&gt;Light detector with LCD display and data visualization using &lt;a href=&quot;http://processing.org/&quot; target=&quot;_blank&quot;&gt;Processing&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt; &lt;h2&gt;LED binary counter&lt;/h2&gt; &lt;p&gt;Goals&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Selectively control LED output based counter in a loop&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/-LmUhxWwWSjo/UdKHThcsXiI/AAAAAAAAAww/oXR5ehG8eI8/s1600-h/WP_20130629_001%25255B4%25255D.jpg&quot;&gt;&lt;img title=&quot;WP_20130629_001&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;WP_20130629_001&quot; src=&quot;http://lh4.ggpht.com/-L85RXAHnpA8/UdKHUIKBwSI/AAAAAAAAAw4/15Z-KcvQ0Oo/WP_20130629_001_thumb%25255B1%25255D.jpg?imgmax=800&quot; width=&quot;364&quot; height=&quot;284&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Concepts learned:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;setup() routine is run once and is used to configure outputs  &lt;li&gt;loop() routine runs continuously  &lt;li&gt;delay() function is used to pause program execution for a predefined time (in milliseconds)  &lt;li&gt;Add a 330Ohm resistor to the circuit to limit current through LED (Ohm’s law defines V = I*R, thus higher resistance equals lower current)  &lt;li&gt;Used for loop and modular arithmetic to algorithmically calculate which LEDs to turn on in binary counter &lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt; &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot;&gt;&amp;nbsp; for (int i = 0; i &amp;lt; 32; i++) {&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i % 2 == 1) { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(digit1, HIGH); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i % 4 &amp;gt;= 2) { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(digit2, HIGH); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i % 8 &amp;gt;= 4) { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(digit3, HIGH); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i % 16 &amp;gt;= 8) { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(digit4, HIGH); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (i % 32 &amp;gt;= 16) { &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; digitalWrite(digit5, HIGH); &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay(500);&amp;nbsp; // wait for half second between increments&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; clearLEDs();&lt;br&gt;}&lt;/font&gt;&lt;/p&gt;&lt;/blockquote&gt; &lt;p&gt;Problems encountered:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Discovered ^ is a bitwise operator, not an exponent (power) function.&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;LED speedometer&lt;/h2&gt; &lt;p&gt;Goals&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Control LED output based on reading value of a rotary potentiometer&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/-Rxxp33ZIFl0/UdKHUyqca9I/AAAAAAAAAxA/TwcubIwWziM/s1600-h/WP_20130629_004%25255B12%25255D.jpg&quot;&gt;&lt;img title=&quot;WP_20130629_004&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;WP_20130629_004&quot; src=&quot;http://lh3.ggpht.com/-8i6Z3dn7UAE/UdKHVtOar_I/AAAAAAAAAxI/yEiCPfUDqE4/WP_20130629_004_thumb%25255B3%25255D.jpg?imgmax=800&quot; width=&quot;364&quot; height=&quot;284&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Concepts learned:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;analogRead() returns an integer between 0 and 1023  &lt;li&gt;Need to set output to LOW to turn off LED, otherwise they always stay on.&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Button triggered LED binary counter&lt;/h2&gt; &lt;p&gt;Goals:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Control LED binary counter by using a push button.&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/-tNWuM5KqG7Q/UdKHWTFPH4I/AAAAAAAAAxQ/ANRCU5ykM40/s1600-h/WP_20130629_005%25255B4%25255D.jpg&quot;&gt;&lt;img title=&quot;WP_20130629_005&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;WP_20130629_005&quot; src=&quot;http://lh5.ggpht.com/-09FNCGZbWTI/UdKHWxpj5jI/AAAAAAAAAxY/jZYrvb3J7LI/WP_20130629_005_thumb%25255B1%25255D.jpg?imgmax=800&quot; width=&quot;373&quot; height=&quot;292&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;Concepts learned:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Main program loop checks to see if button is pressed; If button is pressed, counter is incremented and the appropriate LED output is turned on.  &lt;li&gt;Use a 10kOhm resistor between push button and ground (to limit current in circuit when push button is depressed).  &lt;li&gt;State change detection by comparing current button state with last button state. Arduino doesn’t support event-based logic.  &lt;li&gt;Button “debouncing” or filtering logic based on &lt;a href=&quot;http://arduino.cc/en/Tutorial/Debounce&quot; target=&quot;_blank&quot;&gt;Arduino.cc tutorial&lt;/a&gt;. Assume button state actually changed if button state reading has changed at time t = 0 and t = 50msec.&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Light detector with LCD display&lt;/h2&gt; &lt;p&gt;Goals:&lt;/p&gt; &lt;ol&gt; &lt;li&gt;Control a LCD text display using Arduino  &lt;li&gt;Output data to computer using serial console  &lt;li&gt;Real-time data visualization on PC using Processing&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/-qfa14cYV8OU/UdKHXtj4NJI/AAAAAAAAAxg/nUnBIfxCznw/s1600-h/WP_20130701_003%25255B4%25255D.jpg&quot;&gt;&lt;img title=&quot;WP_20130701_003&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;WP_20130701_003&quot; src=&quot;http://lh3.ggpht.com/-vt_ojAKWJe0/UdKHYIeMsCI/AAAAAAAAAxo/nmgHHSvBqT4/WP_20130701_003_thumb%25255B1%25255D.jpg?imgmax=800&quot; width=&quot;378&quot; height=&quot;295&quot;&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/-EdpowVAqkEQ/UdKHYjDtA3I/AAAAAAAAAxw/chjPnKoB4cM/s1600-h/Processing%25255B3%25255D.png&quot;&gt;&lt;img title=&quot;Processing&quot; style=&quot;border-left-width: 0px; border-right-width: 0px; background-image: none; border-bottom-width: 0px; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-top-width: 0px&quot; border=&quot;0&quot; alt=&quot;Processing&quot; src=&quot;http://lh3.ggpht.com/-zFZmnHFdMe8/UdKHZVLjuLI/AAAAAAAAAx4/N36Ywjc7M-A/Processing_thumb%25255B1%25255D.png?imgmax=800&quot; width=&quot;389&quot; height=&quot;224&quot;&gt;&lt;/a&gt;&lt;br&gt;&lt;em&gt;Processing visualization of photoresistor sensor values&lt;/em&gt;&lt;/p&gt; &lt;p&gt;Concepts learned:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Text displayed will persist until overwritten. This becomes an issue when displaying numbers with varying number of digits, and requires additional logic to zero-pad numbers to same number of digits or to shift cursor placement based on number of digits.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Problems encountered:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Serial console commands is only compatible with 32-bit version of Processing  &lt;li&gt;Can’t run Processing and Arduino serial monitor at same time. &lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;Coming up next&lt;/h2&gt; &lt;p&gt;Next project is to build a bicycle computer using Arduino and a variety of sensors to replicate the functionality in commercial bike computers (&lt;a href=&quot;http://ecom1.planetbike.com/8003.html&quot; target=&quot;_blank&quot;&gt;example&lt;/a&gt;).&lt;/p&gt; &lt;p&gt;Bike computer functionality&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Speed (in mph)&lt;/li&gt; &lt;li&gt;Ride time (in minutes)&lt;/li&gt; &lt;li&gt;Ride distance (in miles)&lt;/li&gt; &lt;li&gt;Odometer (in miles)&lt;/li&gt; &lt;li&gt;Average speed &amp;amp; max speed&lt;/li&gt; &lt;li&gt;Temperature &amp;amp; clock&lt;/li&gt;&lt;/ul&gt; &lt;h2&gt;About&lt;/h2&gt; &lt;p&gt;As a student in HCDE 598 Physical computing course at University of Washington, I’m learning fundamentals of designing, prototyping, and building human-centered interactive systems and environments with micro-controllers, software, sensors and electronic devices.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/9041302229727995612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=9041302229727995612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/9041302229727995612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/9041302229727995612'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2013/07/physical-computing-experiments-1.html' title='Physical computing experiments #1'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-L85RXAHnpA8/UdKHUIKBwSI/AAAAAAAAAw4/15Z-KcvQ0Oo/s72-c/WP_20130629_001_thumb%25255B1%25255D.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-2455123568257138889</id><published>2012-11-12T06:48:00.001-05:00</published><updated>2012-11-12T07:16:39.582-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="gesture"/><category scheme="http://www.blogger.com/atom/ns#" term="interaction design"/><category scheme="http://www.blogger.com/atom/ns#" term="multi-touch"/><category scheme="http://www.blogger.com/atom/ns#" term="multitouch"/><category scheme="http://www.blogger.com/atom/ns#" term="tablets"/><category scheme="http://www.blogger.com/atom/ns#" term="touch"/><category scheme="http://www.blogger.com/atom/ns#" term="user interfaces"/><title type='text'>Intuitive multi-touch interaction design</title><content type='html'>&lt;p&gt;Multi-touch interactions are regarded by the public as intuitive and easy to use, yet there is lack of consistency in implementation among research and commercial products. How can intuition be incorporated and evaluated when designing multi-touch gestural interactions? &lt;a href=&quot;http://dl.acm.org/citation.cfm?id=2254571&quot;&gt;Towards the Establishment of a Framework for Intuitive Multi-touch Interaction Design&lt;/a&gt; paper addressed such a question by reviewing published research on multi-touch interactions to construct a framework of factors that influence intuition. &lt;/p&gt;  &lt;h2&gt;Multi-touch interaction framework&lt;/h2&gt;  &lt;p&gt;&lt;a href=&quot;http://www.merriam-webster.com/dictionary/intuition&quot; target=&quot;_blank&quot;&gt;Intuition&lt;/a&gt; is defined as&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;The power or faculty of attaining to direct knowledge or cognition without evident rational thought and inference.&lt;/em&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Intuitive interactions minimize the effort required of end users to learn, use, and remember the interactions. The research proposed five factors that influence intuition of multi-touch interactions: direct manipulation, physics, feedback, previous knowledge, and physical motion.&lt;/p&gt;  &lt;p&gt;Direct manipulation interactions mimic the natural laws of physical behavior in the real world. Examples include &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/windows/desktop/hh465370.aspx#the_mouse__the_pen__the_keyboard__and_a_touch-first_world&quot;&gt;common multi-touch interactions for moving, resizing, rotating, and zooming objects&lt;/a&gt;. Direct manipulation interactions avoid the need to learn &amp;amp; train required for indirect input mechanisms such as mouse or joystick and makes use of real-world physical laws familiar to end users. It might be hard to relate for expert computer users, the video below of Windows 95 usability testing illustrates that double-clicking with a mouse isn’t something that comes naturally to everyone.&lt;/p&gt;  &lt;p&gt;&lt;iframe style=&quot;width: 512px; height: 288px&quot; src=&quot;http://channel9.msdn.com/posts/Windows-95-Usability-Testing-1993/player?w=512&amp;amp;h=288&quot; frameborder=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;&lt;/p&gt;  &lt;p&gt;Gesture size &amp;amp; gesture speed are 2 aspects of physics commonly integrated into multi-touch interactions. Users associate larger gestures with larger interaction outcomes such as navigating and smaller gestures with detail-oriented interactions such as manipulating interface element. Similarly, users expect faster gesture speed to result in faster movement (e.g. move vs. flick)&lt;/p&gt;  &lt;p&gt;Feedback in multi-touch interactions is especially important as screens don’t provide tactile feedback and &lt;a href=&quot;http://www.youtube.com/watch?v=SLcU09vXxCE&quot; target=&quot;_blank&quot;&gt;fingers itself can block visual changes&lt;/a&gt;. Users use visual or auditory feedback as context to resolve gesture ambiguity.&lt;/p&gt;  &lt;p&gt;Depending on end user’s previous experience, they may have different directionality notions for navigating forwards and backwards. Collective research showed that most users preferred one-handed gestures over two-handed gestures when using multi-touch table computers.&lt;/p&gt;  &lt;h2&gt;Consensus across research &amp;amp; commercial products&lt;/h2&gt;  &lt;p&gt;Apple iOS, Google Android, and Windows Phone all support some variant of tap, double-tap, touch and hold, drag, flick, and pinch gestures. One finger tap and one finger drag are the most uniform gestures used, supported by all common multi-touch interfaces. Two-finger pinch and spread for zooming or scaling objects are also widespread. There is less consensus with more abstract interactions such as rotation. Collective research studying users show a wide range of variability in expectations for gestures. Move (one finger touch and drag) and selection had the highest agreement among user studies, while deleting objects and zooming had lower levels of agreement.&lt;/p&gt;  &lt;p&gt;The video below illustrates multi-touch gestures as used in Google Earth smartphone app.&lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:71b46b85-8caf-4819-99d1-2987191235d3&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div&gt;&lt;object width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/v6BPuKaLel4?hl=en&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/v6BPuKaLel4?hl=en&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style=&quot;width:448px;clear:both;font-size:.8em&quot;&gt;Example of multi-touch interactions in a commercial product&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;For fun, the video below demonstrates one finger touch interactions on a &lt;a href=&quot;http://www.hp.com/hpinfo/abouthp/histnfacts/museum/personalsystems/0031/&quot; target=&quot;_blank&quot;&gt;HP-150&lt;/a&gt; PC, a touchscreen computer from 1983, even though it ran MS-DOS and lacked a graphical user interface. Computers have come a long way since then…&lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:6ed88953-f335-464e-88ce-9b9d50a293af&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div&gt;&lt;object width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/X-THdG5gVTw?hl=en&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/X-THdG5gVTw?hl=en&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style=&quot;width:448px;clear:both;font-size:.8em&quot;&gt;Demonstration of HP-150 touch computer from 1983&lt;/div&gt;&lt;/div&gt;  &lt;h2&gt;Remaining research problems&lt;/h2&gt;  &lt;p&gt;Designing for multiple interactions that require more interactions than there are simple direct manipulation gestures is one problem. A simple photo browsing app can be designed to use a small set of direct manipulation gestures such as moving, scaling, and rotating; a comprehensive photo editing app like &lt;a href=&quot;http://www.adobe.com/products/photoshop.html&quot; target=&quot;_blank&quot;&gt;Adobe Photoshop&lt;/a&gt; with effects, photo cropping, and free-hand selection requires either designing unique multi-touch gestures or using menus &amp;amp; buttons to trigger different interaction modes to re-use gestures. The analysis of published research also revealed a lack of rigorous evaluation of multi-touch interactions. There’s lack of objective, statistically significant evaluation data, limiting ability to quantify existing knowledge.&lt;/p&gt;  &lt;h2&gt;Future of multi-touch interactions&lt;/h2&gt;  &lt;p&gt;The five factors that influence interaction design presented in the research suggests that successful mobile app interactions make appropriate use of direct manipulation that behaves in accordance with real-world physical laws, uses menus &amp;amp; buttons as modifiers to re-use gestures for abstract concepts, and provides a combination of visual and auditory feedback. It was surprising to find that except for one finger touch and touch &amp;amp; drag, research showed low levels of agreement for more complex gestures. Mouse &amp;amp; keyboard enables a rich set of interactions through use of modifiers (right-click, shift key + click, etc). One approach may be development of a standard set of modifiers for one finger touch to enable richer interactions. &lt;a href=&quot;http://geeksquawk.blogspot.com/2012/10/can-starcraft-be-controlled-using-pen.html&quot; target=&quot;_blank&quot;&gt;I’ve previously blogged&lt;/a&gt; about research that demonstrated viability of using non-dominant hand to modify actions in a real time strategy game context.&lt;/p&gt;  &lt;p&gt;Multi-touch interactions are still in their infancy, and it’s important for products to set good precedents early to avoid burdening future users with unintuitive interactions. The &lt;a href=&quot;http://en.wikipedia.org/wiki/QWERTY&quot; target=&quot;_blank&quot;&gt;QWERTY&lt;/a&gt; keyboard layout was designed to minimize typewriter jams. It’s inefficient &amp;amp; limits typing speed, but remains as the most common keyboard layout on computers due to inestimable cost of change. The computer mouse was first introduced in early 1980s. Single left click, double left click, and single right-click on the mouse are standard &lt;a href=&quot;http://en.wikipedia.org/wiki/Computer_mouse#Operation&quot; target=&quot;_blank&quot;&gt;mouse operations&lt;/a&gt; today while triple-click and mouse chording (e.g. hold the left button and click the right button) are rarely used. I’ll be interesting to see which multi-touch gestures will become the standard ones used 25 years from now.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/2455123568257138889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=2455123568257138889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/2455123568257138889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/2455123568257138889'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2012/11/intuitive-multi-touch-interaction-design.html' title='Intuitive multi-touch interaction design'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-7622252356781601912</id><published>2012-10-28T16:18:00.001-04:00</published><updated>2012-10-29T02:11:28.375-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="esports"/><category scheme="http://www.blogger.com/atom/ns#" term="multitouch"/><category scheme="http://www.blogger.com/atom/ns#" term="pen input"/><category scheme="http://www.blogger.com/atom/ns#" term="rts"/><category scheme="http://www.blogger.com/atom/ns#" term="starcraft"/><category scheme="http://www.blogger.com/atom/ns#" term="tablets"/><category scheme="http://www.blogger.com/atom/ns#" term="touch"/><title type='text'>Can StarCraft be controlled using pen + touch?</title><content type='html'>&lt;p&gt;Is it possible to create a &lt;a href=&quot;http://en.wikipedia.org/wiki/Real-time_strategy&quot; target=&quot;_blank&quot;&gt;real time strategy&lt;/a&gt; (RTS) video game using touch input that matches or exceeds the capabilities skilled players have with mouse + keyboard? I came across a research article &lt;a href=&quot;http://dl.acm.org/citation.cfm?id=2380156&quot; target=&quot;_blank&quot;&gt;High-Performance Pen + Touch Modality Interactions: A Real-Time Strategy Game eSports Context&lt;/a&gt; (&lt;a href=&quot;http://ecologylab.net/research/publications/RtsUist2012.pdf&quot; target=&quot;_blank&quot;&gt;PDF available here&lt;/a&gt;) that answered that question by proposing a new pen + touch interaction system for playing Real Time Strategy (RTS) type of video games such as &lt;a href=&quot;http://en.wikipedia.org/wiki/StarCraft&quot;&gt;StarCraft&lt;/a&gt;. A &lt;a href=&quot;http://www.youtube.com/watch?v=N-T0OAzH9Wk&quot; target=&quot;_blank&quot;&gt;3 minute YouTube video&lt;/a&gt; summarizes their research.&lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:622f2822-0d0e-4b33-b699-10ac6bad3114&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div&gt;&lt;object width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/N-T0OAzH9Wk?hl=en&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/N-T0OAzH9Wk?hl=en&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style=&quot;width:448px;clear:both;font-size:.8em&quot;&gt;3 minute video summary of research&lt;/div&gt;&lt;/div&gt;  &lt;h4&gt;Background&lt;/h4&gt;  &lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Real-time_strategy&quot;&gt;Real Time Strategy&lt;/a&gt; (RTS) is an extremely popular genre of video game worldwide. The &lt;a href=&quot;http://www.gomtv.net/&quot;&gt;Global StarCraft League&lt;/a&gt; (GSL) finals engaged 25,000 co-located and 300,000 online viewers. Unlike other competitive video genres such as first person shooter, arcade style fighter, or racing simulation games, RTS games require &lt;i&gt;repeated&lt;/i&gt; &lt;i&gt;rapid&lt;/i&gt;, &lt;i&gt;precise&lt;/i&gt;, &lt;i&gt;complex&lt;/i&gt;, and &lt;i&gt;sustained&lt;/i&gt; interactions. The research quoted one top ranked player saying “Everything in these games is about APM [actions per minute].” Popular RTS video games use mouse + keyboard (such StarCraft), and no significant RTS video games have been created that use touch + pen input. &lt;a href=&quot;http://www.youtube.com/watch?v=YbpCLqryN-Q&quot;&gt;Video of top ranked players explaining APM&lt;/a&gt; show the screen changing so fast from mouse + keyboard interaction that it becomes nauseating to watch. &lt;/p&gt;  &lt;p&gt;iPhone and Android smartphones over the past few years have popularized the concept of using finger as input, and tablets like the iPad take advantage of similar interaction model as smartphones. With the recent release of &lt;a href=&quot;http://windows.microsoft.com/en-US/windows-8/meet&quot;&gt;Windows 8&lt;/a&gt; and &lt;a href=&quot;http://www.microsoft.com/Surface/&quot;&gt;Microsoft Surface&lt;/a&gt;, and the announcement of &lt;a href=&quot;http://www.apple.com/ipad-mini/overview/&quot;&gt;iPad mini&lt;/a&gt;, more and more computers people use will support touch interaction. Similarly, pen input has been successful in niche markets such as graphic design and CAD for decades. Early examples of digitizer graphics tablet include the &lt;a href=&quot;http://www.edibleapple.com/2009/11/23/the-first-apple-tablet-from-1979/&quot;&gt;Apple Graphics Tablet&lt;/a&gt; (1979). Early convertible tablet computers with pen input included the &lt;a href=&quot;http://en.wikipedia.org/wiki/Compaq_Concerto&quot;&gt;Compaq Concerto&lt;/a&gt; (1993) and the &lt;a href=&quot;http://en.wikipedia.org/wiki/Compaq_TC1000&quot;&gt;Compaq TC1000&lt;/a&gt; (2003). &lt;/p&gt;  &lt;p&gt;&lt;img alt=&quot;Tablet PCs (clockwise from left): Acer TravelMate C102T, Compaq TC1000, Fujitsu Stylistic ST4000, ViewSonic V1100.&quot; src=&quot;http://images.pcworld.com/news/graphics/106430-2012p026-1b.jpg&quot; width=&quot;359&quot; height=&quot;311&quot; /&gt;     &lt;br /&gt;&lt;a href=&quot;http://pcworld.about.net/magazine/2012p026id106430.htm&quot; target=&quot;_blank&quot;&gt;Early tablet computers with pen input from 2003&lt;/a&gt;&lt;/p&gt;  &lt;h4&gt;Deconstructing a RTS video game&lt;/h4&gt;  &lt;p&gt;The authors did a great job explaining the gameplay aspects common to all RTS video games. (Those who’ve played StarCraft can skip this section :). In general, all RTS games focus on managing &lt;i&gt;&lt;a href=&quot;http://wiki.teamliquid.net/starcraft2/Units_(StarCraft)&quot; target=&quot;_blank&quot;&gt;units&lt;/a&gt;&lt;/i&gt;, game entities that player construct &amp;amp; control. Players typically command hundreds of units simultaneously, and make minute adjustments to each unit. The game interface is built around a main view of the game world accompanied by a “mini-map.” &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/-KAQA7qIEzpI/UI4eCWVMHgI/AAAAAAAAAKo/5Yx455OmAQU/s1600-h/clip_image001%25255B1%25255D.jpg&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;clip_image001&quot; border=&quot;0&quot; alt=&quot;clip_image001&quot; src=&quot;http://lh5.ggpht.com/-G90EklQ1xPc/UI2S8QRyNZI/AAAAAAAAAKw/4e2EBC_Ping/clip_image001_thumb%25255B1%25255D.jpg?imgmax=800&quot; width=&quot;410&quot; height=&quot;319&quot; /&gt;&lt;/a&gt;&lt;font size=&quot;1&quot;&gt;      &lt;br /&gt;Screenshot from &lt;/font&gt;&lt;a href=&quot;http://www.gamespot.com/starcraft-ii-wings-of-liberty/images/1354810/&quot;&gt;&lt;font size=&quot;1&quot;&gt;StarCraft 2&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the common mouse + keyboard interaction scheme, the mouse is primarily used to select units and to invoke commands for selected units. The keyboard is used to invoke commands for selected units by advanced players quicker, and also to access saved groups of units. Expert players make extensive use of keyboard shortcuts (&lt;a href=&quot;http://wiki.teamliquid.net/starcraft2/Hotkeys&quot; target=&quot;_blank&quot;&gt;hotkeys&lt;/a&gt; and &lt;a href=&quot;http://wiki.teamliquid.net/starcraft2/Macro&quot; target=&quot;_blank&quot;&gt;macro&lt;/a&gt;) to increase the number of actions per minute they can perform to gain an edge on opponents.&lt;/p&gt;  &lt;h4&gt;Designing pen + touch interaction system adapted for RTS games&lt;/h4&gt;  &lt;p&gt;The authors designed a pen + touch interaction system optimized for five RTS game mechanics: unit selection, commands, macros, view manipulation, and control groups. &lt;a href=&quot;http://www.youtube.com/watch?v=Tyb4PAlstm8&quot; target=&quot;_blank&quot;&gt;Watch a video&lt;/a&gt; demonstrating the different components of the interaction system.&lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:ab9dde49-720b-4ed9-b0a8-aebacaaf92c1&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div&gt;&lt;object width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/Tyb4PAlstm8?hl=en&amp;amp;hd=1&quot;&gt;&lt;/param&gt;&lt;embed src=&quot;http://www.youtube.com/v/Tyb4PAlstm8?hl=en&amp;amp;hd=1&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;448&quot; height=&quot;252&quot;&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;div style=&quot;width:448px;clear:both;font-size:.8em&quot;&gt;Video demonstrating pen + touch interaction system&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;Single units are selected with pen taps. Instead of drawing a selection rectangle with mouse groups of units are selected with pen using a unique isosceles lasso select technique. The technique optimizes for a short pen stroke by magnifying the area covered by a pen stroke while preserving a precise &amp;amp; non-precise selection edge. &lt;a href=&quot;http://youtu.be/Tyb4PAlstm8?t=24s&quot; target=&quot;_blank&quot;&gt;Watch the video at 0:24&lt;/a&gt; that demonstrates the selection method.&lt;/p&gt;  &lt;p&gt;Commands are selected using an edge-constrained multi-finger command selection panel instead of using mouse click &amp;amp; keyboard shortcut combinations. &lt;a href=&quot;http://youtu.be/Tyb4PAlstm8?t=35s&quot; target=&quot;_blank&quot;&gt;Watch the video at 0:35&lt;/a&gt; that demonstrates this.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://wiki.teamliquid.net/starcraft2/Macro&quot; target=&quot;_blank&quot;&gt;Macro&lt;/a&gt; for commanding factories to construct new units in game are designed as in-context touch menu that appears next to the selected factory object instead of a series of keyboard shortcuts. To support efficient performance by expert players, duplicate view of all factory objects are shown in an array at the bottom of the screen, enabling expert players to save the time required to change the game view to the location of the factory and increasing the number of actions per minute the player can issue.&lt;/p&gt;  &lt;p&gt;View manipulation is accomplished using touch, using common gestures for panning, zooming, and rotating views that duplicate gestures on iPhone maps instead of using the mouse. Touch buttons are used to save and recall favorite camera views instead of keyboard shortcuts.&lt;/p&gt;  &lt;p&gt;Control groups are programmed &amp;amp; selected using a vertical array of buttons in the user interface instead of keyboard shortcuts.&lt;/p&gt;  &lt;h4&gt;Did it work?&lt;/h4&gt;  &lt;p&gt;If given equal training, would a RTS player using pen + touch be competitive against a player using mouse + keyboard? Using actions per minute as a basis for measuring competitiveness, the question can be rephrased as “Would a RTS player be able to perform equal or more actions per minute using pen + touch compared to mouse + keyboard?” &lt;/p&gt;  &lt;p&gt;Researchers tested the pen + touch interaction system with participants familiar with playing RTS games using mouse + keyboard. Participants found the pen + touch system to be more fun, engaging, and expressive, while there was more variance in reported results comparing difficulty, speed, and precision. While participants didn’t have time to extensively train using the pen + touch interaction model, all but one of the participants reported they felt they could become as good with pen + touch as they are with mouse + keyboard.&lt;/p&gt;  &lt;h4&gt;Would this work in real life?&lt;/h4&gt;  &lt;p&gt;Would a RTS video game released with the pen + touch interaction system be commercially successful? That depends on if players are willing to invest the time to learn a new control system, how the game’s pen + touch interactions match or differ with pen + touch interactions of the operating system, and if computers are available at an appropriate price point with technology that supports pen + touch interactions proposed.&lt;/p&gt;  &lt;p&gt;The research demonstrated that expert players could use a pen + touch to play RTS games as well as using traditional mouse + keyboard mechanism. The pen + touch interaction system would require significant training and learning for new players. The researchers acknowledge the interaction system is “not designed for novices, and some interaction techniques are not easily recognizable or intuitive.” Researched provided participants evaluating the system a tutorial with Q&amp;amp;A and 15 minute of practice time in order to learn rules such as a single touch with non-dominant hand in the command selection panel is selection or default command, 2 finger touch is fight command, and 3 finger touch is for constructing new units is not intuitive. &lt;/p&gt;  &lt;p&gt;The authors used a Wacom Cintiq 21UX 21” LCD monitor/digitizer hybrid with custom prototype &lt;a href=&quot;http://ecologylab.net/research/zerotouch/&quot;&gt;ZeroTouch&lt;/a&gt; multi-touch sensor. Touchscreen &amp;amp; pen input technology in popular tablets today don’t match the price &amp;amp; hardware capabilities of the custom hardware used. The $1,999 LCD monitor/digitizer and $2,500 prototype multi-touch sensor is an order of magnitude more expensive than the &lt;a href=&quot;http://www.isuppli.com/Teardowns/News/Pages/New-iPad-32-GB-4G-Carries-364-35-Bill-of-Materials.aspx&quot;&gt;$127 for the LCD display and touchscreen in the iPad&lt;/a&gt;. The &lt;a href=&quot;http://shop.lenovo.com/us/laptops/thinkpad/x-series-tablet/x230tablet&quot;&gt;Lenovo X230t&lt;/a&gt; convertible tablet has a 12.5” screen and has both multi-touch and pen digitizer, but doesn’t accept simultaneous pen &amp;amp; touch input. When the pen digitizer hovers or touches the screen, “palm rejection disables” touch input to allow the palm to rest on the screen while using the digitizer without interfering with selection. Smaller screen size of tablets would not accommodate the large number of software buttons required in the author’s interaction scheme without covering up the majority of the game play area. &lt;/p&gt;  &lt;h4&gt;What does this mean?&lt;/h4&gt;  &lt;p&gt;Previous commercial attempts at RTS games using game controllers such as Halo Wars on XBOX 360 received &lt;a href=&quot;http://www.gamespot.com/halo-wars/reviews/halo-wars-6204804/&quot;&gt;mixed reviews&lt;/a&gt; overly simplified gameplay due to limitations of the input mechanisms that didn’t provide opportunities for improving skill with more time spent. The research demonstrated a fun, engaging, and expressive interaction system for playing RTS games using pen + touch, showing: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;an efficient interaction system that uses both dominant and non-dominant hands &lt;/li&gt;    &lt;li&gt;edge-constrained touch buttons for efficient touch targeting with the non-dominant hand &lt;/li&gt;    &lt;li&gt;natural view manipulation using touch &lt;/li&gt;    &lt;li&gt;graphical hotkeys and multi-touch selection panels replacing the keyboard for interaction with non-dominant hand &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;While the interaction described in the research can’t be directly applied to current generation of tablet hardware, I’m excited about the potential that exists. Current popular touch games like Angry Birds, Cut the Rope, and Plants vs Zombies use only basic direct-manipulation touch interactions that only use the dominant hand, but I’m looking forward to more complex touch games in the future that effectively use the non-dominant hand and can support rapid, precise, and complex interactions.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/7622252356781601912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=7622252356781601912' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/7622252356781601912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/7622252356781601912'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2012/10/can-starcraft-be-controlled-using-pen.html' title='Can StarCraft be controlled using pen + touch?'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-G90EklQ1xPc/UI2S8QRyNZI/AAAAAAAAAKw/4e2EBC_Ping/s72-c/clip_image001_thumb%25255B1%25255D.jpg?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-5660093210160515349</id><published>2010-04-20T02:12:00.001-04:00</published><updated>2010-04-20T02:12:02.311-04:00</updated><title type='text'>2010 FIRST Robotics World Championships by the numbers</title><content type='html'>&lt;p&gt;524 – The number of teams at the &lt;a href=&quot;http://www.usfirst.org/&quot; target=&quot;_blank&quot;&gt;FIRST robotics competition&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;71,228 - The number of seats in the Georgia Dome, site of the FIRST robotics competition (and home of the Atlanta Falcons)&lt;/p&gt;  &lt;p&gt;237 - the number of hours I spent mentoring &lt;a href=&quot;http://www.teamxbot.org/&quot; target=&quot;_blank&quot;&gt;Seattle high school team&lt;/a&gt; since January&lt;/p&gt;  &lt;p&gt;$3.24 – The cost of mailing my tax return at a subway station post office in Atlanta (talk about last-minute)&lt;/p&gt;  &lt;p&gt;6 – The number of weeks teams have to build a FRC-class robot&lt;/p&gt;  &lt;p&gt;0 – the number of Pepsi products available in Atlanta&lt;/p&gt;  &lt;p&gt;And one funny quote from Atlanta:&lt;/p&gt;  &lt;p&gt;“Who ordered Chinese food at this time of night?” - Being mistaken for a restaurant delivery guy in the hotel elevator and not realizing it until the dude apologized&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/5660093210160515349/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=5660093210160515349' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/5660093210160515349'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/5660093210160515349'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2010/04/2010-first-robotics-world-championships.html' title='2010 FIRST Robotics World Championships by the numbers'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-5221660593948853816</id><published>2010-03-01T02:12:00.001-05:00</published><updated>2010-03-01T02:12:39.381-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="advertising"/><category scheme="http://www.blogger.com/atom/ns#" term="commercials"/><category scheme="http://www.blogger.com/atom/ns#" term="funny"/><title type='text'>“Big Red” commercial remakes</title><content type='html'>&lt;p&gt;The latest Verizon’s “big red” commercial is pretty cheesy…&lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:de6995b6-db8a-446a-8370-e432f78259dd&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div id=&quot;16924c24-495c-4e63-b474-3b614fcd1b96&quot; style=&quot;margin: 0px; padding: 0px; display: inline;&quot;&gt;&lt;div&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=EkWKdJF7Md0&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&quot; target=&quot;_new&quot;&gt;&lt;img src=&quot;http://lh5.ggpht.com/_aGFSteah7RQ/S4to5AiliVI/AAAAAAAAAF0/Q0gOu8EzQFs/videodf3af94d47e3%5B2%5D.jpg?imgmax=800&quot; style=&quot;border-style: none&quot; galleryimg=&quot;no&quot; onload=&quot;var downlevelDiv = document.getElementById(&#39;16924c24-495c-4e63-b474-3b614fcd1b96&#39;); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/EkWKdJF7Md0&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/EkWKdJF7Md0&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p&gt;And it’s even funnier when you compare with the 1980’s chewing gum commercial that inspired it:&lt;/p&gt;  &lt;div style=&quot;padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px&quot; id=&quot;scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:9c0dc08e-78df-4a17-a2af-d24cb59556c6&quot; class=&quot;wlWriterEditableSmartContent&quot;&gt;&lt;div id=&quot;c6041904-e5f3-43c0-8733-5daed87fe2e3&quot; style=&quot;margin: 0px; padding: 0px; display: inline;&quot;&gt;&lt;div&gt;&lt;a href=&quot;http://www.youtube.com/watch?v=AA3LrnAqOds&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&quot; target=&quot;_new&quot;&gt;&lt;img src=&quot;http://lh4.ggpht.com/_aGFSteah7RQ/S4to5rh6KNI/AAAAAAAAAF4/8_JbHeswTOE/video52d03a3fc0e4%5B2%5D.jpg?imgmax=800&quot; style=&quot;border-style: none&quot; galleryimg=&quot;no&quot; onload=&quot;var downlevelDiv = document.getElementById(&#39;c6041904-e5f3-43c0-8733-5daed87fe2e3&#39;); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/AA3LrnAqOds&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/AA3LrnAqOds&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;rel=0&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;425\&amp;quot; height=\&amp;quot;355\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;&quot; alt=&quot;&quot;&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/5221660593948853816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=5221660593948853816' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/5221660593948853816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/5221660593948853816'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2010/03/big-red-commercial-remakes.html' title='“Big Red” commercial remakes'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-8320367080777869552</id><published>2010-01-10T23:43:00.001-05:00</published><updated>2010-01-10T23:43:23.015-05:00</updated><title type='text'>Income Tax Preparation Volunteer</title><content type='html'>&lt;p&gt;I passed basic and intermediate level income tax preparation certification as part of the &lt;a href=&quot;http://www.irs.gov/individuals/article/0,,id=107626,00.html&quot; target=&quot;_blank&quot;&gt;IRS Volunteer Income Tax Assistance&lt;/a&gt; (VITA) program. I will be helping prepare tax returns for low-income people this spring through United Way.&lt;/p&gt;  &lt;p&gt;Volunteers were required to take training classes on filing taxes. At the training classes, I encountered an interesting group of fledging accountants and tax professionals building experience and honing their skills, immigrant wives learning about the US tax code, young AmeriCorps looking for ways to serve their community (and network for an future career), and finally, professionals looking to expand their horizons like myself.&lt;/p&gt;  &lt;p&gt;The classes have prepared me to expect a diverse audience. Among the mock tax returns I prepared were a retired sales clerk living on social-security payments, a laid-off single mother and medical secretary with a deadbeat dad taking care of 3 young kids, a divorced dad with a son going to college who was a first-time home buyer, and a retired high school teacher now making extra cash as a gardening consultant.&lt;/p&gt;  &lt;p&gt;Also, now that I know adjustments from deductions and credits, I can bore guests at parties with facts about the tax code AND computers. In fact, I’ll bore you with some right now :)&lt;/p&gt;  &lt;p&gt;Through our complicated tax code, the IRS includes specific rules encouraging you to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;get married (preferably on New Year’s Eve)&lt;/li&gt;    &lt;li&gt;have kids (preferably keep them under 13)&lt;/li&gt;    &lt;li&gt;stay married, or&lt;/li&gt;    &lt;li&gt;get officially divorced rather than stay separated&lt;/li&gt;    &lt;li&gt;buy a house (especially if for the first time)&lt;/li&gt;    &lt;li&gt;save for retirement&lt;/li&gt;    &lt;li&gt;don’t donate to charity unless you own a home&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Also, through our complicated tax code, the IRS includes specific rules discouraging you from:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;raising non-American children overseas &lt;/li&gt;    &lt;li&gt;paying for a friend’s debts&lt;/li&gt;    &lt;li&gt;giving bribes or kickbacks&lt;/li&gt;    &lt;li&gt;buying tobacco or alcohol&lt;/li&gt;    &lt;li&gt;winning while gambling, AND&lt;/li&gt;    &lt;li&gt;losing while gambling&lt;/li&gt; &lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/8320367080777869552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=8320367080777869552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/8320367080777869552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/8320367080777869552'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2010/01/income-tax-preparation-volunteer.html' title='Income Tax Preparation Volunteer'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-6705875368865239440</id><published>2010-01-08T21:35:00.004-05:00</published><updated>2010-01-08T21:56:49.240-05:00</updated><title type='text'>Save thousands of dollars on a smartphone</title><content type='html'>&lt;p&gt;Are you shopping for a new smartphone? Read on to learn how to save $3000 over 2 years compared to an iPhone! &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.billshrink.com/blog/total-cost-of-ownership-motorola-droid-versus-iphone-3gs-versus-palm-pre/&quot; target=&quot;_blank&quot;&gt;BillShrink.com&lt;/a&gt; made a great chart calculating the total cost of ownership of the latest smartphones. I added the Samsung Omnia on &lt;a href=&quot;http://www.pagepluscellular.com/&quot; target=&quot;_blank&quot;&gt;Page Plus Cellular&lt;/a&gt; option to BillShrink.com’s chart, which is thousands of dollars less than competitors. &lt;strong&gt;This option isn’t for everyone&lt;/strong&gt;, so read on before you call to switch.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_aGFSteah7RQ/S0fraSmt34I/AAAAAAAAAFo/bXWZRmsR43M/s1600-h/OmniaCost6.jpg&quot; target=&quot;_blank&quot;&gt;&lt;img style=&quot;border-width: 0px; display: inline;&quot; title=&quot;Omnia Cost&quot; alt=&quot;Omnia Cost&quot; src=&quot;http://lh5.ggpht.com/_aGFSteah7RQ/S0fra0366cI/AAAAAAAAAFs/NSiDhveK49Y/OmniaCost_thumb4.jpg?imgmax=800&quot; border=&quot;0&quot; height=&quot;465&quot; width=&quot;285&quot; /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=&quot;font-size:85%;&quot;&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;(Click for full size image)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Page Plus Cellular is a national pre-paid operator that offers low-cost plans, like the Talk n Text 1200 plan with &lt;strong&gt;1,200 Minutes + 1,200 Text/MMS Messages&lt;/strong&gt;&lt;strong&gt; + 50 MB Data&lt;/strong&gt; for &lt;strong&gt;$29.95 &lt;/strong&gt;a month. They also offer an &lt;strong&gt;unlimited talk and text and 20MB data&lt;/strong&gt; for &lt;strong&gt;$39.95 &lt;/strong&gt;a month. There’s &lt;strong&gt;no contracts &lt;/strong&gt;and you get the same call quality, 3G data speeds, and coverage as Verizon subscribers as they use the same network as Verizon.&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;The &lt;a href=&quot;http://www.mobiletechreview.com/phones/Samsung-Omnia-i910.htm&quot; target=&quot;_blank&quot;&gt;Samsung Omnia i910&lt;/a&gt;, a Windows Mobile touchscreen smartphone originally sold by Verizon, works with Page Plus with no extra setup. While it was launched a year ago, the chart above shows its features match or beat the latest smartphones like the iPhone or Droid. Full retail price for an Omnia from Verizon is $559, but a mint condition used one is about $125 on eBay or Craigslist. Page Plus only offers a limited selection of basic phones, but you can use most Verizon smartphones. &lt;a href=&quot;http://www.howardforums.com/&quot; target=&quot;_blank&quot;&gt;HowardForums.com&lt;/a&gt;, a popular mobile phone website, has a great user-contributed &lt;a href=&quot;http://wiki.howardforums.com/index.php/Verizon_Handsets_and_Page_Plus&quot; target=&quot;_blank&quot;&gt;list of Verizon phones that work on Page Plus&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;What’s the catch? The plans offered have very &lt;strong&gt;limited data usage&lt;/strong&gt; and there’s &lt;strong&gt;no tech support&lt;/strong&gt; for smartphones like the Omnia. If you want to watch YouTube on the go, this plan is not for you. This plan fits my usage since I already have WiFi at work and at home, and I only check email and read news when I’m on the go. If you don’t feel comfortable troubleshooting your own phone, this plan is not for you as you’ll miss not having 24/7 hotlines or a store to visit when your phone stops working (Page Plus doesn’t offer support for Verizon phones.)&lt;/p&gt;  &lt;p&gt;If this plan fits your usage and you don’t mind the limitations like me, watch for my next post where I’ll detail my personal experience switching from AT&amp;amp;T to Page Plus.&lt;/p&gt;  &lt;p&gt;You’ll also have the problem of figuring out how to spend the thousands of dollars you’ve saved :) I recommend donating some to your favorite charity, like &lt;a href=&quot;http://www.nothingbutnets.net/&quot; target=&quot;_blank&quot;&gt;NothingButNets&lt;/a&gt;, who save millions of African children from malaria by distributing long-lasting insecticide treated bed nets.&lt;/p&gt;&lt;p&gt;GS&lt;br /&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/6705875368865239440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=6705875368865239440' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6705875368865239440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6705875368865239440'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2010/01/save-thousands-of-dollars-on-smartphone.html' title='Save thousands of dollars on a smartphone'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_aGFSteah7RQ/S0fra0366cI/AAAAAAAAAFs/NSiDhveK49Y/s72-c/OmniaCost_thumb4.jpg?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-1865428632176228342</id><published>2010-01-03T18:29:00.001-05:00</published><updated>2010-01-03T18:29:59.586-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="China"/><category scheme="http://www.blogger.com/atom/ns#" term="food"/><category scheme="http://www.blogger.com/atom/ns#" term="organic"/><title type='text'>Status of locally-grown produce in China and USA</title><content type='html'>&lt;p&gt;Happy New Year! My first post of the decade will be to share a joke I recently heard on Chinese TV.&lt;/p&gt;  &lt;p&gt;A farmer goes into town and wants to celebrate his good harvest by dining at a high-end restaurant. As he walks up to front door, the maitre d’ sees the strands of garlic and dried peppers the farmer’s carrying and announces: “Sorry, we’re a high-end restaurant; We don’t buy local farm produce.” (&lt;em&gt;Cue laughter.&lt;/em&gt;)&lt;/p&gt;  &lt;p&gt;This joke highlights an interesting disparity between Chinese and American views of “fine” dining. Eating fresh, locally-grown farm produce is a high-end treat in America, but that’s the daily family dinner for many Chinese people.&lt;/p&gt;  &lt;p&gt;Some have described China today as America 100 years ago, a time when America was beginning to abandon it’s agrarian roots and industrialize. At that time, the borough of Queens that’s part of New York City was 100 square miles of farmland. With the rapid pace of industrialization in China, fresh, locally-grown farm produce a few decades from now will be a valued commodity in China as well.&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/1865428632176228342/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=1865428632176228342' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/1865428632176228342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/1865428632176228342'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2010/01/status-of-locally-grown-produce-in.html' title='Status of locally-grown produce in China and USA'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-453668847765729431</id><published>2009-02-19T02:52:00.003-05:00</published><updated>2009-02-19T02:54:33.128-05:00</updated><title type='text'>R.I.P. GM High Performance Vehicle Division</title><content type='html'>&lt;p&gt;&lt;a href=&quot;http://blogs.edmunds.com/straightline/2009/02/gm-kills-high-performance-vehicle-operations.html&quot; target=&quot;_blank&quot;&gt;Full Story - Edmunds Straightline&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_aGFSteah7RQ/SZ0PhuyYNFI/AAAAAAAAAEM/k48unVzY380/s1600-h/image%5B2%5D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border: 0px none ; display: inline;&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_aGFSteah7RQ/SZ0PjXLn0KI/AAAAAAAAAEQ/SIz1xPZXQIw/image_thumb.png?imgmax=800&quot; border=&quot;0&quot; width=&quot;244&quot; height=&quot;155&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I was hoping I didn’t have to add any more segments to my latest R.I.P. series, but today brings news that GM has killed its high performance vehicle operations.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;The unit created low-volume vehicles for GM&#39;s divisions designed to appeal to enthusiasts and bolster the company&#39;s image. Products included V-series Cadillacs and the Chevrolet Cobalt SS, HHR SS and a V-8 version of the Colorado.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;While Detroit isn’t as well known for producing supercars as &lt;a href=&quot;http://en.wikipedia.org/wiki/Ferrari_S.p.A.&quot; target=&quot;_blank&quot;&gt;Maranello&lt;/a&gt;, recent models like the &lt;a href=&quot;http://en.wikipedia.org/wiki/Chevrolet_Corvette_C6_ZR1&quot; target=&quot;_blank&quot;&gt;Corvette ZR1&lt;/a&gt; have gained GM some respect (It was even named &lt;em&gt;2009 Performance Car of the Year &lt;/em&gt;by &lt;a href=&quot;http://en.wikipedia.org/wiki/Top_Gear_%28current_format%29&quot; target=&quot;_blank&quot;&gt;Top Gear&lt;/a&gt;!).&lt;/p&gt;  &lt;p&gt;It’s sad that just when GM started building decent performance cars that &lt;a href=&quot;http://en.wikipedia.org/wiki/Jeremy_Clarkson&quot; target=&quot;_blank&quot;&gt;Jeremy Clarkson&lt;/a&gt; liked, the economic slowdown rears its ugly head. Or, maybe it was poetic justice for selling the &lt;a href=&quot;http://www.edmunds.com/chevrolet/hhr/2008/review.html&quot; target=&quot;_blank&quot;&gt;Chevy HHR SS&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_aGFSteah7RQ/SZ0PsPYjyUI/AAAAAAAAAEU/RvCrtQebu2M/s1600-h/image%5B5%5D.png&quot;&gt;&lt;img title=&quot;image&quot; style=&quot;border: 0px none ; display: inline;&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/_aGFSteah7RQ/SZ0PuVTUzRI/AAAAAAAAAEY/2NwP_CnXiKA/image_thumb%5B1%5D.png?imgmax=800&quot; border=&quot;0&quot; width=&quot;244&quot; height=&quot;164&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://blogs.edmunds.com/straightline/2009/02/gm-kills-high-performance-vehicle-operations.html&quot; target=&quot;_blank&quot;&gt;Full Story - Edmunds Straightline&lt;/a&gt;&lt;/p&gt;</content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/453668847765729431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=453668847765729431' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/453668847765729431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/453668847765729431'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2009/02/rip-gm-high-performance-vehicle.html' title='R.I.P. GM High Performance Vehicle Division'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_aGFSteah7RQ/SZ0PjXLn0KI/AAAAAAAAAEQ/SIz1xPZXQIw/s72-c/image_thumb.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-4452517041744435951</id><published>2009-02-14T02:11:00.001-05:00</published><updated>2009-02-14T02:11:24.553-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="funny"/><title type='text'>Nerdy pick-up lines for Valentine’s Day</title><content type='html'>&lt;p&gt;Kids, don’t try these without adult supervision!&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;I’ll be sin&lt;sup&gt;2&lt;/sup&gt; and you can be cos&lt;sup&gt;2&lt;/sup&gt; and then together, we’ll be one.&lt;/li&gt;    &lt;li&gt;I wish I was your derivative so I could lie tangent to your curves.&lt;/li&gt;    &lt;li&gt;Be my queen and mate me with your knight moves.&lt;/li&gt;    &lt;li&gt;Baby, you make my floppy disk turn into a hard drive.&lt;/li&gt;    &lt;li&gt;If I was an enzyme, I’d be helicase so I could unzip your genes.&lt;/li&gt;    &lt;li&gt;I don’t have a library card, but do you mind if I check you out?&lt;/li&gt;    &lt;li&gt;Baby, if you were words on a page, you’d be what they call FINE PRINT!&lt;/li&gt; &lt;/ul&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/4452517041744435951/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=4452517041744435951' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/4452517041744435951'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/4452517041744435951'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2009/02/nerdy-pick-up-lines-for-valentines-day.html' title='Nerdy pick-up lines for Valentine’s Day'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-8864827926959941544</id><published>2009-02-13T01:05:00.001-05:00</published><updated>2009-02-13T01:05:20.029-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="layoffs"/><category scheme="http://www.blogger.com/atom/ns#" term="recession"/><category scheme="http://www.blogger.com/atom/ns#" term="TV"/><title type='text'>R.I.P. - Pioneer Plasma TV</title><content type='html'>&lt;p&gt;&lt;a title=&quot;http://www.nytimes.com/aponline/2009/02/12/business/AP-AS-Japan-Pioneer.html?_r=2&amp;amp;ref=technology&quot; href=&quot;http://www.nytimes.com/aponline/2009/02/12/business/AP-AS-Japan-Pioneer.html?_r=2&amp;amp;ref=technology&quot; target=&quot;_blank&quot;&gt;Full Story - Japan’s Pioneer to Cut 10, 000 Jobs Globally&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pioneer was one of the early innovators of plasma technology. In the 90s, Pioneer was the clear market dominator for large flat-panel TVs. It’s therefore particularly sad to hear Pioneer’s announcement of exiting the TV market. &lt;/p&gt;  &lt;p&gt;Growing up in the 90s, I remember watching movies set in the future. The living rooms of the future inevitably was decorated with a flat-panel big screen TV. They dazzled us with an idea of a future when TVs could be hung on walls like paintings. &lt;/p&gt;  &lt;p&gt;I remember Pioneer has one of the early innovators of plasma technology. High-tech establishment were virtually guaranteed to have large 42” Pioneer plasma TVs; it’s completely flat-screen and slim design reminding us how advanced this display was compared to the tube TV we had at home. If you had lots of cash to spare, you could put a Pioneer plasma TV in your living room and live the future today.&lt;/p&gt;  &lt;p&gt;With Pioneer’s recent announcement, I have to wonder: What went wrong? With such promising technology that was years ahead of the competition, how could they fail?&lt;/p&gt;  &lt;p&gt;Perhaps it was the rise of competing LCD technology. Perhaps it was competition from other flat-panel TV manufacturers driving down margins. Whatever the reason, it’s sad to see this once symbol of technological innovation collapse.&lt;/p&gt;  &lt;p&gt;&lt;a title=&quot;http://www.nytimes.com/aponline/2009/02/12/business/AP-AS-Japan-Pioneer.html?_r=2&amp;amp;ref=technology&quot; href=&quot;http://www.nytimes.com/aponline/2009/02/12/business/AP-AS-Japan-Pioneer.html?_r=2&amp;amp;ref=technology&quot; target=&quot;_blank&quot;&gt;Full Story - Japan’s Pioneer to Cut 10, 000 Jobs Globally&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/8864827926959941544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=8864827926959941544' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/8864827926959941544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/8864827926959941544'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2009/02/rip-pioneer-plasma-tv.html' title='R.I.P. - Pioneer Plasma TV'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-4285745731784920441</id><published>2009-02-12T03:35:00.001-05:00</published><updated>2009-02-12T03:35:00.811-05:00</updated><title type='text'>R.I.P. - Palm PDAs</title><content type='html'>&lt;p&gt;One of my favorite presents during high school was a Palm M100 PDA from uncle. &lt;a href=&quot;http://i.gizmodo.com/5151721/palm-os-is-dead-long-live-pre-and-windows-mobile&quot; target=&quot;_blank&quot;&gt;Palm’s recent announcement&lt;/a&gt; of ending Palm OS, the operating system at the heart of PDAs, lead me to reminisce about Palm in its heyday. &lt;/p&gt;  &lt;p&gt;While my Palm M100 drew plenty of confusing comments such as “Pulling out your Palm Pilot again?” (“Palm Pilot” is not a brand, but “Pilot” was the name of the first line of PDAs Palm produced), it was a technological marvel. Windows Mobile PDAs (then known as Pocket PCs) were kludgy; They performed poorly and stubbornly kept the “Windows” start-menu &amp;amp; taskbar interface that was unusable on a pocket-sized screen.&lt;/p&gt;  &lt;p&gt;In contrast, Palm PDAs were incredibly fast and efficient. My Palm had a 8Mhz processor and 1MB of RAM, but that was plenty of usable memory. Palm also touted a large third-party apps as a result of even the last version of the OS (OS 5.2) remaining backwards compatible with programs written for previous versions as old as 1.0. As a precursor to Apple iPhone’s App Store, &lt;a href=&quot;http://www.palmgear.com/&quot; target=&quot;_blank&quot;&gt;PalmGear&lt;/a&gt; was the premier website to browse and download third-party Palm apps.&lt;/p&gt;  &lt;p&gt;Palm also revolutionized the Smartphone industry with the Handspring Treo line. Debuting in 2003, the Treo 600 successfully merged the strength of Palm’s calendar and contact features the connectivity of an internet-connected cell phone.&lt;/p&gt;  &lt;p&gt;However, Palm OS stagnated in the last half of its life as the competition from Windows Mobile and recently iPhone highlighted the limitations of the aging OS in areas such as wireless networking, multimedia, internet browsing. Once known for its intuitive interface (coined term Zen of Palm as an early pioneer in emphasizing &lt;em&gt;usability &lt;/em&gt;in user interface) and its stability, Palm OS eventually even lost the very qualities that brought it success in the first place.&lt;/p&gt;  &lt;p&gt;Dan Lyons said it best when &lt;a href=&quot;http://www.newsweek.com/id/178536/page/1&quot;&gt;commenting&lt;/a&gt;: &amp;quot;It was a bit like using a lawn-mower engine to build a go-kart, then adding a bigger chassis and turning the go-kart into a real car, then turning that into a plane, and then trying to make the plane fly to the moon.&amp;quot;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://i.gizmodo.com/5152042/how-palms-os-tried-to-go-from-pdas-to-smartphones&quot; target=&quot;_blank&quot;&gt;Full Story: How Palm&#39;s OS Tried To Go From PDAs to Smartphones&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/4285745731784920441/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=4285745731784920441' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/4285745731784920441'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/4285745731784920441'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2009/02/rip-palm-pdas.html' title='R.I.P. - Palm PDAs'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-1308836874015817851</id><published>2009-02-08T22:48:00.001-05:00</published><updated>2009-02-08T22:48:44.766-05:00</updated><title type='text'>Sacrificing accuracy for speed - Origin of John Carmack’s fast inverse square root function</title><content type='html'>&lt;p&gt;For the computer geeks out there, here&#39;s a trip down memory lane. Supercomputer innovator Seymour Cray was famous for saying &amp;quot;Do you want fast or accurate?&amp;quot; With Windows Vista requiring a 1Ghz processor and 15GB of disk space, it’s easy to forget how different software development was when computers ran much slower. In the dawn of PC gaming, before the age of Pentium processors, the key was to be &lt;strong&gt;fast&lt;/strong&gt;. The legendary 3D first-person shooter video game &lt;a href=&quot;http://en.wikipedia.org/wiki/Doom_(video_game)&quot; target=&quot;_blank&quot;&gt;&lt;em&gt;Doom&lt;/em&gt;&lt;/a&gt;, included a clever inverse square root function that was praised for its ingenuity and its speed.&lt;/p&gt;  &lt;p&gt;With paltry minimum system requirements of a 386 processor and 4MB of RAM, optimizing speed of the game was key during development of &lt;em&gt;Doom&lt;/em&gt;. The following C code for the inverse square root function from Doom’s successor &lt;em&gt;Quake &lt;/em&gt;might not mean much to most computer programmers, but these few lines of code tell a story of the importance of sacrificing accuracy for speed in software. &lt;/p&gt; &lt;font face=&quot;Courier New&quot;&gt;&lt;span style=&quot;color: rgb(0,51,153)&quot;&gt;float&lt;/span&gt; InvSqrt (&lt;span style=&quot;color: rgb(0,51,153)&quot;&gt;float&lt;/span&gt; x){    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; float xhalf = 0.5f*x;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: rgb(0,51,153)&quot;&gt;int&lt;/span&gt; i = *(&lt;span style=&quot;color: rgb(0,51,153)&quot;&gt;int&lt;/span&gt;*)&amp;amp;x;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; i = 0x5f3759df - (i&amp;gt;&amp;gt;1);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; x = *(&lt;span style=&quot;color: rgb(0,51,153)&quot;&gt;float&lt;/span&gt;*)&amp;amp;i;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; x = x*(1.5f - xhalf*x*x);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: rgb(0,51,153)&quot;&gt;return&lt;/span&gt; x;    &lt;br /&gt;}&lt;/font&gt;   &lt;p&gt;Finding the inverse square root of a number was a common operation in 3D graphics. Read on to learn about the history of this function and of computer programming in the days when integer math was fast and floating-point was slow.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.beyond3d.com/content/articles/8/&quot; target=&quot;_blank&quot;&gt;Full Story&lt;/a&gt;&lt;/p&gt;  </content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/1308836874015817851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=1308836874015817851' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/1308836874015817851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/1308836874015817851'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2009/02/sacrificing-accuracy-for-speed-origin.html' title='Sacrificing accuracy for speed - Origin of John Carmack’s fast inverse square root function'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-6401985537413937180</id><published>2008-12-21T00:27:00.004-05:00</published><updated>2008-12-21T01:37:55.599-05:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="China"/><category scheme="http://www.blogger.com/atom/ns#" term="roger olesen"/><category scheme="http://www.blogger.com/atom/ns#" term="sslp"/><category scheme="http://www.blogger.com/atom/ns#" term="tsinghua university"/><title type='text'>Two Americas? Let&#39;s talk about Two Chinas</title><content type='html'>The 2008 Beijing Olympics was considered by Chinese to be their &quot;coming-out&quot; party, showcasing China&#39;s rapid development and modernization. Now that it&#39;s come and gone, let&#39;s talk about the other side of China you don&#39;t here about. Ex-presidential hopeful &lt;a href=&quot;http://en.wikipedia.org/wiki/John_Edwards&quot;&gt;John Edwards &lt;/a&gt;campaigned on a populist platform characterized by a &quot;&lt;a href=&quot;http://en.wikipedia.org/wiki/Two_Americas&quot;&gt;Two Americas&lt;/a&gt;&quot; theme. But, did you know there are Two Chinas?&lt;br /&gt;The following are notes I took during a lecture titled &quot;Teaching English in Rural China: Realistic Expectations and Positive Outcomes&quot; by Roger L. Olesen. Olesen teaches in the Department of Foreign Languages (i.e. English) at &lt;a href=&quot;http://en.wikipedia.org/wiki/Tsinghua_University&quot;&gt;Tsinghua University&lt;/a&gt; in Beijing. For those unfamiliar, Tsinghua University is one of the top universities in China, widely considered to be the &quot;MIT of China&quot;.&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;Faultlines in China&lt;/span&gt;&lt;br /&gt;We aren&#39;t talking about earthquakes, but socio-economic faultlines. China today has many faultlines. They lie between the rich and poor, educated and uneducated, elite and common, east and west, north and south. Sounds familiar, doesn&#39;t it?&lt;br /&gt;&lt;br /&gt;Twenty years ago, China was remarkably similar to the United States 100 years ago. It&#39;s a time period when 90% of the population lived on farms. It&#39;s hard to imagine, but this was a time when Brooklyn and Queens primarily served as agriculture for Manhattan.&lt;br /&gt;&lt;br /&gt;What about China today? There&#39;s been a large demographic shift. Increased opportunities from rapid modernization in cities have created a mass exodus. Only 67% of the population work on farms. There are over 200 major cities in China. For comparison, if New York City was in China would only be considered a &lt;span style=&quot;font-weight: bold;&quot;&gt;medium-sized &lt;/span&gt;city.&lt;br /&gt;&lt;br /&gt;Next installment: China&#39;s education system and how thankful you should be for not going to school there.</content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/6401985537413937180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=6401985537413937180' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6401985537413937180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6401985537413937180'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2008/12/two-americas-lets-talk-about-two-chinas.html' title='Two Americas? Let&#39;s talk about Two Chinas'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-439866019144704893</id><published>2008-09-05T04:30:00.000-04:00</published><updated>2008-09-05T04:30:41.551-04:00</updated><title type='text'>YouTube - Windows Ad :: Shoe Circus - With Bill Gates and Jerry Seinfield</title><content type='html'>&lt;a href=&quot;http://www.youtube.com/watch?v=n7apqvqws9M&quot;&gt;YouTube - Windows Ad :: Shoe Circus - With Bill Gates and Jerry Seinfield&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;My reaction: W T F ? The future = delicious? I can&#39;t believe MS paid money to make this ad.</content><link rel="related" href="http://www.youtube.com/watch?v=n7apqvqws9M" title="YouTube - Windows Ad :: Shoe Circus - With Bill Gates and Jerry Seinfield"/><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/439866019144704893/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=439866019144704893' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/439866019144704893'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/439866019144704893'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2008/09/youtube-windows-ad-shoe-circus-with.html' title='YouTube - Windows Ad :: Shoe Circus - With Bill Gates and Jerry Seinfield'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1753302385168969547.post-6019613644822226483</id><published>2008-09-03T03:18:00.003-04:00</published><updated>2008-09-03T03:47:29.610-04:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="browser war"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><category scheme="http://www.blogger.com/atom/ns#" term="IE"/><category scheme="http://www.blogger.com/atom/ns#" term="Microsoft"/><title type='text'>browser war II - Google announces new internet browser</title><content type='html'>&lt;a href=&quot;http://arstechnica.com/news.ars/post/20080902-hands-on-with-chrome-googles-browser-shines-mostly.html&quot;&gt;Google Chrome - Hand&#39;s on&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It&#39;s official. &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_0&quot;&gt;Google&#39;s&lt;/span&gt; entered the web browser market today by announcing Chrome. It joins Internet Explorer, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_1&quot;&gt;Firefox&lt;/span&gt;, Opera, and most recently Apple Safari in the surprisingly crowded web browser market. Will we see a repeat of the browser wars?&lt;br /&gt;&lt;br /&gt;The browser market today is very different from the market in the late 90s when IE and Netscape battled for market dominance. Web sites have evolved into rich multimedia experiences, yet still have retained the aging HTML markup language from an era when web pages were nothing more than formatted text pages.&lt;br /&gt;&lt;br /&gt;The increase in accessible bandwidth to the average user drove rapid growth of multimedia in websites. This arguably has outpaced the development of web browsers.&lt;br /&gt;&lt;br /&gt;It&#39;s good to see innovation happening in this area, as Google Chrome will no doubt usher in a new wave of web browser development. Because in this new browser war, the stakes are even higher. As computing shifts more and more online, the operating system itself will be less and less important as applications move online. &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_2&quot;&gt;GMail&lt;/span&gt;, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_3&quot;&gt;Facebook&lt;/span&gt;, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_4&quot;&gt;YouTube&lt;/span&gt;, &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_5&quot;&gt;Flickr&lt;/span&gt;, and others are the new must-have, killer-applications, achieving mass popularity comparable to Microsoft Word or &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_6&quot;&gt;iTunes&lt;/span&gt;. Whoever wins this new browser war will not only control the &lt;span class=&quot;blsp-spelling-error&quot; id=&quot;SPELLING_ERROR_7&quot;&gt;internet&lt;/span&gt;, but the majority of the computing experience as well, from productivity apps to entertainment.&lt;br /&gt;&lt;br /&gt;This is no small battle. This is war. So, expect things to get interesting as the big guns get brought out.&lt;br /&gt;&lt;br /&gt;Reporting from the trenches, GS.</content><link rel='replies' type='application/atom+xml' href='http://geeksquawk.blogspot.com/feeds/6019613644822226483/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1753302385168969547&amp;postID=6019613644822226483' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6019613644822226483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1753302385168969547/posts/default/6019613644822226483'/><link rel='alternate' type='text/html' href='http://geeksquawk.blogspot.com/2008/09/browser-war-ii-google-announces-new.html' title='browser war II - Google announces new internet browser'/><author><name>GS</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>