I’ve put all the newer components online, sketchup models are now in googles 3d warehouse and Eagle3D added to the existing library.
Some more components added to the Strobit Eagle3d Library. Can be found here.
Sparkfun SMA PCB Edge
Strobit Eagle3D Library now available for download….see Eagle3D Page
The RFM12 module is a pain to prototype with due to the 2mm header (won’t fit into the breadboard), so I’ve whipped up a prototyping board that brings out the pins to a standard header. It’s been it sent off for fabrication today so I should have back in the next week or so. I’m trying out www.batchpcb.com for the first time so will be interested in how they turn out.
In the meantime I’ve soldered on some wires but I don’t really like it.
As mentioned in my last entry I was toying with the idea of frequency hopping on the RF side of things, well looks like someone has implemented something similar here http://www.raccoonrezcats.com/rfmodem.html I’ll like to do something similar to this as it seems doable.
While not able to get some “hands on” development time over the weekend, I did more reading of the HopeRF modules and these will be able to achieve the hopping, as the can programmed to any frequency in the 902-928Mhz Freq range so definately looking achievable.
If what the above links says on the site then we could (at least in theory) have a max output of 1watt if we chose to implement hopping, else we are limited to 1mW output power.
Trying to fit the functionality into the existing ebay trigger receiver housing seems to be a royal pain in the butt, especially trying to work in with the batteries, so after a few days of PCB redesigns and juggling compments around I have put that particular design on hold and moved forward with my original PIC16F873A design, also I did not like the fact that there was 2 circuits to maintain, a transmitter and receiver, this then leads me to the next problem. I want something easy for the end user, something similar to the Pocket Wizard Plus that is really a no brainer for the user to drive, i.e. a switch to select operation mode and channels, a 3 and 4 way slide switch respectivly, well do you think I can source any 4 way slide switches easily? Seems I can get some 3 way easily enough, and I guess I could use a rotary switch but these are too clunky for my liking, but still an option.
A couple of design changes, main one being I could not physically fit a single design into the existing housings that would encompass the Tx and RX, the RX housing is the problem as it’s a fairly small board so that means I’ve had to change the processor so that I can physically fit everything as well as the RF onto the board, so now a single design using the PIC 16F873A now becomes 2 circuits, Tx and Rx using a PIC16F88 as the MPU.
I’ve put an initial design (both eagle source files and PDF) into SVN that is aimed as a board replacement to the ebay triggers.
As i’ve started using Eagle as my electronic design package (protel is fantastic but just too expensive), I’ve created a component library that I’ll be using on the Strobe trigger project. I’ve put the library in SVN for everyone to use and contribute towards –http://svn.everythingrobotics.com/strobist/eagleLib/
Things seem to have slowed down on the forums qute a bit, I’ve also put a poll up for the project name, based on a few from the marketing topic where a number of people have put forward their suggestions, well, while the poll has been viewed a large number, only 12 people have voted so far, a bit dissapointing, obviously they didn’t like the names I’ve pulled from the forums, Oh well I know you can’t please everyone.
Anyway moving forward….I’ve been busy researching RF modules and coming up with a prototype design. Currently I have 2 prototypes designs on the go. One as a drop in board replacement for the Ebay Triggers based on the RFPIC, the other as a Pocket Wizard type trigger, but hackable, based on the Phillips LPC2148 ARM7 Chip. The designs are not complete by any means. I’m still in 2 minds about the RFPIC Design I may for go it in favour of a standard pic with an external RF module, that way I could use the same RF module in both designs.
Finally worked out how to use the GPIO interrupts on the AT91SAM7X, which is the brain of the makecontroller. A couple of “gotchas” along the way, especially for a newby to these beasts like me, which as usual, after I’ve finally worked it out I look back see how simple it was lol.
The three main “gotchas” were:
- The ISR needs to be in its own .c file and the filename appended to the ARM_SRC section in the makefile. Reason: All IRQ need to be compiled in ARM mode
- In the ISR I needed to Read the Interrupt Status register, PIOB_ISR, I was not dodin gthis and so it would process the IRQ once and never again. By reading the ISR it clears it and allows interrupts on the PIO to re-occur.
- The very last thing in the ISR is to renable the AIC so that interrupts will be processed upon exit
Here is the code:
Well have the controller setup and have uploaded the demo code, all working 🙂 Now down too some serious work in getting buzzbot connected to the board.
The Board is based on the AT91SAM7X MPU, of which I have absolutely no experience, so the learning curve begins (right at the bottom). First thing I want to do is get the interrupts for the two wheel encoders working. From my initial research I gather that any of the inputs on the GPIO can generate an interrupt on a state change, exactly what I want. So now more research on how to make it happen using the ARM7 GCC tools I’ve installed, all demo code is compiling and working ok.
Looks like my starting point is some examples found here http://gandalf.arubi.uni-kl.de/avr_projects/arm_projects/index_at91.html
My new Make controller arrived today from www.makethings.com/makecontrollerkit Talk about fast delivery, just ordered it last week and arrived here in Western Australia today woohoo….
This impressive board seems to have pretty good specs, and from my initial look at it I’m pretty impressed by the features for the price.
Using the Embedded AT91SAM7X which is Based on the 32bit ARM7 core with 256K Flash, 55MHZ
Has heaps of buffered I/O bought out for easy access on the controller board, or you can pull off the Controller board get access to heaps more, although unbuffered, I/O.
Ethernet Port, USB, CAN Network, RS232.
x8 10bit Analog Inputs
x8 digital Out, with PWM
x4 Servo Motor Connections
x4 Status LEDS
I’ve just downloaded the the demo and could access the board from a browser via the ethernet. Tonight I’ll look at putting it on Buzzbot.
I came across an interesting article yesterday on Hack-A-Day about using a LED as a Photo Sensor and cheap communictaion device. This is achieved by using some physical properties of the LED for both Transmit and Receive. The article also links to a cool video clip demonstrating this. Original Article can be found here http://www.hackaday.com/entry/1234000873073550/
Anyway this sparked my interest and I soon had a PICAXE-08M hooked up to test if it-in fact it works (I also made sure that the date was not 1st April LOL). After about an hour I had it working, this code requires 3 LEDs, One acts as the Light Source and is always on (not really necessary, you can use anything as a light source, the brighter the better), the Second LED acts as the Sensor and is connected to two outputs along with the current limiting resistor, this is really the heart of the concept. The third LED is a status Indicator and gets switched on and off depending on the reading of the LED Sensor.
This idea, as simple as it is, makes for some interesting sensor ideas.
Here’s the PICAXE code – LEDSwitch.zip
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.