Оснащение 3D-принтера MC7 дисплеем RepRapDiscount Full Graphic Smart Controller и создание своего логотипа

Подписаться на 3Dtoday
masterkit
Идет загрузка
Загрузка
20.12.16
2448
0
печатает на MC5
RepRap
6
Статья относится к принтерам:
3D MC7 Prime mini 3D MC7 Prime mini PAP WO PS 3D MC7 Prime mini WO PS
Мы продолжаем серию статей (1, 2, 3) о доработках 3D-принтера MC7, разработанного и изготавливаемого компанией Мастер Кит.
Принтер имеет быстросборную модульную конструкцию, состоящую из 5 модулей. Как показывает практика, собрать принтер можно буквально за 15-20 минут! Некоторое время займут также подключение электроники и настройка, но мы практически уверены, что не более чем через час после распаковки принтер будет печатать.
7514009c7400f5657701def944252521.jpg
Хорошим дополнением к принтеру MC7 послужит модуль, позволяющий печатать автономно, без подключения к компьютеру. Наиболее широко для этого применяется модуль RepRapDiscount Smart Controller (или его клоны), содержащий 4-х строчный LCD-дисплей с двадцатью символами в строке, считыватель SD-карт и энкодер для управления принтером.
Гораздо более широкими графическими возможностями обладает RepRapDiscount Full Graphic Smart Controller. Устройство также оснащено считывателем SD-карт и энкодером, но в отличие от предыдущего модуля имеет графический LCD-дисплей размером 128x64 точки. Контроллер имеет интуитивно понятное меня и позволяет управлять всеми режимами принтера, а также печатать модели из файла, содержащего G-код, который можно формировать любым подходящим слайсером – Cura, Slic3r и т.п.
7e994e90e0f4f857c7118080d1b5310d.jpg
Контроллер очень просто подключается к блоку электроники на основе плат Arduino Mega 2560 и RAMPS 1.4, которые используются в принтере MC7. Для подключения используются два шлейфа и плата-адаптер.
303d031f3798fa8c066aa3028222bfcb.jpg
Теоретически, прошивка Marlin позволяет включить русский язык при работе с RepRapDiscount Full Graphic Smart Controller. Но практика показала, что лучше этого не делать…Пользователи жалуются на появление нечитаемых символов и корявый перевод.
Для того чтобы модуль заработал, необходимо перепрошить плату Arduino Mega 2560. Прежде всего, следует скачать библиотеку U8glib (можно отсюда), необходимую для работы графического дисплея и прошивку с поддержкой контроллера. Библиотеку надо разархивировать в каталог, где находятся остальные библиотеки Ардуино. После этого необходимо запустить оболочку Arduino IDE (проверено с версией 1.6.7), загрузить прошивку и запустить процесс ее компиляции и загрузки.
Прошивка отличается тем, что в закладке Configuration.h перед определением

#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER снят двойной слэш, а строка
//# define REPRAP_ DISCOUNT_ SMART_ CONTROLLER, разрешающая работу строчного дисплея, должна его иметь.

То есть, должна быть разрешена работа только одного типа дисплея.

Во время включения питания принтера на графическом экране на пару секунд возникает картинка с логотипом REPRAP.
ad07bcb729a2e10b8fe2fb404485e1a1.jpg
Логотип в левой части размером 60х64 пикселей можно заменить на свой. Для этого во вкладке DOGMbitmaps.h надо заменить данные внутри конструкции
const unsigned char start_bmp[574] PROGMEM = { //AVR-GCC, WinAVR
ваши данные
};

Изначально эта конструкция выглядит следующим образом:
const unsigned char start_bmp[574] PROGMEM = { //AVR-GCC, WinAVR
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xF9,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xF0,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xE0,0x7F,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xC0,0x3F,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0x80,0x1F,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0x00,0x0F,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFE,0x00,0x07,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFC,0x00,0x03,0xFF,0xFF,0xF0,
0xFF,0xFF,0xF8,0x00,0x01,0xFF,0xFF,0xF0,
0xFF,0xFF,0xF0,0x00,0x00,0xFF,0xFF,0xF0,
0xFF,0xFF,0xE0,0x00,0x00,0x7F,0xFF,0xF0,
0xFF,0xFF,0xC0,0x00,0x00,0x3F,0xFF,0xF0,
0xFF,0xFF,0x80,0x00,0x00,0x3F,0xFF,0xF0,
0xFF,0xFF,0x00,0x00,0x00,0x1F,0xFF,0xF0,
0xFF,0xFE,0x00,0x00,0x00,0x0F,0xFF,0xF0,
0xFF,0xFE,0x00,0x00,0x00,0x07,0xFF,0xF0,
0xFF,0xFC,0x00,0x00,0x00,0x07,0xFF,0xF0,
0xFF,0xFC,0x00,0x00,0x00,0x03,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x03,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x03,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x01,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x01,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x01,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x01,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x01,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x01,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x01,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x01,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x03,0xFF,0xF0,
0xFF,0xF8,0x00,0x00,0x00,0x03,0xFF,0xF0,
0xFF,0xFC,0x00,0x00,0x00,0x03,0xFF,0xF0,
0xFF,0xFC,0x00,0x00,0x00,0x07,0xFF,0xF0,
0xFF,0xFE,0x00,0x00,0x00,0x07,0xFF,0xF0,
0xFF,0xFE,0x00,0x00,0x00,0x0F,0xFF,0xF0,
0xFF,0xFF,0x00,0x00,0x00,0x1F,0xFF,0xF0,
0xFF,0xFF,0x80,0x00,0x00,0x1F,0xFF,0xF0,
0xFF,0xFF,0xC0,0x00,0x00,0x3F,0xFF,0xF0,
0xFF,0xFF,0xE0,0x00,0x00,0x7F,0xFF,0xF0,
0xFF,0xFF,0xF0,0x00,0x01,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFC,0x00,0x03,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0x00,0x1F,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0,
0x83,0xFF,0xFF,0xFE,0x0F,0xFF,0xFF,0xF0,
0x80,0xFF,0xFF,0xFE,0x03,0xFF,0xFF,0xF0,
0x88,0x7F,0xFF,0xFE,0x23,0xFF,0xFF,0xF0,
0x8C,0x70,0x38,0x0E,0x71,0x81,0xC0,0x70,
0x8C,0x60,0x38,0x0E,0x63,0x80,0xC0,0x30,
0x80,0xE3,0x19,0xC6,0x07,0xF8,0xC7,0x30,
0x80,0xE0,0x19,0xC6,0x03,0x80,0xC7,0x10,
0x8C,0x62,0x79,0xC6,0x63,0x9C,0xC7,0x30,
0x8C,0x63,0xF8,0xC6,0x71,0x18,0xC6,0x30,
0x8E,0x30,0x18,0x0E,0x71,0x80,0xC0,0x30,
0x9E,0x38,0x39,0x1E,0x79,0xC4,0xC4,0xF0,
0xFF,0xFF,0xF9,0xFF,0xFF,0xFF,0xC7,0xF0,
0xFF,0xFF,0xF9,0xFF,0xFF,0xFF,0xC7,0xF0,
0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF0
};

Наш логотип получается так:
const unsigned char start_bmp[574] PROGMEM = { //AVR-GCC, WinAVR
0, 0, 0, 0, 216, 13, 0, 0, 0, 0, 0, 1, 2, 32, 64, 0,0, 0, 0, 2, 1, 64, 32, 0, 0,
0, 0, 4, 1, 0, 16, 0,0, 0, 0, 0, 0, 128, 16,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0,0, 0, 0, 0, 0, 33, 230,0, 0, 0, 0, 0, 0, 49, 1, 128, 0, 0, 0, 0, 4,
73, 2, 80, 0, 0, 0, 0, 14, 117, 226, 40, 0, 0, 0, 0, 10, 64, 4, 52, 0, 0, 0, 0,
137, 7, 240, 73, 0, 0, 0, 0, 248, 127, 254, 33, 128, 0, 0, 128, 65, 255, 255,
210, 64, 0, 1, 128, 35, 25, 196, 5, 160, 0, 7, 128, 2, 57, 196, 0, 64, 0, 15,
0, 2, 121, 135, 156, 0, 0, 31, 0, 32, 121, 135, 158, 0, 0, 30, 0, 96, 121, 7,
158, 0, 0, 62, 0, 96, 121, 7, 159, 0, 131, 254, 0, 224, 56, 7, 159, 0, 31, 254,
0, 226, 56, 71, 159, 128, 255, 254, 1, 226, 24, 71, 159, 128, 15, 254, 1, 227,
24, 199, 159, 128, 0, 31, 129, 227, 8, 199, 159, 192, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 24, 24, 96, 121, 254, 254, 127, 0, 24, 24, 96, 204, 48,
192, 97, 128, 28, 56, 241, 132, 48, 192, 97, 128, 28, 56, 241, 128, 48, 192, 97,
128, 30, 120, 145, 128, 48, 252, 97, 128, 30, 121, 153, 128, 48, 192, 127, 0,
27, 217, 153, 128, 48, 192, 96, 0, 27, 217, 249, 132, 48, 192, 96, 0, 25, 155,
12, 204, 48, 192, 96, 0, 25, 155, 12, 120, 48, 254, 96, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 99, 48, 223, 224, 0, 0, 0, 0, 102, 48, 195,
0, 0, 0, 0, 0, 108, 49, 195, 0, 0, 0, 0, 0, 120, 51, 195, 0, 0, 0, 0, 0, 112, 55,
195, 0, 0, 0, 0, 0, 120, 62, 195, 0, 0, 0, 0, 0, 108, 60, 195, 0, 0, 0, 0, 0,
102, 56, 195, 0, 0, 0, 0, 0, 99, 48, 195, 0, 0, 0, 0, 0, 97, 176, 195, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 227, 240, 0, 0, 0,
0, 0, 3, 51, 24, 0, 0, 0, 0, 0, 0, 51, 12, 0, 0, 0, 0, 3, 128, 51, 12, 28, 0,
0, 0, 15, 224, 227, 12, 127, 0, 0, 0, 3, 128, 51, 12, 28, 0, 0, 0, 0, 0, 51,
12, 0, 0, 0, 0, 0, 0, 51, 12, 0, 0, 0, 0, 0, 3, 51, 24, 0, 0, 0, 0, 0, 1, 227,
240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
};

Данные могут быть представлены как в шестнадцатеричном, так и в десятичном представлениях. Эти данные являются битовым массивом, представляющим растровое изображение. Изображение в таком представлении можно нарисовать в каком-либо графическом редакторе, например в обычном Paint, или преобразовать из картинки в формате JPEG в более продвинутом редакторе.
Для рисования и преобразования файлов форматов BMP и JPG в битовый массив bitmap можно использовать бесплатную программу LCD_Bitmap_Converter. После загрузки файла и конвертации остается только скопировать полученный массив данных в прошивку и загрузить ее в плату управления.
207e8c04b19bd44d943bfc2f08f601c1.jpg
d9f75143a72b1714ffd9fe33a4df0176.jpg
Мы копировали массив в десятичном представлении, как видите, это отлично работает.
acbe889eccd6d2496321dd17dd13888f.jpg
Устанавливается контроллер в верхней части рамы принтера на две одинаковые детали, напечатанные на этом же принтере (вот она, философия REPRAP в действии).
02618a135351edc76fe4e8b10ccecdd0.jpg
Смонтированный дисплей не мешает переносить принтер, и вполне органично вписывается в общий дизайн устройства, добавляя принтеру полезный функционал.
c4a3ed0d2985087abaa7e94623442e70.jpg
Следует отметить, что по результатам интенсивной эксплуатации 3D-принтера MC7 в нашей лаборатории, на выставках, а также по отзывам пользователей, принтер имеет стабильные хорошие характеристики. Вполне оправдано применение хорошо зарекомендовавшего себя экструдера E3D V6 и связки плат Arduino Mega 2560 и RAMPS, позволяющей использовать открытое программное обеспечение и легко модифицировать и расширять функциональные возможности принтера.
Подписаться на 3Dtoday
6
Комментарии к статье