I have to make some decisions on what direction I need to go with my buzzbot project, basically I have been frustrated with some short comings of the PICAXE microcontroller. The main being lack of any onboard timers and having only one common interrupt available. Also I think that I’m trying to fit too much onto one of these babies.
Don’t get me wrong I love these little guys, they are fantastic if all I need is polled I/O, which for the majority of the time is what I’m after, however everytime I want to do something time critical I hit a dead end.
Main issues so far:
PID Motor / Differential steering Control – No timer interrupts and PICAXE not being fast enough to update PID Calculation base on each wheel velocity. I have no real way of getting around this so I think my options are to move to an actual PIC (as opposed to PICAXE) and program the PID Differential Steering in C / Assembler.
PWM Motor Control – Limited to 2 pwm output pins on the picaxe28, (btw this in itself is not an issue, just trying to get it working on the existing H-Bridge which has 4 wires – and I didn’t really want to use any external logic), I have tried coding a PWM using picbasic, but does not have the resolution, so I may have to add some external “glue” hardware to allow my h-bridge to be driven from onboad pwm and forward/reverse direction. I’m also cosidering replacing the existing H-Bridge that was part of the R/C buggy with a L293 Dual H-Bridge chip, this in itself will solve my issues with PWM motor control, but still need to resolve the PID issue for my differential steering.
IR Detectors – I have moved the IR Detector Circuit offchip while playing with PWM / PID control. This I have implemented using a picaxe08M, also having some issues here, although I think I can get around these. The 08M only has one PWM onboard, and I’m using this to modulate one of the IR TX LEDS. I would love to have 2 PWM onchip as the PWM/IRTX/IRRX Combo works really well in detecting objects, I have moved to a proper IR Receiver rather than just an IR Opto Switch. I had issues with sensitivity, and using a proper IR modulated Receiver has cut these out. I guess it was ambient IR causing the problems. The only problm I have now is as there is only one PWM I need to modulate another IR TX (The right) at approx 40Khz. I have tried it in code but no go as the picaxe is not fast enough, So I have been playing around with the “infraout” commands of the 08M, this in conjunction with the PWM seems to be causing alot of noise on the RX, if I disable the infraout then all works aok, so some more things to look at, it may be that the same onboard timer is being used as with the PWM, or the infraout is spot on 38Khz, as I have found by detuning the PWM down I decreased my falses. Anyway will look into this a bit more.