Что касается самой постановки задачи, то это ООП в чистом виде. Имеем физический объект - микроконтроллер. Далее по шагам:
1. описываем его состояние в виде набора числовых и логических переменных,
2. описываем методы изменения состояния (включение/выключение устройств, регулировка уровней громкости и т.п.) с указанием соответствующих числовых или логических параметров, по сути это процедуры для конкретного набора действий,
3. описываем протокол обмена через последовательный порт в формате json-rpc или xml-rpc (первый более компактный),
4. разрабатываем пользовательский интерфейс андроидного приложения,
5. кодируем и отлаживаем на реальных устройствах.
Именно так у меня реализовано управление FM-приемником на RDA5807 +
Arduino Uno из андроидного приложения.