Сортировщик Распаковщик Вкусностей — различия между версиями
Bars-ik98 (обсуждение | вклад) (Создана пустая страница) |
(→Результаты по проекту) |
||
(не показано 10 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
+ | ==Описание== | ||
+ | ===Актуальность=== | ||
+ | Данный проект был интересен с точки зрения реализации (опробовать оборудование в Фаб-Лабе и поработать с микроконтроллерами). | ||
+ | ===Проектная команда=== | ||
+ | * [[Вараев Владислав]] | ||
+ | * [[Асафов Руслан]] | ||
+ | * [[Барсуков Севастьян]] | ||
+ | |||
+ | ===Поставленные цели=== | ||
+ | Создать полуавтоматическую машину, которая будет открывать упаковки с вкусностями и делить поровну на заданное количество человек. | ||
+ | |||
+ | ==Работа по проекту== | ||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | |'''Срок''' | ||
+ | |'''Задача''' | ||
+ | |'''Возникающие проблемы''' | ||
+ | |'''Что сделано к сроку''' | ||
+ | |- | ||
+ | | 23.03.18 | ||
+ | |Ознакомление с Arduino | ||
+ | |На данном этапе проблем не возникло | ||
+ | |Собран "скелет" Arduino и написана прошивка | ||
+ | |- | ||
+ | | 30.04.18 | ||
+ | |Работа с 3D принтером | ||
+ | |На данном этапе проблем не возникло | ||
+ | |Смоделированы две шестеренки | ||
+ | |- | ||
+ | | 07.05.18 | ||
+ | |Сборка механического каркаса | ||
+ | |Выяснилось, что мощности имеющегося двигателя не хватает для того, чтобы крутить шестеренки с натянутой лентой | ||
+ | |Решено отказаться от использования двигателя постоянного тока (в связи с дороговизной более мощного) | ||
+ | |- | ||
+ | | 14.05.18 - 28.05.18 | ||
+ | |Сборка корпуса со всеми составляющими | ||
+ | |Вместо автоматического "открытия" упаковки было решено использовать механическое | ||
+ | |Корпус собран | ||
+ | |} | ||
+ | |||
+ | ==Результаты по проекту== | ||
+ | Наблюдается выполнение основных функций установкой. Для большего эффекта требуется увеличить количество тестирований с целью выявления мест конструкции, требующих усовершенствований. Например, более рациональным и зрелищным способом вскрытия упаковки может оказаться её сдавливание и дальнейшее расхождение по швам, вероятность которого возможно увеличить путём расчёта места приложения усилия. Проблем, связанных с написанным скетчем к Arduino не обнаружено, сама программа не занимает много места в памяти Arduino UNO и обрабатывается быстро. Таким образом, использование микроконтроллера Arduino отлично подходит для реализации проекта такого рода. | ||
+ | |||
+ | ==Arduino прошивка== | ||
+ | <div class="mw-collapsible mw-collapsed"> | ||
+ | <div class="mw-collapsible-content"> | ||
+ | <syntaxhighlight lang="javascript" line start="1" enclose="div"> | ||
+ | |||
+ | #include <Servo.h> // Библиотека для сервопривода | ||
+ | Servo servo1; // Объявление переменных | ||
+ | int timestep; | ||
+ | int timestep1; | ||
+ | boolean flag = 0; | ||
+ | boolean flag1 = 0; | ||
+ | boolean battle; | ||
+ | byte i; | ||
+ | byte j; | ||
+ | byte v; | ||
+ | byte c; | ||
+ | void setup() { | ||
+ | servo1.attach(4); // Задание пинов на вход и выход | ||
+ | pinMode(3,INPUT_PULLUP); | ||
+ | pinMode(2,INPUT); | ||
+ | pinMode(9,OUTPUT); | ||
+ | Serial.begin(9600); | ||
+ | servo1.write(0); | ||
+ | // digitalWrite(9,LOW); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | v = !digitalRead(2); | ||
+ | battle = !digitalRead(3); | ||
+ | if (battle==1 && flag==0 && (millis()-timestep)>300){ // Отрабатываем нажатие кнопки.. | ||
+ | flag = 1; | ||
+ | i++; | ||
+ | Serial.println(i); | ||
+ | timestep = millis(); | ||
+ | } | ||
+ | if (battle==0 && flag==1){ // ..и отжатие | ||
+ | flag = 0; | ||
+ | } | ||
+ | if ((millis()-timestep)>2500 && i>1){ // Через 2.5 секунды после последнего нажатия кнопки запускается дальнейший скрипт | ||
+ | j = i; | ||
+ | } | ||
+ | //if (j>0 && (millis()-timestep)>5000 && (millis()-timestep)<6000){ Прошивка для двигателя (не использовалась) | ||
+ | // digitalWrite(9,HIGH); | ||
+ | //} else { | ||
+ | // digitalWrite(9,LOW); | ||
+ | //} | ||
+ | if (j>0 && v==HIGH && flag1==0 && c<180 && (millis()-timestep1)>1000){ // Снятие показания с датчика препятствий и | ||
+ | flag1 = 1; | ||
+ | timestep1 = millis(); | ||
+ | c += 180/j; | ||
+ | servo1.write(c); // подача сигнала на сервопривод | ||
+ | } | ||
+ | if (j>0 && v==LOW && flag1==1 && (millis()-timestep1)>300){ | ||
+ | flag1 = 0; | ||
+ | timestep1 = millis(); | ||
+ | } | ||
+ | |||
+ | } | ||
+ | </syntaxhighlight> | ||
+ | </div> | ||
+ | </div> | ||
+ | |||
+ | ==Литература и ссылки== | ||
+ | 1. Видео уроки по Arduino: | ||
+ | http://alexgyver.ru/arduino_lessons/ | ||
+ | |||
+ | 2. Итернет-класс обучения работы с Arduino: | ||
+ | http://robotclass.ru | ||
+ | |||
+ | 3. Лекции по Arduino: | ||
+ | http://boteon.com/blogs/obuchayuschie-lekcii-po-arduino |
Текущая версия на 02:40, 31 мая 2018
Содержание
Описание[править]
Актуальность[править]
Данный проект был интересен с точки зрения реализации (опробовать оборудование в Фаб-Лабе и поработать с микроконтроллерами).
Проектная команда[править]
Поставленные цели[править]
Создать полуавтоматическую машину, которая будет открывать упаковки с вкусностями и делить поровну на заданное количество человек.
Работа по проекту[править]
Срок | Задача | Возникающие проблемы | Что сделано к сроку |
23.03.18 | Ознакомление с Arduino | На данном этапе проблем не возникло | Собран "скелет" Arduino и написана прошивка |
30.04.18 | Работа с 3D принтером | На данном этапе проблем не возникло | Смоделированы две шестеренки |
07.05.18 | Сборка механического каркаса | Выяснилось, что мощности имеющегося двигателя не хватает для того, чтобы крутить шестеренки с натянутой лентой | Решено отказаться от использования двигателя постоянного тока (в связи с дороговизной более мощного) |
14.05.18 - 28.05.18 | Сборка корпуса со всеми составляющими | Вместо автоматического "открытия" упаковки было решено использовать механическое | Корпус собран |
Результаты по проекту[править]
Наблюдается выполнение основных функций установкой. Для большего эффекта требуется увеличить количество тестирований с целью выявления мест конструкции, требующих усовершенствований. Например, более рациональным и зрелищным способом вскрытия упаковки может оказаться её сдавливание и дальнейшее расхождение по швам, вероятность которого возможно увеличить путём расчёта места приложения усилия. Проблем, связанных с написанным скетчем к Arduino не обнаружено, сама программа не занимает много места в памяти Arduino UNO и обрабатывается быстро. Таким образом, использование микроконтроллера Arduino отлично подходит для реализации проекта такого рода.
Arduino прошивка[править]
1 #include <Servo.h> // Библиотека для сервопривода
2 Servo servo1; // Объявление переменных
3 int timestep;
4 int timestep1;
5 boolean flag = 0;
6 boolean flag1 = 0;
7 boolean battle;
8 byte i;
9 byte j;
10 byte v;
11 byte c;
12 void setup() {
13 servo1.attach(4); // Задание пинов на вход и выход
14 pinMode(3,INPUT_PULLUP);
15 pinMode(2,INPUT);
16 pinMode(9,OUTPUT);
17 Serial.begin(9600);
18 servo1.write(0);
19 // digitalWrite(9,LOW);
20 }
21
22 void loop() {
23 v = !digitalRead(2);
24 battle = !digitalRead(3);
25 if (battle==1 && flag==0 && (millis()-timestep)>300){ // Отрабатываем нажатие кнопки..
26 flag = 1;
27 i++;
28 Serial.println(i);
29 timestep = millis();
30 }
31 if (battle==0 && flag==1){ // ..и отжатие
32 flag = 0;
33 }
34 if ((millis()-timestep)>2500 && i>1){ // Через 2.5 секунды после последнего нажатия кнопки запускается дальнейший скрипт
35 j = i;
36 }
37 //if (j>0 && (millis()-timestep)>5000 && (millis()-timestep)<6000){ Прошивка для двигателя (не использовалась)
38 // digitalWrite(9,HIGH);
39 //} else {
40 // digitalWrite(9,LOW);
41 //}
42 if (j>0 && v==HIGH && flag1==0 && c<180 && (millis()-timestep1)>1000){ // Снятие показания с датчика препятствий и
43 flag1 = 1;
44 timestep1 = millis();
45 c += 180/j;
46 servo1.write(c); // подача сигнала на сервопривод
47 }
48 if (j>0 && v==LOW && flag1==1 && (millis()-timestep1)>300){
49 flag1 = 0;
50 timestep1 = millis();
51 }
52
53 }
Литература и ссылки[править]
1. Видео уроки по Arduino:
http://alexgyver.ru/arduino_lessons/
2. Итернет-класс обучения работы с Arduino:
http://robotclass.ru
3. Лекции по Arduino:
http://boteon.com/blogs/obuchayuschie-lekcii-po-arduino