Реализация беспроводной коммутации 3D машин на Marlin
Я хотел бы продолжить тему с разработками и процессами этапов разработок относящихся к 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 .
Рисунок 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. Необходимо использовать листинг следующего вида:
#includeSoftwareSerial 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.
Рисунок 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).
Рисунок 1.3 - Androin приложения 'Bluetooth Terminal', пример отправки g-cod команд на ПК.
Рисунок 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.).
Рисунок 1.5 – Распиновка платы Ramps 1.4
Из распиновки платы, мы видим что TХ/RX называются цифровыми портами D0,D1, которые расположены в «AUX-1», к ним и будет подключён BT модуль, рядом очень удобно расположены разъёмы «+5/gnd», от которых мы будем питать устройство HC-05.(Рис. 1.6.) При желании можно объявить свои порты, при незначительной манипуляции с кодом.
Рисунок 1.6 – Подключение HC-05 к Ramps 1.4
Далее в конфигурации Marlin устанавливаем настроенную скорость передачи данных для BT модуля и активируем 'BLUETOOTH'
#define BAUDRATE 250000
// Enable the Bluetooth serial interface on AT90USB devices
#define BLUETOOTH
Всё готово к работе, всем спасибо за внимание! Выражаю благодарность за содействие 3dproger!
Еще больше интересных статей
Ремонт принтера Аникубик фотон М3+ (3D Anycubic Photon M3 Plus)
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
через 5 месяцев эксплуатации начало рвать на разных расс...
🔧 Интерактивное выравнивание стола винтами на Neptune 4 MAX с помощью индуктивного датчика.
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Н...
Blue Pill & SSD1306, ну очень маленькие.., но 32 бит!
Подпишитесь на автора
Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.
Отписаться от уведомлений вы всегда сможете в профиле автора.
Решил я тут попробовать перейти с 8 бит на 32.
Готовы...
Комментарии и вопросы
Я же сказал что на момент всех...
Благодарю большое, под заваляв...
Все же смущает меня пластина с...
В общем проблема в чём возникл...
Подскажите почему такой 1-ый в...
Поменяла нагревательную часть...
Нужно ли брать защитную пленку...