Металл2024 Реклама
Метобр2024 Реклама

Реализация беспроводной коммутации 3D машин на Marlin

Erzay 3D
Идет загрузка
Загрузка
13.01.2019
14237
26
Техничка

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

11
Добрый день Уважаемые читатели!

Я хотел бы продолжить тему с разработками и процессами этапов разработок относящихся к 3D принтерам, все работы проходили/ проходят в рамках текущего стартап проекта 'Erzay3D'.

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

1 бод равен 8 * 10^-7 мегабит/сек

Исходя из формулы, 250000 бод равно 0.2 мегабит/сек, с такой скоростью передачи данных отлично справится технология «Bluetooth 2.0 + EDR», с заявленной скоростью обмена данных до 3 мегабит/сек, по факту 2 мегабит/сек, что превышает минимальные требования обмена данными в 10 раз. Модуль «Bluetooth HC-05» использует технологию «Bluetooth 2.0 + EDR», что удовлетворяет всем требованиям и является одним из самых бюджетных средств беспроводной передачи данных (до 200 рублей на Китайском рынке).

Для конфигурации модуля и внедрение его в систему аддитивного устройства был сформирован алгоритм последовательностей:

1)для того, чтобы конфигурировать 'НС-05' модуль, в нашем случае из-за отсутствия USB-UART, был использован модуль быстрого прототипирования 'Arduino Uno'. Необходимо подключить модуль Bluetooth HC-05 к контроллеру Arduino по интерфейсу UART, который имитируется программным способом с помощью подключения библиотеки «SoftwareSerial». Вызывая команду для объявления портов : SoftwareSerial myPins(2, 3);Где pin 2 является виртуальным Rx- контактом, соответственно pin 3 Tx- контактом. Мы можем произвольно объявить свободные цифровые порты для приёма и передачи данных. В Arduino Uno такими являются D2 - D3. Далее подключить к ним контакты модуля как указано на рис. 1.1 .

Реализация беспроводной коммутации 3D машин на Marlin

Рисунок 1.1 - Подключение модуля Bluetooth HC05 к Arduino Uno

Контакт Rx Bluetooth- модуля подключается к контакту Tx Arduino, а контакт Tx Bluetooth- модуля — к контакту Rx Arduino.Контакт GND модуля HC-05, к контакту GND микроконтроллера Ar-duino. Контакт VCC модуля HC-05, питающему контакту +3.3V на Arduino.

2)для компиляции и загрузки листинга, была использована среда разработки IDE Arduino Software. Необходимо использовать листинг следующего вида:

#include

SoftwareSerial myPins(2, 3);

void setup()

{

pinMode(2,INPUT);

pinMode(3,OUTPUT);

Serial.begin(9600);

myPins.begin(38400);

Serial.println('9600');

Serial.println('ok');

}

void loop()

{

if (myPins.available())

{

int c = myPins.read(); // чтение из модуля

Serial.write(c); // вывод информации в монитор сериал соединения

}

if (Serial.available())

{

int c = Serial.read(); // чтение из модуля

myPins.write(c); // вывод информации в монитор сериал соединения

}

}

После успешной компиляции и загрузки кода, выбираем соответствующий COM порт, к которому подключён контроллер Arduino. Открываем «Монитор порта (Ctrl + Shift + M)» для отправки команд в Bluetooth- модуль. и устанавливаем баудрейт на 38400 бод(на текущем модуле оказалась заводская такая скорость, у каждого модуля она может отличаться).

3)для перевода модуля HC-05 в режим настройки конфигурации AT команд, необходимо на контакт «KEY(34)», подать напряжение в +3.3V. рис. 1.2.
Реализация беспроводной коммутации 3D машин на Marlin

Рисунок 1.2 - Перевод модуля Bluetooth HC05 в режим AT команд, путём подачи напряжения на контакт «KEY(34)»



Кроме того существует альтернативный способ перевода модуля в режим конфигурации AT. Для этого необходимо нажать кнопку reset на модуле и удерживать её , отключить и включить питание - отпустить кнопку. При включении модуля светодиод мигает 1 раз в секунду, в режиме АТ-команд 1 раз в две секунды, при верном переводе модуля мы увидим мигание светодиода 1 раз в 2 секунды, после чего с помощью монитора сериал порта среды разработки Arduino, можно отправлять на модуль AT команды.

4)все команды имеют вид: «AT+КОМАНДА», «AT+КОМАНДА?» или «AT+КОМАНДА=ПАРАМЕТРЫ» и должны оканчиваться комбинацией CR+LF (символы с кодами 0x0D и 0x0A, '

' и '

'). На каждый корректный запрос Bluetooth-модуль будет слать ответ. Необходимо присвоить имя устройству, например «Okroshka» (20 символов ограничено), для этого отправляем:

AT+NAMEOkroshka

Ответ: Ok

Теперь имя Bluetooth является «Okroshka» При сканировании эфира появилось устройство с именем Okroshka. Далее нужно сменить скорость баудрейта, для оптимальный работы необходима скорость 115200 бод. Отправляем команду: AT+UART=250000,0,0

Ответ: Ok

Означает что скорость баудрейта изменилась верно и теперь достаточна для оптимальной работы, по умолчанию модуль находится в режиме сервера и ожидает подключения к нему устройств что удовлетворяет нашим требованиям, пароль по умолчанию «1234», изменим его на «1111». Для этого отправим команду:

AT+ PIN1111

Ответ: OKsetpin

Означает, что пароль для аутентификации подключения изменён.

Тестирование беспроводной передачи данных

Для тестирования будет использоваться микроконтроллер использующийся в некоторых аддитивных устройствах, «Arduino Mega», с уже подключённым и ранее настроенным Bluetooth модулем HC-05. Загрузим листинг следующего вида:

#include SoftwareSerial bluetooth(53, 52); // указываем пины rx и tx соответственно

void setup()

{

pinMode(53,INPUT);

pinMode(52,OUTPUT);

bluetooth.begin(250000); // скорость связи между arduino и bluetooth-модулем

Serial.begin(9600); // скорость usb-порта

Serial.println('ok');

Serial.println('9600');

}

void loop()

{ }

Его задача заключается в том, чтобы перенаправить команды, полученные с модуля, в сериал порт USB к которому подключен ПК. Также для имитации выполнения 3D печати, на ПК было запущено программное обеспечение «Erzay3D Lab». Предварительно скомпилированный G- COD цифровой модели кораблика. Отправим первые строчки команд на устройство, с которым будет осуществлено сопряжение. С помощью Android приложения 'Bluetooth Terminal', на смартфоне, осуществляем сопряжение с Bluetooth, который ранее назвали «Okroshka», с паролем «1111». Подключаем устройство «Arduino Mega» к ПО «Erzay3D Lab», отправляем G- code через Bluetooth Terminal( Рис. 1.3). При удачной реализации ПО должно визуализировать 3D печать в реальном времени(Рис. 1.4).
Реализация беспроводной коммутации 3D машин на Marlin

Рисунок 1.3 - Androin приложения 'Bluetooth Terminal', пример отправки g-cod команд на ПК.

Реализация беспроводной коммутации 3D машин на Marlin

Рисунок 1.4 - Имитация 3D печать в реальном времени, на ПО Erzay3D Lab.

Тестирование можно назвать успешном, строчки G- code передаются без помех при баудрейде в 250000 бод, таким образом мы сможем создать Andriod приложение для управления 3D принтером, а ПО на стороне ПК, имитировало работу самой 3D машины, следующем шагом будет подключение модуля к аддитивной машине.

Подключение Bluetooth –модуля HC-05 к Ramps 1.4.

Ramps 1.4 - это универсальная плата расширения аддитивных устройств для контроллера Arduino Mega. Порты TХ/RX модуля HC-05 необходимо подключить к TХ/RX выводам Arduino Mega.(Рис. 1.5.).

Реализация беспроводной коммутации 3D машин на Marlin

Рисунок 1.5 – Распиновка платы Ramps 1.4

Из распиновки платы, мы видим что TХ/RX называются цифровыми портами D0,D1, которые расположены в «AUX-1», к ним и будет подключён BT модуль, рядом очень удобно расположены разъёмы «+5/gnd», от которых мы будем питать устройство HC-05.(Рис. 1.6.) При желании можно объявить свои порты, при незначительной манипуляции с кодом.

Реализация беспроводной коммутации 3D машин на Marlin

Рисунок 1.6 – Подключение HC-05 к Ramps 1.4

Далее в конфигурации Marlin устанавливаем настроенную скорость передачи данных для BT модуля и активируем 'BLUETOOTH'

#define BAUDRATE 250000

// Enable the Bluetooth serial interface on AT90USB devices

#define BLUETOOTH

Всё готово к работе, всем спасибо за внимание! Выражаю благодарность за содействие 3dproger!

Подпишитесь на автора

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

Отписаться от уведомлений вы всегда сможете в профиле автора.

11
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама