Arduino:Примеры/ConsoleRead: различия между версиями
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">») |
Нет описания правки |
||
(не показана 1 промежуточная версия этого же участника) | |||
Строка 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: | ||
Создаем строку, в которой будем хранить информацию, присланную от Bridge. | Создаем строку, в которой будем хранить информацию, присланную от 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"> | ||
String name; | String name; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Строка 36: | Строка 36: | ||
В секции setup() инициализируем '''Console''' и '''Bridge'''. Ждем подключения консоли, а затем запрашиваем информацию. | В секции setup() инициализируем '''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"> | ||
void setup() { | void setup() { | ||
Bridge.begin(); | Bridge.begin(); | ||
Строка 49: | Строка 49: | ||
В секции 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) { | ||
Строка 57: | Строка 57: | ||
Если этим символом является символ новой строки ('''«\n»'''), то это самый последний символ пришедшей строки. Выводим на консоль сообщение, запрашиваем еще информации, очищаем строку. | Если этим символом является символ новой строки ('''«\n»'''), то это самый последний символ пришедшей строки. Выводим на консоль сообщение, запрашиваем еще информации, очищаем строку. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
if (c == '\n') { | if (c == '\n') { | ||
Console.print("Hi "); // "Привет " | Console.print("Hi "); // "Привет " | ||
Строка 71: | Строка 71: | ||
Если в пришедшей строке нет символа новой строки, то добавляем его к концу строки. | Если в пришедшей строке нет символа новой строки, то добавляем его к концу строки. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
else { | else { | ||
name += c; | name += c; | ||
Строка 81: | Строка 81: | ||
Весь скетч полностью – ниже: | Весь скетч полностью – ниже: | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Считывание текста в консоли | Считывание текста в консоли | ||
Строка 142: | Строка 142: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Портал/Arduino}} | |||
[[Категория:Пример]] | [[Категория:Пример]] | ||
[[Категория:Примеры]] | [[Категория:Примеры]] | ||
[[Категория:Пример программирования Arduino]] | [[Категория:Пример программирования Arduino]] | ||
[[Категория:Примеры программирования Arduino]] | [[Категория:Примеры программирования Arduino]] |
Текущая версия от 12:33, 8 июля 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Считывание текста в консоли [1]
Данный пример показывает, как сделать так, чтобы Arduino Yun при помощи функции Console.read() считывать данные, идущие от Bridge, а затем записывать их в строку.
Чтобы увидеть консоль, откройте Arduino IDE и, зайдя в пункт меню Tools > Port, выберите для Yun имя и IP-адрес. После этого откройте Port Monitor. Кроме того, консоль можно увидеть, открыв окно терминала, вписав ssh root@ yourYúnsName.local 'telnet localhost 6571' и нажав Enter. Когда у вас попросят пароль, впишите его.
Запуская скетч, убедитесь, что компьютер и Yun находятся в одной беспроводной сети.
Необходимое оборудование
- Плата Arduino Yun;
- Компьютер и Arduino должны находиться в одной сети;
Цепь
Для этого примера цепи строить не нужно.
Код
Подключаем класс Console (он является наследником Bridge).
#include <Console.h>
Создаем строку, в которой будем хранить информацию, присланную от Bridge.
String name;
В секции setup() инициализируем Console и Bridge. Ждем подключения консоли, а затем запрашиваем информацию.
void setup() {
Bridge.begin();
Console.begin();
while (!Console);
Console.println("Hi, what's your name?"); // "Привет, как тебя зовут?"
}
В секции loop() проверяем, есть ли какие-нибудь байты в буфере консоли. Если есть, считываем самый старый символ в локальную переменную.
void loop() {
if (Console.available() > 0) {
char c = Console.read();
Если этим символом является символ новой строки («\n»), то это самый последний символ пришедшей строки. Выводим на консоль сообщение, запрашиваем еще информации, очищаем строку.
if (c == '\n') {
Console.print("Hi "); // "Привет "
Console.print(name);
Console.println("! Nice to meet you!"); // "! Приятно познакомиться!"
Console.println();
Console.println("Hi, what's your name?"); // "Привет, как тебя зовут?"
name = "";
}
}
Если в пришедшей строке нет символа новой строки, то добавляем его к концу строки.
else {
name += c;
}
}
}
Весь скетч полностью – ниже:
/*
Считывание текста в консоли
Считывает данные, идущие от Bridge, при помощи функции Console.read(),
а затем записывает их в строку.
Чтобы увидеть консоль, откройте меню Port, впишите имя и IP-адрес Yun, а затем откройте Port Monitor.
Кроме того, консоль можно увидеть, открыв окно терминала и вписав
ssh root@ yourYunsName.local 'telnet localhost 6571', а затем нажав Enter.
Когда вас попросят о введении пароля, введите его.
Создан 13 июня 2013 Анжело Сцилабба (Angelo Scialabba)
модифицирован 16 июня 2013 Томом Иго (Tom Igoe).
Этот код не защищен авторским правом.
*/
#include <Console.h>
String name;
void setup() {
// Инициализируем Console и ждем открытия порта:
Bridge.begin();
Console.begin();
// Ждем открытия порта консоли:
while (!Console);
Console.println("Hi, what's your name?"); // "Привет, как тебя зовут?"
}
void loop() {
if (Console.available() > 0) {
char c = Console.read(); // считываем следующий символ
// Ищем, нет ли символа новой строки.
// Это должен быть последний символ в строке.
if (c == '\n') {
// Выводим на консоль текст с присланным именем:
Console.print("Hi "); // "Привет "
Console.print(name);
Console.println("! Nice to meet you!"); // "! Приятно познакомиться!"
Console.println();
// Запрашиваем имя еще раз и очищаем старое имя:
Console.println("Hi, what's your name?"); // "Привет, как тебя зовут?"
name = ""; // очищаем строку с именем
}
else { // если буфер пуст, Cosole.read() возвращает -1
name += c; // добавляем к строке с именем символ новой строки
}
}
См.также
Внешние ссылки
Arduino продукты | |
---|---|
Начальный уровень | Arduino Uno • Arduino Leonardo • Arduino 101 • Arduino Robot • Arduino Esplora • Arduino Micro • Arduino Nano • Arduino Mini • Arduino Starter Kit • Arduino Basic Kit • MKR2UNO • TFT-дисплей Arduino |
Продвинутые функции | Arduino Mega 2560 • Arduino Zero • Arduino Due • Arduino Mega ADK • Arduino Pro • Arduino Motor Shield • Arduino USB Host Shield • Arduino Proto Shield • MKR Proto Shield • MKR Proto Large Shield • Arduino ISP • Arduino USB 2 Serial Micro • Arduino Mini USB Serial Adapter |
Интернет вещей | Arduino Yun • Arduino Ethernet • Arduino MKR1000 • Arduino WiFi 101 Shield • Arduino GSM Shield V2 • Arduino WiFi Shield • Arduino Wireless SD Shield • Arduino Wireless Proto Shield • Arduino Ethernet Shield V2 • Arduino Yun Shield • Arduino MKR1000 Bundle |
Носимые устройства | Arduino Gemma • Lilypad Arduino Simple • Lilypad Arduino Main Board • Lilypad Arduino USB • LilyPad Arduino SimpleSnap |
3D-печать | Arduino Materia 101 |
Устаревшие устройства | - |
Примеры Arduino | |
---|---|
Стандартные функции | |
Основы |
|
Цифровой сигнал |
|
Аналоговый сигнал |
|
Связь |
|
Управляющие структуры |
|
Датчики |
|
Дисплей |
Примеры, объясняющие основы управления дисплеем:
|
Строки |
|
USB (для Leonardo, Micro и Due плат) |
В этой секции имеют место примеры, которые демонстрируют использование библиотек, уникальных для плат Leonardo, Micro и Due.
|
Клавиатура |
|
Мышь |
|
Разное |
- Страницы, использующие повторяющиеся аргументы в вызовах шаблонов
- Справочник языка Arduino
- Arduino
- Перевод от Сubewriter
- Проверка:myagkij
- Оформление:myagkij
- Редактирование:myagkij
- Страницы, где используется шаблон "Навигационная таблица/Телепорт"
- Страницы с телепортом
- Пример
- Примеры
- Пример программирования Arduino
- Примеры программирования Arduino