Chilling on the PFC1


#1

Greetings!

A design flaw of the PFC1 is heat aggregation from the lights and limited cooling infrastructure. I’d like to code the circulation and chamber fans to blow outside air into the chamber when heat exceeds the air_temperature target.

To do that I stole code from the chiller configuration in the PFC2.

- _id: heater_core_1_1
  arguments:
  - 6
  - true
  environment: environment_1
  type: binary_actuator
  inputs:
    cmd:
      variable: air_temperature
- _id: cooling_fan_1
  arguments:
  - 14
  - true
  environment: environment_1
  type: binary_actuator
  inputs:
    cmd:
      variable: air_temperature
      multiplier: -1
- _id: chamber_fan_1
  arguments:
  - 15
  - true
  environment: environment_1
  type: binary_actuator
  inputs:
    cmd:
      variable: air_temperature
      multiplier: -1

Note they are tied to the air_temperature var with a negative multiplier.

This doesn’t seem to be working just yet. @spaghet do you know what I’m missing to get the cooling cycle to work? Do I need to modify the python?

I’ve got everybody showing up in ROS.

pi@tangerine:~ $ rostopic list
/actuators/air_flush_1/cmd
/actuators/chamber_fan_1/cmd
/actuators/cooling_fan_1/cmd
/actuators/grow_lights_1/cmd
/actuators/heater_core_1_1/cmd
/actuators/humidifier_1/cmd
/actuators/water_circulation_pump_1/cmd
/diagnostics
/environments/environment_1/aerial_image/camera_info
/environments/environment_1/aerial_image/image_raw
/environments/environment_1/air_carbon_dioxide/info
/environments/environment_1/air_carbon_dioxide/measured
/environments/environment_1/air_carbon_dioxide/raw
/environments/environment_1/air_flush_on/commanded
/environments/environment_1/air_flush_on/desired
/environments/environment_1/air_flush_on/measured
/environments/environment_1/air_flush_on/raw
/environments/environment_1/air_humidity/commanded
/environments/environment_1/air_humidity/desired
/environments/environment_1/air_humidity/info
/environments/environment_1/air_humidity/measured
/environments/environment_1/air_humidity/raw
/environments/environment_1/air_temperature/commanded
/environments/environment_1/air_temperature/desired
/environments/environment_1/air_temperature/info
/environments/environment_1/air_temperature/measured
/environments/environment_1/air_temperature/raw
/environments/environment_1/cmd/commanded
/environments/environment_1/frontal_image/image_raw
/environments/environment_1/light_illuminance/measured
/environments/environment_1/light_illuminance/raw
/environments/environment_1/light_intensity/commanded
/environments/environment_1/light_intensity/desired
/environments/environment_1/light_intensity/measured
/environments/environment_1/light_intensity/raw
/environments/environment_1/water_dissolved_oxygen/measured
/environments/environment_1/water_dissolved_oxygen/raw
/environments/environment_1/water_electrical_conductivity/measured
/environments/environment_1/water_electrical_conductivity/raw
/environments/environment_1/water_oxidation_reduction_potential/measured
/environments/environment_1/water_oxidation_reduction_potential/raw
/environments/environment_1/water_potential_hydrogen/measured
/environments/environment_1/water_potential_hydrogen/raw
/environments/environment_1/water_temperature/measured
/environments/environment_1/water_temperature/raw
/internal_diagnostics
/rosout
/rosout_agg
/sensors/dht22_1/air_humidity/info
/sensors/dht22_1/air_humidity/raw
/sensors/dht22_1/air_temperature/info
/sensors/dht22_1/air_temperature/raw
/sensors/gc0012_1/air_carbon_dioxide/info
/sensors/gc0012_1/air_carbon_dioxide/raw

Thoughts appreciated!


#2

@webbhm Do you think he could use our thermostat code from the MVP stack?


#3

@Webb.Peter
Yes and no. The code would work, but it would totally bypass the ROS systems and the message/logging mechanism that it uses.


#4

Hey I’m sorry I haven’t been checking up in here too often…

If you’re able to flash the Arduino code using that fixture/param file and there’s a PID software_module for air_temperature in the launchfile, then I’m unsure what could be causing the issue.

Does /actuators/cooling_fan_1/cmd get published to?
If it does, it would be an Arduino sketch/codegen problem.
If not, does /environments/environment_1/air_temperature/commanded?