{"id":174,"date":"2022-01-13T08:44:00","date_gmt":"2022-01-13T08:44:00","guid":{"rendered":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/?post_type=portfolio&#038;p=174"},"modified":"2022-03-24T16:04:37","modified_gmt":"2022-03-24T16:04:37","slug":"march-24-project-concept-discussion-review","status":"publish","type":"portfolio","link":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/portfolio\/march-24-project-concept-discussion-review\/","title":{"rendered":"March 24 \u2013\u00a0Project concept discussion &#038; review"},"content":{"rendered":"\r\n<p><strong>Project discussion<\/strong><\/p>\r\n<p>If you&#8217;d like some inspiration for project ideas, you might want to check out the various sensors for sale from the Adafruit website (<a href=\"http:\/\/adafruit.com\">adafruit.com<\/a>).<\/p>\r\n<p>Here is a complete list of <a href=\"https:\/\/www.adafruit.com\/category\/35\">all items for sale in their &#8216;sensor&#8217; category<\/a>.<\/p>\r\n<p>Looking at the headings across the top, you can filter that list down by subcategory. Some that I think might be interesting and workable for you are: Weight, Accelerometer (can sense tilt), Motion, Barometric Pressure and Humidity, Air Quality, Light, Liquid, and Proximity.<\/p>\r\n<p><strong>Touch \/ pressure \/ flex<\/strong><\/p>\r\n<p>For example, if you click into <a href=\"https:\/\/www.adafruit.com\/category\/60\">touch sensors<\/a>, you can find a <a href=\"https:\/\/www.adafruit.com\/product\/1071\">force sensitive resistor (FSR)<\/a>, which detects pressure; and\u00a0a <a href=\"https:\/\/www.adafruit.com\/product\/182\">long flex sensor<\/a> (allegedly popularized by the Nintendo PowerGlove, although I haven&#8217;t read this claim anywhere other than the Adafruit website). Both of those operate almost identically to a potentiometer in that they generate a variable amount of resistance in accordance with what they&#8217;re sensing. So you could put that in a circuit path, connected to an analog input pin, and as the sensor was affected in some way, the varying resistance would effect the voltage flowing in to the analog pin, which you would be able to detect with the <code>analogRead()<\/code> command, which would give you a number that you could do something with in your code, like controlling the frequency of a buzzer, controlling which lights were on, or the motion of a motor.<\/p>\r\n<p><strong>Magnet \/ proximity<\/strong><\/p>\r\n<p>Another idea might be to look into a <a href=\"https:\/\/www.adafruit.com\/product\/375\">reed switch<\/a> or a <a href=\"https:\/\/www.adafruit.com\/product\/158\">Hall effect sensor<\/a>. Both of these are able to detect the presence of a magnet. This seems so fun and interesting to me because you could put magnets in a bunch of different objects and then detect if they were near your sensor, which would trigger some kind of action (light, sound, motor movement).<\/p>\r\n<p>If you are interested in detecting proximity, you could also use this <a href=\"https:\/\/www.adafruit.com\/product\/466\">proximity sensor<\/a>, this <a href=\"https:\/\/www.adafruit.com\/product\/4871\">motion sensor<\/a>, or this simpler <a href=\"https:\/\/www.adafruit.com\/product\/189\">motion sensor<\/a>.<\/p>\r\n<p><strong>Analog vs digital sensors<\/strong><\/p>\r\n<p>In all these cases, the sensors that are variable resistance can be used almost identically to a potentiometer, as I&#8217;ve described above. Other sensors, like the reed switch act more like a digital device, in that they are either on or off (either <code>HIGH<\/code> or <code>LOW<\/code>) so you would connect those to a digital pin, use <code>digitalRead()<\/code>, and refer back to our code example that used switches (buttons).<\/p>\r\n<p><strong>Other more complex sensors<\/strong><\/p>\r\n<p>Other things you might be interested are an <a href=\"https:\/\/www.adafruit.com\/product\/2019\">accelerometer (tilt sensor)<\/a>, a <a href=\"https:\/\/www.adafruit.com\/product\/4026\">soil moisture sensor<\/a>, <a href=\"https:\/\/www.adafruit.com\/product\/1782\">temperature sensor<\/a>, <a href=\"https:\/\/www.adafruit.com\/product\/2652\">humidity<\/a>,\u00a0<\/p>\r\n<p>If the sensor that you&#8217;re interested in is called a &#8220;breakout board&#8221;, or if it&#8217;s on a PCB (printed circuit board), in other words, if it looks like a mini Arduino, then using it is not as easy as swapping it in for a potentiometer. It will be a little bit more complex. <em>However<\/em>, often these more complex devices are just as easy to use if not easier, because they are provided with sample Arduino code and clear instructions from the Arduino website. So with most of these types of sensors, you can wire them up and configure them exactly as instructed, which will be a pretty easy process.<\/p>\r\n<p><strong>Review<\/strong><\/p>\r\n<p>Let&#8217;s dedicate the rest of class time to reviewing technical material from one of the previous tutorials:<\/p>\r\n<ul>\r\n<li><a href=\"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/portfolio\/february-24-interactive-circuits\/\">February 24: switches &amp; buttons<\/a><\/li>\r\n<li><a href=\"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/portfolio\/march-3-arduino-and-digital-analog-inputs\/\">March 3: analog inputs like a potentiometer or phototransistor (light sensor)<\/a><\/li>\r\n<li><a href=\"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/portfolio\/march-10-arduino-outputs-actuators\/\">March 10: outputs like Piezo buzzers and servo motors<\/a><\/li>\r\n<\/ul>\r\n<p>&nbsp;<\/p>\r\n","protected":false},"excerpt":{"rendered":"<p>Project discussion If you&#8217;d like some inspiration for project ideas, you might want to check out the various sensors for sale from the Adafruit website (adafruit.com). Here is a complete list of all items for sale in their &#8216;sensor&#8217; category. Looking at the headings across the top, you can filter that list down by subcategory. &#8230;<\/p>\n","protected":false},"author":1,"featured_media":175,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"portfolio-category":[7],"portfolio-tag":[],"class_list":["post-174","portfolio","type-portfolio","status-publish","has-post-thumbnail","hentry","portfolio-category-technical-tutorials"],"_links":{"self":[{"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/portfolio\/174","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/portfolio"}],"about":[{"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/types\/portfolio"}],"author":[{"embeddable":true,"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/comments?post=174"}],"version-history":[{"count":4,"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/portfolio\/174\/revisions"}],"predecessor-version":[{"id":432,"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/portfolio\/174\/revisions\/432"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/media\/175"}],"wp:attachment":[{"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/media?parent=174"}],"wp:term":[{"taxonomy":"portfolio-category","embeddable":true,"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/portfolio-category?post=174"},{"taxonomy":"portfolio-tag","embeddable":true,"href":"https:\/\/classes.codeatlang.com\/digital-media-off-the-grid\/2022-spring\/wp-json\/wp\/v2\/portfolio-tag?post=174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}