Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/ConsolePixel

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Управление светодиодом через консоль[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).

  1. #include <Console.h>

Создаем константу для контакта, к которому подключен светодиод, и переменную, чтобы хранить в ней пришедший от консоли байт.

  1. const int ledPin = 13;
  2. char incomingByte;

В секции setup() инициализируем Bridge и Console, а затем ждем подключения порта консоли.

  1. void setup() {
  2.   Bridge.begin();
  3.   Console.begin();
  4.  
  5.   while(!Console);

Подключившись, выводим на консоль инструкции для этого примера при помощи функции Console.printIn(), а контакт для светодиода делаем выходным.

  1. Console.println("type H or L to turn pin 13 on or off");  //  "Впишите «H», чтобы включить, или «L», чтобы выключить"
  2.  
  3.   pinMode(ledPin, OUTPUT);
  4. }

В секции loop() проверяем, пришла ли от консоли какая-либо информация. Если пришла, считываем самый старый байт, находящийся в буфере, и отсылаем его обратно в окно консоли.

  1. void loop() {
  2.   if (Console.available() > 0) {
  3.     incomingByte = Console.read();
  4.     Console.println(incomingByte);
  5. Если входящий байт – это «H», включаем светодиод. Если заглавная «L» – выключаем.
  6. if (incomingByte == 'H') {
  7.       digitalWrite(ledPin, HIGH);
  8.     }
  9.     if (incomingByte == 'L') {
  10.       digitalWrite(ledPin, LOW);
  11.     }
  12.   }
  13. }

Весь скетч полностью – ниже:

  1. /*
  2.   Управление светодиодом через консоль
  3.  
  4.  Пример использования платы Arduino для передачи данных от консоли на Arduino Yun.
  5.  При получении символа «H» Arduino включает встроенный светодиод,
  6. а при получении «L» – выключает.
  7.  
  8.  Чтобы увидеть консоль, в меню Port выберите имя и IP-адрес Yun, а затем откройте Port Monitor.
  9.  Кроме того, ее можно увидеть, открыв окно терминала, вписав ssh root@ yourYunsName.local 'telnet localhost 6571', а затем нажав Enter.
  10.  Когда вас попросят о введении пароля, введите его.
  11.  
  12.  Цепь:
  13.  * Светодиод подключен к 13-ому цифровому контакту и «земле»
  14.  
  15.  Создан в 2006 Дэвидом А. Меллисом (David A. Mellis),
  16.  vодифицирован 25 июня 2013 Томом Иго (Tom Igoe)
  17.  
  18.  Этот код не защищен авторским правом.
  19.  
  20.  */
  21.  
  22. #include <Console.h>
  23.  
  24. const int ledPin = 13;  // контакт, к которому подсоединен светодиод
  25. char incomingByte;      // переменная, куда записывается байт, присланный от консоли
  26.  
  27. void setup() {
  28.   Bridge.begin();   // инициализируем Bridge
  29.   Console.begin();  // инициализируем Console
  30.  
  31.   // ждем, когда подключится порт консоли:
  32.   while(!Console);
  33.  
  34.   Console.println("type H or L to turn pin 13 on or off");
  35.  
  36.   // делаем контакт светодиода выходным:
  37.   pinMode(ledPin, OUTPUT);
  38. }
  39.  
  40. void loop() {
  41.   // Проверяем, пришли ли от консоли какие-нибудь данные:
  42.   if (Console.available() > 0) {
  43.   // Считываем самый старый байт в буфере консоли:
  44.     incomingByte = Console.read();
  45.     Console.println(incomingByte);
  46.     // если это «H» (ASCII 72), включаем светодиод:
  47.     if (incomingByte == 'H') {
  48.       digitalWrite(ledPin, HIGH);
  49.     }
  50.     // если это «L» (ASCII 76), выключаем светодиод:
  51.     if (incomingByte == 'L') {
  52.       digitalWrite(ledPin, LOW);
  53.     }
  54.   }
  55. }

См.также

Внешние ссылки

  1. Arduino - Console Pixel