Мы в Telegram
Добавить новость
103news.com
Работа
Сентябрь
2015

Arduino: 2 лабораторные + 1 курсовая

0
Здравствуйте.

Нужно имитировать контрольую систему, которая смешивает различные ингредиенты в процессе создания продукта. Для этого нужно использовать Arduino и датчики.

Проблема с процессом контроля, в том что нужно будет имитировать качество конечного продукта которое будет зависеть от температуры и интенсивности света, когда он реализуется. И эта сумма из ингредиентов будет зависеть, от индуцированных ошибок измерения различными способами (шум). Например, если вы настроили вашу систему наиспользование 100 мл в качестве ингредиента для рецепта, она будет на самом деле будетдобавлять 102 мл ингредиента из-за ошибки измерения. При этом необходимо изменить "рецепт", в процессе продолжения, чтобы получить конечный продукт хорошего качества. В этом случае, надо добавить 98 мл ингредиентов для того, чтобы получить 100 мл ингредиента в конце.

На следующем рисунке представлен обзор управления, который нужно имитировать. Использовать при написании программы следующие величины:
int mixer(int temperature, int light, int mixspeed, int ingredient1, int ingredient2, int ingredient3)

Входные данные:
int temperature = в градусах цельсия(использовать температурный сенсор)
int light = Интенсивность света в виде целого числа между 0-1023. (использовать датчик света)
int speed = Скорость с которой ингредиенты смешиваются в виде целого числа между 0-1023 (использовать потенциометр)
int ingredient1 = Количество ингредиента 1 (только запрограммированного значения)
int ingredient2 = Количество Ингредиента 2 (запрограммированное значение)
int ingredient3 = Количество Ингредиента 3 (запрограммированное значение)

Внутри этой функции, выполнить
следующие действия:

* Ошибка измерения применяется ко всем входным параметрам

* Качество вычисляется к оптимальной формуле, после того, как были смешаны, с
ошибк
ой
измерения.

* Генерируются выходные значения и возвращае
тся качество продукта.

Выходные данные:
quality =
Качество как значение между 0-100.
outputTemperature =измеренная температура (в том числе ошибки измерения)
outputLight = измеренная интенсивность света (включая ошибки измерения.
outputMixspeed = измеренная скорость смесителя (в том числе ошибок измерения)
outputIngredient1 = измеренное количество ингредиента 1 (в том числе погрешности измерений)
outputIngredient2 = измеренное количество ингредиента 2 (в том числе погрешности измерений).
outputIngredient3 = измеренное количество ингредиента 3 (в том числе погрешности измерений).


Расчет качества
Чтобы выяснить, качество конечного продукта,
нужно
выяснить,
на
сколько
величины
отличаются от оптимальн
ых
.
Например,
если
н
аша температура путем измерения ошибки различ
ается

на
-3 градусов от рецепта, свет отличается
на
+30 единиц, скорость
на
-7 единиц, ingrediens1
на
+2
мл
, ingrediens2
на
-3
мл
и наконец ingrediens3
на
+1
мл
. Таким образом, вы можете
оце
нить качество конечного
продукта
путем принятия 100 (символизирующий 100% хорошее качество) минус абсолютное значение всех ошибок:

100 - | -3 | - | +30 | - | -7 | - | + 2 | - | -3 | - [+1] = 100 - 3-30 - 7 - 2 - 3 - 1 = 54

Таким образом, в результате чего получается 54% качества. При отрицательном качеств
е
, получается 0%. Помните также, что датчик очень чувствителен, так что, вероятно
это
да
е
т основной вклад в качество,
которо
уменьшается, если использ
овать
этот способ расчета качества.

Наконец, качество должно отображаться с помощью светодиодов.
Например, в качестве показателя, где каждый светодиод символизирует выбор качества 20%. Т.е.при уровне
качеств
а
конечного продукта

в
54: первый светодиод (> 0%), второй светодиод (> 20%) и трет
ий
(LED> 40%). Но не последние два светодиода.


Погрешность измерения (шум)
Важной функцией, которая генерирует ошибку измерения (шум), является т
а
, что она должна быть достаточно предсказуем
а
.
Это легко сделать, взяв случайное число между -1 и 1, а затем изменить значение этой ошибки измерений: значение
снизится
на 1 шаг вверх на один шаг
вниз
, или остается
прежним
. И таким образом, стан
ет
достаточно предсказуемым.

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

их
в системе управления.

Вычислить
выходные значения из последнего запуска и пытаться контролировать входные значения. Т.е. компенсировать функции шума по программным изменением количества трех различных ингредиентов,
по
нагрев
у
датчика температуры
от прикасания
рук
ой
и закрыв датчик света
рук
ой
, так что
бы
ста
ло
темнее, и т.д.

Приведенный ниже код содержит
основу
для всего
задания
.
Пожалуйста, заполните все разделы, отмеченные TODO:

* Установите pinModes

* Читать датчик температуры, в градусах Цельсия

* Чтение Датчик света 0-1013

* Чтение потенциометра 0-1023

* Включите светодиоды по качеству

* Настройте значения Ингредиенты вход в соответствии с их выходных значений

void setup() {
Serial.begin(9600);

//TODO Set your pinModes
}

//Input Variables
int inputTemperature;
int inputLight;
int inputMixspeed;
int inputIngredient1 = 50;
int inputIngredient2 = 40;
int inputIngredient3 = 60;

//Output Variables
int outputTemperature;
int outputLight;
int outputMixspeed;
int outputIngredient1;
int outputIngredient2;
int outputIngredient3;

void loop() {

inputTemperature = 0; //TODO Read temperature sensor in degrees celsius
inputLight = 0; //TODO Read light sensor 0-1013
inputMixspeed = 0; //TODO Read potentiometer 0-1023

int quality = mixer(inputTemperature, inputLight, inputMixspeed, inputIngredient1, inputIngredient2, inputIngredient3);
Serial.println("******");
Serial.print("Quality: ");
Serial.println(quality);
Serial.print("Temperature: ");
Serial.println(outputTemperature);
Serial.print("Light: ");
Serial.println(outputLight);
Serial.print("Mixspeed: ");
Serial.println(outputMixspeed);
Serial.print("Ingredient 1: ");
Serial.println(outputIngredient1);
Serial.print("Ingredient 2: ");
Serial.println(outputIngredient2);
Serial.print("Ingredient 3: ");
Serial.println(outputIngredient3);
Serial.println("******");


//TODO Turn on LEDs according to quality


//TODO Adjust your ingredients input values according to their output values


delay (3000);
}


int mixer(int temperature, int light, int mixspeed, int ingredient1, int ingredient2, int ingredient3){

int mixerNoise = noise();
int mixerTemperature = temperature + mixerNoise;
int mixerLight = light + mixerNoise;
int mixerMixspeed = mixspeed + mixerNoise;
int mixerIngredient1 = ingredient1 + mixerNoise;
int mixerIngredient2 = ingredient2 + mixerNoise;
int mixerIngredient3 = ingredient3 + mixerNoise;

int quality = 100 - abs(25-mixerTemperature) - abs(900-mixerLight) - abs(512-mixerMixspeed) - abs(50-mixerIngredient1) - abs(40-mixerIngredient2) - abs(60-mixerIngredient3);
if(quality < 0){
quality = 0;
}

outputTemperature = mixerTemperature;
outputLight = mixerLight;
outputMixspeed = mixerMixspeed;
outputIngredient1 = mixerIngredient1;
outputIngredient2 = mixerIngredient2;
outputIngredient3 = mixerIngredient3;
return quality;
}

int savedNoise = 0;
int noise(){
if(savedNoise < -5){
savedNoise++;
} else if(savedNoise > 5){
savedNoise--;
} else {
savedNoise = savedNoise + random(3) - 1;
}
return savedNoise;
}


Лаба 1
Нужно
преобразовать десятичное значение входного сигнала для двоичного значения и показать двоичного числа в качестве вывода.


Десятичные числа которые находятся между 0 и 1023, будут загружены с помощью потенциометра, подключенного к Arduino.
Как выход вы должны зажечь количество светодиодных ламп, которые символизируют отдельные цифры подряд. Вы можете рассчитать самостоятельно, сколько LED / шт вам нужно.
Также выписать как десятичные значения,так и двоичные числа на консоль компьютера ( т.е.дважды проверить вашу систему). Основной костяк я умудрился сделать, но с показом на лампочках каждого числа, не получается.


Лаба 2

Вы должны создать систему управления с 4 кнопками и 4 светодиодными лампами. Где логика вашего контроля должен быть запрограммирован следующим образом:




LED 1 будет мигать каждые три секунды (3 секунды, затем на три секунды от этих трех секунд, и т.д ...)
LED 2 мигает каждые пять секунд (5 секунд, затем на 5 секунд от этих 5 секунд, и т.д ...)
LED 3 выключен.
LED 4 светится.


Логика:
Кнопка 1 выключает светодиод 4 и он продолжает находиться в в положении выключено..
Пока тех пор пока кнопка 2 нажата, LED 1 и LED 2 перестают мигать и остаются в положении выключено.
Кнопка 3 зажигает LED 4 заново, и он остается в положении включено.
Пока кнопка 4 нажата, светодиод начинает мигать каждые 2 секунды. (т.е.1 секунду светится, 1 секунду выключен, 1 секунду светится, 1 секунду выключен и т.д ...)
До тех пор пока обе кнопки 1 и 3 находятся в нажатом состоянии , LED 3 должен гореть, а LED 4 должен быть выключен, в противном случае светодиод 3 будет потушен.
Если все кнопки нажать одновременно, то все светодиоды должны начать светиться до тех пор, пока все кнопки не отжать, независимо от другой логики.
Если нажата несколько кнопок, то их индивидуальные параметры должны быть реализованы.
Надо избегать использования delay(), потому что это делает систему медленной.
Установить частоту мигания, можно задавая время которое находится в Millis ().



Сроки написания работ:
в течении недели.
некоторые пояснения и рекомендации к работе с ингридиентами



1. Поскольку это проект, то можно, расширить нашу систему, для того чтобы иметь возможность получить систему более высокого класса. Эта часть важна. Некоторые примеры дополнительных расширений, которые вы можете сделать, это:

* Замена функции шума в более реалистичной модели.


* Добавление дополнительных ингредиентов для вашей системы, вы можете использовать для этого кнопки.


* Создание более реального сценария для нашей системы, какие ингредиенты на самом деле можно смешивать?


* Визуальное отображение с использованием LED, для того чтобы показать, как хорошо температуры, света, и скорость смешивания работают по сравнению с начальным рецептом.


* Создать лучшую модель для рассчета качества конечного продукта.




Я хочу, чтобы вы предоставили полный исходный код для нашего проекта.
Отчет о том, как вы построили вашу программу и как она работает.
Включить 2-3 фотографии иллюстрирующие плату Arduino с установленными на ней ел.деталями, (т.е. как выглядит панель с электронными деталями, когда вы запустите программу).


Отчет должен содержать следующие элементы:


Название страницы.
Введение.
Отчет, как вы построили и запрограммировать систему?
Результаты: каков итог? Насколько хорошо работает наша система?
Выводы: достигли ли мы свою цель?
Список использованной литературы.
Это относиться к упражнению со смешиванием ингридиентов.



Для двух других упражнений нужен только код и 2-3 фотографии иллюстрирующие плату Arduino с установленными на ней ел.деталями




С уважением,
Константин




Губернаторы России
Москва

Сергей Собянин посетил фестиваль «Москва — на волне. Рыбная неделя»





Москва

Улыбка сделала слушателя «Юмор FM» миллионером


Губернаторы России

103news.net – это самые свежие новости из регионов и со всего мира в прямом эфире 24 часа в сутки 7 дней в неделю на всех языках мира без цензуры и предвзятости редактора. Не новости делают нас, а мы – делаем новости. Наши новости опубликованы живыми людьми в формате онлайн. Вы всегда можете добавить свои новости сиюминутно – здесь и прочитать их тут же и – сейчас в России, в Украине и в мире по темам в режиме 24/7 ежесекундно. А теперь ещё - регионы, Крым, Москва и Россия.

Moscow.media
Москва

Собянин: Более трех миллионов человек посетили фестиваль «Москва на волне. Рыбная неделя»



103news.comмеждународная интерактивная информационная сеть (ежеминутные новости с ежедневным интелектуальным архивом). Только у нас — все главные новости дня без политической цензуры. "103 Новости" — абсолютно все точки зрения, трезвая аналитика, цивилизованные споры и обсуждения без взаимных обвинений и оскорблений. Помните, что не у всех точка зрения совпадает с Вашей. Уважайте мнение других, даже если Вы отстаиваете свой взгляд и свою позицию. 103news.com — облегчённая версия старейшего обозревателя новостей 123ru.net.

Мы не навязываем Вам своё видение, мы даём Вам объективный срез событий дня без цензуры и без купюр. Новости, какие они есть — онлайн (с поминутным архивом по всем городам и регионам России, Украины, Белоруссии и Абхазии).

103news.com — живые новости в прямом эфире!

В любую минуту Вы можете добавить свою новость мгновенно — здесь.

Музыкальные новости

Мариинка

Мариинский театр обзавелся четвертой сценой на 800 мест




Спорт в России и мире

Алексей Смирнов – актер, которого, надеюсь, еще не забыли

Пассажир остановившегося в тоннеле метро поезда рассказал о происходившем в вагоне

День защиты детей празднуют в мире 1 июня

Вышел второй подкаст онлайн-лектория «Иннагрика» о возможностях аграрной генетики для молодых исследователей


Ролан Гаррос

Медведев пошутил о том, что часто проводит ночные матчи на турнирах «Большого шлема»



Новости Крыма на Sevpoisk.ru


Москва

«СВЯТОЙ ЛЕНИН» легально изготавливает армии и спецслужбы. 6 серия. СЕРЬЁЗНЫЙ НОВОСТНОЙ СЕРИАЛ.



Частные объявления в Вашем городе, в Вашем регионе и в России