Here's our latest update! Let us know what you think. More updates are planned, but this solves most of the issues people have posted in the forms thus far.
We'll have it posted here in the forums for a few days in case anyone catches anything we didn't, and then it'll be on the main start page.Windows InstallerSparkiDuino 126.96.36.199 Windows InstallerOSX ZipSparkiDuino 188.8.131.52 OSX Zip
Here's what we've changed:- Motor control code changed from time-based to step-based.
This shouldn't mean anything for most people, but it does mean that motion is now based on math and such, and allows much finer-grained control of the stepper motor motion. It also avoids potential (unlikely, small) problems in inaccurate motion as the case of an interrupt conflict. This new method includes speed control.- Distances are now based on maths of final Sparki
Turns out previous motion was based on a magic number based on a slightly different earlier version of Sparki, which resulted in inaccurate movement when the model was changed. Dimensions for the motion are based on the final version's cad drawings, checked against final production version. These value are in Sparki.h for people that want to change them.- Speed Control
You can now set a global speed value for all of sparki stepper motors by using sparki.speed(), using values from 1-100 precent. You can enter more than 100, but the hardware may not work with it given you battery voltage (although it won't harm the motors by trying). You can get it to work reliably above 100 by upping the stepper motor voltage (which might harm them).- Moves now accept negatives
You can now use negative values for moveLeft, moveRight, moveForward and moveBackward. This makes things easier for people doing algorithmic motions. Note that 0 still means infinite movement until told to stop.- Buzzer louder by default
The beep() command now uses the loudest frequency the buzzer produces (2800hz)- LCD draw color changeable
You can now choose whether the drawing functions write in white or black pixels with sparki.setPixelColor(). the options are:
sparki.setPixelColor(BLACK);- IR Send now working
IR send is now implemented. You can send IR codes to other Sparkis, and they will see them as remote button presses. Sparki will take a break when it sends an IR code. Specifically, the wheels spinning and LED updates will pause for the 65ms it takes to transmit an IR code.- Driver install optional for windows version
You can choose whether or not to (re)install the drivers when installing the windows version. No changes to the driver have been made.