<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Lucina</title>
	<atom:link href="http://lucina.mastroid.com/wordpress/feed/" rel="self" type="application/rss+xml" />
	<link>http://lucina.mastroid.com/wordpress/</link>
	<description>interests</description>
	<lastBuildDate>Fri, 02 Sep 2022 00:48:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/10/cropped-hibiscus-2-32x32.jpg</url>
	<title>Lucina</title>
	<link>http://lucina.mastroid.com/wordpress/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>DIY Tablet or Phone Document Camera</title>
		<link>http://lucina.mastroid.com/wordpress/2022/08/15/diy-tablet-or-phone-document-camera/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Mon, 15 Aug 2022 21:15:23 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[projects]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[classroom document camera]]></category>
		<category><![CDATA[DIY document camera]]></category>
		<category><![CDATA[iPad document camera]]></category>
		<category><![CDATA[iPhone document camera]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/?p=557</guid>

					<description><![CDATA[<p>Contents Summary Design Materials Build Instructions Use Cases Alternate Hardware Update 8/24/2022 Summary My daughter, a teacher, knows that I have strong maker/DIYer tendencies and that I like to be challenged. For the upcoming school year, her school is providing the teachers with new big screen TVs and iPad tablets. Previously, she used a mobile phone connected to a scissor-bracket, connected to a desk clamp&#8230; </p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2022/08/15/diy-tablet-or-phone-document-camera/">DIY Tablet or Phone Document Camera</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="768" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-1-1024x768.png" alt="" class="wp-image-564" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-1-1024x768.png 1024w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-1-300x225.png 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-1-768x576.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-1.png 1067w" sizes="(max-width: 1024px) 100vw, 1024px" /><figcaption>Document camera shown with iPad</figcaption></figure>



<h2 class="wp-block-heading">Contents</h2>



<ul class="wp-block-list"><li><a href="#Summary">Summary</a></li><li><a href="#Design">Design</a></li><li><a href="#Materials">Materials</a></li><li><a href="#Build">Build Instructions</a></li><li><a href="#Use">Use Cases</a></li><li><a href="#Alternate">Alternate Hardware</a></li><li><a href="#Update">Update 8/24/2022</a></li></ul>



<h2 class="wp-block-heading" id="Summary">Summary</h2>



<p>My daughter, a teacher, knows that I have strong maker/DIYer tendencies and that I like to be challenged. For the upcoming school year, her school is providing the teachers with new big screen TVs and iPad tablets. Previously, she used a  mobile phone connected to a scissor-bracket, connected to a desk clamp for a document camera. Her complaint about that setup was that it was pretty wiggly. Now that she has shiny new hardware, she wanted an upgrade to her document camera setup, and she wanted to use the iPad&#8217;s screen mirroring capabilities.</p>



<h2 class="wp-block-heading" id="Design">Design</h2>



<p>My approach was to design something budget-friendly and easy to build. PVC pipe and fittings are budget friendly, and the build only required one tool, besides a tape measure: a low-cost ratcheting PVC cutter. I saw other designs that required saws and drills. This design avoids using a saw or drill by utilizing off-the-shelf mounting hardware.</p>



<p>The lengths of the PVC pipe sections were based on fitting a normal, letter-sized sheet of paper under the camera. The height of the 9-inch vertical posts create a working distance that fits the whole sheet of paper within view of an iPad camera.</p>



<h2 class="wp-block-heading" id="Materials">Materials</h2>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img decoding="async" width="768" height="1024" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/2022-08-14-Doc-Cam-crop-768x1024.png" alt="" class="wp-image-586" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/2022-08-14-Doc-Cam-crop-768x1024.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/2022-08-14-Doc-Cam-crop-225x300.png 225w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/2022-08-14-Doc-Cam-crop.png 800w" sizes="(max-width: 768px) 100vw, 768px" /></figure>
</div>


<p>My design is composed of: low-cost 3/4-inch PVC pipe and fittings, a tablet/phone tripod mount, <s>an 11-inch <em>Magic Arm</em> &#8212; a 2-section articulating bracket</s> a short <em>Magic Arm</em>, and a <em>Super Clamp</em> &#8212; a clamp suited well for mounting photographic equipment to cylindrical objects, such as poles, stands handlebars, and pipes. What&#8217;s magic about the <em>Magic Arm</em> is that 1 knob loosens and tightens all joints. Manfrotto is the company behind the original, high-quality, pricey versions of the <em>Magic Arm</em> and <em>Super Clamp</em>. I am using knock-offs, but the specifications say that they will support a payload of <s>2kg</s> 3.5kg, which exceeds the weight of an iPad and the tripod mount. I chose the particular tripod mount because it&#8217;s all metal and accommodates both tablets and phones.</p>



<h4 class="wp-block-heading">Bill of materials</h4>



<ul class="wp-block-list"><li>3/4-inch (inner diameter) PVC pipe: 2 x 3-inches (back of base), 2 x 6-inches (front of base), 2 x 9-inches (vertical posts), 1 x 12-inches (cross bar): <a href="https://www.homedepot.com/p/VPC-3-4-in-x-24-in-PVC-Sch-40-Pipe-22075/202300505" target="_blank" rel="noreferrer noopener">https://www.homedepot.com/p/VPC-3-4-in-x-24-in-PVC-Sch-40-Pipe-22075/202300505</a></li><li>4 end caps <a href="https://www.homedepot.com/p/Charlotte-Pipe-3-4-in-PVC-Schedule-40-Socket-Cap-PVC021160800HD/203811671" target="_blank" rel="noreferrer noopener">https://www.homedepot.com/p/Charlotte-Pipe-3-4-in-PVC-Schedule-40-Socket-Cap-PVC021160800HD/203811671</a></li><li>2 x PVC tees: <a href="https://www.homedepot.com/p/Charlotte-Pipe-3-4-in-Schedule-40-S-x-S-x-S-Tee-PVC024000800HD/203812197" target="_blank" rel="noreferrer noopener">https://www.homedepot.com/p/Charlotte-Pipe-3-4-in-Schedule-40-S-x-S-x-S-Tee-PVC024000800HD/203812197</a></li><li>2 X 90 degree elbows <a href="https://www.homedepot.com/p/Charlotte-Pipe-3-4-in-PVC-Schedule-40-90-S-x-S-Elbow-Fitting-PVC023000800HD/203812123" target="_blank" rel="noreferrer noopener">https://www.homedepot.com/p/Charlotte-Pipe-3-4-in-PVC-Schedule-40-90-S-x-S-Elbow-Fitting-PVC023000800HD/203812123</a></li><li><s>11-inch <em>Magic Arm</em> and <em>Super Clamp</em> <a href="https://www.amazon.com/dp/B09FPWWDWN" target="_blank" rel="noreferrer noopener">https://www.amazon.com/dp/B09FPWWDWN</a> $17.53 when purchased</s></li><li>SmallRig <em>Super Clamp</em> with Ball head <em>Magic Arm</em> <a href="https://www.amazon.com/dp/B0B5LFC6L3" target="_blank" rel="noreferrer noopener">https://www.amazon.com/dp/B0B5LFC6L3</a> $18.69 when purchased</li><li>tablet/phone tripod mount <a href="https://www.amazon.com/dp/B08Z7Z7QZ3" target="_blank" rel="noreferrer noopener">https://www.amazon.com/dp/B08Z7Z7QZ3</a> $17.95 when purchased</li></ul>



<h2 class="wp-block-heading" id="Build">Build Instructions</h2>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large is-style-default"><a href="https://www.amazon.com/dp/B08YDL3NK9" target="_blank" rel="noreferrer noopener"><img decoding="async" width="1067" height="800" data-id="568" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7304.png" alt="" class="wp-image-568" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7304.png 1067w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7304-300x225.png 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7304-1024x768.png 1024w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7304-768x576.png 768w" sizes="(max-width: 1067px) 100vw, 1067px" /></a><figcaption>ratcheting PVC cutters</figcaption></figure>



<figure class="wp-block-image size-large"><a href="https://www.amazon.com/dp/B004BPHQWU" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" width="768" height="1024" data-id="574" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7306-768x1024.png" alt="" class="wp-image-574" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7306-768x1024.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7306-225x300.png 225w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7306.png 800w" sizes="auto, (max-width: 768px) 100vw, 768px" /></a><figcaption>one type of glue to use</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="768" height="1024" data-id="575" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7297-768x1024.png" alt="" class="wp-image-575" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7297-768x1024.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7297-225x300.png 225w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7297.png 800w" sizes="auto, (max-width: 768px) 100vw, 768px" /><figcaption>orient the Super Clamp and Magic Arm</figcaption></figure>
</figure>



<ul class="wp-block-list"><li>Cut the necessary pieces of PVC pipe with a ratcheting cutter <a href="https://www.amazon.com/dp/B08YDL3NK9" target="_blank" rel="noreferrer noopener">https://www.amazon.com/dp/B08YDL3NK9</a></li><li>Assemble the PVC parts as shown in the above photo. Optionally, glue parts together.</li><li>Adjust the tablet/phone tripod mount so it accommodates the target device in portrait orientation. Loosen the mount a little bit so the device can slide out for now.</li><li>Screw one end of the <em>Magic Arm</em> onto the <em>Super Clamp</em> and the other end onto the tripod mount. Before doing this step, you might want to tighten the <em>Magic Arm</em> so that it isn&#8217;t so floppy. The clamp needs to be around 8 inches from the right vertical post, not centered when using an iPad, because of its camera location.</li><li>Clamp the Super Clamp onto the 12-inch PVC cross bar with the opening facing down.</li><li>Insert the camera device (tablet or mobile phone). Secure in place by tightening the tripod mount.</li><li>Turn on the camera device and adjust its position by loosening the <em>Magic Arm</em> knob, setting a position, then tightening the <em>Magic Arm</em> knob. To get the device in a position that worked for me, I positioned the pivoting slots of the ball heads to face front, thereby allowing for x-axis tilt.</li></ul>



<h2 class="wp-block-heading" id="Use">Use Cases</h2>



<h4 class="wp-block-heading">Portrait Orientation</h4>



<p>When using the camera for a document in portrait orientation, I think it&#8217;s helpful to lock the tablet or phone in portrait orientation <em>before </em>inserting it into the mount. Place the whole setup so that you are looking at the document in the correct orientation.</p>



<h4 class="wp-block-heading">Landscape Orientation</h4>



<p>When using the camera for a document in portrait orientation, I think it&#8217;s helpful to lock the tablet or phone in landscape orientation <em>before </em>inserting it into the mount. Place the whole setup so that you are looking at the document in the correct orientation.</p>



<h4 class="wp-block-heading">Screen mirroring</h4>



<p>On an iOS device, an iPhone or iPad, you need to use AirPlay screen mirroring. Turn screen mirroring on/off by using the Control Center (swipe down from upper right corner of screen), tapping on the Screen Mirroring icon, and selecting the target device. Air Play can also be activated within certain apps such as YouTube by tapping the AirPlay icon.</p>



<p>On an Android device, you need to first grant Microphone permission in Google Play Service app by going to Settings &gt; Apps &gt; Google Play Services &gt; Permissions.  To turn on casting, run the Google Home app, and tap the tile of the target cast device. As in iOS, tapping the casting icon within some apps activates casting.</p>



<h4 class="wp-block-heading">Annotation with an Apple Pencil on an iPad</h4>



<p>To use an Apple Pencil for annotation:</p>



<ul class="wp-block-list"><li>Take a photo of the object of interest</li><li>Tap on the photo thumbnail in the camera app</li><li>Tap on &#8220;Edit&#8221;</li><li>Tap on the Markup icon</li><li>Select a color and tool</li><li>Start annotating</li></ul>



<h4 class="wp-block-heading">When not in use</h4>



<p>With the selected tripod mount, the screw at the top of the mount allows you to easily loosen the mount enough to slide the tablet out when not in use, which you will probably want to do. Loosening the <em>Magic Arm</em> knob allows the tripod mount to hang vertically instead of protruding horizontally when not it use.</p>



<div class="wp-block-group"><div class="wp-block-group__inner-container is-layout-flow wp-block-group-is-layout-flow">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<div class="wp-block-columns is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex">
<div class="wp-block-column is-layout-flow wp-block-column-is-layout-flow" style="flex-basis:100%">
<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="800" height="1067" data-id="572" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7293.png" alt="" class="wp-image-572" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7293.png 800w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7293-225x300.png 225w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7293-768x1024.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /><figcaption>document in portrait orientation</figcaption></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" data-id="579" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-2-1024x768.png" alt="" class="wp-image-579" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-2-1024x768.png 1024w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-2-300x225.png 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-2-768x576.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/IMG_7290-2.png 1067w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>document in landscape <br>orientation</figcaption></figure>
</figure>
</div>
</div>
</div>
</div>
</div></div>



<h2 class="wp-block-heading" id="Alternate">Alternate Hardware</h2>



<p>The 11-inch <em>Magic Arm</em> could be replaced with something not as flexible in regards to adjustment potential. This isn&#8217;t a big deal because any possible target device&#8217;s camera has zoom capability.</p>



<p>The ball head that came with the tripod mount and an additional purchase of a male-male 1/4&#8243;-20 adapter <a href="https://www.amazon.com/gp/product/B09NR4W846/ref=ox_sc_saved_title_4?smid=A3A0UFDELGC6AT&amp;psc=1" target="_blank" rel="noreferrer noopener">https://www.amazon.com/gp/product/B09NR4W846</a> could possibly replace the <em>Magic Arm</em> in the design. The height adjustment capability would be eliminated.</p>



<p>A shorter <em>Magic Arm</em> could also be used since probably not so much height adjustment is necessary. Some alternatives:</p>



<ul class="wp-block-list"><li>Neewer Super Clamp with Double Ball Head Mount <a href="https://www.amazon.com/gp/product/B09128Q3YH" target="_blank" rel="noreferrer noopener">https://www.amazon.com/gp/product/B09128Q3YH</a></li><li>Neewer 5.9&#8243;/15cm <em>Magic Arm</em> and <em>Super Clamp</em> Kit <a href="https://www.amazon.com/Neewer-Adjustable-Articulating-Mirrorless-Camcorders/dp/B07SV5ZQ4J/ref=sr_1_7?crid=2DSQQNTBZ0T0X&amp;keywords=neewer+5.5+magic+arm&amp;qid=1660591646&amp;s=electronics&amp;sprefix=neewer+5.5+magic+arm%2Celectronics%2C133&amp;sr=1-7" target="_blank" rel="noreferrer noopener">https://www.amazon.com/Neewer-Adjustable-Articulating-Mirrorless-Camcorders/dp/B07SV5ZQ4J</a></li></ul>



<h2 class="wp-block-heading" id="Update">Update 8/24/2022</h2>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/SmalRig.png" alt="" class="wp-image-613" width="526" height="542" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/SmalRig.png 800w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/SmalRig-291x300.png 291w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/SmalRig-768x792.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2022/08/SmalRig-45x45.png 45w" sizes="auto, (max-width: 526px) 100vw, 526px" /></figure>
</div>


<p>After some experimentation, I decided that the 11-inch <em>Magic Arm</em> was too long. Instead, I chose to use a smaller SuperRig <a href="https://www.amazon.com/dp/B0B5LFC6L3" target="_blank" rel="noreferrer noopener">Super Clamp with Ball Head Magic Arm</a>. It doesn&#8217;t provide much height adjustment, but camera zoom can compensate for that. Another advantage is its outstanding 3.5 kg (7.7 lb.) load capacity.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2022/08/15/diy-tablet-or-phone-document-camera/">DIY Tablet or Phone Document Camera</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>DIY Bernie Meme</title>
		<link>http://lucina.mastroid.com/wordpress/2021/01/25/diy-bernie-meme/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Mon, 25 Jan 2021 23:13:02 +0000</pubDate>
				<category><![CDATA[Photography]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[bernie]]></category>
		<category><![CDATA[bernie inauguration]]></category>
		<category><![CDATA[bernie sanders]]></category>
		<category><![CDATA[mittens]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/?p=549</guid>

					<description><![CDATA[<p>Here&#8217;s a starting point for your own Bernie Sanders and mittens at Biden&#8217;s inauguration. Here&#8217;s the link to a .PNG file with a transparent background.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2021/01/25/diy-bernie-meme/">DIY Bernie Meme</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="998" height="761" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2021/01/aquarium.png" alt="" class="wp-image-551" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2021/01/aquarium.png 998w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2021/01/aquarium-300x229.png 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2021/01/aquarium-768x586.png 768w" sizes="auto, (max-width: 998px) 100vw, 998px" /></figure>



<p>Here&#8217;s a starting point for your own Bernie Sanders and mittens at Biden&#8217;s inauguration.</p>



<p>Here&#8217;s the link to <a href="https://www.dropbox.com/s/noexm7sylt4nod3/bernie.png?dl=0">a .PNG file</a> with a transparent background.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2021/01/25/diy-bernie-meme/">DIY Bernie Meme</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>San Francisco COVID-19 Cases</title>
		<link>http://lucina.mastroid.com/wordpress/2020/11/19/san-francisco-covid-19-cases/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Thu, 19 Nov 2020 19:56:59 +0000</pubDate>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[coronavirus]]></category>
		<category><![CDATA[covid-19]]></category>
		<category><![CDATA[google data studio]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/?p=524</guid>

					<description><![CDATA[<p>This is a Google Data Source chart of data contained in a Google Sheet, containing DataSF open data.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2020/11/19/san-francisco-covid-19-cases/">San Francisco COVID-19 Cases</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<iframe loading="lazy" src="https://datastudio.google.com/embed/reporting/84587305-4603-4412-a11e-c7a33104fc82/page/O7rTB" style="border:0" allowfullscreen="" width="600" height="630" frameborder="0"></iframe>



<p>This is a Google Data Source chart of data contained in a <a href="https://docs.google.com/spreadsheets/d/1Of3RDsNPy7TccefHMpzRpd93-2H-3ld1iKhXBWt69EM/edit?usp=sharing" target="_blank" rel="noreferrer noopener">Google Sheet</a>, containing <a href="https://data.sfgov.org/COVID-19/COVID-19-Cases-Summarized-by-Date-Transmission-and/tvq9-ec9w" target="_blank" rel="noreferrer noopener">DataSF</a> open data.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2020/11/19/san-francisco-covid-19-cases/">San Francisco COVID-19 Cases</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>San Francisco COVID-19 Testing</title>
		<link>http://lucina.mastroid.com/wordpress/2020/11/19/san-francisco-covid-19-testing/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Thu, 19 Nov 2020 19:47:02 +0000</pubDate>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[coronavirus]]></category>
		<category><![CDATA[covid-19]]></category>
		<category><![CDATA[google data studio]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/?p=519</guid>

					<description><![CDATA[<p>This is a Google Data Source chart of data contained in a Google Sheet, containing DataSF open data.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2020/11/19/san-francisco-covid-19-testing/">San Francisco COVID-19 Testing</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<iframe loading="lazy" src="https://datastudio.google.com/embed/reporting/b2ee0e6b-4128-4482-b5e3-7b1b68273cd7/page/Q4cTB" style="border:0" allowfullscreen="" width="600" height="1200" frameborder="0"></iframe>



<p>This is a Google Data Source chart of data contained in a <a href="https://docs.google.com/spreadsheets/d/1S9oS5xJILxep6Y5H-lfp54tGB0wqFsvmpnn-A6Ja-kY/edit?usp=sharing" target="_blank" rel="noreferrer noopener">Google Sheet</a>, containing <a rel="noreferrer noopener" href="https://data.sfgov.org/COVID-19/Covid-19-Tests/nfpa-mg4g" target="_blank">DataSF</a> open data.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2020/11/19/san-francisco-covid-19-testing/">San Francisco COVID-19 Testing</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>San Francisco COVID-19 Hospitalizations</title>
		<link>http://lucina.mastroid.com/wordpress/2020/11/19/san-francisco-covid-19-hospitalizations/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Thu, 19 Nov 2020 19:37:04 +0000</pubDate>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[coronavirus]]></category>
		<category><![CDATA[covid-19]]></category>
		<category><![CDATA[google data studio]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/?p=516</guid>

					<description><![CDATA[<p>This is a Google Data Source chart of data contained in a Google Sheet, containing DataSF open data.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2020/11/19/san-francisco-covid-19-hospitalizations/">San Francisco COVID-19 Hospitalizations</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<iframe loading="lazy" src="https://datastudio.google.com/embed/reporting/bd45c04d-fbd9-4cdd-914a-36c79c780fd7/page/rIqTB" style="border:0" allowfullscreen="" width="480" height="550" frameborder="0"></iframe>



<p>This is a Google Data Source chart of data contained in a <a rel="noreferrer noopener" href="https://docs.google.com/spreadsheets/d/1HVVygRbNGr88RTBkaDazUMHPmMK-YTdBZL2n464R-8Q/edit?usp=sharing" target="_blank">Google Sheet</a>, containing  <a rel="noreferrer noopener" href="https://data.sfgov.org/COVID-19/COVID-19-Hospitalizations/nxjg-bhem" target="_blank">DataSF</a> open data.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2020/11/19/san-francisco-covid-19-hospitalizations/">San Francisco COVID-19 Hospitalizations</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Protection masks in stock and shipped from the US</title>
		<link>http://lucina.mastroid.com/wordpress/2020/04/02/protection-masks-in-stock-and-shipped-from-the-us/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Thu, 02 Apr 2020 17:01:18 +0000</pubDate>
				<category><![CDATA[Deals]]></category>
		<category><![CDATA[tech deals]]></category>
		<category><![CDATA[coronavirus mask]]></category>
		<category><![CDATA[covid-19 mask]]></category>
		<category><![CDATA[n95 masks]]></category>
		<category><![CDATA[protection masks]]></category>
		<category><![CDATA[virus protection masks]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/?p=508</guid>

					<description><![CDATA[<p>Buy protection masks in US</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2020/04/02/protection-masks-in-stock-and-shipped-from-the-us/">Protection masks in stock and shipped from the US</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>I was looking around online for protection masks, and they weren&#8217;t available from the normal places, e.g. Amazon, Target&#8230;. So, I thought about <a href="http://gearbest.com" target="_blank" rel="noreferrer noopener" aria-label=" (opens in a new tab)">Gearbest.com</a>, whom I have successfully dealt with in the past. I found these items, shipping from the US. I personally placed an order but haven&#8217;t received them yet. I am not pretending to know which, if any, actually offer virus protection.</p>



<div class="wp-block-image"><figure class="aligncenter is-resized"><a href="https://www.gearbest.com/braces---supports/pp_3001200386415426.html?wid=2000001&amp;lkid=78864350&amp;lkid=78864354&quot;" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" src="https://gloimg.gbtcdn.com/soa/gb/item/6602611330169458688/15856/goods_img_big-v12/15e819e71ed9.jpg" alt="" width="375" height="375"/></a><figcaption>High-closed KN95 Masks Dust-proof Professional</figcaption></figure></div>



<div class="wp-block-image"><figure class="aligncenter is-resized"><a href="https://www.gearbest.com/braces---supports/pp_3005347201907066.html?wid=2000001&amp;lkid=78864312&amp;lkid=78864344" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" src="https://gloimg.gbtcdn.com/soa/gb/item/6602611330169458688/15852/goods_img_big-v8/93254e35cb0d.jpg" alt="" width="375" height="375"/></a><figcaption>Ordinary Non-Medical Masks Disposable 3 layer Anti-Bacteria</figcaption></figure></div>



<div class="wp-block-image"><figure class="aligncenter is-resized"><a href="https://www.gearbest.com/braces---supports/pp_3005507118590709.html?wid=2000001&amp;lkid=78864299&amp;lkid=78864339" target="_blank" rel="noreferrer noopener"><img loading="lazy" decoding="async" src="https://gloimg.gbtcdn.com/soa/gb/item/6640203384464166912/15852/goods_img_big-v5/6f768813a0a0.jpg" alt="" width="375" height="375"/></a><figcaption>KN95 N95 Mask 5-Ply Virus Protection Respirator with Melt-blown Filter</figcaption></figure></div>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2020/04/02/protection-masks-in-stock-and-shipped-from-the-us/">Protection masks in stock and shipped from the US</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Programming an Adafruit PyBadge using CircuitPython</title>
		<link>http://lucina.mastroid.com/wordpress/2019/06/06/circuitpython-adafruit-pybadge-example-code/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Fri, 07 Jun 2019 03:59:25 +0000</pubDate>
				<category><![CDATA[3D Printing]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[adafruit pybadge]]></category>
		<category><![CDATA[CircuitPython]]></category>
		<category><![CDATA[code snippets]]></category>
		<category><![CDATA[example code]]></category>
		<category><![CDATA[programming pybadge]]></category>
		<category><![CDATA[Pybadge]]></category>
		<category><![CDATA[pybadge 3d printed case]]></category>
		<category><![CDATA[pybadge images]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/?p=455</guid>

					<description><![CDATA[<p>Introduction Installing CircuitPython My CircuitPython Code Download code, image and audio files Program instructions 3D printed case Introduction After seeing this new Adafruit product on Instagram (@adafruit, @ecken, and @videopixil) I was very anxious to get my hands on an Adafruit PyBadge, part handheld game console, part micro-controller board. It has a 1.8 inch 160&#215;128 pixel built-in color display, video game-style buttons, built-in sound, neopixels&#8230; </p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2019/06/06/circuitpython-adafruit-pybadge-example-code/">Programming an Adafruit PyBadge using CircuitPython</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="300" height="225" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/WIN_20190606_15_52_11_Pro-2-300x225.jpg" alt="" class="wp-image-456" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/WIN_20190606_15_52_11_Pro-2-300x225.jpg 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/WIN_20190606_15_52_11_Pro-2-768x576.jpg 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/WIN_20190606_15_52_11_Pro-2-1024x768.jpg 1024w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/WIN_20190606_15_52_11_Pro-2.jpg 1541w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption>Adafruit PyBadge in 3D printed case</figcaption></figure></div>



<ul class="wp-block-list"><li><a href="http://lucina.mastroid.com/wordpress/2019/06/06/circuitpython-adafruit-pybadge-example-code/#intro">Introduction</a></li><li><a href="http://lucina.mastroid.com/wordpress/2019/06/06/circuitpython-adafruit-pybadge-example-code/#install">Installing CircuitPython</a></li><li><a href="http://lucina.mastroid.com/wordpress/2019/06/06/circuitpython-adafruit-pybadge-example-code/#code">My CircuitPython Code</a></li><li><a href="http://lucina.mastroid.com/wordpress/2019/06/06/circuitpython-adafruit-pybadge-example-code/#download">Download code, image and audio files</a></li><li><a href="http://lucina.mastroid.com/wordpress/2019/06/06/circuitpython-adafruit-pybadge-example-code/#program">Program instructions</a></li><li><a href="http://lucina.mastroid.com/wordpress/2019/06/06/circuitpython-adafruit-pybadge-example-code/#case">3D printed case</a></li></ul>



<h4 class="wp-block-heading" id="intro">Introduction</h4>



<p>After seeing this new Adafruit product on Instagram (<a rel="noreferrer noopener" aria-label="@adafruit (opens in a new tab)" href="https://www.instagram.com/adafruit/" target="_blank">@adafruit</a>,<a rel="noreferrer noopener" aria-label=" @ecke (opens in a new tab)" href="https://www.instagram.com/ecken/" target="_blank"> @ecke</a>n, and <a rel="noreferrer noopener" aria-label="@videopixel (opens in a new tab)" href="https://www.instagram.com/videopixil/" target="_blank">@videopixil</a>)  I was very anxious to get my hands on an Adafruit PyBadge, part handheld game console, part micro-controller board. It has a 1.8 inch 160&#215;128 pixel built-in color display, video game-style buttons, built-in sound, neopixels for bling, file storage for game assets, an accelerometer, an ambient light sensor, and a speedy ATSAMD51 processor. I was excited to run it through its paces. First, I learned <a rel="noreferrer noopener" aria-label="how to update its software (opens in a new tab)" href="https://learn.adafruit.com/adafruit-pybadge/updating-the-bootloader" target="_blank">how to update its bootloader</a>, Next, I tried out an example <a href="https://arcade.makecode.com/">MakeCode</a> project. After that, I gathered a board definition and the libraries that are necessary to write code for it using the Arduino development environment. I needed to make sure that the <a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://adafruit.github.io/arduino-board-index/package_adafruit_index.json" target="_blank">Adafruit board definition URL</a> was included in the Additional Boards Manager URLs in the Arduino preferences. After going through <a rel="noreferrer noopener" aria-label="the manual process of adding libraries (opens in a new tab)" href="https://learn.adafruit.com/adafruit-pybadge/arcada-libraries" target="_blank">the manual process of adding libraries</a> for the PyBadge, I finally got the example code, <em>arcada_pybadge</em>_test running. The example code, demonstrating the Arcada Library, was almost all text, so it wasn&#8217;t very exciting.<br></p>



<h4 class="wp-block-heading" id="install">Installing CircuitPython</h4>



<p>Since Adafruit seems to be touting the powers of CircuitPython, I wanted to see what all of the hoopla was about. My previous Python experience had been with Raspberry Pis. As you can tell from my introduction, finding all of the software is very much like a scavenger hunt. I had to download <a href="https://circuitpython.org/board/pybadge/" target="_blank" rel="noreferrer noopener" aria-label="CircuitPython for the PyBadge (opens in a new tab)">CircuitPython for the PyBadge</a> from CircuitPython.org and install it onto the PyBadge. I had to download the latest release of the Adafruit CircuitPython Bundle (libraries) from <a rel="noreferrer noopener" aria-label="GitHub (opens in a new tab)" href="https://github.com/adafruit/Adafruit_CircuitPython_Bundle/releases" target="_blank">GitHub</a>. For a text editor, Adafruit suggests using the simple <a rel="noreferrer noopener" aria-label="Mu editor (opens in a new tab)" href="https://codewith.mu/en/" target="_blank">Mu editor</a>, which I also installed. It simplifies iterative development, since changes are automatically saved to the PyBadge.</p>



<h4 class="wp-block-heading" id="code">My CircuitPython code</h4>



<p>Now that the scavenger hunt for all of the software is complete, on to the code&#8230; The code below is basically composed of example snippets that I gathered to do the things that I wanted to learn how to do: sound, text, images, buttons,  neopixels, accelerometer, and ambient light sensor. To run this code, you will need my 160&#215;128 8-bit .bmp format images (0.bmp &#8211; 10.bmp) in an /images folder, a sound file (tink.wav), a bitmap font <a href="https://github.com/adafruit/Adafruit_Learning_System_Guides/blob/master/PyBadge_Conference_Badge/fonts/Arial-12.bdf">(Arial-12.bdf</a>) in a /fonts folder, and additional libraries placed in the /lib folder:</p>



<ul class="wp-block-list"><li>neopixel</li><li>adafruit_bitmap_font</li><li>adafruit_busdevice</li><li>adafruit_display_text</li><li>adafruit_imageload</li><li>adafruit_lis3dh</li></ul>



<h4 class="wp-block-heading" id="download">Download code, image and audio files</h4>



<p>Download the <a href="https://drive.google.com/open?id=1fZeXYsJtiVcAgixVU13JylXUZpdwDPy7">CircuitPython code, images and audio</a></p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: python; title: ; notranslate">
#
# This is a CircuitPython example file for the Adafruit PyBadge
# Lucina 2019-06-06
#
# -- play sounds
# -- set display brightness
# -- fill screen
# -- write text
# -- load and display an image
# -- turn on, set brightness of neopixels
# -- read buttons
# -- read accelerometer
# -- read ambient light sensor
#
import analogio
#import array
import audioio
import board
import busio
import digitalio
import displayio
import math
import neopixel
import time
import neopixel
import adafruit_imageload
from adafruit_bitmap_font import bitmap_font
from adafruit_display_text.label import Label
import adafruit_lis3dh  # accelerometer
from gamepadshift import GamePadShift

# Button Constants
BUTTON_LEFT = 128
BUTTON_UP = 64
BUTTON_DOWN = 32
BUTTON_RIGHT = 16
BUTTON_SEL = 8
BUTTON_START = 4
BUTTON_A = 2
BUTTON_B = 1

NUM_IMAGES = 11
BKG_COLOR = 0xCC44FF
MY_NAME = &quot;@lucina__m&quot;
NAME_FONTNAME = &quot;fonts/Arial-12.bdf&quot;
NAME_COLOR = 0xFFFFFF
NUM_NEOPIXELS = 5
NEO_COLOR = 0x000088
NEO_BRIGHTNESS = .1
BACKLIGHT = .9

whichNeo = 0
neoBrightness = NEO_BRIGHTNESS
brightness = BACKLIGHT

def fadeIn():
    for b in range(20, brightness*100, 1):
        board.DISPLAY.brightness = b/100   # 0.0 --&gt; 1.0
        time.sleep(.02)
    
def fadeOut():
    for b in range(brightness*100, 20, -1):
        board.DISPLAY.brightness = b/100   # 0.0 --&gt; 1.0
        time.sleep(.02)

def loadImage(index):
    # load image into bitmap and palette
    #message(&quot;loading...&quot;)
    fadeOut()
    (bitmap, palette) = adafruit_imageload.load(&quot;images/&quot;+str(index)+&quot;.bmp&quot;,
                       bitmap=displayio.Bitmap,
                       palette=displayio.Palette)
    # create sprite
    sprite = displayio.TileGrid(bitmap,
                               pixel_shader=palette,
                               x=0, y=0)
    # remove loading message
    #group.pop()
    # remove previous layer
    group.pop()
    # add new layer
    group.append(sprite)
    updateNeopixels()
    fadeIn()
    
def updateNeopixels():
    global whichNeo
    global neoBrightness
    for n in range(0, NUM_NEOPIXELS):
        if n == whichNeo:
            neopixels&#x5B;n] = NEO_COLOR
        else:
            neopixels&#x5B;n] = 0
    neopixels.brightness = neoBrightness
    neopixels.show()
    if whichNeo == NUM_NEOPIXELS-1:
        whichNeo = 0
    else:
        whichNeo = whichNeo + 1
    print(neoBrightness)

def message(text):
    label = Label(nameFont, text=text)
    label.color = NAME_COLOR
    (x, y, w, h) = label.bounding_box
    label.x = (80 - w // 2)
    label.y = (64 - h // 2)
    group.append(label)
    
def splashScreen(color):
    splashBitmap = displayio.Bitmap(160, 128, 1)
    splashPalette = displayio.Palette(1)
    splashPalette&#x5B;0] = color
    splashSprite = displayio.TileGrid(splashBitmap,
                               pixel_shader=splashPalette,
                               x=0, y=0)
    group.append(splashSprite)
    
# make the image display
group = displayio.Group(max_size=10)
board.DISPLAY.show(group)
board.DISPLAY.brightness = BACKLIGHT   # 0.0 --&gt; 1.0

# make a splash screen background
splashScreen(BKG_COLOR)

# display my name while image loads
nameFont = bitmap_font.load_font(NAME_FONTNAME)
message(MY_NAME)

# required for PyBadge audio
speakerEnable = digitalio.DigitalInOut(board.SPEAKER_ENABLE)
speakerEnable.switch_to_output(value=True)
dac = audioio.AudioOut(board.SPEAKER)

# Generate one period of sine wave
#length = 8000 // 440
#sineWave = array.array(&quot;H&quot;, &#x5B;0] * length)
#for i in range(length):
#    sineWave&#x5B;i] = int(math.sin(math.pi * 2 * i / 18) * (2 ** 15) + 2 ** 15)

# audio output
#rawSine = audioio.RawSample(sineWave, sample_rate=8000)
#dac.play(rawSine, loop=True)
#time.sleep(1)
#dac.stop()
#rawSine.deinit()

# play wav file
data = open(&quot;tink.wav&quot;, &quot;rb&quot;)
wav = audioio.WaveFile(data)
dac.play(wav)
while dac.playing:
    pass
wav.deinit()
dac.deinit()

# prepare for neopixels
neopixels = neopixel.NeoPixel(board.NEOPIXEL, NUM_NEOPIXELS,
                            brightness=NEO_BRIGHTNESS, auto_write=False,
                            pixel_order=neopixel.GRB)
for n in range(0, NUM_NEOPIXELS):
    neopixels&#x5B;n] = 0
neopixels.show()

# prepare for gamepad buttons
pad = GamePadShift(digitalio.DigitalInOut(board.BUTTON_CLOCK),
                   digitalio.DigitalInOut(board.BUTTON_OUT),
                   digitalio.DigitalInOut(board.BUTTON_LATCH))

# prepare accelerometer
i2c = busio.I2C(board.SCL, board.SDA)
int1 = digitalio.DigitalInOut(board.ACCELEROMETER_INTERRUPT)  # Set this to the correct pin for the interrupt!
lis3dh = adafruit_lis3dh.LIS3DH_I2C(i2c, int1=int1)

# prepare light sensor
light = analogio.AnalogIn(board.LIGHT)  # dinit() when done
        
group.pop()     # remove name
index = 0
loadImage(index)

# main loop
current_buttons = pad.get_pressed()
last_read = 0
speed = 5

while True:
    # Reading buttons too fast returns 0
    if (last_read + 0.1) &lt; time.monotonic():
        buttons = pad.get_pressed()
        last_read = time.monotonic()
    if current_buttons != buttons:
        # Respond to the buttons
        if (buttons &amp; BUTTON_RIGHT) &gt; 0:
            if index &lt; NUM_IMAGES-1:
                index = index + 1
            else:
                index = 0;
            loadImage(index)
        elif (buttons &amp; BUTTON_LEFT) &gt; 0:
            if index &gt; 0:
                index = index - 1
            else:
                index = NUM_IMAGES - 1;
            loadImage(index)
        elif (buttons &amp; BUTTON_UP) &gt; 0 and brightness &lt; .9:
            brightness += .1
            board.DISPLAY.brightness = brightness   # 0.0 --&gt; 1.0
        elif (buttons &amp; BUTTON_DOWN) &gt; 0 and brightness &gt; .1 :
            brightness -= .1
            board.DISPLAY.brightness = brightness   # 0.0 --&gt; 1.0
        elif (buttons &amp; BUTTON_A) &gt; 0 and neoBrightness &lt; 0.5:
            neoBrightness += 0.05
            updateNeopixels()
        elif (buttons &amp; BUTTON_B) &gt; 0 and neoBrightness &gt; 0.05:
            neoBrightness -= 0.05
            updateNeopixels()
        elif (buttons &amp; BUTTON_SEL) == BUTTON_SEL:
            pass
        elif (buttons &amp; BUTTON_START) == BUTTON_START:
            pass
    current_buttons = buttons
    # accelerometer
    x, y, z = lis3dh.acceleration
    print(x, y, z)
    if lis3dh.shake(shake_threshold=15):
        print(&quot;Shaken!&quot;)
    # light sensor
    print(light.value)
</pre></div>


<h4 class="wp-block-heading" id="program">Program instructions<br></h4>



<ul class="wp-block-list"><li>up, down buttons: change the screen brightness</li><li>left, right buttons: change the image (this may crash because of memory allocation errors)</li><li>a, b buttons: change neopixel brightness, change which neopixel is lit</li></ul>



<p>To customize the code, you can create your own 8-bit (256) 160&#215;128 pixel images. I used Windows 10 Paint to convert .jpg files. Name the images by number, starting with <em>0.bmp</em>. Set the image count using the constant NUM_IMAGES. The name displayed on the startup splash screen is defined in the MY_NAME constant. The name of the sound file, <em>tink.wav</em>, is set in the code.</p>



<h4 class="wp-block-heading" id="case">3D  printed case</h4>



<div class="wp-block-image"><figure class="aligncenter"><img loading="lazy" decoding="async" width="300" height="300" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/IMG_5583-300x300.jpg" alt="" class="wp-image-480" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/IMG_5583-300x300.jpg 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/IMG_5583-150x150.jpg 150w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/IMG_5583-768x768.jpg 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/IMG_5583-1024x1024.jpg 1024w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2019/06/IMG_5583-45x45.jpg 45w" sizes="auto, (max-width: 300px) 100vw, 300px" /><figcaption>modified 3D printed snap-fit case for Adafruit PyBadge</figcaption></figure></div>



<p>Since I’m a 3D printing aficionado, I’ll bring up the case I’m using. I downloaded  <a rel="noreferrer noopener" aria-label="a s (opens in a new tab)" href="https://www.thingiverse.com/thing:3627820" target="_blank">a snap-fit case</a> from Thingiverse, and modified the  model to include the speaker grill from the screw-together model. You may download <a rel="noreferrer noopener" aria-label=" (opens in a new tab)" href="https://drive.google.com/open?id=1mkG9OTA6mqTjO81c-qRnFZbKF7cZSXQM" target="_blank">the modification</a>.<br></p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2019/06/06/circuitpython-adafruit-pybadge-example-code/">Programming an Adafruit PyBadge using CircuitPython</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Tevo Tornado &#8212; only $370 with US Plug 110V</title>
		<link>http://lucina.mastroid.com/wordpress/2018/04/24/tevo-tornado-only-370-with-us-plug-110v/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Tue, 24 Apr 2018 16:41:53 +0000</pubDate>
				<category><![CDATA[3D Printing]]></category>
		<category><![CDATA[3D printing deals]]></category>
		<category><![CDATA[Deals]]></category>
		<category><![CDATA[3D printer]]></category>
		<category><![CDATA[Tevo Tornado]]></category>
		<category><![CDATA[Tevo Tornado 3D Printer Sale]]></category>
		<category><![CDATA[Tevo Tornado deal]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/?p=437</guid>

					<description><![CDATA[<p>Price alert Hurry to take advantage of the $370 flash sale at GearBest.com. Learn More I previously wrote about how the Tevo Tornado compares to the popular Creality 3D CR-10. TEVO Tornado US PLUG 110V</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2018/04/24/tevo-tornado-only-370-with-us-plug-110v/">Tevo Tornado &#8212; only $370 with US Plug 110V</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h6>Price alert</h6>
<p>Hurry to take advantage of the $370 flash sale at <a href="https://www.gearbest.com/3d-printers-3d-printer-kits/pp_725101.html?wid=21&amp;lkid=13896972">GearBest.com</a>.</p>
<h6>Learn More</h6>
<p>I previously wrote about <a href="http://lucina.mastroid.com/wordpress/2017/11/01/tevo-tornado-creality-cr-10-clone/">how the Tevo Tornado compares to the popular Creality 3D CR-10</a>.</p>
<p><a href="https://www.gearbest.com/3d-printers-3d-printer-kits/pp_725101.html?wid=21&amp;lkid=13896972" target="_blank" rel="noopener"><img decoding="async" title="Gearbest TEVO Tornado US PLUG 110V" src="https://gloimg.gbtcdn.com/gb/pdm-product-pic/Electronic/2017/09/14/goods-img/1510298792785125302.jpg" alt="Gearbest TEVO Tornado US PLUG 110V" /><br />
TEVO Tornado US PLUG 110V</a></p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2018/04/24/tevo-tornado-only-370-with-us-plug-110v/">Tevo Tornado &#8212; only $370 with US Plug 110V</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>B660 3D Printing Pen Review</title>
		<link>http://lucina.mastroid.com/wordpress/2017/12/03/b660-3d-printing-pen-review/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Sun, 03 Dec 2017 21:49:03 +0000</pubDate>
				<category><![CDATA[3D Printing]]></category>
		<category><![CDATA[3D pen]]></category>
		<category><![CDATA[3D pen review]]></category>
		<category><![CDATA[Budget 3D pen]]></category>
		<category><![CDATA[Cheap 3D pen]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/?p=369</guid>

					<description><![CDATA[<p>&#160; Features LED text display Colored LED indicator Ceramic nozzle Temperature adjustable by degree from 160° to 220° C 4 filament extrusion speeds Supports 2 types of  1.75mm filament: PLA and ABS Can be used with a 5V 2A portable power bank Package Contents 3D pen Pen cap USB barrel connector power cable 5V 2A power adapter 2 meters of 3 colors of PLA filament&#8230; </p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2017/12/03/b660-3d-printing-pen-review/">B660 3D Printing Pen Review</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>&nbsp;</p>
<h5><iframe loading="lazy" src="https://www.youtube-nocookie.com/embed/Z4qiBpjQGz0?rel=0&amp;controls=0&amp;showinfo=0" width="560" height="315" frameborder="0" allowfullscreen="allowfullscreen"></iframe></h5>
<h5>Features</h5>
<ul>
<li>LED text display</li>
<li>Colored LED indicator</li>
<li>Ceramic nozzle</li>
<li>Temperature adjustable by degree from 160° to 220° C</li>
<li>4 filament extrusion speeds</li>
<li>Supports 2 types of  1.75mm filament: PLA and ABS</li>
<li>Can be used with a 5V 2A portable power bank</li>
</ul>
<h5>Package Contents</h5>
<ul>
<li><img loading="lazy" decoding="async" class="size-medium wp-image-415 alignright" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/contents-300x155.png" alt="" width="300" height="155" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/contents-300x155.png 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/contents-768x398.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/contents-1024x531.png 1024w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/contents.png 1706w" sizes="auto, (max-width: 300px) 100vw, 300px" />3D pen</li>
<li>Pen cap</li>
<li>USB barrel connector power cable</li>
<li>5V 2A power adapter</li>
<li>2 meters of 3 colors of PLA filament</li>
<li>Transparent acetate sheet to place on top of stencils</li>
<li>Design stencils</li>
<li>English manual</li>
</ul>
<h5>Controls</h5>
<ul>
<li><b><img loading="lazy" decoding="async" class="alignright wp-image-379 " src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-27-00-PM-e1512334659906-300x171.png" alt="" width="187" height="106" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-27-00-PM-e1512334659906-300x171.png 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-27-00-PM-e1512334659906-768x438.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-27-00-PM-e1512334659906-1024x583.png 1024w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-27-00-PM-e1512334659906-1920x1080.png 1920w" sizes="auto, (max-width: 187px) 100vw, 187px" />Extrude ▼</b>
<ul>
<li>Feed filament</li>
<li>Double press to activate continuous feed</li>
<li>Stop extrusion if continuous feed active</li>
</ul>
</li>
<li><b>Retract ▲</b>
<ul>
<li>Remove filament</li>
<li>Press for 2 seconds to activate continuous retraction</li>
<li>Stop continuous retraction if active</li>
</ul>
</li>
<li><b><img loading="lazy" decoding="async" class=" wp-image-383 alignright" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-26-52-PM-292x300.png" alt="" width="169" height="174" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-26-52-PM-292x300.png 292w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-26-52-PM-768x789.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-26-52-PM-997x1024.png 997w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/Photo-Dec-01-2-26-52-PM-45x45.png 45w" sizes="auto, (max-width: 169px) 100vw, 169px" />Select material +</b>
<ul>
<li>PLA or ABS</li>
<li>After pressing Extrude button, decrease temperature</li>
</ul>
</li>
<li><b>Select material &#8211;</b>
<ul>
<li>PLA or ABS</li>
<li>After pressing Extrude button, increase temperature</li>
</ul>
</li>
</ul>
<p><b><img loading="lazy" decoding="async" class="wp-image-397 alignright" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/ps-speed-red-300x295.png" alt="" width="162" height="159" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/ps-speed-red-300x295.png 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/ps-speed-red-768x755.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/ps-speed-red-45x45.png 45w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/ps-speed-red.png 800w" sizes="auto, (max-width: 162px) 100vw, 162px" /></b></p>
<ul>
<li><b>Slower <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/23ea.png" alt="⏪" class="wp-smiley" style="height: 1em; max-height: 1em;" /></b>
<ul>
<li>Decrease extrusion speed (SP-1 &#8211; SP-4)</li>
</ul>
</li>
</ul>
<ul>
<li><b>Faster <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/23e9.png" alt="⏩" class="wp-smiley" style="height: 1em; max-height: 1em;" /></b>
<ul>
<li>Increase extrusion speed (SP-1 &#8211; SP-4)</li>
</ul>
</li>
</ul>
<h5>Tips</h5>
<ul>
<li>If the pen is straining to extrude, raise the temperature.</li>
<li>If the pen is oozing filament uncontrollably, lower the temperature.</li>
<li>Only load and unload filament when the pen is heated to temperature</li>
<li>After extruding, lightly tap the nozzle on the print to avoid stringing.</li>
<li>Use a finger to  pat down on a freshly printed area to smooth it.</li>
<li><img loading="lazy" decoding="async" class=" wp-image-376 alignright" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/File-Dec-02-9-27-11-AM-300x300.jpeg" alt="" width="223" height="223" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/File-Dec-02-9-27-11-AM-300x300.jpeg 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/File-Dec-02-9-27-11-AM-150x150.jpeg 150w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/File-Dec-02-9-27-11-AM-768x768.jpeg 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/File-Dec-02-9-27-11-AM-1024x1024.jpeg 1024w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/File-Dec-02-9-27-11-AM-45x45.jpeg 45w" sizes="auto, (max-width: 223px) 100vw, 223px" />Handy tools to have
<ul>
<li>Pointy tweezers to remove bits of filament from the nozzle</li>
<li>Diagonal wire cutter pliers to make the end of the filament clean for inserting into pen</li>
<li>Third hand clamp for holding printed object</li>
</ul>
</li>
<li>Practical uses:
<ul>
<li>Repair prints made with a 3D printer</li>
<li>Use like a hot-glue gun for repairing household objects: joining objects, patching holes</li>
</ul>
</li>
</ul>
<p>
<a href='http://lucina.mastroid.com/wordpress/2017/12/03/b660-3d-printing-pen-review/buterfly/'><img loading="lazy" decoding="async" width="150" height="150" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/buterfly-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/buterfly-150x150.png 150w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/buterfly-300x300.png 300w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/buterfly-768x768.png 768w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/buterfly-45x45.png 45w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/buterfly.png 1024w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a>
<a href='http://lucina.mastroid.com/wordpress/2017/12/03/b660-3d-printing-pen-review/file-dec-01-4-13-33-pm/'><img loading="lazy" decoding="async" width="150" height="150" src="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/File-Dec-01-4-13-33-PM-150x150.png" class="attachment-thumbnail size-thumbnail" alt="" srcset="http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/File-Dec-01-4-13-33-PM-150x150.png 150w, http://lucina.mastroid.com/wordpress/wp-content/uploads/2017/12/File-Dec-01-4-13-33-PM-45x45.png 45w" sizes="auto, (max-width: 150px) 100vw, 150px" /></a>
</p>
<h5>Review</h5>
<h6><b>Pros:</b></h6>
<ul>
<li>Temperature is adjustable to a specific  degree.</li>
<li>USB cable allows for flexible power options (e.g. portable power source).</li>
<li>Pen functions well.</li>
</ul>
<h6><b>Cons:</b></h6>
<ul>
<li>It’s difficult to avoid pressing the speed buttons when pressing the extrude button.</li>
<li>Holding the pen is a little uncomfortable.</li>
<li>Two meters of 3 colors of filament isn’t enough to make very much,  yet is very inexpensive (around $0.08 USD per meter).</li>
<li>The included stencils aren’t very good.</li>
</ul>
<h5>Recommendation</h5>
<p>This 3D pen functions well. The ergonomics could be better, specifically the button placement. Having the adjustable temperature would justify its selection among low-priced 3D pens.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2017/12/03/b660-3d-printing-pen-review/">B660 3D Printing Pen Review</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>12% Off 3D Printers at GearBest.com Coupon/Promo Code</title>
		<link>http://lucina.mastroid.com/wordpress/2017/11/25/12-off-3d-printers-at-gearbest-com-coupon-promo-code/</link>
		
		<dc:creator><![CDATA[Lucina]]></dc:creator>
		<pubDate>Sat, 25 Nov 2017 18:04:44 +0000</pubDate>
				<category><![CDATA[3D printing deals]]></category>
		<category><![CDATA[Technology]]></category>
		<category><![CDATA[3D printer coupon code]]></category>
		<category><![CDATA[3D printing]]></category>
		<category><![CDATA[coupon code]]></category>
		<category><![CDATA[deal]]></category>
		<category><![CDATA[GearBest]]></category>
		<category><![CDATA[Promo code]]></category>
		<guid isPermaLink="false">http://lucina.mastroid.com/wordpress/2017/11/25/12-off-3d-printers-at-gearbest-com-coupon-promo-code/</guid>

					<description><![CDATA[<p>Use code GBTE to take 12% off of any non-sale 3D printer at GearBest.com. Code expires 12/31/2017; 3 uses per account; unlimited uses per order.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2017/11/25/12-off-3d-printers-at-gearbest-com-coupon-promo-code/">12% Off 3D Printers at GearBest.com Coupon/Promo Code</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Use code <strong>GBTE</strong> to take 12% off of any non-sale 3D printer at <a href="http://www.gearbest.com/electrical-tools-c_11347/show.html?lkid=12091132">GearBest.com</a>. Code expires 12/31/2017; 3 uses per account; unlimited uses per order.</p>
<p>The post <a href="http://lucina.mastroid.com/wordpress/2017/11/25/12-off-3d-printers-at-gearbest-com-coupon-promo-code/">12% Off 3D Printers at GearBest.com Coupon/Promo Code</a> appeared first on <a href="http://lucina.mastroid.com/wordpress">Lucina</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
