- PVSM.RU - https://www.pvsm.ru -
В мануале мы расскажем, как собрать достаточно любопытное устройство с большим потенциалом, которое позволяет наносить различные надписи на асфальт, во время движения. Всё в мире иллюзорно и временно… И данный проект хорошо иллюстрирует это.
Я начал заниматься этим проектом, потому что хотел оставить свой след в мире, но не хотел оставлять никаких последствий.
Я также хотел сложного проекта для моего нового 3D-принтера, который включал бы программирование для Arduino.
Наконец, мне нравится создавать вещи, используя как можно больше имеющегося в наличии добра.
Как можно увидеть в моих видео, StreetWriter соответствует всему этому. Он пишет сообщения высотой 8 дюймов (20,32 см) водой на тротуаре, во время движении и не оставляет следов, когда вода испаряется.
Я построил два StreetWriter-а с небольшими различиями в конструкции между ними. Эта инструкция основана на второй сборке, которая несколько улучшена.
В StreetWriter-е вода под давлением подается в коллектор, в который содержит 8 автомобильных топливных форсунок. Во время движения StreetWriter-а — Arduino управляет топливными форсунками, разбрызгивая воду на тротуар. Наносимое сообщение является одним из 8, которые были записаны на SD-карту, подключенную к Arduino. Оператор может легко выбирать среди сообщений и может записывать новые сообщения на SD-карту, с помощью компьютера. Нет ограничений на длину сообщения, кроме количества воды в резервуаре. Самое длинное сообщение, которое я написал на данный момент — число Пи, с точностью до 300 знаков.
Ведущие колеса в сборе (б/у от старого автомобиля «Power Wheels»);
Целью этого проекта было написание текстовых сообщений с использованием воды, являющейся временным средством письма. Через короткое время вода испарится, и сообщение исчезнет без следа.
Меня меньше интересовала привлекательность конечного устройства, чем его функциональность. Однако, если вас интересует не только функциональность, но и внешний вид, есть много возможностей для его улучшения.
В целом, устройство представляет собой моторизованную платформу, которая использует 8 форсунок для контролируемого разбрызгивания воды при движении платформы.
Как показано на картинках этого шага, платформа представляет собой деревянную доску, приводимую в движение двумя двигателями, взятыми от маленьких игрушечных колесных машинок.
Бачок омывателя ветрового стекла с насосной системой создает требуемый напор воды для работы 8 топливных форсунок под управлением Arduino Uno.
На Arduino установлен shield, который обеспечивает ток, необходимый для работы топливных форсунок, который Arduino не может обеспечить напрямую. Также установлен специальный shield для Arduino с устройством для чтения SD-карт, а также ряд компонентов, для выбора файла, который будет использоваться и установки величины напора воды для написания сообщений.
Также, установлено дистанционное управление StreetWriter-ом — с помощью переделанной электроники от радиоуправляемой машинки.
Подробности обо всем этом читайте далее.
Во многих отношениях, этот шаг составляет основу конструкции StreetWriter-а.
Я купил 8 б/у топливных форсунок, а затем спроектировал и напечатал на 3D-принтере коллектор, чтобы установить на него топливные форсунки и питать водой (см. картинку с оранжевыми форсунками на синем коллекторе).
Топливные форсунки прекрасно подходят для этого проекта. Каждая топливная форсунка содержит клапан для управления потоком воды, электрический соленоид на 12 В для управления клапаном, форсунку, которая распыляет воду в контролируемой зоне, а также водопровод и герметизацию для подачи воды к клапану и форсунке. Все внутренние металлические части изготовлены из нержавеющей стали, поэтому тот факт, что мы используем воду, а не бензин, не вызывает проблем с коррозией. Чтобы немного укоротить длину печатаемого водяного пикселя, нужно всего лишь чтобы Arduino подала на соленоид импульс в 12 В, в течение короткого периода времени.
Я спроектировал коллектор таким образом, чтобы топливные форсунки были расположены достаточно далеко друг от друга, в целях расположения их пикселей из воды рядом друг с другом. Если ваши топливные форсунки распыляют воду совсем по-другому, вам, возможно, придется подрегулировать (поднять или опустить) высоту узла коллектора / форсунки, чтобы распылители находились в непосредственной близости.
Я нашел несколько нештатных разъемов с проводами, которые подходят для установки на контакты топливных форсунок, но вы можете использовать для этого штатные автомобильные разъемы. Более подробная информация о соединениях содержится в Шаге 10 – «Окончательная сборка».
Топливные б/у форсунки были куплены на Ebay, по цене примерно по 2 доллара за штуку
(прим. переводчика: вы можете купить аналогичные форсунки в ближайшем к вам автомагазине. Там же продаются и специальные разъемы для этих форсунок. Например, здесь [1]. Рекомендуется использовать штатные комплекты форсунка/разъем с проводами, так как тряска в процессе езды может доставлять неудобства — постоянной потерей контакта.)
Похоже, что похожие детали доступны для разных типов автомобилей. На прилагаемой фотографии отмечены важные особенности, необходимые для работы инжектора с представленной здесь конструкцией коллектора.
Коллектор, напечатанный на 3D-принтере, является самой сложной частью этого проекта.
Он содержит 8 гнезд для топливных форсунок, отверстия для манометра, впускное отверстие для воды и должен быть водонепроницаемым.
Я разработал эту деталь в TinkerCad, и это было довольно просто. Я прилагаю STL-файл и файл Gcode для PLA. Также посмотрите видео, в котором показана модель TinkerCad и печать на 3D- принтере (заняло 8 часов).
На одном из изображений этого шага, показан небольшой красный участок коллектора, на котором видны отверстия, используемые для фиксации топливных форсунок в коллекторе. Я просто пропустил кусок медной проволоки через четыре отверстия, и топливная форсунка зафиксировалась на месте.
Основное назначение этой небольшой детали состояло в том, чтобы проверить, что инжектор входит в канал и убедиться, что сборка будет водонепроницаемой, прежде чем приступить к 8-часовой сборке. Я зажал деталь в тисках с кусочком резины поперек открытого конца и подал воду под напором — вода протекала. Я моделил эту деталь несколько раз с различными настройками в слайсере Cura и не мог добиться ее водонепроницаемости. Она всегда протекала в нескольких местах. В конце концов, я взял Sli3er – в качестве программы-слайсера и деталь прошла тест на водонепроницаемость при первой же распечатке. Gcode этой версии – приложен здесь.
После того, как коллектор напечатан, нужно проделать несколько завершающих действий, прежде чем его можно будет использовать.
На этом этапе топливные форсунки можно установить в коллектор и застопорить их там кусочками медной проволоки.
Я нанес литиевую смазку на уплотнительное кольцо на каждой форсунке перед его установкой, чтобы облегчить установку и обеспечить герметичность уплотнения.
Проверьте проделанную работу. Установите манометр и переходник для шланга. Подайте напор воды под атмосферным давлением и ищите утечки. При обнаружении их, вы можете использовать клей WELD-ON 16 или растворитель WELD-ON 4 для герметизации найденного и провести повторный тест.
Скачать файл коллектора в STL [2]
Скачать файл коллектора [3] в Gcode
Как я сказал во вступлении, целью моей сборки StreetWriter-а была функциональность, а не красота или внешний вид.
Рама сделана из фанеры ½ дюйма (12,7 мм) с отверстиями, деревянными бобышками и т. д., добавленными по мере необходимости. Общая фотография дает представление, как все было размещено. Единственное важное размещение — ряд топливных форсунок в задней части платформы, между задними колесами. Таким образом, при повороте платформы — сообщение будет минимально искажено, и колеса никогда не переедут его.
Топливные форсунки свисают с коллектора и проходят через отверстия в раме. Они не подпираются рамой. Коллектор находится на раме и свободно удерживается только одним трубным зажимом, который вы можете видеть на фотографии с заднего вида.
Платформа приводится в движение двумя колесами в сборе, которые были взяты от старых детских бегунков Power Wheel, которые у меня имелись. На прилагаемом изображении показаны аналогичные блоки. Двигатели силовой установки связаны кабелем с блоком на раме и усилены снизу L-образными скобами. Я добавил конденсаторы 0,1 мкФ на клеммы двигателя, чтобы уменьшить электрический шум от двигателей щеточного типа. (Arduino самопроизвольно перезагружалась без конденсаторов).
Движение данной платформы представляет собой – движение «танкового типа», при котором для руления – отключается питание первого или второго двигателя. Рулевое управление непропорционально — остановите одно колесо, и StreetWriter резко повернет. Плавные развороты выполняются оператором, нажимающим прерывисто вправо или влево при движении вперед.
В передней части рамы есть колесико, которое позволяет StreetWriter-у делать крутой поворот, когда одно колесо перестает вращаться.
Задние колеса райдеров в стиле Power Wheel обычно соединены осью, поэтому оба колеса вращаются вместе.
Здесь это не годится, потому что я хочу, чтобы задние колеса работали независимо – в целях рулевого управления.
Я где-то нашел 5-дюймовые (127 мм) колеса и с небольшими изменениями смог их применить для дела. Детальный осмотр показывает, что это конкретное колесо имеет 12 распорок. Узел привода имеет 6 слотов. Я просто отрезал все остальные стойки, а оставшиеся стойки аккуратно вошли в пазы в сборке привода. Я пропустил болт через отверстие, которое изначально содержало ось, и гайку со вставкой Nyloc, чтобы удерживать их вместе с достаточным люфтом, чтобы все это могло вращаться. (В зависимости от того, какие детали вы используете для узлов привода и колес, вам, возможно, придется проявить творческий подход, чтобы заставить их работать вместе.)
Скачать электрическую схему StreetWriter-а в pdf [4]
В соответствии с целью использования «найденных» деталей, где это возможно, — дистанционное управление для StreetWriter базируется на электронике от разбитой маленькой радиоуправляемой машинки. Важным требованием является то, что пульт дистанционного управления должен быть радио, а не ИК, поскольку StreetWriter будет использоваться на улице. У большинства этих автомобилей нет идеального пропорционального рулевого управления.
Они либо поворачивают направо, либо налево, либо едут прямо.
Я использовал электронику из машинки и добавил реле, чтобы поднять мощность до уровня, необходимого для узлов привода. Нижняя (коричневая) печатная плата на картинке — от машинки. Верхняя (с подстроечным резистором) плата содержит реле и регулятор напряжения, необходимый для электрических схем машинки с напряжением 4,5 В. Схема прилагается.
Схема довольно простая. Транзистор управляет каждым из трех реле. Одно реле приводит в действие левый двигатель, одно — правый, а третье меняет направление мощности на оба двигателя для движения назад. Управляющие сигналы поступают с печатной платы радиоуправляемого автомобиля. Когда подается сигнал о левом повороте, транзистор заставляет левое реле выключиться, останавливая этот двигатель.
Пульт дистанционного управления показан на картинке.
Я добавил кусок музыкального провода (находящийся не в фокусе на картинке), чтобы немного увеличить дальность действия.
Эта схема имеет только одно соединение с Arduino. Данное соединение сообщает Arduino, что автомобиль движется вперед. Если автомобиль останавливается или движется назад, вода не разбрызгивается.
Вода под давлением для StreetWriter-а поступает из бачка омывателя лобового стекла от старого Subaru, но автомобиль, от которого это взято — не критичен. Подойдет любой бак со встроенной водяной помпой на 12В.
Этот конкретный резервуар содержит 2 водяных насоса, поэтому я просто отключил питание одного из них и использовал оставшийся. На дне емкости имеется выпуклость, предназначенная для сопряжения с отверстием в кузове автомобиля. Я просто просверлил отверстие в раме StreetWriter-а, чтобы она туда поместилась, и прикрутил верхнюю часть бака к деревянной балке, установленной на платформе. Затем использовал болты, чтобы прикрепить пластину с главным выключателем питания.
Двигатель насоса требует большей мощности, чем может обеспечить выход Arduino. На самом насосе установлен транзисторный усилитель для уменьшения электрических шумов. (см. схему управления и довольно уродливое изображение проводки).
Трубки проходят от насоса на резервуаре до ниппеля на коллекторе. Размер ниппеля соответствует трубке и резьбе 1/8 дюйма NPT на коллекторе.
Код Arduino ненадолго запускает двигатель, прежде чем позволить топливным форсункам печатать, чтобы создать давление в системе.
Код Arduino также запускает насос, когда вы крутите ручку смены давления, чтобы пользователь мог установить нужное давление в коллекторе, поскольку для различных поверхностей требуется больше или меньше воды для хорошей читаемости. Вы просто поворачиваете ручку, и насос включается, поэтому вы можете регулировать давление с помощью манометра. Когда вы перестаете крутить ручку, насос отключается.
StreetWriter требует двух shield-ов кроме Arduino Uno.
Первый, EKT-1016, — который я купил на Tindie.com. Он предоставляет возможность использования 16 каналов. В этом проекте мы используем 8 из них.
Второй shield был добыт на SparkFun (www.sparkfun.com/products/12761).
Он содержит устройство для чтения SD-карт и несколько дополнительных опций:
Скачать электрическую схему StreetWriter-а в pdf [4]
Основная функция StreetWriter-а — использовать цифровой шрифт для создания символов.
К счастью, кто-то проделал всю тяжелую работу по созданию шрифтов и предоставил нам результаты тут [5].
Эта программа-редактор шрифтов имеет несколько доступных образцов шрифтов, что дает пользователю возможность редактировать эти существующие шрифты.
Затем вы можете вывести полученный шрифт в виде блока кода, который можно поместить непосредственно в программу Arduino.
Я изменил один из шрифтов, чтобы добавить посадочные места, и этот файл прилагается (footprintFONT.pf). Вы можете использовать любой из образцов шрифтов, поставляемых с пиксельным шрифтом, или тот, который прилагается, для создания блока кода, который нужен прошивке Arduino.
Скачать файл шрифта [6]
Код Arduino следующего шага позволяет читать и распечатывать один из 8 текстовых файлов.
Какой файл будет напечатан, выбирается с помощью поворотной ручки на shield-е для Arduino и показывается индикацией светодиода (разных цветов). Цвета: красный, зеленый, синий, желтый, голубой, пурпурный, белый, черный.
Текстовые файлы на SD-карте названы теми же восемью цветами для облегчения идентификации. Текст в файле никак не связан с именем файла.
Обычно я помещаю файл оглавления TOC.txt на SD-карту, чтобы отслеживать содержимое каждого файла, распечатываю этот файл и вставляю его в StreetWriter. (см. картинку)
Файлы могут быть любой длины. Например, файл BLACK.txt содержит число ПИ из 300 знаков.
Текстовые файлы могут быть созданы в любом текстовом редакторе, но некоторые редакторы могут добавлять символы конца строки, которые влияют на интервал между сообщениями во время печати. Я обычно использую Блокнот.
Программа для Arduino, которую я написал, имеет возможность доступа к «непечатаемым» позициям символов в таблице шрифтов, напрямую обращаясь к местоположению символа. Например, часть одного посадочного места находится в ячейке шрифта 128, поэтому текстовый файл содержит ^ 128. Код Arduino обнаруживает «^» и использует его как «escape-символ». Он не печатает «^», а выбирает следующие три символа в качестве местоположения шрифта и печатает этот символ.
(^ 128 ^ 129 ^ 130 ^ 131 ^ 132 ^ 133 напечатает шесть символов, составляющих один левый и один правый отпечаток.)
Скачать текстовый файл Red [7]
Скачать текстовый файл Green [8]
Скачать текстовый файл Blue [9]
Скачать текстовый файл Yellow [10]
Скачать текстовый файл Cyan [11]
Скачать текстовый файл Magenta [12]
Скачать текстовый файл White [13]
Скачать текстовый файл Black [14]
Скачать текстовый файл ОГЛАВЛЕНИЯ [15]
Код Arduino для этого проекта прилагается. Однако стоит упомянуть несколько вещей.
В программе две вкладки. (Чтобы среда Arduino IDE могла найти и использовать эти файлы, они должны быть помещены в папку с именем STREETWRITER_BLUE.)
STATESET — это просто процедура, которая взаимодействует с ETK-1016, включая его драйверы и, следовательно, топливные форсунки.
STREETWRITER_BLUE — это основная процедура, в которой происходит все остальное.
Начиная со строки 13 есть очень длинный массив:
const uint8_t font [] PROGMEM = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // Char 000 (.)
0x7E, 0x81, 0x95, 0xB1, 0xB1, 0x95, 0x81, 0x7E, // Char 001 (.)
…
0x44, 0x6C, 0x38, 0x10, 0x38, 0x6C, 0x44, 0x00, // Char 120 (x)
…
0x00, 0x60, 0x40, 0x40, 0x40, 0x40, 0x60, 0x00 // Char 255 (.)
};
Это таблица шрифтов. Каждая строка описывает один символ и заканчивается комментарием, в котором указывается адрес этого символа и его название. Непечатаемые символы обозначены (.). Эта таблица слишком велика, чтобы поместиться в рабочую память Arduino, и компилятор направляет ее во флэш-память. Это нормально, поскольку таблица только читается, а не записывается, пока работает Arduino.
Основной цикл начинается со строки 345. Он определяет, что StreetWriter движется вперед, считывает следующий символ из открытого текстового файла. Он отправляет байты этого символа в топливные форсунки по одному такту за раз. Затем он выбирает следующий символ и отправляет его.
В строке 347:
Arduino не регулирует, сколько времени бит буквы брызгает водой при изменении скорости StreetWriter-а. На практике я обнаружил, что скорость StreetWriter-а довольно постоянна, поэтому однократного тестирования и регулировки ширины штриха во время настройки достаточно для получения достаточно хорошего результата. В этом коде вы можете видеть, что он установлен на 500.
Pulsemin, Pulsemax и Pulse — это значения, которые работали для моих реализаций.
В строке 376 есть код, который запускает насос на ½ секунды, чтобы дать оператору возможность проверить и отрегулировать давление. Пока вы вращаете рукоятку, насос будет работать. Когда вы прекратите её вращение, — насос, соответственно, выключится.
В строке 393 код проверяет, какой символ шрифта был возвращен из текстового файла, и решает, как его напечатать.
Процедура UNPACK в строке 403 распаковывает байты шрифта и отправляет их драйверам топливных форсунок.
Подпрограмма COLOR в строке 410 проверяет положение потенциометра выбора файла, включает соответствующий цвет светодиода, затем открывает соответствующий текстовый файл.
Скачать файл streetwriter_blue.ino [16]
Скачать файл stateset.ino [17]
Я не привел общую схему подключений, но она проста.
Проверим, работает ли это всё?
Поскольку описанный здесь StreetWriter является второй сборкой, некоторые улучшения по сравнению с первой сборкой, уже включены в него.
Самые большие изменения:
Я подумывал о создании версии с 12–16 пикселями, чтобы получить большее разрешение в написанном тексте, но не смог найти источник программного обеспечения, такой как Pixelfont, для более высокого разрешения, и мне лень писать это с нуля. Пожалуйста, дайте мне знать, если вы сделаете такую сборку.
Меня попросили использовать краску или другую более стойкую жидкость, чем вода, но я сопротивляюсь. Мимолетность того, что делает StreetWriter, является частью задумки.
Я пробовал добавлять в воду кухонное моющее средство, чтобы посмотреть, не будут ли появляться пузыри, во время печати. В результате у меня на подъездной дорожке образовались слабые чистые участки, с читаемыми сообщениями, которые держались несколько месяцев. Никаких пузырей.
Кроме того, оказывается, что параллельно было разработано воплощение этой идеи в более крупном масштабе: www.trikewriter.com [18]
Примечание переводчика: данный проект был реализован автором некоторое время назад, поэтому в нём не использованы самые последние возможности, которые даёт нам рынок в настоящий момент. В данное время наиболее рациональным видится реализация данной системы с использованием платы esp32, это позволит существенно упростить многие детали управления данной системой и использовать в качестве пульта управления — смартфон.
Кроме того, подобные системы, которые включают в себя 2 независимых двигателя, — требуют обязательного согласования их скоростей, чтобы обеспечить более-менее приемлемое прямолинейное движение. Для этого видится целесообразным использование энкодеров, установленных на каждое колесо. Таким образом, получая импульсы от каждого из двух энкодеров, — можно достаточно легко синхронизировать скорости вращения каждого из колес и обеспечить движение системы вперёд.
Кроме того, можно придать системе новые свойства, если установить на неё плату акселерометра/гироскопа или просто считывать импульсы с энкодера, установленного на одно из колес. Данная установка позволит смонтировать всю систему печати водой, на какое-либо быстродвижущееся устройство, например, электросамокат, что позволит легко и быстро наносить длинные надписи во время езды. Автомобильные форсунки предназначены для работы на больших частотах и вполне справятся с такой работой.
Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!
Автор: S_ILya
Источник [20]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/diy/365166
Ссылки в тексте:
[1] здесь: https://bi-bi.ru/search/?text=%D1%84%D0%BE%D1%80%D1%81%D1%83%D0%BD%D0%BA%D0%B0
[2] файл коллектора в STL: https://content.instructables.com/ORIG/FQ0/E35L/JSYZ6VUX/FQ0E35LJSYZ6VUX.stl
[3] файл коллектора: https://content.instructables.com/ORIG/F8B/AGBH/JSYZ6VVD/F8BAGBHJSYZ6VVD.gcode
[4] лектрическую схему StreetWriter-а в pdf: https://content.instructables.com/ORIG/FBU/PXBD/JSYZ6YOI/FBUPXBDJSYZ6YOI.pdf
[5] тут: https://www.min.at/prinz/o/software/pixelfont/
[6] файл шрифта: https://content.instructables.com/ORIG/FZ3/GF6R/JSYZ6ZKJ/FZ3GF6RJSYZ6ZKJ.p
[7] текстовый файл Red: https://content.instructables.com/ORIG/FW7/LTFI/JSYZ6ZSM/FW7LTFIJSYZ6ZSM.txt
[8] текстовый файл Green: https://content.instructables.com/ORIG/FMK/J4AR/JSYZ6ZSK/FMKJ4ARJSYZ6ZSK.txt
[9] текстовый файл Blue: https://content.instructables.com/ORIG/FTE/7G3S/JSYZ6ZSF/FTE7G3SJSYZ6ZSF.txt
[10] текстовый файл Yellow: https://content.instructables.com/ORIG/FIP/DH1O/JSYZ6ZSP/FIPDH1OJSYZ6ZSP.txt
[11] текстовый файл Cyan: https://content.instructables.com/ORIG/FY7/8PV7/JSYZ6ZSJ/FY78PV7JSYZ6ZSJ.txt
[12] текстовый файл Magenta: https://content.instructables.com/ORIG/FO3/DYG8/JSYZ6ZSL/FO3DYG8JSYZ6ZSL.txt
[13] текстовый файл White: https://content.instructables.com/ORIG/FQP/FMUL/JSYZ6ZSO/FQPFMULJSYZ6ZSO.txt
[14] текстовый файл Black: https://content.instructables.com/ORIG/FXN/X19E/JSYZ6ZSC/FXNX19EJSYZ6ZSC.txt
[15] текстовый файл ОГЛАВЛЕНИЯ: https://content.instructables.com/ORIG/F5P/WUWR/JSYZ6ZSN/F5PWUWRJSYZ6ZSN.txt
[16] файл streetwriter_blue.ino: https://content.instructables.com/ORIG/F0Q/SGJL/JSYZ70EL/F0QSGJLJSYZ70EL.in
[17] файл stateset.ino: https://content.instructables.com/ORIG/FII/5DFJ/JSYZ70EK/FII5DFJJSYZ70EK.ino
[18] www.trikewriter.com: http://www.trikewriter.com
[19] VDS: https://macloud.ru/?partner=4189mjxpzx
[20] Источник: https://habr.com/ru/post/562256/?utm_source=habrahabr&utm_medium=rss&utm_campaign=562256
Нажмите здесь для печати.