-
moti v0.3 circuit overview
08/21/2014 at 04:00 • 0 comments -
moti v0.3 firmware overview
08/20/2014 at 23:50 • 0 commentsMoti's firmware is written as an extensive Arduino library. I use Sublime as my primary editor, and just use the Arduino IDE to compile the a simple sketch, which is then loaded onto each Moti. The sketch looks like this:
You can add your own code in loop(), but Moti.update() has to execute once per loop, and the longer between updates, the poorer it Moti will function. The update itself takes 500 microseconds (on average).
Currently the firmware takes up 68% of flash memory, but that will come down significantly as the latest hardware revisions are factored in. Soon, I’ll add a flowchart that demonstrates how methods relate, but for the moment let me briefly describe it. There’s a main loop that checks the communication port for commands, such as “move 720º degrees Clockwise at 30 rpm“ or "read sensor 2”. Then the loop executes the appropriate methods, which is often updating the position. That consists of checking the current position of the motor. If there’s a difference, then it moves until it gets there. That’s basically it!
In previous versions the firmware was written as a single file. While it wasn’t as bad as you’d think, it’s clearly not ideal. With new hardware forcing a major revision of the firmware, I am taking this opportunity to overhaul it. I’ve been working my way through this awesome book to learn best practices (hopefully I'm getting it right). Now here’s the firmware breakdown: -
moti v0.3 hardware revisions
08/20/2014 at 19:07 • 0 commentsWe're currently working on v0.3 of Moti's hardware.
Here's the major changes.
- Magnetic encoder replaces mechanical encoder. v0.2 used two continuous pots back to back to give 360º coverage. These pots were prone to misalignment, and difficult to compensate for in firmware. The magnetic encoder offers full rotation sensing out of the box without hacks. It is also contactless, so there is no mechanical wear and tear.
- Monolithic IC replaces Open Servo v2 H-Bridge. Things would occasionally get damaged on the Open Servo board (Sparkfun Derivative). Either the current sensing shunt resistor or mosfets would burn up, apparently due to excessive current draw. The VNH5180A automatically shuts down with excessive current draw, or over voltage. It also has built-in current sensing, can handle 8A continuous draw, is simpler to use, and is likely much better tested.
- RS485 replaces I2C bus. In practice, we found that using I2C to daisychain around 8 x Motis v0.2 over a distance of meter caused some nodes to disappear from the network. RS485 can theoretically span for 1200m.
- Added more A2D pins…3 in total. v0.2 only had one. Allowing sensors to be connected at each node is one of Moti's key features, so we better have more than one.
- Added mosfet to power line for reverse polarity protection.
- FFC cable replaces rigid pin connectors to other boards. The encoder board needs to attach to top of the servo case, while the other boards attaches to the base. A Flat Flexible Cable allows that distance vary, which means the boards can be placed inside a greater variety of servo cases.
- Single header replaces three. v0.2 had a 2.54mm header for power, and two different 1.27mm data headers. In v0.3 all pins were grouped into one 22 pin 1.27mm header, that uses 4 pins each for power and ground to exceed the current ratings 2.54mm pins. Header breaks out SPI in case you want to overwrite the Arduino bootloader.
- All components are now surface mount. v0.2 had several through-hole pin headers. SMDs eliminate hand-assembly, and should thereby reduce the cost just a tad if Moti gets manufactured.
To summarize, if there’s a theme to v0.3 it is this…use pre-engineered solutions over home-brew hacks wherever possible. -
Applications we've built so far...
08/20/2014 at 16:48 • 0 commentsMoti is still in development and so we haven’t yet built those elaborate robots it’s intended for. Instead we’ve focused mostly on simple applications, with a couple of multi-jointed robots thrown in. These robots we haven’t been developed too much, because our energy is focused on the motor itself.
This demo shows a bunch of applications…
Stop Motion Panorama Machine:
Really Simple Remote-Controlled Dolly
Snakebot:
Turntable (fun, but sounds terrible!!)
There’s been a few others but this is the documentation we have right now.