Close

Vytvořte si pro Arduino vlastní appku!

Vytvořte si pro Arduino vlastní appku!

Kdo by si nechtěl vytvořit vlastní appku pro ovládání Arduino projektu? Vytvořit takovou aplikaci pro Smartphone snadno a rychle umožňuje online grafické prostředí MIT App Inventor a my se dnes na tento mocný nástroj podíváme blíže. Po přečtení článku budete schopni vytvořit vlastní aplikaci podle potřeb Arduino projektu co máte na stole. Již v článku o Arduino lampionu jsem se okrajově zmínil o online grafickém prostředí a tam jste také mohli posoudit první příklad konkrétní aplikace.

Programovací prostředí MIT App Inventor pro Android je dostupné na domovské stránce http://appinventor.mit.edu/explore/. K zahájení práce stačí pouze Google účet nebo registrování. Ve vašem účtu se pak ukládají rozpracované projekty. Vývojové prostředí (IDE) je intuitivní a uživatelsky přívětivé. IDE připomíná například prostředí mBlock, které znáte z programování robotů mBot.

Potřebné Arduino věcičky

Začínáme tvořit

Online vývojové prostředí je ideální pro začátečníky, kteří nemají zkušenost s textovými editory a vše se teprve učí. Veškeré ovládací prvky jsou přehledně rozděleny na levé straně okna, zvolený prvek pak stačí jednoduše přetáhnout na obrazovku telefonu uprostřed okna. Poté můžete přiřadit  příslušné parametry, jako je výška, šířka, barva textu, pozadí a jméno prvku. Následovně se přepnete do block editoru a napíšete nějaký kód, který určí co se odehraje, pokud dojde k interakci se zvoleným prvkem.

Na obrázku níže je designer mode pro grafickou úpravu appky.

Začínáme tvořit vlastní appku v MIT App Inventor
Začínáme tvořit vlastní appku v MIT App Inventor

Block Editor

Kód je podobný tomu, na co jsme zvyklí ze známého Arduino IDE. Rozdíl je v tom, že je v grafických blocích, které přidáváme přetažením z levého sloupce. V tomto sloupci najdeme oddíly Control, logic, math, text, lists, colors, variables a procedures. Dále je výhoda, pokud máte alespoň malou zkušenost z textového IDE. Na obrázku níže je ukázka Block Editoru s bloky kódu.

Block Editor
Block Editor

Návrh aplikace

Jako příklad si vytvoříme jednoduchý Arduino chat, pomocí TextBoxu vloženého do aplikace. Arduino nám zopakuje přijatý text do Serial monitoru. Celý postup je zachycen ve videu. Sestavte si design a blocky kódu podle návodu nebo otevřete již hotový projekt zde. Vložíte pomocí záložky Project>Import project (.aia) from my computer …> vlož stažený soubor .(aia). Aplikace posílá uživatelem vložený text jako String a na konci každého řetězce je znaménko závorky jako ukončující prvek, aby Arduino vědělo, kde je konec přijatého textu a mohlo si vynulovat proměnou pro přijatý text. V kódu Arduina je podmínka :

if(text==„povel1“)
{
Serial.println(„povel1 byl akceptován“);
}

tímto způsobem lze vytvořit jednoduchý protokol komunikace mezi appkou a Arduinem pro více ovládacích prvků použitých v aplikaci, pokud zadám do TextBoxu povel1 a odešlu, podmínka se splní a provede se kód v podmínce. Tímto způsobem bych pokračoval, dám povel2, povel3 … pro více tlačítek.

V Blocks Editoru se nachází v pravém horním rohu ikona batohu, kde si můžu ukládat již hotové často používané celky bloků pro pozdější použití. Také je zde možnost vývoje v reálném čase, připojím svůj mobilní telefon přes USB nebo WIFI k počítači a v okně nahoře najdu odrážku Connect>USB, objeví se chybové hlášení, kliknete na Need Help?,  kde se nachází návod na stažení a instalaci driveru. Po nainstalování driveru a jeho spuštění je ještě potřeba nainstalovat do telefonu aplikaci MITapp, stáhnete zde. Poté znovu najdu odrážku Connect>USB a na telefonu nám vyskočí aktuálně tvořená appka, při jakékoliv změně v editoru se aplikace v telefonu aktualizuje a zobrazí dle aktuálního nastavení. Ekvivalentem je možnost Connect>Emulator, kdy je Android telefon emulován přímo v prohlížeči. 

Arduino kód

// importování knihovny
#include <SoftwareSerial.h>  
// virtuální seriový port (RX,TX);  
SoftwareSerial bt(2,3);

// inicializace proměnné pro příchozí text    
String text;
char data; 

void setup()
{
  // inicializace bluetooth a sériové komunikace
  bt.begin(9600);
  Serial.begin(9600);
}

void loop() 
{
  // pokud bluetooth přijalo nějaká data
  if(bt.available())           
  {
    // uloží jednotlivé znaky do data
    data=bt.read();  

    // pokud byl přijat koncový znak ")"
    if(data==')')           
    { 
      // vypiš celý text do serial monitoru                   
      Serial.println(text);  
        // pokud je zadán povel1 proveď příkaz v podmínce
        if(text=="povel1")       
        {
          Serial.println("povel1 byl prijat");
        }
      // až se data zpracují, vynulujeme proměnnou
      text="";        
    }
 
    // jinak pokračuj v přičítání znaku do String text
    else
    {
      // načítání dalších znaků do text, dokud nebude přijatý znak ")"
      text+=data;     
    }
  }
}

Schéma zapojení Arduina a Bluetooth modulu

Schéma zapojení Arduina a Bluetooth modulu HC-05
Schéma zapojení Arduina a Bluetooth modulu HC-05

Na stránkách MITapp invertor najdete spoustu dalších užitečných tutoriálů s video návody. Odkaz na stažení instalace hotové aplikace zde. Telefon musí mít povolenou instalaci z cizích zdrojů, více info zde.

Zbyněk Daněk

Napsat komentář