Hello, today i wanted share some detailed overview of modules, how they built and more importantly how they communicate with main controller, it's significant as standarized communication interface is something which make possible to easily extend capabilities through adding new module, so I put some thoughts behind design of modules interface.
So on controller there are 3 modules ports:
- Port red
- Port green
- Port blue
Each port consist of 3 pins:
- COMMON: configurable 3,3V input or output (additionally as 1-wire in case of port red)
- 12V supply(currently always on, but in future I plan to add "power drive" feature)
- GND
For driving Sensor modules following configuration of port will be used:
Com pin direction set to input, when sensor is not detecting anything it should give 3,3V after signal is detected it should pull COM pin to GND potential.
Supply for sensor is provided by two remaining ping - 12V and GND.
For driving Action modules
Com port set to output, when "action" is to be triggered, com port will go to High state out-putting 3.3V, but also reversed logic could be used here with no problems as default state can be configured as "HIGH" state.
For driving Motorised modules:
Currently I've implemented 1-wire communication(Over uart, so port red have additionally uart to 1-wire interface circuit) for bi-directional communication over single pin with motorised modules, thought behind it was that 1-wire interface can serve multiple slaves, so using one port there will be be possible to communicate with multiple nodes, this could be useful for example for some multi axis sliders, but now I come to conclusions that maybe i over-killed it a bit and think about changing this approach to "servo-like" interface, so first I want to try driving motorised module using soft-pwm this will not have possibility of driving mutliple nodes with one port, but then not only port red will be capable to drive motorised module, but each of port, so still it should be fine, anyway I will keep uart/1-wire interface circuit on port red, as this can be useful in future, and interface circuit in quite simple.
Ports function are configurable from app, function refer to COMMON pin function:
(just note that "Com" is communication function of port, it's different thing from "Common" port)
Reasoning behind naming port's with color's was that it's easy to distinguish quickly in program editor which port is being used.
So what's under the hood of currently implemented module
Reflection sensor consist of two iR-diodes and photo-transistor which is connected to voltage comparator, which compares voltage level set with potentiometer, it's supplied with AP1509 step-down converter. currently in best case operating range of this sensor is at maximum 35-40cm, but it differs greatly depending on color and surface of detected object, so in worst case for black material it can be reduced to 15cm, which is something which I want to improve in future.
Light sensor is...basically reused reflection sensor circuit without ir diodes as big photoresistor insted of phototransistor :)
Speaker driver module Sources: https://github.com/krzysztofkrzeslak/pixpi-speaker-driverFor speaker driver I used Arduino, dds generator and power amp modules and i found it as a good decision as this reduced complexity and costs of circuit. All is enclosed in black anodised aluminium case from Hammond, bought from local electronics supplier, washers for potentiometers and button was 3-d printed. Operating principal is that when it receives "HIGH" signal on com pin, it's starting to generating signal with frequency and gain, set with potentiometers. btw. those un-routed traces are connected with polygon after applying it, yea this board also need some tweaks, as I need also change potentiometers on it as this which i used now are quite expensive.
Pneumatic gun moduleHeart of pneumatic gun module is solenoid valve, solenoid of this valve is driven through small board with mos-fet(more on this in droplet module description), also very significant part of this module is pressure regulator, which o get from Aliexpress, "proper" use for it is pressurising keg with beer but I must stick with bottled beer now ;), as it works pretty well as supply for pneumatic gun :p, it supply about 10 Bar's , which is just right for crashing bulbs and glass, but not too much to create some serious injuries to photographer, anyway still safety glasses are necessary ;)
valve: Aliexpress link , those are marketed as fish tank valve ;)
For bullets i use something which is called clamping screw, which i get at local hardware store, they are cheap, working very well and even looks like bullets: google search link
barrel is just piece of stainless 10mm pipe, glued with to threaded reduction piece.
For droplet module as liquid reservoir syringe cylinder was used I just put sticker to it to make it look nice, valve unit is same as for pneumatic gun, so solenoid driven with mosfet board, also on mosfet board button can be seen, it's for manual valve opening, in case of this module it's very handy for example for filling valve with liquid, tripod mount is 3d printed.
Valve "holder" designValve driver board, here also some tweaks will be needed I need to add mos-fet gate protection and maybe not to drive coil directly through tact switch, but with using of on-board mos-fet.
Motorised modules (ExtremeMacroRIg) Currently one motorised module which is built is macro rig, currently i'm working on driving circuit
Sources: https://github.com/krzysztofkrzeslak/pixpi-stepper-driverCurrently I've got 2 prototypes for driving boards,but unfortunately I've got some problems making newer board working, so for software development I will fallback to older board, as generally they should be software compatible as i'm planning to put arduino bootloader to second board
...so for today I will end on this, just follow for updates ;)
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.