<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[M5StickC Joystick+ESP32 robot+Protocol Buffers (nanopb)+3dprint]]></title><description><![CDATA[<h1>AIRobot</h1>
<p dir="auto">ESP32 robot platform, the idea is join it with a <a href="https://maixpy.sipeed.com/en/" target="_blank" rel="noopener noreferrer nofollow ugc">MaxiPy RISC-V</a> camera. For now the current development works with a M5StickC Joystick hat that controlling the robot via UDP using protobuf (nanopb). In the robot it use a simple ESP32 board.</p>
<p dir="auto"><a href="https://github.com/hpsaturn/airobot" target="_blank" rel="noopener noreferrer nofollow ugc">GitHub</a></p>
<h3>TODO</h3>
<ul>
<li><div class="plugin-markdown"><input type="checkbox" checked="true" />Platformio project (two sources)</div></li>
<li><div class="plugin-markdown"><input type="checkbox" checked="true" />UDP channel settings in preferences lib</div></li>
<li><div class="plugin-markdown"><input type="checkbox" checked="true" />nanopb (protocol buffers implementation) for joystick messages</div></li>
<li><div class="plugin-markdown"><input type="checkbox" checked="true" />separated OTA (joystick and robot)</div></li>
<li><div class="plugin-markdown"><input type="checkbox" />MQTT channel ?</div></li>
<li><div class="plugin-markdown"><input type="checkbox" />SPI connection to MaxiPy nano camera</div></li>
<li><div class="plugin-markdown"><input type="checkbox" />Push AI models via proto</div></li>
<li><div class="plugin-markdown"><input type="checkbox" />Auto navegation</div></li>
<li><div class="plugin-markdown"><input type="checkbox" />Seek and destroy objects</div></li>
</ul>
<h2>Firmware</h2>
<p dir="auto">You can build it with Arduino IDE renaming the main files to .ino, but it is more easy if you use PlatformIO, with a simple command you upload both, Joystick and Robot.</p>
<pre><code class="language-bash">pio run --target upload
</code></pre>
<p dir="auto">Please check the right USB ports on <code>platformio.ini</code> file.</p>
<p dir="auto">After the first upload, you could comment the robot and joystick blocks in platformio.ini and uncomment the OTA blocks for upload via WiFi without USB.</p>
<h2>Usage</h2>
<p dir="auto">Turn on the robot, then the joystick, when the joystick detect the robot, push the M5 button for some seconds for pair. For turn off the joystick press again the M5 button.</p>
<h2>DIY Robot demo</h2>
<p dir="auto">For the instructions and more details <a href="https://www.thingiverse.com/thing:4705776" target="_blank" rel="noopener noreferrer nofollow ugc">here</a>.</p>
<p dir="auto"><a href="http://www.youtube.com/watch?v=GmQLIsL-Mts" title="Joystick WiFi using nanopb (protobuff) over a ESP32 caterpillar" target="_blank" rel="noopener noreferrer nofollow ugc"><img src="http://img.youtube.com/vi/GmQLIsL-Mts/0.jpg" alt="Youtube demo" class=" img-fluid img-markdown" /></a></p>
]]></description><link>https://community.m5stack.com/topic/2693/m5stickc-joystick-esp32-robot-protocol-buffers-nanopb-3dprint</link><generator>RSS for Node</generator><lastBuildDate>Wed, 29 Apr 2026 13:19:34 GMT</lastBuildDate><atom:link href="https://community.m5stack.com/topic/2693.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 03 Jan 2021 19:40:55 GMT</pubDate><ttl>60</ttl></channel></rss>