Arduino на производстве*

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

Фабрика будет игрушечная, что-то вроде макета. И на этом макете я смогу попробовать свои силы в разработке алгоритмов управления различными технологическими процессами. Кто-то строит макеты железных дорог, а я построю макет небольшой фабрики.

На Хабре уже было много замечательных постов, в которых авторы рассказывают о конструировании и программировании роботов на базе микропроцессорной платформы-конструктора Arduino. В основном это статьи про мобильных роботов на колесном или гусеничном шасси, автономных или с дистанционным управлением. Про промышленное применение почти ничего нет. В связи с этим предлагаю свои «пять копеек» в виде описания процесса конструирования и программирования небольшой автоматизированной системы, которой управляет Arduino.


* — не настоящем.

Транспортируй это


С чего-то наша фабрика должна начинаться? Умные люди говорят, что правильная логистика на производстве определяет успех всего предприятия.
«Высокопроизводительная работа любого современного предприятия невозможна без правильно организованных и работающих средств перемещения грузов – подъемно-транспортных машин. По принципу действия эти машины разделяются на две группы: машины периодического и непрерывного действия. К первым относятся краны и т.п., а ко вторым конвейеры различных типов».

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

01. Образцы грузов, которые будут перемещаться по конвейеру.


Конструкция


Конвейер собран из деталей конструктора fischertechnik. Ленту приводит в движение мотор M1. Система управления построена на базе контроллера Arduino UNO. Питание всей электроники от БП на 9В.

02. Конвейер в собранном виде.


Для питания двигателя используется плата расширения DFRobot Motor Shield c силовыми ключами. Сигналы управления этими ключами поступают от выводов контроллера Arduino с функцией ШИМ. В моем случае используется только один канал из двух существующих на этой плате.

03. Схема нарисована с помощью fritzing.

Алгоритм


Для начала я реализовал простое ручное управление конвейером. На пульте управления находятся 3 кнопки – S1, S2 и S3. Кнопка S1 включает движение ленты в одну сторону, кнопка S2 в другую сторону, ну и кнопка S3 останавливает конвейер.

04. Пульт управления с кнопками.


Вот что у меня получилось (скетч для Arduino UNO, версия IDE 1.0):
	/*
	Conveyor control system
	 */
	 
	// Привязка входов
	int S1Pin = 8;
	int S2Pin = 9;
	int S3Pin = 10;

	// Привязка выходов
	int M1PWMPin = 5;
	int M1DIRPin = 4;

	// Константы скорости
	int motorSlowSpeed = 50;
	int motorNormSpeed = 130;
	int motroFastSpeed = 255;

	// Константы направления
	int motorFwd = LOW;
	int motorRev = HIGH;

	int S1,S2,S3 = 0; // Состояние входов

	int M1PWM = 0; // Скорость мотора М1
	int M1DIR = 0; // Направление вращения мотора М1

	int State = 0; 
	  
	void M1Fwd() {
	  M1PWM = motorNormSpeed;  
	  M1DIR = motorFwd;
	}

	void M1Rev() {
	  M1PWM = motorNormSpeed;  
	  M1DIR = motorRev;
	}  

	void M1Stop() {
	  M1PWM = 0;  
	}

	void readInputs() {
	  S1 = digitalRead(S1Pin);
	  S2 = digitalRead(S2Pin);
	  S3 = digitalRead(S3Pin);  
	}

	void writeOutputs() {
	  analogWrite(M1PWMPin, M1PWM);  
	  digitalWrite(M1DIRPin, M1DIR);
	}

	void setup()  { 
	  // Дискретные каналы 4 и 5 выходы
	  pinMode(M1PWMPin, OUTPUT);
	  pinMode(M1DIRPin, OUTPUT);

	  // Дискретные каналы 8,9 и 10 входы с включенным pullup
	  pinMode(S1Pin, INPUT);     // set pin to input
	  digitalWrite(S1Pin, HIGH);  // turn on pullup resistors

	  pinMode(S2Pin, INPUT);
	  digitalWrite(S2Pin, HIGH);    

	  pinMode(S3Pin, INPUT);
	  digitalWrite(S3Pin, HIGH);
	  
	  Serial.begin(57600);  
	} 

	void loop()  {

	  
	  readInputs();
	  
	  if (S1 == LOW) {
	    M1Rev();
	  } 
	  if (S2 == LOW) {
	    M1Fwd();
	  }
	  if (S3 == HIGH) {
	    M1Stop();
	  }
	  
	  writeOutputs();
	  
	  Serial.println(State, DEC);
	  
	}
	


05. Процесс сборки.


Движемся дальше


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

Similar posts

Ads
AdBlock has stolen the banner, but banners are not teeth — they will be back

More

Comments 42

    +2
    конвейер это хорошо, но как-то мало, особенно учитывая что заявлялось производство*
    сам в детстве делал подъемные краны из конструктора, с моторчиками, редукторами и т.п.
      0
      Это только первый этап. На следующих у меня запланирован автоматизированный склад, участок сортировки и линия упаковки.
        +10
        И бухгалтерию не забудьте автоматизировать. На Arduino, естествено.
          0
          Можно слать отчеты по количеству перемещенных грузов в 1С. Это, наверно, уже ближе к MES.
          +1
          А производить-то что будете?
            0
            А вот ее родимую и будем! ;)
        +2
        Сделай конвейер по производству конвейеров на ардуино :)
          +5
          Конвейер для производства конвейеров для производства Arduino на Arduino.
            +6
            Надо идти еще глубже…
              +5
              Чтобы понять рекурсию, надо понять рекурсию :)
                0
                Простите, в конечном итоге Arduino производим, или пропущено «на»?
                  0
                  Имелось ввиду, что конвейер для производства Arduino делается на конвейере, управляемым Arduino.
                  Такая многоходовая рекурсия.
              +2
              Мне очень понравилось ваше видео) Наглядно очень и оригинально. Спасибо.
                0
                Спасибо. На канале есть еще несколько роликов по этой теме.
                +3
                в конце видео «так делать не надо» улыбнуло)
                  +2
                  Ну вы прям как в разрушителях легенд, сэр)
                    0
                    У вас же промышленный агрегат, хоть и игрушечеый. Смотрите, двигатель в половину роста рабочего :) Необходимы как минимум две вещи: плавный пуск двигателя и защита от перегрузки.
                      0
                      Ну, профсоюз пока не жаловался. Но я записал в TODO.

                      Кстати, это не просто мотор, а целый мотор-редуктор со встроенным энкодером. Можно попробовать реализовать регулирование скорости с обратной связью.
                      +2
                      За fischertechnik — отдельно плюс в карму! Вы для меня открыли, что мир конструкторов не заканчивается на Lego
                        0
                        Это всегда пожалуйста.
                          0
                          fischertechnik тоже заламывают цену
                            +1
                            Да, я уже успел на ебее поинтересоваться. Думаю, какой-нибудь хабраюзер, сподобившийся бы написать сравнительный обзор разных существующих на сегодняшний день конструкторов, по итогу отгреб бы себе немеряно плюсов в карму. Я уже заметил, что на хабре не один я стремлюс доиграть с подобными конструкторами недоигранное в детстве :)
                              0
                              Да, вот этот самый набор с траспортером стоит скромные 21 790 рублей
                          +6
                          Подключил моторчик — напиши статью!
                            +2
                            Не моторчик а конвейер!
                              +3
                              Подключил конвейер— напиши статью!
                            +2
                            Автору — гораздо полезнее было бы написать обзор конструктора Lego!
                              0
                              Ок. Спасибо.Я подумаю над этим. А они образцы для предоставляют?
                                0
                                Наверное, в качественной рекламе менеджеры LEGO тоже заинтересованы. Недаром boomburum давно на Хабре прописался. Думаю, лед сломаете, если покажете свою статью. =)

                                Соберите на Lego какой-нибудь механический калькулятор, или робослужанку, и все будут счастливы. Тема весьма интересная, Ардуина нервно курит в сторонке.

                                image

                                Что можно сделать из LEGO.
                            +4
                            Что-то мне подсказывает, что управление моторчиком с кнопки можно было сделать совсем без ардуины.
                              +4
                              www.marsohod.org/index.php/projects/138-cloning

                              Тут веселей. Марсоход собирает свои же клоны.
                                0
                                очень и очень здорово для робота изготовленного из подручных средств…
                                  0
                                  Почти как у Лазаревича «Повелитель Марса»:)
                                  0
                                  А я думал будет какая-то сортировка (всмысле отбор) — былые шайбы отделять от красных.
                                    0
                                    Это еще предстоит на следующем этапе. Пока что реализовал базу и выбрал платформу для системы управления.
                                      0
                                      Наверное, это будет в обещанном цехе сортировки.
                                        0
                                        От блин, надо не забывать обновлять комментарии перед постингом своих.
                                      0
                                      Лучше посмотрите в сторону автоматизации какого-нибудь техпроцесса какого-нибудь сферического завода, это интереснее игрушечных конвейеров. Можно даже начать вот с этого: habrahabr.ru/blogs/arduino/122886/
                                        0
                                        Ого. Это же пищевой процесс. Там ответственность более высокая. Да и сосуды под давлением это не шутка. Я еще не дорос, наверно.
                                          +1
                                          Через полгодика экспериментов сможете взяться за модель АЭС ;)

                                      Only users with full accounts can post comments. Log in, please.