Přejít k navigační liště

Zdroják » Různé » Moje garáž, můj hrad – zapojujeme Arduino Yún

Moje garáž, můj hrad – zapojujeme Arduino Yún

Články Různé

Arduino Yún kombinuje na jedné desce Arduino Leonardo a linuxový počítač s distribucí Linino odvozenou od OpenWRT. Tato kombinace spojuje jednoduchost Arduina pro komunikaci se senzory s výpočetním výkonem a síťovou komunikací na Linuxu. V článku se budeme věnovat konfiguraci Arduino Yún a propojení Arduino – Linux.

Nálepky:

Napájení

Před prvním zapojením Arduina Yún si uvědomte, že nemá regulátor napětí a je třeba ho napájet 5 V. To v případě, že byste napájení zapojili na pin Vin. Pro napájení se používá mikro-USB kabel s příslušným zdrojem. Špičkový odběr Arduino Yún se zapnutou Wifi a SD kartou je cca 315 mA, takže bude stačit běžný napájecí adaptér. Lze také dokoupit modul PoE, který si pak musíte na příslušné místo sami připájet. Pozor, aby byl modul s Arduino Yún kompatibilní.

Základní konfigurace

Předpokládám, že jste na Arduino rozblikali alespoň LED a nebudu se zabývat instalací Arduino IDE, nastavením komunikace s deskou, atd.

Základní konfigurace probíhá přes webové rozhraní. Připojte se na Wifi, který se jmenuje Arduino Yun-xxxxxxxxxxxx. To za pomlčkou je MAC adresa Wifi adaptéru vašeho Arduino Yún.

image1

V prohlížeči potom otevřete stránku http://arduino.local/ nebo http://192.168.240.1

image2

Výchozí heslo je arduino.

image3

Pomocí tohoto rozhraní provedete potřebnou konfiguraci, zejména změnu hesla a jména desky.

K desce se můžete samozřejmě připojit i přes SSH.

image4

SD karta

Vnitřní paměť Arduino Yún není nijak veliká. Je ji možné rozšířit na SD kartu, ale mě stačila. Python skripty a konfiguraci budeme ukládat na SD kartu. Aby systém SD kartu automaticky rozpoznal a připojil, tak je na ní třeba vytvořit adresář arduino s podadresářem www. Takto vložená karta se připojí na /mnt/sda1.

Knihovna Bridge

Komunikace Arduino – Linux probíhá přes sériovou linku a je zapouzdřena do knihovny Bridge.

image5

Zdroj: http://arduino.cc/en/uploads/Main/BridgeInShort.png

Díky knihovně Bridge můžete využívat veškeré zdroje linuxového prostředí v prostředí Arduino.

V tomto projektu budeme z knihovny Bridge potřebovat jen malou část, která nám umožní z Python skriptu načíst hodnotu z dálkoměru. Jedná se konkrétně o třídy YunServer a YunClient. Vestavěný server v linuxovém prostředí umožňuje předávat parametry do aplikace, která běží v prostředí Arduino a z Arduino prostředí pak můžete zapsat informaci zpět.

Příklad: Ovládání LED na desce přes web

Každý zná aplikaci „Hello world!“ v mnoha jazycích. „Hello world!“ pro Arduino je blikání LED, která je umístěna přímo na desce na pin 13. Následující příklad bude rozsvěcet a zhasínat LED přes URL.

#include <Bridge.h>
#include <YunClient.h>
#include <YunServer.h>

const int LED = 13;
YunServer server;

void setup() {
  pinMode(LED,OUTPUT);
  digitalWrite(LED, LOW);
  Bridge.begin();
  
  server.listenOnLocalhost();
  server.begin();
}

void loop() {
  YunClient client = server.accept();
  
  if (client) {
    String command = client.readString();
    command.trim();
    if (command == "on") {
      digitalWrite(LED, HIGH);
      client.print("ON");
    } else if (command == "off") {
      digitalWrite(LED, LOW);
      client.print("OFF");
    } else {
      client.print("ERROR: " + command);
    }
    
    client.stop();
  }
  delay(50);  
}

Pokud nyní zavoláte z prohlížeče URL ve tvaru

http://[adresa Arduino]/arduino/[command]

tak vše od arduino/ dál bude předáno do prostředí Arduino a načteno metodou readString() třídy YunClient. Odpověď pak zapisujete metodou print(). Důležité je nezapomenout na ukončení spojení metodou stop().

Při prvním pokusu nejspíš budete požádáni o jméno a heslo k Arduino Yún. Ve výchozím nastavení je toto volání chráněno heslem. Vypnutí provedete přes webovou konfiguraci, nebo budete jméno a heslo používat.

image6

Python skript pro ovládání LED

Na Arduino Yún je předinstalovaný Python 2.7.3. Pokud chcete z Python skriptu předat požadavek do Arduino prostředí a získat odpověď, stačí komunikovat přes localhost. V opačném případě, kdy potřebujete z Arduino prostředí spustit Python skript, resp. libovolný program v linuxovém prostředí, a předat mu parametry, tak použijete třídu Process.

Jednoduchý skript pro ovládání LED pomocí Python:

#!/usr/bin/env python

import urllib
import sys

if len(sys.argv) != 2:
    sys.exit(1)

if sys.argv[1] == "on" or sys.argv[1] == "off":
    u = urllib.urlopen('http://localhost/arduino/' + sys.argv[1])
    print u.read()

Závěr

Velkou výhodou Arduino Yún jsou možnosti komunikace přes ethernet nebo Wifi díky vestavěnému linuxovému prostředí s přijatelnými nároky na energii. Samozřejmě provozovat Arduino Yún se zapnutou Wifi na baterii nebude mít asi dlouhého trvání. V dalším díle se zaměříme na službu IAM a SQS z Amazon Web Services.

Komentáře

Odebírat
Upozornit na
guest
2 Komentářů
Nejstarší
Nejnovější Most Voted
McHa

Díky za pěknou serii ;) článků, moc se těším na další.

Spíš filozofujici otazka:
Sám mám Yun a dost přemýšlím proč je to udělané tak jak to je? Proč používat Bridge knihovnu a nekomunikovat
z Linuxu pěkně, např. z pythonu přes serial port, rovnou s AVR částí přímo? Tedy proč tam vkládat mezičlánek Bridge knihovny. Chápu, že pro některé aplikace to může být fajn, ale pro některé by bylo asi klidnější a hlavně paměťově-úspornější, rovnou sahat z linuxu na AVR a neřešit univerzální seriový protokol přes mezičlánek. Zatím jsem si jen hrál, ale obávám se, že až budu chtít udělat něco opravdovějšího, bude mi na AVR docházet místo a pak každý bajt jako když najdeš :). Ale to je spíš otázka na někoho kdo Yun navrhoval. ;)

Jinak k vaší serii. Moc se těším na další pokračování :)

Frugal computing: architektura pro dobu dražší infrastruktury

Vývojáři se naučili zrychlovat dotazy, přidávat cache, škálovat služby a hlídat účet za cloud. Frugal computing začíná o jednu otázku dřív: musí se výpočet, přesun dat, volání modelu nebo uložení vůbec stát? Rostoucí spotřeba datových center a nové evropské reportování ho posouvají do návrhu architektury, dřív než do závěrečné poznámky o udržitelnosti v prezentaci.

Odysseus: PewDiePie vydal open-source AI workspace, který běží na vašem vlastním hardwaru

AI
Komentáře: 0
Felix Kjellberg, youtuber se 110 miliony odběratelů, strávil rok učením se programovat a fine-tuningem vlastních AI modelů. Výsledkem je Odysseus – bezplatný, open-source workspace pro práci s umělou inteligencí, který neposílá žádná data do cloudu. Projekt má týden, přes 61 000 hvězdiček na GitHubu a znovu otevírá otázku, komu vlastně patří váš digitální kontext.

Když Git už nestačí: jak izolovat databázový stav pro pokusy AI agentů

Gitová větev vývojářům oddělí kód, ale databáze často zůstává společná. U AI agentů je to slabé místo: rychle spouštějí migrace, mění data a zkoušejí víc cest najednou. Databázová větev jim dá vlastní pracovní prostor, jenže tím práce nekončí. Ještě je potřeba řešit citlivá data, oprávnění, životnost větve i zbytek stavu aplikace.