Releases: radarjd/sparki_learning
improved connections on Mac
Macs seem to be extremely likely to timeout -- if you pause in communicating with the robot for a few sections, the connection drops and needs to be re-initialized. This version does that more or less silently.
added speak function
This very minor change adds the speak function for windows and mac users. The speak function is a truly awful hack, which relies on the operating system to do text to speech.
battery and RGB LED fixes; version number changes
This release primary adds information on the fact that the calls to test battery level are unreliable, and the RGB LED has hardware limitations which may prevent it from working as expected.
Also, I added logic to ignore anything in the sparki robot library version number after a lower case 'r'. So, version 1.2.1 and version 1.2.1r2 should be detected as the same version number as far as the capability detection in the python library goes.
cleaned up libraries
This version cleans up a variety of bugs and generally cleans up the libraries -- it is to be preferred above all previous versions.
Added the LCDsetColor command, which allows you to choose whether you're drawing in black or white. Setting the color to white and then drawing allows you to erase pixels
Added the drawFigure example which draws a regular polygon of n sides where n >= 3
added EEPROM and LCD commands; lots of bug fixes
This version has major fixes to the .ino code for sparki over the previous version, and should be used in favor of all other versions. Since the previous version, I switched to the newest Sparkiduino compiler, which also has upgrades from the Arduino compiler. The differences in versions freed up some storage space and allowed me to add commands to the API.
Issues fixed since the last release:
- motors() should be fixed for all users of the robot (several other commands were fixed due to the same issue)
- motors() should accept a float value for time instead of truncating to an int
- bug in setSparkiDebug() fixed
- waitForSync() should timeout sooner than it did previously
Commands added since the last release:
- EEPROMread() and EEPROMwrite() -- allow reading and writing to the EEPROM on the processor
- LCDdrawLine(), LCDdrawString(), LCDreadPixel() -- respectively, draws a line on the LCD, draws a string on the LCD, and returns True if a pixel on the LCD is colored in
- start_sync_server() and start_sync_client -- begins a server and client, respectively, to synchronize actions over the network
Known issues:
- It appears that the RGB command on the sparki is flaky when the red component is equal to the blue and green
- The battery voltage is being reported too low -- lower than it actually is. I believe this to be an issue with an underlying library
fixed packaging and added sync commands
This is the first package I've done for outside distribution, and there were some hiccups getting everything working. The package should now install correctly using python setup.py install or easy_install sparki-learning
I've also added commands to make synchronizing actions across multiple robots easier. See the synchronization commands for more info.
added sync_lib
added a couple of experimental functions to permit easy synchronization over the network of multiple computers running their respective robots
added setup.py for easy install
This version is the first with (I hope) the capability to be easily installed using setup.py. I'm trying to get it working to install via pypi as well.
version 1.1.0
Updated the python library with the grid commands.
drawFunction(function, xvals) - draws the function given on the coordinate plane; the function given as the argument should be a lambda function which calculates the y coordinate for a given x; the xvals argument should be an iterable of the x values for which to calculate a y value; a test / example python file has also been added demonstrating the use of this function
getAngle() - returns the current heading of the robot in degrees, where Sparki starts at 0 degrees when initialized; only turns done through turnBy() will be "tracked" for the purposes of this command; a heading of 0 is treated as going up the y axis
getPosition() - returns the current position of Sparki on the coordinate plane
moveBy(x,y) - moves to the x,y position relative to the current position; the behavior of this command is exactly the same as a moveTo() executed immediately following initialization
moveTo(x,y) - moves to the x,y position indicated on the coordinate plane
resetPosition() - resets the position to a heading of 0 and a current position of 0,0
setAngle(degrees) - sets the current heading of the Sparki
setPosition(x,y) - sets the current position on the coordinate plane
The turnTo(degrees) command has had its behavior changed since the previous version. It will now turn to the heading given as the argument.