arduino (and osepp lookalike)
simple command/response access via USB to analog and digital I/O
capabilities of Arduino Microcontrollers
http://prjemian.github.io/cmd_response/
uses EPICS asyn and Stream protocol
Installing EPICS on the Raspberry PI
http://prjemian.github.io/epicspi/
On 8/11/2014 1:22 PM, Ryan Pierce wrote:
I'm new to EPICS and am interested in putting it to some possibly unique uses. I'm a member of the Pumping Station: One makerspace in Chicago, which is a large non-profit community workshop with all sorts of tools (wood shop, machine shop, welding, electronics lab, CNC fabrication equipment, etc. and a scanning electron microscope, which I coordinate maintenance and training for) where members can collaborate and work on projects.
I'd like to use EPICS to control a custom all-grain beer brewing system I am constructing. I'm considering using an Arduino variant to do all low level hardware control, e.g. commanding valves, pumps, propane burners and/or heater elements, reading temperature, pressure, and flow sensors, etc. I'm guessing this would communicate via serial to a Raspberry Pi, which would run an EPICS IOC. I would use a laptop (or tablet?) networked via WiFi to the Pi as the control panel.
I know this sounds kind of strange, but the more I think about it, the more I like the idea of not having to write networking code or GUI for a control panel. Everything about the brewing system abstracts logically to process variables. I'm starting through the archived video presentations on a EPICS, and I'm wondering what best practices are for some of these things which I'm sure would also be used for more traditional science applications.
PID control: Code it on the Arduino, and expose the set point, PID constants and state over serial to the Pi, which exposes these as process variables? Or have the Arduino just expose the raw sensor data to the Pi, which exposes them as process variables, and run a separate process on the Pi that is an IOC publishing set point, PID constants, etc. that in turn reads and commands the lower level process variables? Or does EPICS have constructs for this already?
Ramp / Soak: this will drive the PID set point. I'd need to program profiles in with multiple temperatures and times. A process on the Pi maybe?
Event sequencing: I see EPICS has support for this. I'm not sure where to implement functions like "Add X quarts of water to the tank" where it would need to open a solenoid valve, count pulses on a flow meter, and close it when the level is reached. Or higher level sequences, like "first, fill the tank with X quarts, then heat it to this temperature and hold it there via PID, then prompt the user to dump in the grain, then run this ramp/soak profile", etc.
Alarms: I need the concept of multiple alarms that can be acknowledged / overridden. (Time to add grain, time to add hops, the pump flow rate dropped too low, etc.) I'm guessing this is a common problem and am wondering if there are already common solutions for this.
I'm interested in "async"; I'm wondering if this would make things easier by handling serial communications with the Arduino and allowing me to publish PVs on the Arduino without writing custom IOC code on the Pi.
Is MEDM still the way to go for control panels? I'm also wondering if there are any EPICS compatible control panel apps for IPad or Android tablets.
I'd like to publish data to the web so interested people can see the state of the brewing. Is there any kind of framework for publishing EPICS PVs to the web without having to write lots of custom code?
Anyway, I know this is unusual, but it sounded like a fun project to me. I think it would be interesting to see what would happen if EPICS and the maker community intersected.
Thanks,
Ryan
--
----------------------------------------------------------
Pete R. Jemian, Ph.D. <[email protected]>
Beam line Controls and Data Acquisition, Group Leader
Advanced Photon Source, Argonne National Laboratory
Argonne, IL 60439 630 - 252 - 3189
-----------------------------------------------------------
Education is the one thing for which people
are willing to pay yet not receive.
-----------------------------------------------------------
- References:
- New to EPICS - system design questions Ryan Pierce
- Navigate by Date:
- Prev:
Re: New to EPICS - system design questions Mark Engbretson
- Next:
RE: USB asyn driver ulrik.pedersen
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
<2014>
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
- Navigate by Thread:
- Prev:
Re: New to EPICS - system design questions Mark Engbretson
- Next:
Re: New to EPICS - system design questions Michael Davidsaver
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
<2014>
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
|