Arduino-механизм для нарезки пенки


Замечательный пример автоматизации при помощи Arduino — автоматический нарезальщик пенки.

Контроллер Arduino (автор использовал — Arduino Nano, но подойдёт и любой другой), пара шаговых двигателей NEMA 14 и пара драйверов для них — вот и вся электроника, которая потребуется для повторения данной конструкции.

Скетч (FoamCutter.ino):

//  FoamCutter - Driver for Actobotics FoamCutter
//
//  Compiler:      Arduino 1.6.1 on Windows 7
//
//  Dependencies:  Bounce2 Library (http://playground.arduino.cc/code/bounce)
//
//  Hardware:      Arduino Nano
//                 Pololu A4988 Stepper Driver with Voltage Regulator (Item # 1183)
//                 NEMA 14 1.5A 56oz-in for feeder & Cutter
//
//  2015.03.12 - Jurgen G. Schmidt - www.jgscraft.com
//
//-----------------------------------------------------------------------------
#include <Bounce2.h>                  // pushbutton debounce library

//--- Program control CONSTANTS --- kept at top for easy management
#define  DEBOUNCE_DELAY  5
#define  FEED_STEPS      865 // Feed motor is configured for half-step
//#define  CUT_STEPS       950 // 15-tooth pulley
#define  CUT_STEPS       1188 // 12-tooth pulley

#define  M_RIGHT    HIGH    // set cutter motor direction
#define  M_LEFT     LOW

//--- Hardware pin assignments

#define  LED_13     13      // Built-in LED

#define  MOT1_ENA   9       // Motor 1 enable - active low
#define  MOT1_DIR   6       // Motor 1 direction
#define  MOT1_STP   7       // Motor 1 step

#define  MOT2_ENA   5       // Motor 2 enable - active low
#define  MOT2_DIR   2       // Motor 2 direction
#define  MOT2_STP   4       // Motor 2 step

#define  PB_FEED    3       // PB to run feed motor one cycle
#define  PB_CUT     8       // PB to run cutter one cycle back and forth
#define  PB_RUN     12      // PB to run feed and cut 10 times

//--- instantiate button debouncers

Bounce FeedButton = Bounce();
Bounce CutButton = Bounce();
Bounce RunButton = Bounce();

//---------------------------- setup() ----------------------------------------

void setup() {
  pinMode( LED_13, OUTPUT );
  pinMode( MOT1_ENA, OUTPUT );      // add 10K to + to avoid jitter at startup
  pinMode( MOT1_DIR, OUTPUT );
  pinMode( MOT1_STP, OUTPUT );
  pinMode( MOT2_ENA, OUTPUT );      // add 10K to +
  pinMode( MOT2_DIR, OUTPUT );
  pinMode( MOT2_STP, OUTPUT );
  pinMode( PB_FEED, INPUT_PULLUP );
  pinMode( PB_CUT, INPUT_PULLUP );
  pinMode( PB_RUN, INPUT_PULLUP );

  FeedButton.attach( PB_FEED );
  FeedButton.interval( DEBOUNCE_DELAY );
  CutButton.attach( PB_CUT );
  CutButton.interval( DEBOUNCE_DELAY );
  RunButton.attach( PB_RUN );
  RunButton.interval( DEBOUNCE_DELAY );

  digitalWrite( MOT1_ENA, HIGH );          // motors off by default
  digitalWrite( MOT2_ENA, HIGH );
}

//---------------------------- loop() -----------------------------------------
//--- Wait for a button press and then call matching function

void loop() {
  FeedButton.update();
  CutButton.update();
  RunButton.update();

  if( FeedButton.fell() ) Feed();
  if( CutButton.fell() ) OneCut();
  if( RunButton.fell() ) Run();
}

//---------------------------- Feed() -----------------------------------------
//--- Feed motor operation
//
void Feed() {
  digitalWrite( LED_13, HIGH );
  digitalWrite( MOT1_ENA, LOW );      // power to stepper motor
  digitalWrite( MOT1_DIR, HIGH );     // select direction
  for( int i; i

Ссылки
Robot Foam Cutter

По теме
Автомат для нарезания провода
Робо-программатор
Укладчик футболок на базе Arduino-робота
Контроль температуры воды в газовой колонке при помощи Arduino
Arduino для автоматизации кофейного автомата
Arduino для автоматизации снекового автомата


Добавить комментарий

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд юмор

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение