Виртуальный прибор в среде разработки LabVIEW для управления платформой Arduino
Задание. В электронный отчет поместите
исходный код прошивок Arduino,
снимки экранов с выводом в Монитор порта среды Arduino IDE,
снимок экрана с программой в среде LabVIEW c выводом данных от Arduino из последовательного порта.
Пример 1
long t = 0; void setup() { Serial.begin(9600); t = millis(); Serial.print("t = "); Serial.println(t); } void loop() { delay(100); }
Пример 2
long t = 0; void setup() { Serial.begin(9600); t = millis(); Serial.print("t = "); Serial.println(t); } void loop() { t = millis(); Serial.print("t = "); Serial.println(t); delay(200); }
Пример 3
#define DELTA_T 200 long t1 = 0; long t2 = 0; void setup() { Serial.begin(9600); t1 = millis(); Serial.print("t1 = "); Serial.println(t1); } void loop() { t2 = millis(); if ((t2 - t1) > DELTA_T) { Serial.print("t2 = "); Serial.println(t2); t1 = t2; } //delay(200); }
Пример 4
Утилита VISA Intractive Control National Instruments/VISA Инициализация VISA порта последовательной передачи данных и проверка передачи простой строки символов по интерфейсу RS-232. Functions Palette Instrument I/O > Serial Visa Configure Serial Port Visa Write Visa Close
Пример 4. Вариант 1
Пример 4. Вариант 2
Пример 5
#define DELTA_T 200 #define LED_PIN 13 long t1 = 0; long t2 = 0; bool ledState = false; void setup() { pinMode(LED_PIN, OUTPUT); Serial.begin(9600); t1 = millis(); Serial.print("t1 = "); Serial.println(t1); Serial.print("ledState = "); Serial.println(ledState); } void loop() { t2 = millis(); if ((t2 - t1) > DELTA_T) { Serial.print("t2 = "); Serial.println(t2); Serial.print("ledState = "); ledState = !ledState; Serial.println(ledState); digitalWrite(LED_PIN, ledState); t1 = t2; } //delay(200); }
Пример 6
#define DELTA_T 200 #define LED_PIN 13 long t1 = 0; long t2 = 0; int deltaT = 0; bool ledState = false; void setup() { pinMode(LED_PIN, OUTPUT); Serial.begin(9600); t1 = millis(); Serial.print("t1 = "); Serial.println(t1); Serial.print("ledState = "); Serial.println(ledState); deltaT = DELTA_T; } void loop() { t2 = millis(); if (Serial.available()>0){ deltaT = Serial.parseInt(); } if ((t2 - t1) > deltaT) { Serial.print("t2 = "); Serial.println(t2); Serial.print("ledState = "); ledState = !ledState; Serial.println(ledState); digitalWrite(LED_PIN, ledState); t1 = t2; } //delay(200); }
Задание для самостоятельного выполнения
1. Изучите по следующей ссылке использование операционной системы реального времени freeRTOS на платформе Arduino.
http://microsin.net/programming/avr/using-freertos-multi-tasking-in-arduino.html
2. Изучите пример Blink_AnalogRead.ino. Создайте снимок экрана с виртуальным прибором в LabVIEW, в котором отображен ввывод данных с платы Arduino с помощью последовательного интерфейса.
3. Требуется в виртуальном приборе в LabVIEW выводит значение счетчика, который меняется циклически от 0 до 99, затем снова отсчет начинается с 0. Внесите изменения пример Blink_AnalogRead.ino. Создайте снимок экрана с виртуальным прибором в LabVIEW и фрагмент измененного кода прошивки.
Источники
Драйвер
arduino.cc: Download the Arduino IDE Arduino 1.8.5 Windows ZIP file for non admin install
forum.amperka.ru: Arduino Mega 2560 + CH340 Установка Драйвера Windows 7 x64.
wch.cn: CH341SER.ZIP
Основные
easyelectronics.ru: FreeRTOS для чайников. Краткое описание.
microsin.net: Многозадачность FreeRTOS на платформе Arduino
robot-develop.org: FreeRTOS. Операционная система реального времени для микроконтроллеров. Часть 1. Введение
easyelectronics.ru: Курниц А. FreeRTOS — операционная система для микроконтроллеров
Дополнительные
xakep.ru: Сысоев А. Устанавливаем scmRTOS на Arduino
easyelectronics.ru: MISRA C
easyelectronics.ru (PDF): Среда разработки IAR Embedded Workbench(R). Правила MISRA C. Справочное руководство.
easyelectronics.ru: Включить-выключить. Схемы управления питанием
easyelectronics.ru (PDF): Использование отладчика GDB
easyelectronics.ru: Восстановление печати 3D принтера после остановки.
easyelectronics.ru: Технологии 3D печати
easyelectronics.ru: Видео лекции по электронике
youtube.com: Канал Санкт-Петербургский государственный электротехнический университет «ЛЭТИ»
easyelectronics.ru: Конденсатор. Пособие для дошкольных образовательных учреждений