Periodically send a keep alive message to the Arduino.
        Frequency of keep alive transmission is calculated as follows:
        keep_alive_sent = period - (period * margin)


        :param period: Time period between keepalives.
                       Range is 0-10 seconds. 0 disables
                       the keepalive mechanism.

        :param margin: Safety margin to assure keepalives
                        are sent before period expires. Range is 0.1 to 0.9

        :returns: No return value

def keep_alive(self, period=1, margin=.3):
        """
        Periodically send a keep alive message to the Arduino.
        Frequency of keep alive transmission is calculated as follows:
        keep_alive_sent = period - (period * margin)


        :param period: Time period between keepalives.
                       Range is 0-10 seconds. 0 disables
                       the keepalive mechanism.

        :param margin: Safety margin to assure keepalives
                        are sent before period expires. Range is 0.1 to 0.9

        :returns: No return value
        """
        asyncio.ensure_future(self.core.keep_alive(period, margin))