The updated software is shown in Listing 2. Unlike the
code in the first listing, the user’s actual heart rate controls
the remote system. Note the addition of the tempInput
port (A0) and pulseOut port (D7) on the Arduino, as well
as constants for heatIntensity and heat Time. They operate
as the names suggest.
For example, heat Time is the time in milliseconds that
the 100 ohm resistor is sent a 5V PWM signal at 100%
duty cycle. Note also that while most of the code is
unchanged from Listing 1, the comparison operators
within the main loop are the inverse of what appears in
Depending on the ambient temperature and exact
configuration of your hardware, you may need to tweak
the operating window to be larger or smaller within the
normal training range of the user. That is, you might select
a five degree window for the remote system to map onto
a, say, 20 heart beat range.
For debugging purposes, I left in the
Serial.println(temperature) function. You’ll probably need it
to get the operating window defined.
In my experiments using a 5% tolerance resistor and a
71 degree ambient temperature, the temperature value
was 478 cold. At a pulse rate of 90 beats/minute, the
value returned by the voltage divider reached a steady
state of 514 at two minutes. Most of the changes
occurred within 30 seconds of changing pace.
This is admittedly a narrow range of input voltages for
mapping purposes, and even though the thermal mass of
combination is small, it is significant.
If you want to get into serious
remote control of the temperature,
then replace the thermistor with a
sensitive solid-state temperature
sensor with good linearity. I’ve had
great results with the MCP9808 ($5;
Adafruit) which uses a standard I2C
interface. There’s a good tutorial on
the Adafruit site.
If you do opt for a more sensitive
and accurate temperature monitoring
sensor, then you have the option of
revisiting the time and duty cycle of
the signal sent to the 100 ohm
In the current configuration, the
power is either fully on or off. With
more dynamic range to play with,
you can experiment with modulating
the time and/or duty cycle of the
Of course, in the real world, you might be monitoring
and controlling a much larger heat source, offering a
much wider operating window and obviating the need for
a more sensitive and accurate sensor.
Operation, from the user’s perspective, is the same as
before. The user exercises at a high enough intensity to
keep the green LED illuminated, kicking it up a bit when
the white LED is illuminated and easing back when the red
LED lights up.
Although potentially unethical, you could also map
the changes in the remote system such that the user
would have to exercise past their 85% maximum heart
rate value in order to keep the remote system under
Admittedly, this is an Orwellian example of how
translational reality can be utilized. I don’t think that I’d
mind being used as a human PID controller for the heater
control of a municipal swimming pool, but I might have
second thoughts about remotely and unknowingly
controlling a Predator drone.
My point in this admittedly twisted exercise to
showcase what could be done with translational reality
technology is quite easy.
If you think about it, there are a number of innate
human skills or physiological attributes that could be
applied to much harder (and practical) problems. NV
December 2017 31