<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Mini Mouse on usedbytes:Blog</title>
		<link>https://blog.usedbytes.com/tags/mini-mouse/</link>
		<description>Recent content in Mini Mouse on usedbytes:Blog</description>
		<generator>Hugo</generator>
		<language>en</language>
		
		
		
		
			<lastBuildDate>Sun, 31 Mar 2019 20:20:41 +0100</lastBuildDate>
		
			<atom:link href="https://blog.usedbytes.com/tags/mini-mouse/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Pi Wars: Post Mortem</title>
				<link>https://blog.usedbytes.com/2019/03/pi-wars-post-mortem/</link>
				<pubDate>Sun, 31 Mar 2019 20:20:41 +0100</pubDate>
				<guid>https://blog.usedbytes.com/2019/03/pi-wars-post-mortem/</guid>
				<description>&lt;p&gt;Pi Wars happened! It&amp;rsquo;s over! I can start doing something else with my life!&lt;/p&gt;&#xA;&lt;p&gt;I had an awesome time at Pi Wars today and yesterday, with Mini Mouse&#xA;performing pretty solid attempts at all of the challenges. I ran into a few&#xA;hiccups on some challenges, but far outperformed my expectations on others.&lt;/p&gt;&#xA;&lt;p&gt;Overall, I placed 3rd in my category, and am really happy to have been awarded&#xA;first place for this blog, and Artistic Merit (for being &amp;ldquo;beautiful on both the&#xA;inside and the outside&amp;rdquo; - thanks Rachel :-)&lt;/p&gt;</description>
			</item>
			<item>
				<title>Pre-Competition Status Report</title>
				<link>https://blog.usedbytes.com/2019/03/pre-competition-status-report/</link>
				<pubDate>Thu, 28 Mar 2019 20:58:21 +0000</pubDate>
				<guid>https://blog.usedbytes.com/2019/03/pre-competition-status-report/</guid>
				<description>&lt;p&gt;With two days to go until competition day (only one day for schools and&#xA;clubs!), I thought I&amp;rsquo;d capture the status of Mini Mouse, for posterity and for&#xA;something to compare against in a Post-Competition Post-Mortem.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;m quite happy with where I&amp;rsquo;ve got to. The autonomous challenges are all&#xA;working &lt;em&gt;mostly&lt;/em&gt; reliably in practice runs, and the performance seems to be&#xA;competitive. Of course there&amp;rsquo;s no guarantee that it&amp;rsquo;ll perform &amp;ldquo;on the day&amp;rdquo;,&#xA;but I&amp;rsquo;ve done all I can at this point!&lt;/p&gt;</description>
			</item>
			<item>
				<title>Autonomous Challenge: Hubble</title>
				<link>https://blog.usedbytes.com/2019/03/autonomous-challenge-hubble/</link>
				<pubDate>Wed, 13 Mar 2019 16:15:56 -0700</pubDate>
				<guid>https://blog.usedbytes.com/2019/03/autonomous-challenge-hubble/</guid>
				<description>&lt;p&gt;&lt;a href=&#34;https://piwars.org/2019-competition/challenges/nebula/&#34; target=&#34;_blank&#34;&gt;The Hubble Telescope Nebula&#xA;Challenge&lt;/a&gt; (previously&#xA;Somewhere Over the Rainbow) is one of the autonomous challenges, requiring the&#xA;robot to visit the four corners of a square arena, starting from the centre. In&#xA;each corner, there&amp;rsquo;s a coloured board - and for maximum points the robot must&#xA;visit the corners in an order specified by their colours (Red, then Blue,&#xA;Yellow and finally Green), as quickly as possible.&lt;/p&gt;&#xA;&lt;p&gt;My overall strategy for this challenge is to spin on the spot at the starting&#xA;position, to identify where each colour is. Once all four corners have been&#xA;identified, they can be visited in the appropriate order. Originally, I was&#xA;also intending to use the camera to make sure the &amp;lsquo;bot stays on-course whilst&#xA;en-route to the corners, and to detect when a corner has been &amp;ldquo;visited&amp;rdquo;.&#xA;Ultimately, I&amp;rsquo;ve found dead-reckoning using the IMU and counting wheel&#xA;rotations is reliable enough, and so I&amp;rsquo;ve skipped the added complexity of using&#xA;camera feedback for the actual &amp;ldquo;visiting&amp;rdquo; phase.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Setbacks</title>
				<link>https://blog.usedbytes.com/2019/03/setbacks/</link>
				<pubDate>Fri, 08 Mar 2019 18:20:44 +0000</pubDate>
				<guid>https://blog.usedbytes.com/2019/03/setbacks/</guid>
				<description>&lt;p&gt;Three weeks ago, I got a basic implementation of &lt;a href=&#34;https://piwars.org/2019-competition/challenges/nebula/&#34; target=&#34;_blank&#34;&gt;The Hubble Telescope Nebula&#xA;Challenge&lt;/a&gt; working,&#xA;which made Mini Mouse&amp;rsquo;s code &amp;ldquo;feature complete&amp;rdquo; from the point of view of&#xA;entering all of the autonomous challenges.&lt;/p&gt;&#xA;&lt;p&gt;Honestly, I was pretty darn happy. All three challenges were working well enough&#xA;to be &amp;ldquo;competitive&amp;rdquo;, and with more than a month to go until the competition, all&#xA;that was left was optimisation. So, I spent a week doing &lt;a href=&#34;https://blog.usedbytes.com/2019/02/final-hardware/&#34;&gt;rapid&lt;/a&gt;-&lt;a href=&#34;https://blog.usedbytes.com/2019/02/mini-mouses-software/&#34;&gt;fire&lt;/a&gt; &lt;a href=&#34;https://blog.usedbytes.com/2019/02/autonomous-challenge-blast-off/&#34;&gt;blog&lt;/a&gt; &lt;a href=&#34;https://blog.usedbytes.com/2019/02/edge-detection/&#34;&gt;posts&lt;/a&gt; &lt;a href=&#34;https://blog.usedbytes.com/2019/02/mini-mouses-armament/&#34;&gt;.&lt;/a&gt;&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mini Mouse&#39;s Armament</title>
				<link>https://blog.usedbytes.com/2019/02/mini-mouses-armament/</link>
				<pubDate>Wed, 20 Feb 2019 20:37:14 +0000</pubDate>
				<guid>https://blog.usedbytes.com/2019/02/mini-mouses-armament/</guid>
				<description>&lt;p&gt;&lt;span class=&#34;document-image&#34;&gt;&#xA;    &lt;a href=&#34;https://blog.usedbytes.com/2019/02/mini-mouses-armament/images/mini-mouse-glam.jpg&#34;&gt;&#xA;      &lt;img src=&#34;https://blog.usedbytes.com/2019/02/mini-mouses-armament/images/mini-mouse-glam_hu_e78b692bc867e47a.jpg&#34; alt=&#34;Glam Shot&#34; width=&#34;900&#34; height=&#34;707&#34;&gt;&#xA;    &lt;/a&gt;&#xA;  &lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;Now, irrespective of personal views on arming robots, &lt;em&gt;unfortunately&lt;/em&gt; one of&#xA;the Pi Wars challenges &lt;em&gt;requires&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/em&gt;  that we weaponise them. For &lt;a href=&#34;https://piwars.org/2019-competition/challenges/space-invaders/&#34; target=&#34;_blank&#34;&gt;Space&#xA;Invaders&lt;/a&gt; we&#xA;have to be able to knock down as many targets as we can (up to 5) from 1-1.5&#xA;metres away.&lt;/p&gt;&#xA;&lt;h1 id=&#34;plan-a&#34;&gt;Plan A &lt;a class=&#34;document__back-to-top&#34; href=&#34;#main-content&#34; aria-label=&#34;Back to top&#34;&gt;(top)&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;This challenge has caused me a great deal of head scratching as I sought out&#xA;the right option for projectile launchers for Mini Mouse. For Bot Matrix the&#xA;plan was dual-wield repeating rubber band guns - so that was my starting point&#xA;for Mini Mouse too.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Edge Detection</title>
				<link>https://blog.usedbytes.com/2019/02/edge-detection/</link>
				<pubDate>Tue, 19 Feb 2019 20:23:05 +0000</pubDate>
				<guid>https://blog.usedbytes.com/2019/02/edge-detection/</guid>
				<description>&lt;p&gt;&lt;span class=&#34;document-image&#34;&gt;&#xA;    &lt;a href=&#34;https://blog.usedbytes.com/2019/02/edge-detection/images/banner.png&#34;&gt;&#xA;      &lt;img src=&#34;https://blog.usedbytes.com/2019/02/edge-detection/images/banner_hu_440eb3c228c3607e.png&#34; alt=&#34;Raw Edges&#34; width=&#34;900&#34; height=&#34;499&#34;&gt;&#xA;    &lt;/a&gt;&#xA;  &lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identifying edges is one of the key &amp;ldquo;features&amp;rdquo; of the human vision system. Our&#xA;brains have evolved to identify edges and it&amp;rsquo;s one of the things which lets us&#xA;pick out different objects in the world. If we want to teach our computers to&#xA;see, Edge Detection is one of the key tools needed to reach that goal (at&#xA;least, according to &amp;ldquo;classical&amp;rdquo; methods. Things change with Deep Learning).&lt;/p&gt;</description>
			</item>
			<item>
				<title>Autonomous Challenge: Blast Off</title>
				<link>https://blog.usedbytes.com/2019/02/autonomous-challenge-blast-off/</link>
				<pubDate>Sun, 17 Feb 2019 19:52:08 +0000</pubDate>
				<guid>https://blog.usedbytes.com/2019/02/autonomous-challenge-blast-off/</guid>
				<description>&lt;p&gt;&lt;span class=&#34;document-image&#34;&gt;&#xA;    &lt;a href=&#34;https://blog.usedbytes.com/2019/02/autonomous-challenge-blast-off/images/course.png&#34;&gt;&#xA;      &lt;img src=&#34;https://blog.usedbytes.com/2019/02/autonomous-challenge-blast-off/images/course.png&#34; alt=&#34;Course&#34; width=&#34;768&#34; height=&#34;130&#34;&gt;&#xA;    &lt;/a&gt;&#xA;  &lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://piwars.org/2019-competition/challenges/blast-off/&#34; target=&#34;_blank&#34;&gt;Blast Off: the Straight-ish Line Speed&#xA;Test&lt;/a&gt; is, to my&#xA;mind, the easiest of the three autonomous challenges in this year&amp;rsquo;s&#xA;competition. As such, it&amp;rsquo;s the one which I started working on first.&lt;/p&gt;&#xA;&lt;p&gt;The task is to get from one end of the course to the other as quickly&#xA;as possible. There&amp;rsquo;s effectively two feasible options:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Follow the walls&lt;/li&gt;&#xA;&lt;li&gt;Follow the white line&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Given that I don&amp;rsquo;t have any side-facing sensors to follow the walls, to me the&#xA;easiest option looked like following the white line.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mini Mouse&#39;s Software</title>
				<link>https://blog.usedbytes.com/2019/02/mini-mouses-software/</link>
				<pubDate>Sun, 17 Feb 2019 11:43:26 +0000</pubDate>
				<guid>https://blog.usedbytes.com/2019/02/mini-mouses-software/</guid>
				<description>&lt;p&gt;Before I dive in to details on individual challenge implementations, I thought&#xA;it would be sensible to describe how the software on Mini Mouse sits together.&#xA;Some of this information is duplicated in &lt;a href=&#34;https://blog.usedbytes.com/posts/we-are-in/&#34;&gt;We&amp;rsquo;re in&lt;/a&gt;, but&#xA;there&amp;rsquo;s more detail here, and things have evolved since then.&lt;/p&gt;&#xA;&lt;p&gt;The diagrams on this page are created with &lt;a href=&#34;http://www.graphviz.org/&#34; target=&#34;_blank&#34;&gt;graphviz&lt;/a&gt;&#xA;(or more correctly, &lt;code&gt;dot&lt;/code&gt;), which doesn&amp;rsquo;t give the prettiest of drawings, but&#xA;does stop me wasting time obsessing over layout.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Final Hardware</title>
				<link>https://blog.usedbytes.com/2019/02/final-hardware/</link>
				<pubDate>Sat, 16 Feb 2019 22:03:44 +0000</pubDate>
				<guid>https://blog.usedbytes.com/2019/02/final-hardware/</guid>
				<description>&lt;p&gt;It&amp;rsquo;s been a few frantic months of robot building between my last post and now,&#xA;a decent portion of it being focussed on finalising the chassis. Since around&#xA;September I&amp;rsquo;ve had my prototype chassis working, which has given me a great&#xA;test-bed for software implementation testing and debugging the hardware design.&lt;/p&gt;&#xA;&lt;p&gt;&lt;span class=&#34;document-image&#34;&gt;&#xA;    &lt;a href=&#34;https://blog.usedbytes.com/2019/02/final-hardware/images/prototype.jpg&#34;&gt;&#xA;      &lt;img src=&#34;https://blog.usedbytes.com/2019/02/final-hardware/images/prototype_hu_6de71cdb088e778.jpg&#34; alt=&#34;Prototype&#34; width=&#34;900&#34; height=&#34;675&#34;&gt;&#xA;    &lt;/a&gt;&#xA;  &lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;There were three main (known/intentional) limitations with the prototype&#xA;chassis, borne out of a need to get it built and tested before I could finalize&#xA;some of the details. Specifically:&lt;/p&gt;</description>
			</item>
			<item>
				<title>(Quite) Robust Thresholding</title>
				<link>https://blog.usedbytes.com/2018/10/quite-robust-thresholding/</link>
				<pubDate>Sat, 27 Oct 2018 16:55:59 +0100</pubDate>
				<guid>https://blog.usedbytes.com/2018/10/quite-robust-thresholding/</guid>
				<description>&lt;p&gt;Today, I&amp;rsquo;m detailing the method I&amp;rsquo;m using to threshold images for line&#xA;detection. Also included are some hard-learned lessons about premature&#xA;optimisation and the importance of re-evaluating your decisions frequently!&lt;/p&gt;&#xA;&lt;p&gt;Image thresholding is the process of taking an image, and converting it into a&#xA;two-color (just black and white, no grey) image. This is useful for lots of&#xA;image processing algorithms - like edge or blob detection.&lt;/p&gt;&#xA;&lt;p&gt;My initial focus here has been on implementing a white line detector for the&#xA;&amp;ldquo;Blast Off&amp;rdquo; challenge.&lt;/p&gt;</description>
			</item>
			<item>
				<title>We&#39;re in!</title>
				<link>https://blog.usedbytes.com/2018/10/were-in/</link>
				<pubDate>Sat, 06 Oct 2018 11:09:04 +0100</pubDate>
				<guid>https://blog.usedbytes.com/2018/10/were-in/</guid>
				<description>&lt;p&gt;So last weekend Mike and Tim sent out the confirmations for Pi Wars entries, and&#xA;Mini Mouse made the cut! &lt;strong&gt;We&amp;rsquo;re going to Pi Wars!&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;span class=&#34;document-image&#34;&gt;&#xA;    &lt;a href=&#34;https://blog.usedbytes.com/2018/10/were-in/images/confirmed.png&#34;&gt;&#xA;      &lt;img src=&#34;https://blog.usedbytes.com/2018/10/were-in/images/confirmed.png&#34; alt=&#34;Entry confirmation&#34; width=&#34;784&#34; height=&#34;302&#34;&gt;&#xA;    &lt;/a&gt;&#xA;  &lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;Doug on the Discord suggested the idea of sharing successful applications for&#xA;people to look at to see if they can improve their chances next time - so&#xA;&lt;a href=&#34;https://docs.google.com/document/d/1ZQbXNrs-5Y38DUoahu7boNVj50ahQWTaGxuPtmQ7vZ4/edit?usp=sharing&#34; target=&#34;_blank&#34;&gt;here&amp;rsquo;s mine&lt;/a&gt;&#xA;in case it&amp;rsquo;s useful.&lt;/p&gt;&#xA;&lt;p&gt;It&amp;rsquo;s been a little over a month since my last post, but I have moved things&#xA;forward a bit in that time.&lt;/p&gt;</description>
			</item>
			<item>
				<title>PCBs</title>
				<link>https://blog.usedbytes.com/2018/08/pcbs/</link>
				<pubDate>Sun, 26 Aug 2018 10:11:04 +0100</pubDate>
				<guid>https://blog.usedbytes.com/2018/08/pcbs/</guid>
				<description>&lt;p&gt;For Mini Mouse, I&amp;rsquo;ve designed two PCBs - one for motor drivers, and one for the&#xA;power supply/control circuitry. These were my first boards using the open-source&#xA;KiCad suite of EDA tools, having previously been an EAGLE user.&lt;/p&gt;&#xA;&lt;p&gt;I got the boards made at &lt;a href=&#34;http://dirtypcbs.com&#34; target=&#34;_blank&#34;&gt;dirtypcbs.com&lt;/a&gt;, panelising the two boards into a&#xA;single 5x5 square. This is the third set of boards I&amp;rsquo;ve made with dirtypcbs, and&#xA;I&amp;rsquo;ve always been very pleased with them.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Power</title>
				<link>https://blog.usedbytes.com/2018/08/power/</link>
				<pubDate>Sun, 26 Aug 2018 09:50:46 +0100</pubDate>
				<guid>https://blog.usedbytes.com/2018/08/power/</guid>
				<description>&lt;p&gt;Every robot needs power, generally at two or more voltages - one &amp;ldquo;high&amp;rdquo; voltage&#xA;directly from the battery to feed the power hungry motors, and one &amp;ldquo;logic&amp;rdquo;&#xA;voltage to drive the electronics. The motor voltage needs to be able to provide&#xA;high current, and the logic voltage needs to be relatively &amp;ldquo;clean&amp;rdquo; to avoid&#xA;messing up the electronics with excessive noise or voltage drops.&lt;/p&gt;&#xA;&lt;p&gt;Mini Mouse uses a 3S LiPo battery, which means it&amp;rsquo;s quite important not to&#xA;over-discharge the battery, as that might damage the cells (and could even&#xA;result in fire). On Bot Matrix I had a mechanical power switch to disconnect the&#xA;battery, but I don&amp;rsquo;t really have space in Mini Mouse, and I also wanted to try&#xA;designing an electronic switch as a useful building block for future projects.&#xA;So, I need an electronic switch design which has no current draw when &amp;ldquo;off&amp;rdquo;.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Motors</title>
				<link>https://blog.usedbytes.com/2018/06/motors/</link>
				<pubDate>Sun, 03 Jun 2018 14:55:44 +0100</pubDate>
				<guid>https://blog.usedbytes.com/2018/06/motors/</guid>
				<description>&lt;p&gt;Motors were the first thing I worked on selecting at the start of the&#xA;development process. Given the space constraints I&amp;rsquo;m working with, motors would&#xA;be a critical component which would inform the design of the rest of the robot.&lt;/p&gt;&#xA;&lt;h1 id=&#34;stepper-vs-brushed-dc&#34;&gt;Stepper vs Brushed DC &lt;a class=&#34;document__back-to-top&#34; href=&#34;#main-content&#34; aria-label=&#34;Back to top&#34;&gt;(top)&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;In Bot Matrix I had DC motors with hall-effect encoders on the back. I used the&#xA;encoders to implement closed-loop control for motor speed, and for odometry for&#xA;dead reckoning. In my opinion, accurate speed control and odometry are must-have&#xA;features for a robot - and so this weighs heavily in to the motor selection&#xA;process.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Mini Mouse</title>
				<link>https://blog.usedbytes.com/2018/04/mini-mouse/</link>
				<pubDate>Mon, 30 Apr 2018 19:47:31 +0100</pubDate>
				<guid>https://blog.usedbytes.com/2018/04/mini-mouse/</guid>
				<description>&lt;p&gt;In the past 12 months, I built Bot Matrix, aiming for PiWars 2018 (though&#xA;unfortunately I wasn&amp;rsquo;t selected as a competitor). It was the first chassis I&#xA;built from scratch, and I learnt a lot in the process! Bot Matrix was large (on&#xA;the limits of the PiWars size allowance), and used pretty large motors and&#xA;drivers.&lt;/p&gt;&#xA;&lt;p&gt;&lt;span class=&#34;document-image&#34;&gt;&#xA;    &lt;a href=&#34;https://blog.usedbytes.com/2018/04/mini-mouse/images/bot-matrix.jpg&#34;&gt;&#xA;      &lt;img src=&#34;https://blog.usedbytes.com/2018/04/mini-mouse/images/bot-matrix_hu_bac93d225240a2fd.jpg&#34; alt=&#34;Bot Matrix&#34; width=&#34;900&#34; height=&#34;675&#34;&gt;&#xA;    &lt;/a&gt;&#xA;  &lt;/span&gt;&lt;/p&gt;&#xA;&lt;p&gt;This year&amp;rsquo;s project is a little bit different - I always fancied building a&#xA;robot in a computer mouse and so that&amp;rsquo;s what I&amp;rsquo;m going for. Min(n)i(e) Mouse is&#xA;different from Bot Matrix in nearly every way. Bot Matrix used a Pi 3, two&#xA;dedicated microcontrollers for off-board processing, tracks, 5 ampere motors, tracks,&#xA;and 3072 LEDs. By comparison, Mini Mouse will have a Pi Zero, only. All&#xA;processing and control will be handled on-board by the Pi.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
