How to control 100 solenoids?!
-
You would use the SharedSPI library, the same way that SPI temperature sensors do. See function DoSpiTransaction in https://github.com/dc42/RepRapFirmware/blob/dev/src/Heating/Sensors/SpiTemperatureSensor.cpp.
-
@injoi9000 Nice project, good luck with it!
For deciding good from bad tea, I found some ideas here for tobacco: https://www.tomra.com/en/sorting/food/food-technology maybe helpful ideas. Spectroscopy may be the easiest to start. -
@injoi9000 If you're only controlling a conveyer belt, why not just hook up a simple driver (stepper driver, mosfet or ssr) to the raspberry pi? There's plenty of GPIO. I think the Duet might just add a lot of unneeded complexity, and the raspberry pi should be capable enough to do everything.
Even if it's for educational purposes, you're going to need to jump through a lot of hoops and make it do something it's not really made to do
-
@devleon Yea I am going to use the gpio for the solenoids. Hmm I just got in these parts:
https://www.mouser.com/ProductDetail/595-DRV8860APWUhh am I supposed to send these off to a custom pcb house to get soldered to a board? The chip is tiny and the pins are even smaller...
-
@joergs5 oh yea definitely. My friend got a quote from there and they said it would be more than $250k!! I am sure I can make a micro version for wayyy cheaper.
-
You can buy little SMD adapters that you can solder chip and headers to. Given you can use SPI then maybe you could use mcp23s17 + uln2803a which are available in DIP packages if thats important to you.
-
@injoi9000 to find out good and bad tea, you can send some thousands of images to amazon mechanical turk for classification, then train a neural network (e. g. tensorflow) and use it to separate them. As spectral light sensors, AS7262 and AS7263 chips may be useful.
-
@joergs5 I don't really know much about neural networks so using tensorflow might be a bit of a stretch at this point I was planning on just taking a picture, doing spectral analysis on that whole picture, I can pass that matrix through an effective bandpass filter, then calculate the gradients at the points that didn't pass, then figure out the bad leaves' location. Use the speed of the conveyor with some trajectory analysis and then shoot them out of the sky.
-
@bearer thanks! I am going to pick up a few of these to prototype and then maybe i'll see if I can get some cheap boards from china for the 100 solenoids:
https://www.mouser.com/ProductDetail/872-204-0004-01
I think I'm going to stick to daisy chaining the DRV8860's because I think I can get my head around that one. Still gotta figure out how to execute the SPI commands. Would you know any good guides using python?
-
@injoi9000 said in How to control 100 solenoids?!:
@bearer thanks! I am going to pick up a few of these to prototype and then maybe i'll see if I can get some cheap boards from china for the 100 solenoids:
Have you seen the price of those? It would be cheaper to design your own PCB and have the PCB made in China. There are several companies that offer low cost prototype PCB manufacture, e.g. Itead and Seed Studio.
-
@injoi9000 your workflow to analyze tea is good, and you can put the step neural network between between the step "calculate gradients" and the "figure out location". The neural network is a learning algorithm to differ good from bad: you take same thousand samples where you know the result, then let the neural network find the decision rules. Then you can let your computer decide good from bad. You can differ: tea from not_tea, good_tea from not_good_tea, small_tea(young) from big_tea_leaves.
-
@dc42 So I got one of those overpriced DRV8860 EVM boards so I could learn how to control it over SPI and I think I have come to a bit of an impasse. I can easily control the solenoids over the GUI but then when I take the driver itself and try to control it with a SPI interface from my laptop I can't seem get it to follow my commands...this is the gui interface for the DRV8860 and the interface for the SPI Driver Controller:
I then hooked everything up with my SPIDriver and tried to send the correct hexcodes to trigger the appropriate outputs but for some reason my MISO and MOSI outputs are being interpreted completely wrong... Any idea on how to command this thing?
my setup:
-
@injoi9000 said in How to control 100 solenoids?!:
DRV8860 EVM
This board does NOT appear to be set up to allow any external SPI control. The USB connector leads to a USB to Serial chip that, in turn, feeds a Texas Instruments MCU that, in turn drives an interface to the DRV8860 chips themselves. NONE of that is SPI.
You'd have to drive this USB, or, tap into the RX and TX lines between the FTxxxx chip and the MCU and drive it at 3.3V TTL serial.
-
s000o i have decided to make a board and it is going to take a few weeks to arrive from china...
In the mean time I want to try and use my duet to control about 15 solenoids. @dc42 Is it possible to use the motor plugs to turn actuate a solenoid???
-
@injoi9000 said in How to control 100 solenoids?!:
In the mean time I want to try and use my duet to control about 15 solenoids. @dc42 Is it possible to use the motor plugs to turn actuate a solenoid???
In principle yes, by connecting the solenoid to one phase output (the pin at one end of the motor connector and the pin next to it). You would have to use G1 commands to adjust the position, to get to full current in that phase (solenoid on) or no current (off). But RRF would keep warning you that the other phase is disconnected.
-
@dc42 would it be possible to connect one wire to the heater power and another to a PWM ground? Or would that destroy the heater power? Are there any other options?
-
You can connect solenoids to fan outputs if the solenoid voltage and current are compatible (I.e. VIN voltage and 1.5A or less). Duet revisions 1.02 and later include flyback diodes on the fan outputs.
If you connect solenoids to heater outputs, you need to add external flyback diodes. Without them, you are likely to damage the heater MOSFETs.
-
@injoi9000 I know this thread is very old, but I'm trying to do something almost exactly similar (control 88 solenoids). I'm very curious, did you manage to make it all work?