Wow, knackered. I had a 4
day weekend from Thurs-Sunday, so broke up from work on Wednesday and was
looking forward to a productive R2 weekend.
I got my Adafruit I2C servo controllers back, made up a test sketch and mucked
about with the new library that Graham Short (James’ dad) wrote for me. He has done a superb job, it does exactly
what I want. Any Adafruit can be setup
and addressed, from any Arduino on the I2C bus.
I have tested 2 arduinos on 2 adafruits, both running looped scripts,
and as long as the Adafruit recieves commands from only one arduino at at time its fine. Superb
library, really brilliant and saves a lot of messing about. I will post that once I get the go ahead, and
have it running in the droid and fully tested to death. :)
So with the basic testing done, I mounted the Adafruit (0x41 address) in the dome and
neatened all the servo wires, it looks so much better, but I did have to remake
all my servo extensions, a bit of a painful job, but done now.
Then while rewiring the Teeces I went to reconnect the USB (how it
got power), and found there was no USB adapter on the board. It was stuck to the end of the USB lead. So one dead Pro Micro. :( The new promicros have less space thanks to a
different compiler, so I had no way to update my Teeces code. So a decision had to be made.
After a bit of thought, I removed all the HP code from the Teeces BHD code, and that
gave me loads of spare room, I added back in all the stuff I had recently
changed due to lack of space and used one of the new promicros to run it. So logics and PSIs back on. :) But that left me with no HP LEDs, so I added all the HP LED control to
the dome servo controller Arduino, but this time I added them as PWM, so I have a
nice flicker and a strobe (more of a scroll from low to full brightness and
back on a loop), really pleased with the change. I just have a few combo scripts to rebuild
now, but the base code works. I have just used single LEDs for the HPs, I haven’t
added the holo boards, think I will save them for R3, the single LEDs are
fine. Why anyone needs enough power to
blind people is beyond me, seeing it’s on is all I need, I rarely run him in
the dark, so lighting the room from the HPs isn’t needed. :P
So having sorted the HPs on the bench, I then had to rewire them in
the dome. I simply removed them from the
PSIs and wired them back to the Servo controller Arduino (currently just a Mega I had spare), I intend
to put all that code on either the dome bump controller or magic panel
eventually. The wiring was getting
better and then worse again in stages.
So I looked at it objectively, and came to the conclusion that mounting
the slip ring board to the baseplate was making it difficult. So I removed it from the baseplate and
mounted it to the dome, so all the wires are now fixed and don’t need
disconnecting to get the base off, it also acts as an I2C bus. With that mounted I managed to get the
internals of the dome looking better than ever before. :D
The wiring stands clear of the servo arms for a short section.
Adafruit All wired up.
Mega (was spare, uno would do same job), with 3 PWM HPs and I2C connected.
Then I was looking at the cheat sheet and the commands spread sheet
and decided I haven’t got enough command space, especially with more gadgets planned. So I decided to add the 4 sets of 3 triggers
pressed. E.g. L1+L2+R1 (Not R2) and a button.
And moved a lot of the functionality about to better use the sets that
are easily accessed (single triggers). So I finished off
my spreadsheet of all the newly configured layout and new options, and set about redoing the code. I started with the Pad, then the Master, then Teeces, Dome Servos, Body, MP3 and 2-3-2 controllers and
now I have 193 commands (up from 145).
Basically I rewrote the lot, I edited the way things work to be simpler,
added logic to turn elements on and off (2-3-2 controller and Dome position
pot), and I annotated all the code better and also made a lot of changes for
the better to help standardize the code.
I have a few bits to finish off and polish, i need to mount the body Adafruit and DC converter and connect the servos, then I need to load up
and retest all the options and make sure it is reliable and safe to use. Should be ok, most issues will be human error, I am pretty sure the
concepts and methods are fine. But it is at least a few nights testing. I am a lot closer to a write up thanks to those changes. :)
So to sum up, ALL the code has been re-written for all Arduino to
increase the number of options. The HPs
are now PWM controlled. The dome has
been completely rewired and neatened and now uses the Adafruit for the servos. I have a day or 2 more coding to add a slow Mexican
wave and a few new sound files etc and add the HP LED timings to the combo
scripts (was easier when running on the teeces), and a couple of lights demos
that will be a good way to show off quickly. Also added the secret script. Hope that CE2 will like that new one.
The dome redo has highlighted the slip ring again. I think I will eventually move the Dome Pot
to be on the dome and the wiper on the droid (flip the current setup) and mount
the slip ring to the dome not the droid.
It will mean I need one for each dome, but the benefits outweigh the
pain of buying one for each dome and of passing it up into the dome to connect
it.
Once the testing is done I will upload the code to my drive.
Oh and I got the new pad battery and a few other little bits, so just need the new screen now and I can start Pad Mk2 :)
Once the testing is done I will upload the code to my drive.
Oh and I got the new pad battery and a few other little bits, so just need the new screen now and I can start Pad Mk2 :)
Then i get in tonight and my brother arrives with a cutting list for the Mancave! 5.5mx3.5m internal space, double glazing, insulated, well excited. Hope to start on the frame in the next week or 2. :) Im gonna be dangerous once i get a workbench and some space. :)
It has been a top R2 week.
With all that space in that dome, surely it can't do very much :P
ReplyDeleteGreat job dude :) Looks very tidy. Mines messier and does next to nothing!