• I






      
           

Научно-популярный образовательный ресурс для юных и начинающих радиолюбителей - Popular science educational resource for young and novice hams

Основы электричества, учебные материалы и опыт профессионалов - Basics of electricity, educational materials and professional experience

КОНКУРС
language
 
Поиск junradio

Радиодетали
ОК
Сервисы

Stock Images
Покупка - продажа
Фото и изображений


 
Выгодный обмен
электронных валют

Друзья JR



JUNIOR RADIO

 

Контроль расхода филамента
3d принтера на Arduino

 

Все 3D-принтеры отслеживают и контролируют ключевые рабочие параметры на протяжении всего процесса печати. К сожалению, при возникновении проблемы большинство прерванных или незавершенных заданий на печать приходится отбрасывать, очищать платформу принтера и запускать задание с самого начала.  Свежая катушка филамента вмещает 1 кг (2,2 фунта) сырья. Это много и, как правило, обеспечивает многодневную непрерывную печать. Несмотря на то, что программа слайсера добросовестно прогнозирует время печати и количество необходимой нити ( рис. 1 ), я обычно смотрю на катушку с нитью и задаюсь вопросом: «Сколько именно нити осталось на этой катушке? Будет ли этого достаточно? Повезло ли мне сегодня?»

РИСУНОК 1. Программа слайсера прогнозирует время печати и расход материала.

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

Длина_Оставшаяся = Вес_Нити / (Площадь_Поперечного_Сечения_Нити x Плотность_Нити)

Как показано, для измерения веса нити можно использовать почтовые весы — не забудьте вычесть вес пустой катушки! Площадь поперечного сечения нити (π xr 2 ) легко вычислить, поскольку мы знаем диаметр нити; обычно 1,75 мм или 3,0 мм. Наконец, плотность нити является постоянной величиной, которую мы можем получить из спецификаций, предоставленных поставщиком/производителем нити. После того, как мы преобразовали наши данные в оставшееся значение длины, необходимо только сравнить это значение с числом «Нужна нить» на слайсере ( рис. 1 ), чтобы узнать, когда целесообразно заменить катушку. Если у вас небольшой масштаб, пример, показанный на рис. 2 , поможет вам начать работу. Вы можете обнаружить, что это все, что вам нужно! Просто убедитесь, что при выполнении расчетов помните, что все единицы измерения (т. е. граммы/см 3 , см, мм и т. д.) должны быть правильными, чтобы получить действительное значение длины (обычно в метрах или миллиметрах).

РИСУНОК 2. Использование почтовых весов для определения оставшейся длины.

Во-первых, я нашел на eBay недорогую (6 долларов) балку тензодатчика с интерфейсом I 2 C. Я купил один и обнаружил, что он достаточно мал, чтобы поместиться внутри держателя катушки с нитью. Я быстро разработал конструкцию опорного рычага SolidWorks ( рис. 3 ) и приступил к работе.

РИСУНОК 3. Балка тензодатчика встроена в держатель катушки.

Основной формат результирующего дисплея показан на рисунке 4 .

РИСУНОК 4. Формат ЖК-дисплея.

Тензодатчик представляет собой датчик, который преобразует механическую силу в изменение электрического сопротивления. То есть номинальное сопротивление датчика изменяется при его механическом растяжении или сжатии. При изготовлении тонкопленочного датчика тензорезистор можно прикрепить (т. е. приклеить) к алюминиевой опорной балке ( рис. 5 ). Таким образом, тензорезистор будет реагировать на отклонение балки, поскольку балка подвергается механической нагрузке.

РИСУНОК 5. Базовый тензодатчик.

На рис. 5 показано, как набор тензометрических элементов (при прикреплении к нагрузочной балке) может стать частью электрической цепи моста Уитстона. Когда нагрузочная балка не нагружена (датчики «ненагружены»), R1=R2 и R3=R4. Видно, что в ненапряженном состоянии дифференциальное выходное напряжение V M будет равно нулю. Это значительно упрощает проект Spool Scale. Сам тензодатчик представляет собой алюминиевую балку с предварительно установленными тензометрическими датчиками под защитным покрытием. Как и на рис. 7 , алюминиевая балка имеет пару больших отверстий. Размер и расположение этих отверстий определяют, как балка будет изгибаться и деформироваться под нагрузкой, а также задают грузоподъемность готовой сборки.

РИСУНОК 7. Детали 5-килограммового тензодатчика.

 

На рисунке 8 показаны мои расчеты диапазона веса для тензодатчика Spool Scale.

РИСУНОК 8. Расчеты пропускной способности.

ля начала я решил не усложнять и разработал базовый держатель катушки, показанный на рис. 3 . Эта конструкция крепится непосредственно к направляющей раме 20-20 моего 3D-принтера TRONXY. На поперечном разрезе этой конструкции ( рис. 9 ) балка датчика нагрузки имеет пару резьбовых монтажных отверстий на каждом конце балки. Они используются для механического крепления тензодатчика к опоре для крепления на раму (слева) и нагрузочному рычагу держателя катушки (справа).

РИСУНОК 9. Вид в поперечном разрезе крепления весоизмерительного датчика.

Хотя это очень простой держатель катушки ( рис. 10 ), я обнаружил, что он работает хорошо, и не чувствовал необходимости в дополнительном усовершенствовании держателя с помощью шарикоподшипников или любых других бесчисленных новых и улучшенных вариантов, найденных на Thingiverse. STL и подробные чертежи деталей для этого простого крепления можно найти в загружаемом материале; они могут стать отправной точкой для адаптации балки тензодатчика к вашему любимому варианту держателя катушки. Провода от тензометрических элементов напрямую подключены к интерфейсной плате HX711. Многожильный кабель можно использовать для подключения интерфейсной платы к панели управления дисплея/ЦП/операторского интерфейса, а также для подачи питания и заземления в проект.

РИСУНОК 10. Базовый держатель катушки на раме. Чтобы показать детали держателя катушки, катушка с желтой нитью была снята и помещена на стол прямо под рычагом держателя катушки, на котором она обычно держится. Полная схема весов катушек показана на рисунке 11 . Весы Spool Scale могут питаться от простой настенной розетки 9–12 В постоянного тока или, как я сделал, от +12 В постоянного тока, «украденного» прямо с моего 3D-принтера. Пользователь взаимодействует со шкалой с помощью одного поворотного энкодера. Чтобы все было организовано, я создал простую 3D-печатную раму, в которой процессор Nano устанавливается сразу за ЖК-дисплеем 4x24. Таким образом, комбинация ЖК-дисплея и процессора может быть легко установлена ​​на панели или размещена внутри небольшого корпуса.

РИСУНОК 11. Схема шкалы катушек.

После того, как 3D-детали напечатаны, фактическая сборка оборудования становится простой и выполняется с помощью простой проводки «точка-точка». Вам понадобится Arduino IDE (я использовал версию 1.8.9), установленная на вашем ПК, чтобы скомпилировать и загрузить код в Nano. Загружаемый материал содержит основной исходный код Arduino для этого проекта, который вам нужно будет поместить в подкаталог «SpoolScale_VERx.xx», который вы создадите на своем ПК. Согласно правилам Arduino, имя подкаталога должно совпадать с именем основного исходного файла. Наконец, вам также потребуется загрузить и установить дополнительные библиотеки, показанные на рис. 12 .

РИСУНОК 12. Программные библиотеки, используемые в проекте.

После установки всего кода и библиотек в меню «Инструменты» IDE выберите тип платы: Nano; Процессор: ATmega328P (старый загрузчик), затем установите правильный COM-ПОРТ. Вы узнаете, что ваши библиотеки установлены правильно, когда сможете успешно выполнить безошибочную тестовую компиляцию. После включения питания дисплей Spool Scale автоматически измерит и отобразит оценки веса и длины нити. Чтобы выбрать дополнительные функции или изменить настройки, просто нажмите поворотную ручку управления. Это вызовет появление строки опций меню в нижней строке ЖК-дисплея. Просто поверните элемент управления, чтобы перейти к выбору, нажав ручку, когда вы дойдете до нужного параметра. Полный список функций меню приведен в Таблице 1 .

ПУНКТ МЕНЮ

ОПИСАНИЕ

1) НУЛЕВАЯ шкала

Снимите все грузы с держателя и нажмите для выполнения процесса SCALE-ZERO. Новая точка SCALE-ZERO будет автоматически сохранена в EEPROM.

2) Изменить вес катушки

Измените ЗНАЧЕНИЕ ВЕСА пустой КАТУШКИ. Изменения будут автоматически сохранены в EEPROM.

3) Выберите нить

Сделайте новый выбор из БАЗЫ ДАННЫХ FILAMENT. Новый выбор станет активной нитью и автоматически сохранится в EEPROM.

4) ИЗМЕНИТЬ ФИЛЬ ЕГО

Измените значение DENSITY нити для текущей активной нити. Изменения станут активными и будут автоматически сохранены в БАЗЕ ДАННЫХ.

5) ДИАМ. ФИЛЬТРА ИЗМЕНЕНИЯ

Измените значение ДИАМЕТРА нити для текущей активной нити. Изменения станут активными и автоматически сохранятся в БАЗЕ ДАННЫХ.

6) ИЗМЕНЕНИЕ НАЗВАНИЯ ФИЛЬМА

Измените НАЗВАНИЕ (четырехбуквенное сокращение) активного в данный момент филамента. Изменения станут активными и автоматически сохранятся в БАЗЕ ДАННЫХ.

7) Сохранить в EEPROM

Сохраните все активные значения в базы данных FILAMENT & CAL-CONFIG. Эта функция обычно не используется, так как каждая опция автоматически сохраняет любые изменения.

8) Калибровка весов

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

9) Установить масштабный фильтр

Увеличьте этот параметр, чтобы замедлить и стабилизировать показания; уменьшите значение параметра, чтобы ускорить реакцию дисплея. Изменения автоматически сохраняются в EEPROM.

10) Серийный дамп БД

Эта опция будет передавать текущие значения базы данных на последовательный порт. Примечание. Для получения этих данных IDE должна быть подключена к ЦП, а последовательный монитор должен быть активен. Скорость передачи данных последовательного монитора должна быть установлена​​на 115200.

11) Стереть ЭСППЗУ

Сотрите EEPROM и используйте первоначальные значения по умолчанию. ВНИМАНИЕ: Все изменения базы данных калибровки и нитей, сделанные оператором, будут утеряны. Весы будут повторно инициализированы до жестко запрограммированных значений для первого запуска при следующем цикле включения питания.

12) Выход из меню

Выход из режима меню и пустой строки 4 ЖК-дисплея.

ТАБЛИЦА 1.

Имея в руках этот эталон веса, можно начинать калибровку.

1. С помощью поворотно-нажимного элемента управления вызовите строку меню и выберите пункт: 8) Калибровка весов.
    а) Снимите все нагрузки с рычага золотниковых весов.
    б) На вопрос «Хотите обнулить шкалу?» выберите YES и нажмите ручку.
2. Когда процесс обнуления завершится:
    a) Поместите испытательный груз с известной массой на рычаг золотниковых весов.
    b) С помощью поворотного переключателя введите значение веса почтовых весов (в кг) для вашего известного испытательного веса.
    c) Нажмите ручку поворотного регулятора, когда будет установлено правильное значение.
3. Теперь весы будут усреднять 10 последовательных аналогово-цифровых измерений и вычислять коэффициент калибровки.
    а) На вопрос «Принять и продолжить?» выберите YES и нажмите ручку.
4. Калибровка завершена.
    a) Значения ZERO-OFFSET и CALIBRATION-FACTOR будут сохранены в EEPROM.
    b) Весы выходят из РЕЖИМА КАЛИБРОВКИ и начинают работать в обычном основном цикле «измерение и отображение».
5. Для проверки калибровки:
    a) После калибровки оставьте испытательный груз известного веса на рычаге весов для катушек и дайте весам для катушек измерить ОБЩИЙ ВЕС.
    b) Показания ОБЩЕГО ВЕСА, отображаемые на ЖК-дисплее, должны соответствовать известному значению веса на почтовых весах.

Обратите внимание, что пункт меню 1 позволяет обнулить весы в любое время. Делайте это периодически для лучшей точности.

Spool Scale включает в себя встроенную базу данных основных параметров нитей. Структура этой базы данных следующая:

//Define Filament DataBase Structure
struct FILAMENT_DATABASE
{
    char Name[5];    //  5 Bytes - Filament Name(4 chars show on LCD)
    float Dia;    //  4 Bytes - Filament Diameter in mm
    float Dens;    //  4 Bytes - Filament Density in g/cm^3
        // ---------
        // 13 Bytes for each filament - type in data base
};

Обратите внимание, что пять байтов, определенных для каждого имени нити, состоят из четырех символов ASCII плюс завершающий нуль. Таким образом, только первые четыре символа будут отображаться на ЖК-экране для идентификации имени нити. Во встроенной базе данных EEPROM может храниться до 16 типов нитей. Я провел поиск в Интернете, чтобы найти «номиналы плотности нитей» для обычных типов нитей, и эти начальные значения будут загружены в базу данных нитей:

//Uncomment the appropriate line to set default filament diameter
float const Default_Fil_Diam = 1.75;    //Value is in mm
//float const Default_Fil_Diam = 3.00;    //Value is in mm

// Ram & EEPROM is Tight! With FnumMax = 16, we
// use-up 208 Bytes of RAM & EEPROM (16 x 13 = 208)
// for each FILAMENT_DATABASE structure we define.
struct FILAMENT_DATABASE FilType_DEFAULT[FnumMax] = {
    //Name ,Diameter_mm     ,Density_g/cm^3
    {“PLA “,Default_Fil_Diam,1.24},    //00 (LCD # = 1)
    {“ABS “,Default_Fil_Diam,1.04},    //01
    {“ASA “,Default_Fil_Diam,1.07},    //02
    {“PETG”,Default_Fil_Diam,1.27},    //03
    {“NYLN”,Default_Fil_Diam,1.08},    //04
    {“PlyC”,Default_Fil_Diam,1.20},    //05
    {“HIPS”,Default_Fil_Diam,1.07},    //06
    {“PVA “,Default_Fil_Diam,1.19},    //07
    {“TPU “,Default_Fil_Diam,1.20},    //08
    {“TPE “,Default_Fil_Diam,1.20},    //09
    {“PMMA”,Default_Fil_Diam,1.18},    //10
    {“Copr”,Default_Fil_Diam,3.90},    //11
    {“????”,Default_Fil_Diam,0.0},    //12
    {“????”,Default_Fil_Diam,0.0},    //13
    {“????”,Default_Fil_Diam,0.0},    //14
    {“????”,Default_Fil_Diam,0.0}          //15 (LCD # = 16)
};

После запуска и запуска вы можете обновить базу данных с помощью поворотного регулятора и опций меню 4, 5 и 6. Вам должно быть легко настроить записи в соответствии с вашими любимыми типами нитей и константами плотности производителя. Любые сделанные вами обновления будут автоматически сохранены в базе данных EEPROM.

Детали

ITEM

QTY

DESCRIPTION

SOURCE

NOTES

Electronics

1

1

ARDUINO NANO CPU

arduino.cc, eBay, Amazon

Suggest Nano Version 3.

2

1

POWER SUPPLY

Sparkfun, eBay, Amazon

Power for CPU. Consider using +12 VDC from 3D printer.

3

1

ROTARY ENCODER

Sparkfun, eBay, Amazon

Be sure unit has clock, data, and PB switch outputs.

4

1

20x4 A/N LCD DISPLAY W/ I2C INTERFACE

Sparkfun, eBay, Amazon

Order unit with I2C interface; model w/backlight suggested.

5

1

LOAD CELL W/ INTERFACE CIRCUIT

Sparkfun, eBay, Amazon

Be sure interface is 5V and uses HX711 with two-wire interface.

 

1

DIODE

Various

Power protection diode, 1N4004, or similar 50V, 1A.

6

1

POWER SWITCH

Various

Optional, builder’s choice.

7

1

MISC WIRING, CONNECTORS & ASSEMBY HARDWARE

Various

Builder’s choice, as-needed items.

Mechanics

8

1

FRAME MOUNT

3D print

See downloads for details and options.

9

1

SPOOL HOLDER

3D print

See downloads for details and options.

10

2

M5 x 12 mm PhilHd

Various

Frame mount attachment to load cell beam.

11

2

M4 x 12 mm PhilHd

Various

Spool holder attachment to load cell beam.

12

As Rqd

MISC SCREWS/T-NUTS

Various

Misc fasteners and cable ties (Ty-Rap) as needed to complete holder assembly.

Control Panel/Enclosure Options

13

1

FRONT PANEL (Frame Mount)

3D print

See downloads for details and options.

14

1

CASE FRONT/REAR SET (Stand-alone Case)

3D print

See downloads for details and options.

15

1

CPU/LCD MOUNTING FRAME

3D print

Holds CPU to rear of LCD display. See downloads for details and options.

16

2

TILT MOUNT (Stand-alone Case)

3D print

See downloads for details and options.

17

2

TILT BASE (Stand-alone Case)

3D print

See downloads for details and options.

18

As Rqd

MISC SCREWS/T-NUTS

3D print

4-40 x .5 in screws and other fasteners needed to assemble LCD/CPU to front panel and attach rear enclosure panel.

 

Материалы по статье доступны здесь .




Необходимо добавить материалы...
Результат опроса Результаты Все опросы нашего сайта Архив опросов
Всего голосовало: 373



          

Радио для всех© 2024