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
red works?
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
orbit code
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.
Branch Clean-up.
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
Lights branch
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()
made a copy
Created a branch for wireless development.
Did some slam work, trying to get together a good statistical way of reading range values.There will be experimenting.... boring horrible experimenting
added orbit fsm
Modified the spi module a bit. Didn't test it but this might be better. Need to talk to Ben about it.
Started the encoders file. Nothing in there because I don't have a stable SPI interface to work with yet.
made orbit branch
create orbit branch folder
slave -> master kind of works
SPI test code update
wrote wrapper functions for new BOM code. also added compiler warning (for deprecated functions) to bom.h. it will show up whenever something that includes bom.h is compiled. have yet to merge new BOM code.
update assigning bay based on battery reading (seeking robot), also fix some bugs
tested/fixed new BOM code. bom_refresh() did not use the lookup table before calling analog_get8(). but now it works. run main in template directory to see new BOM buffer compared to old get_max_bom() values.
Laid out what I think will be the structure of SLAM for colony. This is an interesting project, and I think my strategy is a good one. It's laid out in the file server_main.c so read it if you're interested. I threw together the bare bones, but I realized that I might need to change my data_request code so that the order of packet arrival doesn't matter.
works for real this time! I haven't tried actually running a current through the board, but without that it shows proper debug values and Robot Debug/main.c formats them nicely!
I2C works! and by works i mean it sends some stuff and then crashes Tera Term
Commented a bit, just getting ready to start SLAM work in earnest.
Added the data response code to the slam project folder
Cleaned up to begin anew with the new data response code.
Fixed the BOM response code, needs to be tested.
IT WORKS! i cleared portb. oops.....
First crack at BOMv1.5 driver code. Pindefs are correct and the existing functions still work. At the moment the main function controls the clock and data of the rbom so you can shift things around. TODO: get bom_set_emitters working to correctly shift 16 bits around. Eventually this will have to be merged with the new bom code that James wrote, probably manually.
SPI Master->Slave works. Slave->Master not working yet. /template/main.c has the test bench. Yay!
The lib things were just because of a few recompilations.Data requests project works for IR, the problems with IR were almost definitely the problems with the others (encoder / BOM data).I'll fix the code for those next time, and then begin work on encoders....
who knows?
Add battery stuff to charging station
deleting rbom branch since it was done wrong the first time
added constant for battery packets
added battery level request handling and sending
Branching for BOM v1.5 testing
forgot the Makefile
working on getting I2C working. its not.
Changed formatting so that it isn't as messy. Probably won't compile. Still probably doesn't work.
We're ready to do a two robot autonomous recharging video with run around, aside from some docking problems. There seem to be wireless issues with three robots, however.
Minor updates to recharging, but the charging board no longer appears to tell us when we're done.
Rewrote bom.c and bom.h for the new analog8 code and for compatibility with bom 1.5 and rbom. BOM values are now buffered and updating them will require a call to bom_refresh. Old bom function calls have been left for backwards compatibility, but are now ...
rangefinders work w/ buffer.new function names:- analog8() = use buffer- analog_get8() = direct
Kevin you suck. -- Chris Your code does not compile. --Brian and Chris I changed analog8 to be what you had as analog_get8, and I did change the methods used in rangefinders and BOM.
Commented analog.c and analog.h.
Brian forgot to update bom.c and rangefinder.c to use analog_get8 and analog8 respecitively when he swapped the function names in analog.c. This has been fixed. Code not tested or compiled but should be ok.
Copied new analog code into recharging branch.
Recharging still doesn't work with analog - analog not giving correct values.
Analog out of bounds memory access error fixed.