MoDyz - это приложение для Android-устройств, позволяющее использовать их в качестве виртуального дисплея/панели управления для микроконтроллеров.
MoDyz общается с микроконтроллером по Bluetooth- или WiFi-каналу и старательно выполняет все поступающие от МК команды, позволяющие рисовать на экране смартфона, выводить текстовые сообщения, создавать органы управления…
И существенно экономить на пинах МК, оставляя их свободными для более важных дел.
Но к делу. Вот простейший скетч - ставший классикой “Hello world!”:
#include <SoftwareSerial.h>
SoftwareSerial mySerial(7, 6); // RX, TX
String cmdBuffer;
void setup() {
mySerial.begin(9600); // инициализация и настройка скорости программного последовательного порта
}
void loop() {
readSerialData();
}
void drawHelloWorld() {
mySerial.print("#ZS30;");
mySerial.print("#FZ8,1;");
mySerial.println("#ZC270,100,Hello world!;");
}
void readSerialData() {
char c;
if (mySerial.available()) {
c = (char)mySerial.read();
if (c==0x0A || c==0x0D) interpreteCommand();
else cmdBuffer=cmdBuffer+c;
}
} // of readSerialData
void interpreteCommand() {
if(cmdBuffer.length()==0) return;
if(cmdBuffer.equalsIgnoreCase("drw")) drawHelloWorld();//drawScene();
cmdBuffer = "";
} // of interpreteCommand
Скетч предназначен для работы по Bluetooth-каналу. В конкретном примере Bluetooth-модуль подключен к пинам 6, 7 и использует программный Serial (аппаратный остается для заливки скетчей и для вывода отладочной информации).
После инициализации канала в функции setup() скетч непрерывно прослушивает его (в функции loop()) и после обнаружения той или иной команды (в этом скетче - одна единственная команда “drw”), поступившей от смартфона, выполняет соответствующие действия. В данном скетче это функция drawHelloWorld():
- задание размера шрифта
- задание цвета шрифта
- вывод текста в заданном месте экрана
Результат работы этого простенького примера (часть скриншота):