added I term to current control, had weird issues with battery #4 where the current reading dops down to 26 for some reason. After this happens, unloaded voltage on bat (through multimeter) reads >6, even though it seemed discharged before. I am doubting it was fully discharged, maybe the 5 minutes actually forced too much current in?
made some fixes to robot debug. Also added the current regulation to Charging.c, which seems to work!
fiddled with run around, filmed some demos. i have yet to make videos...i need to look that up
added a comment
it basically works! It calibrates the motors then drives in a mostly straight line
fixed lost of bugs in the libraries for spi and encoder
encoders.c works! there is a ton of debug output but I want to get the commit in before I am to tired and do something dumb.
added another function pointer to encoders which gets called after all bytes are recv'd.working on a behavior to drive in a straight line, but encoders are giving invalid on robot 5
Added skeleton for the bay board's behavior
Fixed compilation errors.
Hooray, it seems to work better.
fiddling w/ run_around. i wrote a function that does move(0,0) and delays whenever transitioning between moving forwards and backwards. it calls wl_do() simultaneously, and wireless still appears to work.
New stuff works, fixed bugs, removed malloc.
code commented and cleaned up. should work but untested.
Fixed the issue with green and blue channels coming faintly on at startup. BOM led issues debugged (the JTAG fuse was incorrectly set). lbom now in working order.
Changed bom_init and bom_on so that only bom_init needs the type argument. At the moment trying to debug some strange issue where PC4 and PC5 do not turn off.
Working on bayboard wireless
fixed LBOM code
Changed bayboard makefile
trying to get lbom code to work
tweaked smart_run_around for recharging...from now on, it will be known as smart_walk/crawl_around. slowing everything down seems to make recharging much more stable. maybe demo-ready.
Apparently wireless init finishes, but still no actual evidence of communication. Makefile updated to show which output it makes
commented out DEBUG
lbom library doesn't work
Added a port for time.c, which is tested and works. Still working on the initialization routines to try to get wireless working.
This is the first attempt at porting the wireless library to the charge bay board. This mostly involved a lot of complicated #defines to change hardware interface. ROBOT and BAYBOARD should be defined when compiling, which currently I think is handled in the Makefile with -D arguments. This code does not work, still working on debugging.
This will be a test to run on the bay board to verify that the wireless token ring is functioning. At the moment the wireless library does not work, so neither does this.
fixed hanging issues in stop.c, should work now NEEDS TESTINGupdated to newer version of i2c.c
replaced smart_run_around with demo version from trunk. works much better now.
minor changes to autonomous recharging on the dragonfly. still experiencing problems with run around.
reads first byte of left encoder correctly, still can't get second byte
Moved needed files into the trunk already.
Not used anymore.
Isn't used anymore. Getting rid of it.
Deleted deprecated charge_station_isp branch. All work is done in autonomous_recharging branch now.
encoder: added data array buffer and accumulators
Fixed a bug in encoders.
Wrote encoders.c and encoders.h Would GREATLY appreciate it if someone could check if I got the receive function correct. There was a lot of bit twiddling. Useful functions still need to be written, however receiving raw encoder readings should work (not tested... so don't bet on it)
deleted orbit branch
orb library should workcode format is correct with _BV()
Updated port of wireless library to bay boards.
it is having problems after the first charge where it gets stuck and stops sending anything
stop.c actually does what the folder title impliesIt only looks at the homing data and the contact stuff and sends it to the robot
plz work now red
Set color(int) is better now
Added the bayboard library
defining pretty colors
pretty colors defining
trying to fix red
Added everything necessary to make the bay bootloader. The bayboardBOOT.c was modified from the ATmegaBOOT.c in the old repository. I took out all of the #ifdef crap that dealt with other processors and products.
The bay board library now compiles, usb communication has been verified. Next commit I will add the source, makefile, and hex for the bootloader. The main.c in charging_bay/main.c now has something I'm working on to be able to switch to bootloader by pushing the button
Continuing to flesh out bayboard library
Wireless commands to request charge and to depart station now work (don't know what was wrong). Demo is possible...just need charge boards to work.
Copied reset and serial code from dragonfly, have not modified it yet
a first stab at lbom and orb libraries for the new charge bay. it all needs testing.
Added folder libbayboard and charging_bay. libbayboard is to hold the bay board library, charging_bay will hold the main code that actually goes on the bay board
synchronized speeds between modules.1 full seek and orbit test completed.stability still an issue.
Testing out deleting branches. i2c works and this branch is no longer needs to be used.
Created the i2cplugnplay project and copied important files over. Will flesh out the API and figure out everything later.
encoders might work now
It worked in initial trials without the orbit code, and worked a couple of times after the addition of the orbit code. Still not stable though.
ran two tests with the same battery, same conditions, different inductor.The numbers are looking somewhat iffy, but workable.
no explosions! removed hack from ConstantCharging.c and ran a test w/ the medium inductor, no freq hack, and saved it in data
General work on SLAM
Added the magnetic encoder datasheet.
Fixed some logical and typo errors in documentation
The changes in bom and dragonfly_lib are the result of me and James rehashing the bom driver code. This now includes the updated analog reading, and control of the BOM1.5's emitter selection capability. The emitter selection has been verified, but I had to change the way reading the detectors works, so that needs to be re-tested for BOM and BOM1.5
turned down speed on smart_run_around...recharging seemed to work better (very subjective, I admit). cannot attempt demo video until wireless issues are figured out (i.e. wireless "button press").
bigger inductor seems to not work without the freq hack
BFS worked in 2 out of many trials with 2 robots. However, it dropped wireless a lot and changes states more than it should.
added a define value for the change in direction used by the fsm.code worked in my trail w/ robot 1 as the decoy, robo 7 as the driver
finished my lights driver, but it doesn't work; it turns the lights on to one color, and they stay that way, no matter what.
bfs_fsm without the orbit behavior at the end
Updated bom.c and bom.h to implement James' changes for BOM1.5
potentially functional SPI driver, will test tonight
more broken code
More testing. Transmission is messed up.
Read the datasheet again and I think we had things out of order. Reversed the order but didn't test yet.
Recopied original template file that didn't have experiments in it.
Creation of branch for work with new charge stations.
Cleaning up accidental branch.
EXPLOSION! aka the boards are now testable and hopefully won't explode next time.ConstantCharging.c currently has the frequency hackthe two data files are real battery tests
Modified spi.c/h. Sends 1 packet before failing. Funny light blinking thing happens when sending, no idea where that came from. It looks like the orbs are used as transmit lights but there's no code for that as far as I know.
worked on lights driver, set up everything except a sort and a time-split calculating method
Further work on SLAM...
battery code now works
Non-working update to wireless, sending separate packet for passing the token.
removed any conflict with other fsm variables.added tentative orbit stop, which needs encoders to be accurate.
change battery() to battery8()