Arduino:Примеры/ConsolePixel: различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
Нет описания правки |
||
Строка 24: | Строка 24: | ||
Подключаем класс '''Console''' (она является наследницей '''Bridge'''). | Подключаем класс '''Console''' (она является наследницей '''Bridge'''). | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
#include <Console.h> | #include <Console.h> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 30: | Строка 30: | ||
Создаем константу для контакта, к которому подключен светодиод, и переменную, чтобы хранить в ней пришедший от консоли байт. | Создаем константу для контакта, к которому подключен светодиод, и переменную, чтобы хранить в ней пришедший от консоли байт. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
const int ledPin = 13; | const int ledPin = 13; | ||
char incomingByte; | char incomingByte; | ||
Строка 37: | Строка 37: | ||
В секции setup() инициализируем '''Bridge''' и '''Console''', а затем ждем подключения порта консоли. | В секции setup() инициализируем '''Bridge''' и '''Console''', а затем ждем подключения порта консоли. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
void setup() { | void setup() { | ||
Bridge.begin(); | Bridge.begin(); | ||
Строка 47: | Строка 47: | ||
Подключившись, выводим на консоль инструкции для этого примера при помощи функции Console.printIn(), а контакт для светодиода делаем выходным. | Подключившись, выводим на консоль инструкции для этого примера при помощи функции Console.printIn(), а контакт для светодиода делаем выходным. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
Console.println("type H or L to turn pin 13 on or off"); // "Впишите «H», чтобы включить, или «L», чтобы выключить" | Console.println("type H or L to turn pin 13 on or off"); // "Впишите «H», чтобы включить, или «L», чтобы выключить" | ||
Строка 56: | Строка 56: | ||
В секции loop() проверяем, пришла ли от консоли какая-либо информация. Если пришла, считываем самый старый байт, находящийся в буфере, и отсылаем его обратно в окно консоли. | В секции loop() проверяем, пришла ли от консоли какая-либо информация. Если пришла, считываем самый старый байт, находящийся в буфере, и отсылаем его обратно в окно консоли. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
void loop() { | void loop() { | ||
if (Console.available() > 0) { | if (Console.available() > 0) { | ||
Строка 74: | Строка 74: | ||
Весь скетч полностью – ниже: | Весь скетч полностью – ниже: | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Управление светодиодом через консоль | Управление светодиодом через консоль |
Версия от 18:18, 14 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Управление светодиодом через консоль[1]
Данный пример показывает, как передавать данные с консоли на Arduino Yun. То есть при получении символа «H» Arduino включит свой встроенный светодиод, подключенный к 13-ому цифровому контакту, а при получении символа «L» – выключит.
Класс Console, основанный на Bridge, позволяет отправлять информацию от Yun на компьютер – как если бы это была последовательная передача данных, но беспроводным способом. Он создает безопасное соединение между Yun и вашим компьютером при помощи сетевого протокола SHH.
Чтобы увидеть консоль, убедитесь, что Yun и компьютер находятся в одной беспроводной сети. Затем, открыв Arduino IDE и зайдя в пункт меню Tools > Port, выберите для Yun имя и IP-адрес. После этого откройте Port Monitor. Кроме того, консоль можно увидеть, открыв окно терминала, вписав ssh root@ yourYúnsName.local 'telnet localhost 6571' и нажав Enter. Когда у вас попросят пароль, впишите его.
Необходимое оборудование
- Плата Arduino Yun;
- Компьютер и Yun должны находиться в одной и той же беспроводной сети;
Цепь
Для этого примера цепь не требуется.
Код
Подключаем класс Console (она является наследницей Bridge).
#include <Console.h>
Создаем константу для контакта, к которому подключен светодиод, и переменную, чтобы хранить в ней пришедший от консоли байт.
const int ledPin = 13;
char incomingByte;
В секции setup() инициализируем Bridge и Console, а затем ждем подключения порта консоли.
void setup() {
Bridge.begin();
Console.begin();
while(!Console);
Подключившись, выводим на консоль инструкции для этого примера при помощи функции Console.printIn(), а контакт для светодиода делаем выходным.
Console.println("type H or L to turn pin 13 on or off"); // "Впишите «H», чтобы включить, или «L», чтобы выключить"
pinMode(ledPin, OUTPUT);
}
В секции loop() проверяем, пришла ли от консоли какая-либо информация. Если пришла, считываем самый старый байт, находящийся в буфере, и отсылаем его обратно в окно консоли.
void loop() {
if (Console.available() > 0) {
incomingByte = Console.read();
Console.println(incomingByte);
Если входящий байт – это «H», включаем светодиод. Если заглавная «L» – выключаем.
if (incomingByte == 'H') {
digitalWrite(ledPin, HIGH);
}
if (incomingByte == 'L') {
digitalWrite(ledPin, LOW);
}
}
}
Весь скетч полностью – ниже:
/*
Управление светодиодом через консоль
Пример использования платы Arduino для передачи данных от консоли на Arduino Yun.
При получении символа «H» Arduino включает встроенный светодиод,
а при получении «L» – выключает.
Чтобы увидеть консоль, в меню Port выберите имя и IP-адрес Yun, а затем откройте Port Monitor.
Кроме того, ее можно увидеть, открыв окно терминала, вписав ssh root@ yourYunsName.local 'telnet localhost 6571', а затем нажав Enter.
Когда вас попросят о введении пароля, введите его.
Цепь:
* Светодиод подключен к 13-ому цифровому контакту и «земле»
Создан в 2006 Дэвидом А. Меллисом (David A. Mellis),
vодифицирован 25 июня 2013 Томом Иго (Tom Igoe)
Этот код не защищен авторским правом.
*/
#include <Console.h>
const int ledPin = 13; // контакт, к которому подсоединен светодиод
char incomingByte; // переменная, куда записывается байт, присланный от консоли
void setup() {
Bridge.begin(); // инициализируем Bridge
Console.begin(); // инициализируем Console
// ждем, когда подключится порт консоли:
while(!Console);
Console.println("type H or L to turn pin 13 on or off");
// делаем контакт светодиода выходным:
pinMode(ledPin, OUTPUT);
}
void loop() {
// Проверяем, пришли ли от консоли какие-нибудь данные:
if (Console.available() > 0) {
// Считываем самый старый байт в буфере консоли:
incomingByte = Console.read();
Console.println(incomingByte);
// если это «H» (ASCII 72), включаем светодиод:
if (incomingByte == 'H') {
digitalWrite(ledPin, HIGH);
}
// если это «L» (ASCII 76), выключаем светодиод:
if (incomingByte == 'L') {
digitalWrite(ledPin, LOW);
}
}
}