
Вступление
Я начал этот проект, потому что хотел оставить свой след в мире, но не хотел оставлять никаких последствий.
Я также хотел получить сложный проект для моего нового 3D-принтера, который включал в себя программирование на Arduino.
Наконец, мне нравится создавать вещи, используя как можно больше «найденных» вещей.
Как показывают видеоролики, все это делает StreetWriter. Он пишет сообщения высотой 8 дюймов в воде на тротуаре при движении и не оставляет следов, когда вода испаряется.
Я построил два StreetWriter с небольшими различиями в дизайне между ними. This Instructable основан на второй сборке, которая несколько улучшена.
В StreetWriter вода сжимается и подается в коллектор, в котором находятся 8 автомобильных топливных форсунок. По мере продвижения StreetWriter Arduino управляет топливными форсунками, разбрызгивая воду на тротуар. Записываемое сообщение является одним из 8, которые были записаны на SD-карту, подключенную к Arduino. Оператор может легко выбирать среди сообщений и может создавать новые сообщения на SD-карте компьютера. Нет ограничения на длину любого сообщения, кроме количества воды в резервуаре высокого давления. Самое длинное сообщение, которое я написал до сих пор, - PI на 300 мест.
Детали, материалы и инструменты
Ведущие колеса в сборе (бывшие в употреблении от старого автомобиля «Power Wheels»)
«Нашли» 5 дюймовые диски
"Найден" колесный заклинатель
"Найденная" маленькая радиоуправляемая машинка (или другой радиоуправляемый пульт)
Деревянная доска
«Нашел» бачок омывателя лобового стекла от старой машины.
Манометр (опция) 1/8 дюйма NPT
Ниппель для шланга 1/8”NPT
Пластиковая трубка для ниппеля и водяного насоса
Аккумулятор 12 В (я использовал герметичный свинцово-кислотный 6-7 Ач, дешевле, чем LiPo)
Ардуино Уно
Выключатель питания Arduino Shield (EKT-1016 на Tindie.com)
Экран SD-карты Arduino (www.sparkfun.com/products/12761)
Разборная электроника и соединительный провод
Коллектор, напечатанный на 3D-принтере (можно изготовить другим способом)
8 автомобильных топливных форсунок (используется на Ebay)
Ассорти винты и кронштейны
Кабельные стяжки и зажимы Dclips
Полосы барьерные
3д принтер
Пила
Буровой двигатель и биты
Отвертка
Шаг 1: Общий дизайн

Целью этого проекта было написание текстовых сообщений с использованием воды, которая является временным средством письма. Через короткое время вода испарится, и сообщение исчезнет без следа.
Меня меньше интересовала привлекательность конечного устройства, чем его функциональность. Итак, если вас интересует не только функциональность, но и стиль, есть много возможностей для улучшения.
Общая конструкция представляет собой моторизованную платформу, которая использует 8 форсунок для контролируемого разбрызгивания воды при движении платформы.
Как показано на изображениях на этой ступеньке, платформа представляет собой деревянную доску, приводимую в движение двумя двигателями, взятыми из небольших игрушечных колесных дисков.
Вода из насоса на бачке омывателя ветрового стекла создает давление в 8 топливных форсунках под управлением Arduino Uno.
На Arduino есть щиток, который обеспечивает ток, необходимый для работы топливных форсунок, который Arduino не может обеспечить напрямую. На Arduino также есть специальный экран, в котором есть устройство для чтения SD-карт и несколько частей для выбора используемого файла и давления воды, которое будет использоваться для написания сообщений.
Наконец, есть дистанционное управление модифицированной электроникой StreetWriter vby с радиоуправляемой машины.
Подробности обо всем этом читайте далее.
Шаг 2: Топливные форсунки и коллектор



Во многих отношениях этот шаг составляет основу дизайна StreetWriter.
Я купил 8 бывших в употреблении топливных форсунок, а затем спроектировал и напечатал на 3D-принтере коллектор для крепления топливных форсунок и подачи к ним воды. См. Изображение оранжевых форсунок на синем коллекторе.
Топливные форсунки прекрасно подходят для этого проекта. Каждая топливная форсунка содержит клапан для управления потоком воды, электрический соленоид на 12 В для управления клапаном, форсунку, которая распыляет воду в контролируемой зоне, а также водопровод и уплотнения для подачи воды к клапану и форсунке. Все внутренние металлические части изготовлены из нержавеющей стали, поэтому тот факт, что мы используем воду, а не бензин, не вызывает проблем с коррозией. Чтобы погасить немного (пиксель) воды, требуется, чтобы Arduino подала на соленоид 12 В на короткое время.
Я спроектировал коллектор таким образом, чтобы топливные форсунки были расположены достаточно далеко друг от друга, чтобы их водянистые пиксели находились рядом. Если ваши топливные форсунки распыляют воду совсем по-другому, вам, возможно, придется поднять или опустить высоту узла коллектора / форсунки, чтобы распылители находились в непосредственной близости.
Я нашел несколько разъемов с подключенными проводами, которые подходят для контактов на топливных форсунках, но вы можете использовать для этого автомобильное оборудование. Более подробная информация о проводке содержится в Шаге 10, окончательная сборка.
Топливные форсунки были куплены б / у на Ebay примерно по 2 доллара за штуку. Похоже, что механически похожие детали доступны для разных типов автомобилей. На прилагаемой фотографии отмечены важные особенности, необходимые для работы инжектора с представленной здесь конструкцией коллектора.
1) Уплотнительное кольцо вверху, изолирующее форсунку и коллектор.
2) Прорези в инжекторе, которые используются для фиксации в коллекторе.
Коллектор, напечатанный на 3D-принтере, является самой сложной частью этого проекта с механической точки зрения.
Он содержит 8 гнезд для топливных форсунок, отверстия для манометра и впускное отверстие для воды и должен быть водонепроницаемым.
Я разработал эту часть в TinkerCad, и это было довольно просто. Я предоставляю файл STL и файл Gcode для PLA. Также посмотрите видео, в котором показана модель TinkerCad и сборка принтера, задача за 8 часов.
Также есть изображение небольшого красного участка коллектора, на котором показаны отверстия, используемые для фиксации топливных форсунок в коллекторе. Я просто пропустил кусок медной проволоки через четыре отверстия, и он зафиксировал топливную форсунку на месте.
Основное использование этой небольшой секции состояло в том, чтобы проверить соответствие инжектора и убедиться, что сборка будет водонепроницаемой, прежде чем приступить к 8-часовой сборке. Я зажал деталь в тисках с кусочком резины поперек открытого конца и приложил давление воды. Это просочилось. Я строил его несколько раз с различными параметрами в Cura (программа для слайсера) и не мог сделать часть образца водонепроницаемой. Он всегда плакал или протекал в нескольких местах. Наконец, я переключился на Sli3er в качестве программы-слайсера и получил тестовую часть на водонепроницаемость при первой сборке. Эта версия - это файл Gcode, который представлен здесь.
После того, как коллектор напечатан, необходимо выполнить несколько завершающих шагов, прежде чем его можно будет использовать.
1) Кромку в нижней части детали необходимо отрезать, чтобы открыть гнезда форсунок для использования.
2) 4 отверстия в каждой розетке необходимо очистить небольшим сверлом, чтобы можно было установить провод.
3) В верхние отверстия необходимо нарезать резьбу с резьбой 1/8 дюйма NPT для манометра и ниппеля шланга.
4) Наконец, внутренняя часть каждого гнезда должна быть сглажена, чтобы уплотнительное кольцо на форсунке герметизировалось. Цель состоит в том, чтобы выровнять напечатанные на 3D-принтере гребни внутри так, чтобы уплотнительное кольцо «ощущало» гладкую поверхность. Я сделал это, используя растворитель WELD-ON 4 на ватном тампоне, проводя им вверх и вниз внутри каждого гнезда, пока он не стал гладким для моего пальца.
На этом этапе топливные форсунки можно установить в коллектор и зафиксировать медными проводами.
Я нанес литиевую смазку на уплотнительное кольцо на каждой форсунке перед ее установкой, чтобы облегчить установку и обеспечить герметичность уплотнения.
Проверьте свою работу. Установите манометр и переходник для шланга. Подайте давление воды около 15 фунтов на квадратный дюйм и ищите утечки. Если есть какие-то плечи, вы можете использовать клей WELD-ON 16 или растворитель WELD-ON 4 для их герметизации и провести повторный тест.
Шаг 3: рама, двигатели и колеса



Как я сказал во введении, целью моей сборки StreetWriter была функциональность, а не красота или стиль.
Рама изготовлена из фанеры ½ дюйма с отверстиями, деревянными блоками и т. Д., Добавленными по мере необходимости. Аннотированная верхняя фотография показывает, где все было размещено. Единственное важное размещение - ряд топливных форсунок в задней части автомобиля и между задними колесами. Таким образом, когда автомобиль поворачивает, сообщение искажается минимально, и колеса никогда не наезжают на него.
Топливные форсунки свисают с коллектора и опускаются через отверстия в раме. Они не поддерживаются рамой. Коллектор находится на раме и свободно удерживается только одним трубным зажимом, который вы можете видеть на фотографии заднего вида.
Рама приводится в движение двумя колесами в сборе, которые были взяты от старых детских райдеров Power Wheel, которые я собирал с течением времени. На прилагаемом изображении показаны аналогичные блоки. Двигатели силового агрегата связаны кабелем с блоком на раме и усилены снизу L-образными скобами. Я добавил конденсаторы 0,1 мкФ на клеммы двигателя, чтобы уменьшить электрический шум от двигателей щеточного типа. (Arduino произвольно перезагружалась без конденсаторов.)
Управление транспортным средством - это «рулевое управление с помощью танка», при котором мощность для рулевого управления снимается с того или иного приводного двигателя. Рулевое управление непропорциональное. Остановите одно колесо, и StreetWriter резко повернет. Постепенные повороты достигаются оператором, пульсирующим вправо или влево при движении вперед.
В передней части рамы есть колесико, которое позволяет StreetWriter делать крутой поворот, когда одно колесо перестает вращаться.
Задние колеса райдеров в стиле Power Wheel обычно соединены осью, поэтому оба колеса движутся вместе.
Здесь это не сработает, потому что я хочу, чтобы задние колеса работали независимо для рулевого управления.
Я где-то нашел 5-дюймовые колеса и с небольшими изменениями смог их использовать. Детали колеса показывают, что это конкретное колесо имеет 12 структурных распорок. Узел привода имеет 6 слотов. Я просто отрезал все остальные стойки, а оставшиеся стойки аккуратно вошли в пазы в сборке привода. Я использовал болт через отверстие, которое изначально содержало ось, и гайку со вставкой Nyloc, чтобы удерживать их вместе с достаточным люфтом, чтобы все это могло вращаться. (В зависимости от того, какие детали вы используете для узлов привода и колес, вам, возможно, придется проявить творческий подход, чтобы заставить их хорошо работать вместе.)
Шаг 4: Пульт дистанционного управления (ПДУ)

В соответствии с целью использования «найденных» частей там, где это возможно, дистанционное управление для StreetWriter основано на электронике из разбитой маленькой радиоуправляемой машины. Важным требованием является то, что пульт дистанционного управления должен быть радио, а не ИК, поскольку StreetWriter будет использоваться на улице. У большинства этих автомобилей нет идеального пропорционального рулевого управления.
Они либо поворачивают направо, либо налево, либо едут прямо.
Я использовал электронику из автомобиля и добавил реле, чтобы поднять мощность до уровня, необходимого для узлов привода. Нижняя (коричневая) печатная плата на картинке от автомобиля. На верхней плате (с ручной проводкой) находятся реле и цепь падения напряжения, необходимая для автомобильных цепей на 4,5 В RC. Схема прилагается.
Схема довольно простая. Транзистор управляет каждым из трех реле. Одно реле приводит в действие левый двигатель, одно - правое, а третье меняет мощность на оба двигателя для движения назад. Управляющие сигналы поступают с печатной платы радиоуправляемого автомобиля. Когда подается сигнал о левом повороте, транзистор заставляет левое реле выключиться, останавливая этот двигатель.
Пульт дистанционного управления показан на картинке. Он может отправить автомобиль вперед / назад и влево / вправо.
Я добавил кусок музыкального провода (идущий к вам не в фокусе на картинке), поэтому антенна на машине идет прямо вверх, чтобы немного увеличить дальность действия.
Эта схема имеет только одно соединение с Arduino. Одиночное соединение сообщает коду Arduino, что автомобиль движется вперед. Если автомобиль останавливается или движется назад, вода не разбрызгивается.
Шаг 5: Система давления



Вода под давлением для StreetWriter поступает из бачка омывателя лобового стекла от старого Subaru, но авто-источник не критичен. Подойдет любой бак со встроенной водяной помпой на 12В.
На этом конкретном резервуаре есть два водяных насоса, поэтому я просто отключил мощность одного из них и использовал другой. На дне танка имеется отбойник, предназначенный для сопряжения с отверстием в шасси автомобиля. Я просто просверлил отверстие в раме StreetWriter, чтобы эта неровность поместилась (изображение снизу), и прикрутил верхнюю часть бака к деревянной опоре на раме. (изображение сверху) Я также использовал болты, чтобы закрепить пластину с главным выключателем питания.
Двигатель насоса требует большей мощности, чем может обеспечить выход Arduino. На самом насосе установлен транзисторный усилитель для уменьшения электрических шумов. (См. Схему управления RC и довольно уродливое изображение проводки.)
Трубки проходят от насоса на резервуаре до ниппеля на коллекторе. Размер ниппеля соответствует трубке и резьбе 1/8 дюйма NPT на коллекторе.
Код Arduino ненадолго запускает двигатель, прежде чем позволить топливным форсункам писать, чтобы создать давление в системе.
Код Arduino также запускает насос, когда вы перемещаете бак давления, чтобы пользователь мог установить давление в коллекторе, поскольку для различных поверхностей требуется больше или меньше воды для хорошей читаемости. Вы просто поворачиваете горшок, и насос включается, поэтому вы можете регулировать давление с помощью манометра. Когда вы перестаете перемещать горшок, насос останавливается.
Шаг 6: щиты Arduino


StreetWriter требует двух экранов поверх Arduino Uno.
Первая - это коммерческая часть, EKT-1016, которую я купил на Tindie.com. Это обеспечивает 16 каналов усиления мощности между Arduino Uno и топливными форсунками. В этом проекте мы используем 8 из этих каналов.
Второй щит был предоставлен SparkFun, (www.sparkfun.com/products/12761
Он содержит устройство чтения SD-карт и несколько нестандартных схем.
Есть:
1) потенциометр для регулировки давления воды
2) потенциометр для выбора текстового файла, который будет записывать StreetWriter
3) многоцветный светодиод, показывающий, какой из 8 файлов был выбран
4) переключатель для отключения печати при движении вперед
5) разъем для заземления и двух необходимых сигналов: прямой ввод команды от RC и вывод команды давления на насос.
Шаг 7. Шрифт персонажа и дизайн шрифта

Основная функция StreetWriter - использовать цифровой шрифт для создания символов.
К счастью, кто-то проделал всю тяжелую работу по созданию шрифтов и предоставил нам результаты по адресу:
www.min.at/prinz/o/software/pixelfont/
Эта программа-редактор шрифтов имеет несколько доступных образцов шрифтов, что дает пользователю возможность редактировать эти существующие шрифты.
Затем вы можете вывести полученный шрифт в виде блока кода, который можно поместить непосредственно в программу Arduino.
Я изменил один из шрифтов, чтобы добавить посадочные места, и этот файл прилагается (footprintFONT.pf). Вы можете использовать любой из образцов шрифтов, поставляемых с пиксельным шрифтом, или тот, который прилагается, для создания блока кода, который нужен файлу Arduino.
Шаг 8: текстовые файлы

Код Arduino на следующем шаге позволяет читать и распечатывать один из 8 текстовых файлов.
Какой файл будет напечатан, выбирается с помощью горшка на щите Arduino и указывается цветом светодиода на этом щите. Цвета: красный, зеленый, синий, желтый, голубой, пурпурный, белый, черный.
Текстовые файлы на SD-карте названы одними и теми же восемью цветами для облегчения идентификации. Текст в файле никак не связан с именем файла.
Обычно я помещаю файл оглавления TOC.txt на SD-карту, чтобы отслеживать содержимое каждого файла, распечатываю этот файл и вставляю его в StreetWriter. (см. картинку)
Файлы могут быть любой длины. Например, файл BLACK.txt содержит ПИ до 300 мест.
Текстовые файлы могут быть созданы в любом текстовом редакторе, но некоторые редакторы могут добавлять символы конца строки, которые влияют на интервал между сообщениями во время печати. Я обычно использую Блокнот.
Программа Arduino, которую я написал, имеет возможность получать доступ к «непечатаемым» местоположениям символов в таблице шрифтов, напрямую обращаясь к местоположению символа. Например, часть одного посадочного места находится в ячейке шрифта 128, поэтому текстовый файл содержит ^ 128. Код Arduino обнаруживает «^» и использует его как «escape-символ». Он не печатает «^», а выбирает следующие три символа в качестве местоположения шрифта и печатает этот символ.
(^ 128 ^ 129 ^ 130 ^ 131 ^ 132 ^ 133 напечатает шесть символов, составляющих один левый и один правый след.)
Шаг 9: Код Arduino
Код 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 код проверяет, какой символ шрифта был возвращен из текстового файла, и решает, как его напечатать.
Строка 403 процедуры UNPACKat распаковывает байты шрифта и отправляет их драйверам топливных форсунок.
Подпрограмма COLOR в строке 410 проверяет горшок выбора файла, регулирует цвет светодиода для соответствия, затем открывает соответствующий текстовый файл.
Шаг 10: Окончательная сборка и регулировка



Я не привел общую схему подключения, но она проста.
1) Топливные форсунки необходимо подключить к управляющему им щитку. Я нашел несколько соединителей с подключенными проводами, которые работали, но вы можете использовать для этого автомобильное оборудование. Я использовал барьерную ленту, чтобы соединить эти короткие кабели с кабелями с цветовой кодировкой и экраном. (щит крупным планом и вид снизу)
2) Кабель от специального экрана к плате RC обеспечивает сигнал ШИМ для насоса и командный сигнал обратно на Arduino, указывающий на движение вперед. Это 4-жильный кабель, выходящий из платы экрана вверх на изображении экрана.
3) Необходимо подключить питание: от аккумулятора к переключателю питания, к Arduino и плате управления двигателем RC. Я использовал другую полосу барьера, которую вы можете видеть на общей картинке вида сверху.
4) Кабели между платой RC и платой мини-автомобиля обеспечивают питание и прямые / обратные сигналы влево / вправо.
Теперь это работает?
1) Электродвигатели подключены так, чтобы двигаться вперед, когда пульт дистанционного управления сообщает вперед? В противном случае решение состоит в том, чтобы поменять местами провода к двигателю (ам).
2) Насос включается и можно ли отрегулировать его давление?
3) Все ли топливные форсунки работают, когда вы подаете команду вперед? Мне нравится использовать тестовый шаблон (white.txt), который должен рисовать 8 полос.
4) Меняется ли горшок выбора файла, в какой файл записывается? А файлы соответствуют цвету светодиода?
5) Достаточно ли ширины буквы? Если он слишком узкий или слишком широкий, вы должны изменить ширину штриха в коде Arduino, теперь она установлена на 500.
Шаг 11: Улучшения
Поскольку описываемый здесь StreetWriter является второй сборкой, некоторые улучшения по сравнению с первой уже включены.
Самые большие изменения:
1) использовать бачок омывателя лобового стекла, а не садовый опрыскиватель, который вы можете увидеть в некоторых видео.
2) Использование EKT-1016 вместо специальной проводки для усилителей мощности.
Я рассматривал возможность создания версии от 12 до 16 пикселей, чтобы получить большее разрешение в написанном тексте, но не смог найти источник программного обеспечения, такой как Pixelfont, для более высокого разрешения, и мне лень писать это с нуля. Пожалуйста, дайте мне знать, если вы сделаете такую сборку.
Меня попросили использовать краску или другую более стойкую маркировочную жидкость, чем вода, но я сопротивляюсь. Мимолетность того, что говорит StreetWriter, является частью дизайна.
Я попробовала добавить в воду кухонное моющее средство, чтобы посмотреть, не будут ли пузыриться, когда написано. В результате у меня на подъездной дорожке образовались слабые чистые пятна, которые длились несколько месяцев. Никаких пузырей.
Наконец, оказывается, что эта техника была изобретена параллельно в более крупном масштабе. См. Www.trikewriter.com/