Obsah:

Propojení zpracování a Arduina a 7segmentového a servo řadiče GUI: 4 kroky
Propojení zpracování a Arduina a 7segmentového a servo řadiče GUI: 4 kroky

Video: Propojení zpracování a Arduina a 7segmentového a servo řadiče GUI: 4 kroky

Video: Propojení zpracování a Arduina a 7segmentového a servo řadiče GUI: 4 kroky
Video: Hrajeme si s Arduinem 1: Rozbalení a sestavení - AlzaTech #23 2024, Listopad
Anonim
Propojení zpracování a Arduina a 7segmentového a servo řadiče GUI
Propojení zpracování a Arduina a 7segmentového a servo řadiče GUI

U některých projektů, které jste vytvořili, musíte použít Arduino, protože poskytuje snadnou platformu pro vytváření prototypů, ale zobrazení grafiky v sériovém monitoru Arduina může trvat docela dlouho a je dokonce obtížné to udělat. Na sériovém monitoru Arduino můžete zobrazovat grafy, ale grafy nejsou jedinou věcí, kterou je třeba zobrazit. Všechny interaktivní objekty, jako jsou posuvníky, tlačítka, programy s výstupem 2D, 3D, PDF nebo SVG, a také můžete snadno vytvářet animace. Výchozí programovací režim pro zpracování je Java, ale můžete jej přepnout na Android, p5.js, REPL, CoffeeScript a JavaScript. V tomto Instructable však použijeme programovací režim Java.

Veškerý obsah a kód je také k dispozici na mém githubu zde.

Krok 1: Použití Processing.serial

Zpracování kódu

První dva řádky kódu budou

zpracování importu.sériové.*; Sériový myPort;

Zde v prvním řádku importujeme knihovnu - zpracování a ve druhém řádku vytváříme objekt třídy Serial s názvem myPort, podle pravidel pojmenování identifikátoru si jej můžete pojmenovat, jak chcete.

Při zpracování máme neplatné nastavení () a void draw (), kde void je návratový typ funkce, kterou můžete také změnit na int setup () a int draw () nebo jiný datový typ, který se vám líbí, ale budete muset vrátit hodnota, která má stejný datový typ jako datový typ, který používáte před funkcemi.

v setup () napíšeme příkazy, které potřebujeme provést jednou, zatímco v draw () napíšeme příkazy, které potřebujeme provést několikrát. Dva výše uvedené řádky kódu by měly být zapsány nad neplatné nastavení (), protože potřebují mít globální přístup.

V neplatném nastavení () budeme inicializovat objekt myPort.

neplatné nastavení () {

velikost (800, 800);

myPort = new Serial (this, "COM18", 9600);

}

Velikost čáry (800, 800); definuje velikost obrazovky 800 x 800 pixelů.

Klíčové slovo nové na druhém řádku slouží k rezervaci místa pro objekt v paměti, argumentem toto je referenční proměnná, která odkazuje na aktuální objekt. Argument COM18 je port připojeného Arduina, potřebujeme to, protože budeme přenášet data přes sériové rozhraní. Číslo 18 se ve vašem případě může lišit, najdete ho pod položkou Nástroje> Port v Arduino IDE a 9600 je přenosová rychlost, kterou můžete změnit v Arduinu i Processingu.

Krok 2: Pochopte sériovou třídu

Konstruktor pro Serial

Sériové (nadřazené, portName, baudRate, parita, dataBits, stopBits)

Argumenty:

rodič: obvykle použijte „toto“

baudRate (int): Výchozí je 9600

portName (String): název portu (výchozí je COM1)

parita (char): 'N' pro žádný, 'E' pro sudý, 'O' pro lichý, 'M' pro značku, 'S' pro mezeru ('N' je výchozí)

dataBits (int): 8 je výchozí

stopBits (float): 1,0, 1,5 nebo 2,0 (1,0 je výchozí)

Důležité metody:

  1. myPort.available () - vrací počet dostupných bytů.
  2. myPort.clear () - vyprázdní vyrovnávací paměť a odstraní všechna tam uložená data.
  3. myPort.read () - Vrátí číslo mezi 0 a 255 pro další bajt, který čeká ve vyrovnávací paměti.
  4. myPort.readString () - Vrátí všechna data z vyrovnávací paměti jako String nebo null, pokud není nic k dispozici.
  5. myPort.write ("test") - Zapisuje bajty, znaky, inty, bajty , řetězce na sériový port.
  6. myPort.stop () - Zastaví členění dat na portu.

Krok 3: Sériová třída Arduino

Sériovou třídu do Arduina nemusíte před použitím importovat.

V Arduinu existují 2 funkce, které se nazývají setup () a loop (), instalace běží pouze jednou, ale smyčka běží několikrát. V setup () potřebujeme zapsat pomocí metody begin () sériovou komunikaci. V Arduinu na rozdíl od zpracování nemusíme uvádět port jako metodu argumentů begin (), protože port již zadáváme při nahrávání skici do Arduina.

Takže setup () bude vypadat takto:

neplatné nastavení () {

Serial.begin (9600); // spusťte sériovou komunikaci

}

9600 zde určuje přenosovou rychlost, kterou jsme také uvedli ve zpracovávacím souboru. Pro správnou komunikaci by měly být obě přenosové rychlosti stejné nebo můžete sériový výstup považovat za něco bláznivého.

Nyní se podívejme na část loop (). Tato část kódu běží několikrát. Pokud chceme načíst některá data portem, použijeme metodu Serial.read (). Tato funkce vrací hodnotu null, pokud nejsou k dispozici žádná data, takže tuto metodu zavoláme, až když budeme mít k dispozici nějaká data v sériovém proudu.

Ke kontrole, zda jsou k dispozici nějaká data, použijeme metodu Serial.available (). Pokud vrátí hodnotu větší než 0 - některá data jsou k dispozici.

Část smyčky () bude tedy vypadat takto:

prázdná smyčka () {

if (Serial.available ()> 0) {// pokud jsou v sériovém portu k dispozici nějaká data

char state = Serial.read (); // přečtěte hodnotu

// příkazy if nebo case

}

}

Nyní můžeme použít if ladder nebo pokud existuje mnoho možných výsledků, můžeme použít switch case také pro proměnný stav.

Krok 4: Sestavte řadič segmentu GUI 7

Sestavte řadič segmentu GUI 7
Sestavte řadič segmentu GUI 7
Sestavte řadič segmentu GUI 7
Sestavte řadič segmentu GUI 7
Sestavte řadič segmentu GUI 7
Sestavte řadič segmentu GUI 7

Soubory jsou přiloženy zde. Poznámka: Ke zpracování budete také muset nainstalovat knihovnu control p5, kterou jsem použil k vytvoření interaktivních tlačítek GUI.

Čísla pinů

7 segmentů (v abecedním pořadí) viz obrázek

a - digitální pin 2

b - digitální pin 3

c - digitální pin 4

d - digitální pin 5

e - digitální pin 6

f - digitální pin 7

g - digitální pin 8

dp - digitální pin 9

Veškerý obsah a kód je také k dispozici na mém githubu zde

Doporučuje: