Пошаговое руководство по переходу от придуманной идеи к работающему продукту.
Ожидание против реальности
Вы когда-нибудь задавали себе следующие вопросы?
- Может ли горячий клей зафиксировать ВСЕ?
- Сложно ли сделать умное оборудование?
- Можете ли вы залить бетон в картонную форму?
Если нет, может быть, пришло время. Но если ты это делал, то добро пожаловать в клуб! У нас недавно был внутренний хакатон в EL Passion, и у меня возникла сложная идея. Делаем лампу!
Умную лампу.
Умную лампу из бетона.
Умную деревянную/бетонную лампу со светодиодной полосой RGB…
И BLUETOOTH!
За два коротких дня хакатона (с небольшими накладными расходами) мы выполнили все это!
Все началось с электроники
Около двух месяцев назад я начал играть с электроникой. Я хотел расширить свой кругозор, узнать, какие кабели обрезать в случае восстания интеллектуальных машин, и выйти за пределы моих знаний Frontend Engineering. Я думаю, что большинство из вас могут быть похожи.
Я начал с основ, получил некоторые компоненты, посмотрел учебники, а потом не мог решить, что делать дальше.
Примерно через два месяца я вспомнил, что готовился хакатон!
Я также недавно видел выступление Stephanie Nemeth на конференции, где она показала фантастические вещи, которые вы можете сделать с Arduino и RGB-подсветкой. Поэтому я решил, что хочу сделать что-то настолько аккуратное, как это.
Но я хотел сделать что-то, что было бы полезным, функциональным и требовало бы навыков работы с DIY, программированием и электроникой.
Я остановился на самой очевидной вещи, которую можно сделать с помощью ламп — лампы. И я нашел идеальную сборку DIY, которой хотел подражать.
DIY lamp from a DIY Creators youtube tutorial
У меня уже была идея. Теперь мне нужна команда.
Питчинг — Сбор команды
За три дня до хакатона у нас обычно есть презентация, где мы представляем свои идеи остальной части компании и собираем людей, которые будут работать над нашим проектом. Я не большой продавец, так что моя звучало примерно так:
Хммм, так что да, я хочу сделать бетонную умную лампу. Большое спасибо.
Несмотря на недостаток информации, в моей команде было пять человек, заинтересованных в присоединении! У нас был впечатляющий набор навыков:
- Мацей — я был как генеральный директор группы. Я спланировал сборку, удостоверился, что у нас есть все, что нам нужно, и помог собрать все части вместе (в переносном и переносном смысле).
- Войтек — он взял на себя должность начальника отдела электроники. Он спланировал схему, создал прототип и работал с Якубом (iOS), чтобы убедиться, что Bluetooth работает. Он также позаботился о том, чтобы мы не сожгли здание.
- Ула — Бетонный начальник столярной мастерской и горячего клея. Она позаботилась о том, чтобы мы все сделали правильно, сохранила сроки и работала над деревянным корпусом лампы.
- Ага — Разнорабочий команды. Она появилась, когда мы больше всего в ней нуждались, и убедилась, что наша «ручная» часть сборки будет работать.
- Якуб — руководитель отдела мобильной разработки. Удостоверились, что у нас есть удивительное, нативное, кроссплатформенное, но на самом деле единственное приложение ios, потому что кто использует android для управления лампой.
Шоппинг
Давайте посмотрим на список покупок. Я перечислил только то, что мы использовали и постоянно встраивали в лампу. Все дополнительное оборудование, Arduino (создание прототипов, загрузка кода в AVR) и компоненты, которые мы взломали, не учитываются.
Общая стоимость: 159 злотых (около 43 долларов США).
Можно получить все предметы по более низкой цене, но в нашем случае это было довольно срочно.
Доски, бетон, шлифовальная бумага и другие полезные вещи.
Часть 1: Бетонное основание
Этап строительства проекта был захватывающим испытанием. Первые два часа мы провели, обсуждая, как сделать основание для бетона, который бы соответствовал следующим требованиям:
- Оставить место на дне для электроники
- Оставить два отверстия для ручек оттенка и насыщенности
- Оставить место для деревянной руки
Мы придумали что-то вроде этого:
Это выглядит просто, но сделать это было не так легко. Для создания основания мы использовали картонную коробку, много серой ленты, коробку «волшебная мышь 2», две пластиковые соломинки и немного горячего клея.
Позже мы смешали и добавили бетон.
Не для людей с непереносимостью лактозы, извините.
Мы не хотели, чтобы повязка деформировалась, поэтому мы использовали больше ленты и четыре литра молока. Мы также положили деревянное основание в бетон, чтобы у нас было место для него позже (хотя мы почти забыли об этом). Все это является эквивалентом «быстрого исправления» в производственных системах, но, как говорится:
Если это выглядит глупо, но работает, это не глупоЭта цитата стала нашим девизом для остальной части сборки.
Умные Люди
У меня нет изображения основания сразу после его снятия с гипса, но здесь оно после небольшого шлифования и уже с установленным деревянным рычагом. Мы также добавили силиконовые ножки, чтобы бетон не поцарапал столешницу.
Часть 2: Деревянная рука
Кронштейн состоит из двух отдельных частей: верхней части лампы и основания с кабелем внутри. Мы соединили их большим винтом, для которого просверлили отверстия как в верхней, так и в нижней части.
Чудом мы не сожгли офис.
Оказывается, правильно измерять вещи сложно.
Мы начали с изготовления верхней части руки.
Полное представление.
Верхняя часть была довольно сложной, поскольку требовала деликатной работы с паяльником, но давайте начнем с основ. Мы сделали это из трех кусков дерева, двух тонких (боковых) и квадратного. Сначала мы все склеили, просверлили отверстие для большого винта, который скрепляет верхнюю и нижнюю части. После некоторого шлифования, чтобы компенсировать тот факт, что доски были немного изогнуты, Ула покрасила руку, и когда она высохла, я продолжил и начал устанавливать на нее светодиодные ленты.
Первое, что я сделал, это определил, как разрезать светодиодные ленты. Мы не хотели помещать одну длинную деталь внутрь, так как она не давала бы такого большого количества света, поэтому, измерив, сколько мы поместим, я разрезал на три полоски, каждая из которых имела размер 35 см. Затем я спаял основной кабель с первой частью светодиодной ленты и использовал термоусадочную трубку, чтобы закрепить соединение.
Термоусадочные трубки и паяные соединения соединяют две светодиодные ленты.
После приклеивания первой полоски к дереву я понял, что забыл, какие кабели я подключал к выходам Red, Green, Blue и 12V +. Это была небольшая неудача, но, к счастью, у нас был мультиметр, который позволял нам проверять соединения.
Следующее, что мне нужно было сделать, это спаять две светодиодные полосы последовательно с первой частью. Это заняло у меня некоторое время, но мне удалось это сделать, несмотря на паяльник за 8$ с наконечником, который уменьшался при каждом использовании. Мы проверили это, подключив кабель к макету и используя один из поворотных энкодеров, чтобы изменить цвет.
Нижняя часть руки, как показано на рисунке выше, также была довольно сложной
Нижняя часть руки была сложной, потому что мы должны были вставить кабель внутри нее. Мы подумали о том, чтобы разрезать его пополам, выделить немного места, а затем сложить его вместе, но это будет подвержено ошибкам и отнимает много времени. В итоге мы решили приклеить три дополнительных куска дерева, чтобы освободить место для кабеля, как показано на графике. Это также причина, почему деталь внутри основания немного уже.
Нам не хватало нескольких деталей, кусочков дерева и винта, который скрепил бы руку. Мы взяли небольшой перерыв в работе и пошли в магазин, чтобы купить все эти вещи.
Естественный сосновый цвет не был так хорош, поэтому Ула нарисовала верхнюю и нижнюю части лампы, чтобы они стали немного темнее. Мы оставили его сохнуть на ночь, и на следующий день мы подключили её, и это выглядело великолепно!
Процесс покраски.
Расположение кабелей внутри лампы.
Часть 3: Программное обеспечение iOS-приложение
Я не был вовлечен в процесс создания iOS-приложения, поэтому не могу дать более глубокое понимание кода. Якуб взял на себя инициативу и доставил рабочее приложение до конца первого дня. На второй день он расширил его, добавив в него больше невероятных функций, таких как поддержка «Ambilight», когда при воспроизведении видео лампа синхронизирует цвета с ним (демонстрация в конце статьи).
Были некоторые проблемы с подключением Bluetooth, точнее, один модуль Bluetooth был подключен к iOS, но не к Android, а другой пошел наоборот. Сейчас лампа работает только с iOS, но для MVP этого достаточно. И модуль Bluetooth может быть легко переключен при необходимости, так как он не припаян на месте.
Код iOS-приложения
Исходя из моего опыта, я могу сказать, что приложение выглядит впечатляюще, и скорость, с которой Якуб предоставил его, также невероятна!
Код Arduino / ATmega
Весь код с открытым исходным кодом на GitHub. Вы можете пройти через это. Я не собираюсь вдаваться в глубокие технические подробности того, как это работает. Войтек, который написал большую часть кода, был бы лучше для этого, поэтому я создал общий обзор того, как все работает. Упрощенный алгоритм выглядит следующим образом:
Упрощенный программный алгоритм лампы
Двигаясь от Arduino к ATmega
Войтек написал первую версию кода для Arduino, а позже я обновил ее, чтобы она работала на обычном чипе ATmega. Различия минимальны, так как я ввел только два основных изменения:
Я удалил одно из последовательных соединений — ранее у нас было одно последовательное соединение, которое мы использовали для отладки (печать на консоль на компьютере), и другое для Bluetooth. Когда мы перешли на ATmega, нам больше не нужна была отладочная, которая освободила два контакта и упростила соединения.
Я изменил расположение выводов — чтобы лучше разместить все на макете, я изменил физическое расположение, что потребовало изменения опорных выводов в коде.
Если вам интересно, вы можете увидеть запрос на получение, который содержит различия всех изменений.
Часть 4: электроника
Наш план был довольно амбициозным в течение столь короткого времени, но, к счастью, Войтек довольно умен и раньше играл с электроникой, поэтому он был «лидером» в этой части.
Мы начали с детских шагов, тестируя различные решения методом проб и ошибок. Войтек работал над кодом и схемой одновременно и проверил, как все работает. Электронная часть лампы состояла из:
- Микроконтроллер — мозг
- Две ручки с кнопками для управления яркостью, оттенком и насыщенностью
- Модуль Bluetooth для беспроводного управления
- Светодиодная лента для света
Сначала мы использовали Arduino вместо автономного микроконтроллера и поместили все на макет, чтобы упростить процесс разработки. В конце второго дня у нас было все, что связано с платой-прототипом. Bluetooth, поворотные энкодеры и Arduino. Вот как это выглядело на демонстрационной сессии:
Нам также удалось сжечь один чип Bluetooth…
Часть 5: Давайте сделаем это меньше!
После хакатона я хотел потратить некоторое время и сжать электронику, чтобы она поместилась внутри лампы, чтобы сборка была завершена. Чтобы сжать электронику, мне пришлось:
- Заменить Arduino на ATmega328
- Распланировать соединения на картоне
- Припаять гнездо для AVR, чтобы мы могли заменить его при необходимости
- Припаять несъемные элементы (транзисторы, розетка постоянного тока и т. Д.)
- Соедините все это вместе
Я начал с замены Arduino. Для этого мне нужно было установить загрузчик на AVme ATmega (он тот же, что и в Arduino). Я посмотрел несколько учебных пособий о том, как установить загрузчик и как использовать Arduino в качестве ISP-программиста (он позволяет загружать программное обеспечение в микроконтроллер без какого-либо дополнительного оборудования). После этого я обновил код, чтобы использовать немного другие контакты и вуаля!
Arduino отключился успешно!
Затем мне пришлось спаять все это на крошечном картоне.
Я впервые работал с ленточными платами, и я не мог найти какое-либо простое программное обеспечение, которое помогло бы с проектированием физических схем, поэтому я пошел в старую школу и спланировал ее вручную. Я напечатал лист бумаги с пунктирной сеткой, где точки представляли собой отверстия в картоне. Затем я нарисовал все соединения и то, как они должны соответствовать, основываясь на текущей схеме макета.
Планирование схемы самой схемы заняло у меня больше часа.
Чтобы сделать его более понятным и видимым, я создал графику, которая представляет схему на картоне.
Представление созданной схемы. В реальной сборке мне пришлось немного отрегулировать ее, чтобы она подходила ко всем компонентам, но она выглядит на 90% как выше.
После примерно десяти часов пайки (все еще новичок) и двух обожженных пальцев (не трогайте компоненты, если что-то плохо пахнет), мне удалось заставить его работать! Все прошло лучше, чем ожидалось.
Все части вместе взятые. Белые кабели — это ручки, маленькие провода с черной изоляцией — это светодиодные соединения
Вид снизу. Я использовал тонкий медный провод для соединения суставов
Если вы посмотрите достаточно близко, вы сможете увидеть весь клей, который мы использовали.
Готовый продукт!
Посмотрите полную демонстрацию, где я расскажу обо всех возможностях этой лампы. Несмотря на несколько проблем, например, кривые поворотные ручки и неправильное отображение цветов, это работает!
Для меня и, надеюсь, для остальной части команды, это был один из самых приятных хакатонских проектов. И процесс, и результат были невероятными, нам было очень весело, и мы узнали много нового о работе с деревом, бетоном и электроникой.
Если кто-то хочет создать аналогичную лампу или нуждается в более подробной информации, не стесняйтесь комментировать и спрашивать меня что-нибудь!
Комментарии (46)
vlreshet
14.11.2019 17:33+2Это точно не машинный перевод с минимальной редактурой?
Lazytech
14.11.2019 19:14+1
Судя по всему, использовали гуглопереводчик (я уверен в этом на 99,99%). А что, нейросети уже переводят получше некоторых людей. :)
Якуб — руководитель отдела мобильной разработки. Удостоверились, что у нас есть удивительное, нативное, кроссплатформенное, но на самом деле единственное приложение ios, потому что кто использует android для управления лампой.
Jakub— Head of Mobile Development. Made sure we had an amazing, native, cross-platform-but-actually-only-ios-because-who-uses-android-lol app to control our lamp.
Надо полагать, живой переводчик сообразил бы, что там не «единственное приложение ios, потому что кто использует android для управления лампой», а, скорее, что-то вроде «приложение для управления лампой, работающее только под iOS (потому что — LOL — кому сдался этот Android?)».
Astroscope
15.11.2019 11:56+1Мне еще вот это понравилось:
Вид снизу. Я использовал тонкий медный провод для соединения суставов
tvr
15.11.2019 17:05Оказывается, правильно измерять вещи сложно.
А меня вот это открытие впечатлило. Ну ещё бы, рулеткой у которой 100% ноль гуляет ± миллиметр.Nikita_64
15.11.2019 17:52Строго говоря, он гуляет на этот миллиметр неспроста: для измерения с упором о внутренний или внешний угол. Правда, все зависит от качества изготовления и износа.
Mnemonik
14.11.2019 17:48+1Перестаньте называть «умными» вещи выключатель у которых теперь приложение на телефоне.
Evgenym
14.11.2019 18:04Хм. Если я автоматизирую слив воды в унитазе через приложение, то это будет умный унитаз?
justhabrauser
14.11.2019 20:13+1Представил очередной лонгрид на хабре:
Заголовок: «Умный унитаз».
КДПВ: сидит некто на унитазе с ардуиной в одной руке, айфоном в другой и умным видом в лице.
Free_ze
14.11.2019 18:21Но… позвольте, она же тупая!
То есть она не анализирует ничего, не реагирует ни на что, кроме непосредственных команд пользователя.progchip666
14.11.2019 22:27+1А вдруг если эта бетонная штуковина упадёт на ногу, у кого то родится умная идея, как от яблока Ньютона?
Ну хотя бы выбросить её в помойку
vin2809
15.11.2019 08:53Но… позвольте, она же тупая!
Если вы про лампу, то она, скорее всего, задумывалась как декоративная подсветка для новогоднего праздника в детском саду. Поэтому достаточно умная.
Free_ze
15.11.2019 15:56Она кажется вам умной на фоне задач или… детей?
По моему скромному мнению, «достаточно умная» вещь в 2к19 должна как-то реагировать на окружающую обстановку без помощи оператора. Или хотя бы без предварительной настройки встраиваться в какую-то существующую умную экосистему.
Это не умоляет модного эко-дизайна, трудозатрат и гордости за осуществления проекта. Но это просто лампа с управлением со смартфона. Может быть хорошая, стильная, но просто лампа.tvr
15.11.2019 17:09По моему скромному мнению — пора бы уже к концу 2019 года перестать писать 2к19.
И прекратите, наконец, умолять эко-дизайн, трудозатраты и гордость, ибо они неумолимы — их сердца из бетона.
Nomad1
14.11.2019 19:50Лампа в оригинальном видео достаточно неудачная — слабый крепеж к основанию, крепящий винт вкручен просто в дерево, нет регулировочного винта в месте изгиба и т.д. А клон вышел вообще ужасным: 10 часов для пайки страшной макетной платы, дерево держится в бетоне за счет клея, все запитано от святого духа, нижняя часть ничем не закрыта, о термоусадке и шайбах никто не слышал. Это в целом нормально было бы для проекта вечера пятницы и одного человека, но команда из 6(!) человек и два дня? Уж извините, это не повод для гордости.
nochkin
14.11.2019 22:37-1А я считаю, что это повод для гордости.
Суметь достаточно правильно собрать команду на такое безобразие — чек.
Работа в команде с шутками и улюлюканьем — чек.
Приложение новой теории в практику — чек.
Поиграться с чем-то новым — чек.
Да и просто оторвать свою дупу от телевизора и, наконец, что-то сделать — чек три раза.Nomad1
15.11.2019 00:18+1Вы уж простите, но я считаю, что планка должна быть чуточку повыше, ведь каждый из нас имеет какое-то хобби и было бы странно хвастаться каждым фактом подъёма от телевизора и выставлять его как достижение. С удовольствием почитаю, как они сделали работу над ошибками или вышли на кикстартер с этой лампой. Или хотя бы сделали интеграцию с HomeKit. Но пока нет, это уровень школьника на трудах, надо стремиться к большему.
nochkin
15.11.2019 16:53Это проект явно для себя, а не для Кикстартера. Если бы они с этим бетоном шли на Кикстартер, то я бы тоже возмущался (пусть и немного).
olartamonov
15.11.2019 09:46+1Школьники на уроках труда и технологии в наше время что-то примерно такое делают классе в шестом.
Там возраст средний у команды какой был?..nochkin
15.11.2019 16:52Я явно в другой школе учился. Мы делали совсем другие вещи.
Возраст похоже примерно 25-30, но это на глазок.olartamonov
15.11.2019 20:46Вот у меня прямо сейчас в ленте ФБ свежий пост: www.facebook.com/groups/2941437022537928
В следующем году они небось и ардуину прикручивать научатся.Mogwaika
15.11.2019 21:09Закрытая ссылка…
olartamonov
15.11.2019 21:13Современные уроки технологии в школе.
7 класс:
8 класс:
Mogwaika
15.11.2019 21:19Ну теория про допуски была на черчении классе в 9, с практикой конечно интереснее))
Пара примеров со светодиодами лишними не будут, а то у меня в школе только олимпиадники могли побаловаться. Да что там, любые опыты и практика в школе интересны, я вот эксперименты на химии любил, особенно когда что-нить поджигать надо было))
nochkin
16.11.2019 03:25Повторюсь — у меня явно была другая школа.
«8 класс» в моё время было на уроках физики. Не помню в каком классе. Наверно, тоже в 8.
Я же про практику говорю, которая ближе к третей фотке.
На практике на уроках труда у меня были другие штуки: токарный станок, рубанок, пила, молоток и прочее.olartamonov
16.11.2019 12:11Вы сейчас учитесь в девятом классе — или как-то специально стараетесь не читать слова «в наше время»?..
makon
14.11.2019 21:50RGB лента для настольной лампы? То есть лампы, предназначенной для освещения рабочего места. Безумный выбор. Ну и на правах придирки. Зачем подавать питание/управление на край ленты, соединив остальное последовательно? Ведь можно было на средний отрезок подать, да и вообще параллельно все отрезки соединить. Но так как статья-перевод, то вопросы риторические...
progchip666
14.11.2019 22:28Питание ленты на центр подают для длинных участков, в данном случае от этого много не выиграть, поэтому логично сделать так, как удобнее.
makon
14.11.2019 23:16Полностью согласен. Но в данной конструкции почему бы и не и… Наверное это перфекционизм, но ничто не мешает здесь сделать именно так. Но после использования rgb ленты я уже не удивляюсь.
ClearAirTurbulence
14.11.2019 23:19+1Такого не должно оставаться в переводе после вычитки.коробку «волшебная мышь 2»
основания сразу после его снятия с гипса
Ула нарисовала верхнюю и нижнюю части лампы, чтобы они стали немного темнее
взяли небольшой перерыв в работе
BJM
15.11.2019 14:37Не прячьте под спойлер найденные места с багами машинного перевода. Прифигел от перевода, и пошел искать на странице по Ctrl+F «после его снятия с гипса». Но не нашел. И написал бы про тоже самое повторно, если бы не нашел руками :-)
vbifkol
15.11.2019 06:14Истово требую продолжения на тему «умная поделка из шишек и спичек с блюпуп и синим светодиодом» про хакатон в детском саду.
REPISOT
15.11.2019 08:56А как эту лампу переносить? Она тяжелая. За бетон особо не схватишься. Если таскать за деревяшку, она быстро отвалится, учитывая массу основания и угол крепления.
olartamonov
15.11.2019 09:47«Перспективный стартап ищет инвестора для финансирования выпуска второго прототипа, оснащённого ручками»
vvzvlad
15.11.2019 14:06А если мы найдем больше денег, то сможем сделать не полупортативный, а портативный, с одной ручкой.
kvazimoda24
15.11.2019 13:51Читать невозможно. Статью, похоже, просто прогнали через систему машинного перевода и даже не читали после этого. Сам выбор статьи для перевода тоже крайне странный. В статье нет ничего заслуживающего внимания. Если только как образец, как делать не надо.
Kriminalist
15.11.2019 14:00Были некоторые проблемы с прочтением статьи, точнее, один модуль мозга был подключен к картинкам, но не к тексту, а другой пошел наоборот.
Блин, ну хоть бы какой-нибудь датчик к лампе прикрутили, чтоб ее умной можно было считать!
Из калькулятора можно было выломать панельку солнечную, датчик освещенности замутить. Микрофон для тоже проблем бы не составил, ну и соответственно чтоб амбилайт под внешнюю музыку работал, а то и шазам туда прикрутить. Ну а в идеале умная лампа должна подстраивать свой свет под освещенность и цвет того, что она освещает. Камеру ей поставить, и пусть подстраивает мощность и оттенок под установленные параметры.
Gargo
по итогу вся «умность» лампы свелась к соединению ардуино с лентой светодиодов и bluetooth модулем по готовым туториалам из интернета?
progchip666
А от формата хакатрона можно ждать чего-то другого?