Русский
Русский
English
Статистика
Реклама

Diy

Перевод Самодельный галтовочный барабан стоимостью менее 10

06.05.2021 12:20:25 | Автор: admin


В своем стремлении к экологичности мы не всегда осознаем, что переработка является последним решением для сломанных или вышедших из употребления вещей. Ей должны предшествовать их повторное использование и возможное применение для других задач. Как пример представлю вариант сборки собственного галтовочного барабана из уже ненужного, но еще не выброшенного на свалку оборудования.

В качестве хобби я занимаюсь ремонтом старой электроники, и иногда мне приходится очищать мелкие заржавевшие детали. С этой задачей вполне справляется металлическая щетка, но в случаях, когда очистке подлежит больше пары-тройки деталей, времени на это уходит очень много.

Галтовочные барабаны далеко не новое изобретение. Как правило, такое устройство представляет собой контейнер, в который загружается абразивный материал вместе с подлежащими очистке деталями. При включении барабан начинает вибрировать, вызывая взаимное трение содержимого и очистку/шлифовку этих самых деталей.

Подобный самодельный станок для очистки можно собрать чуть ли не бесплатно из старых, ненужных или даже выброшенных деталей.

Что же конкретно нужно?

  • НЧ-динамик среднего размера;
  • пластиковый контейнер, подходящий под размер динамика;
  • силиконовый клей-герметик RTV;
  • старый сотовый телефон с поддержкой приложений;
  • усилитель.

В худшем случае может потребоваться приобрести клей RTV и потратить пару долларов на небольшую плату китайского усилителя класса D. У меня на все про все ушло $10, и это при том, что основная сумма была потрачена на клей. Вам также потребуются некоторые ручные инструменты и базовый навык пайки.

Шаг 1. Поиск подходящего НЧ-динамика




Нас интересует динамик 5 8. Больший диаметр тоже подойдет, но для него потребуется более обширное рабочее место. Во многих малогабаритных сабвуферах используются динамики именно такого размера. Если вам попадется вариант со встроенным усилителем, то по возможности протестируйте и его тоже.

Оптимальным вариантом, скорее всего, будет достать подходящий динамик из небольшого сабвуфера от низкобюджетного домашнего кинотеатра, старой системы BOSE Acoustmass или компьютерной акустики. Динамик, извлеченный из типовой аудиосистемы, подойдет при условии достаточного хода диффузора и упругости подвеса. Важно, чтобы он не поддавался легко небольшому надавливанию.

Наилучшим вариантом будет динамик с резиновым подвесом, а не поролоновым, как в моем примере. Резиновые подвесы прочнее и, как правило, применяются в более качественных динамиках.

Шаг 2. Поиск подходящего контейнера и его приклеивание



Рис. 1


Рис. 2


Рис. 3


Рис. 4



Далее вам понадобится контейнер с навинчивающейся крышкой, который впишется в диаметр динамика и максимально близко состыкуется с внешним краем его диффузора (рис. 1). В моем случае отлично подошел контейнер из-под мороженого. Обычно я такие использую под хранение различных деталей.

Очень важно, чтобы контейнер вставал на динамик максимально близко к его краям. Это добавит прочности и долговечности устройству, чьей задачей будет встряхивание содержимого. Почему именно навинчивающаяся крышка? Все просто регулярное открывание защелкивающейся крышки рано или поздно приведет к повреждению диффузора. Накручивающуюся же крышку можно снимать, удерживая одной рукой контейнер, что позволит компенсировать вращательное воздействие на диффузор.

В качестве клея я использовал силиконовый герметик RTV. Почему? Он отлично склеивает и при этом сохраняет эластичность, что в данном случае и требуется. Мне пришлось его купить, так как он у меня просто кончился. Если же у вас есть такой в хозяйстве, то стоимость проекта сократится до пары долларов.

Протрите нижнюю часть контейнера спиртом и нанесите клей, как показано на рис. 2. Установите контейнер на диффузор и отцентрируйте его. Дайте клею несколько минут на схватывание и повторно нанесите его по периметру. Обратите внимание, что я оставил два небольших участка без клея (рис. 3 и 4). Это ускорит процесс высыхания, так как воздух сможет циркулировать вокруг нанесенного клея. Теперь оставьте все это дело сохнуть.

Почему не клеевой карандаш, gorilla glue или что-то подобное? Нам нужен гибкий и в то же время сильный клеящий материал. Силиконовый герметик RTV для этого подходит лучше всего.

Шаг 3. Подключение к усилителю





Рис. 5


Рис. 6

Здесь возможны различные варианты. Завалялся старый рабочий стерео-усилитель? Пойдет. Нашли активный сабвуфер с работоспособным усилком? Отлично! Нам лишь нужен способ усилить аудио сигнал, получив на выходе не менее 20Вт.

В груде старого хлама у меня валялось множество когда-то выброшенных усилителей, но мне хотелось добиться минимальных размеров устройства. В итоге я решил использовать плату китайского моно-усилителя класса D. Эта плата выдает 35Вт и стоит всего пару баксов. Недостаток использования подобных плат в том, что для них нужно обеспечить питание. К счастью, диапазон входного напряжения у этих плат достаточно широк.

В ходе недолгого поиска среди кучи старых блоков питания от ноутбуков я нашел нужный экземпляр. Если у вас такой кучи под рукой не имеется, то можно поспрашивать в мастерских по ремонту электронного оборудования или у товарищей-компьютерщиков.

Выбранная мной плата собрана на микросхеме TDA8932. Это типовой чип, который на eBay и Amazon стоит всего несколько долларов. Диапазон допустимого входного напряжения составляет 10-30В, в связи с чем подобрать подходящий блок питания достаточно просто, нужно лишь убедиться, чтобы он обеспечивал не менее 2А тока.

Поскольку я использовал отдельную мини-плату усилителя и БП от ноутбука, их нужно было соединить (рис. 5). Для этого вам понадобится базовый навык пайки. Однако за чуть большую цену можно подобрать плату с винтовыми зажимами. Во избежание болтания и обрыва проводов в местах соединения я притянул их к плате стяжками (рис. 6). Для подключения к динамику я использовал провода с крокодилами. Это позволит отключать усилитель от динамика/шейкера и при необходимости задействовать сборку усилителя в других проектах.

Шаг 4. Приводим шейкер в действие



Рис. 7


Рис. 8



На данном этапе у нас получился контейнер с крышкой, приклеенный к НЧ-динамику, и усилитель, который заставит этот динамик двигаться. Настало время подключить к процессу сотовый телефон.

Что на Android, что на Apple существует великое множество приложений для генерации звукового тона (рис. 7). Поэтому рекомендую просто скачать вариант с самым высоким рейтингом. Такие приложения делают из вашего телефона генератор звуковых сигналов. Некоторые даже позволяют выбирать форму волны. При работе с динамиками всегда выбирайте синусоидальную волну (выглядит как плавная волна, идущая вверх-вниз). Не используйте треугольные или квадратные волны, так как они могут привести к повреждению динамика.

Я указал среди необходимого оборудования старый сотовый телефон. Причина в том, что его можно просто подключить и оставить работать. Вряд ли вы сможете поступить также со своим основным телефоном, так как при каждом получении уведомления или вызова придется останавливать весь процесс.

Нужно реализовать отправку аудио сигнала с телефона на усилитель. В случае с выбранной мной платой я взял старый кабель от наушников (рис. 8), зачистил и припаял один канал ко входу усилителя. Почему только один канал? Я выяснил, что некоторые телефоны при замыкании левого и правого канала просто отключаются. Так что используем только один канал, оставляя второй неподключенным.

Если вы используете старый ресивер или стерео-усилитель, то вполне подойдет стандартный RCA-кабель Y. Проложите провода от одного канала усилителя к динамику, оставив второй канал неактивным. При этом рекомендую сместить на усилителе баланс в сторону используемого канала, чтобы не слать часть сигнала впустую.

Тем, кто использует современные телефоны с особыми аудио-разъемами однозначно будет проще взять старую модель со стандартным джеком 3.5мм.

Как настроить громкость? Если вы используете ту же плату, что и я, то все настройки громкости производятся через телефон. Если же вы задействовали старый домашний стереоусилитель, то сначала полностью убавьте его громкость, затем увеличьте аудио сигнал телефона почти до максимума, после чего осторожно прибавляйте громкость усилителя.

Шаг 5. Это реально работает?




Рис. 9


Рис. 10


Рис. 11

На рис. 9 показаны выбранные мной для тестирования подржавевшие образцы. На рис. 10 они уже помещены в контейнер вместе с простейшим абразивным материалом, включающим песок и мелкую гальку, которые я собрал на заднем дворе. На рис. 11 показано, насколько мой самопальный галтовочный барабан успел очистить образцы, пока я ел сэндвич.

Я также прикрепил видео сего устройства в действии. Камера телефона немного смазывает движение, но обратите внимание на текучесть материала в ходе вибрации. Подобного эффекта перемешивания нужно добиться при минимально возможной мощности, для чего потребуется поиграться с громкостью (мощностью) и частотой.

Пара слов об абразивах


На рынке есть множество различных материалов, но наш проект нацелен на дешивизну. Я использовал песок и мелкую гальку, которые собрал прямо у места слива воды с крыши моего дома.

Более качественным абразивом мог бы послужить чистый белый песок или сухой песок с пляжа. Также можно использовать измельченную скорлупу грецких орехов, которая хоть и будет справляться медленнее, зато добавит эффект полировки. Не бойтесь пробовать разные варианты абразива на разных гайках и болтах, чтобы выработать понимание, что и для чего лучше подходит.

Шаг 6. Запуск и первые впечатления





В ролике вы увидите, на что способна эта миниатюрная плата усилителя класса D. Было забавно наблюдать за всем процессом, но вот динамик моей радости не разделил, и я очень скоро почуял запах перегрева.

Рекомендую при первом запуске быть очень внимательными и постараться отследить возможный перегрев. Я же решил эту проблему приклеиванием теплоотвода (не идеальное решение) на микросхему. Возьми я изначально большой стереоусилитель, то и проблемы бы не возникло.
Разобравшись с усилителем, мне нужно было постараться не сжечь динамик. Погоняйте свой несколько минут и принюхайтесь. В случае излишней нагрузки вы сразу заметите неладное.

Как сделать, чтобы он не скакал туда-сюда? Поместите его в пластиковую чашу с полотенцем. В качестве временного решения этого должно быть достаточно.

Если же вы его ненароком порвете, то невелика потеря. Можно просто снять контейнер и переклеить его на другой динамик.

Подробнее..

Как получить температуру в -50C (и ниже!) на дому или вихревая трубка Ранка-Хилша под микроскопом

28.05.2021 12:18:53 | Автор: admin

А что, если я скажу Вам, что можно подуть в Т-образную трубку и с двух других её концов пойдет воздух сильно минусовой и сильно плюсовой температуры? Похоже на какой-то бред, не так ли? Тем не менее, такое замечательное устройство вполне себе существует и известно очень давно. Ученые до сих пор расходятся во мнениях относительно того, как же оно всё-таки работает?!. Предлагаем и Вам ознакомиться с этим любопытным эффектом

В 1931 г. Жозефом Ранком был открыт вихревой эффект энергетического разделения газов, называемый часто эффектом Ранка.

После доклада Ранка Французскому физическому обществу о своем открытии о нем забыли и только с 1946 года вихревой эффект стал объектом исследований ученых разных стран.

В Советском Союзе первые широкие исследования вихревого эффекта были проведены профессором Мартыновским В. С. и доцентом Алексеевым В. П. в Одесском технологическом институте пищевой и холодильной промышленности.

Большую работу по созданию вихревых вакуум-аппаратов провела группа под руководством д-ра техн. наук Дубинского М. Г.; им опубликовано несколько теоретических работ по закрученным потокам.

Внешне простой вихревой эффект на самом деле заключает в себе сложный газодинамический процесс, происходящий в пространственном турбулентном потоке вязкого сжимаемого газа. Этим, пожалуй, и объясняется неудача многих попыток найти аналитическое решение задачи.

Несмотря на длительное изучение вихревого эффекта до сих пор отсутствует общепризнанная физико-математическая модель феномена.

Наиболее обоснованной считается гипотеза взаимодействия вихрей, но и она не лишена некоторых неточностей и противоречий. Пока не проведено строго обоснованного прямого эксперимента, способного полностью подтвердить ее достоверность.

На основе проведенных исследований разработаны полуэмпирические методики расчета вихревого эффекта и некоторых видов вихревых аппаратов.

На этом период первоначального изучения вихревого эффекта закончился и начался период освоения и внедрения его в производство.

С 1953 года в Куйбышевском авиационном институте велась работа по исследованию вихревого эффекта и его промышленному использованию. В 1958 году в институте создана лаборатория промышленного применения вихревого эффекта, в которой разработано несколько промышленных образцов вихревых холодильно-нагревательных установок и созданы различные типы вихревых аппаратов.

Благодаря своим особенностям вихревой эффект нашел практическое применение в самых различных областях техники и производства.

Примером этому может служить то, что в лаборатории Куйбышевского авиационного института были созданы вихревой конденсационный гигрометр, вихревой отсасывающий электросварочный аппарат, вихревой охладитель цилиндрических тел, велись работы по созданию вихревого карбюратора, вихревой кондиционирующей установки для транспортных машин и других вихревых аппаратов.

На многих предприятиях СССР работали вихревые холодильные камеры, вихревые термостаты и вихревые вакуум-насосы.

В данный момент, вихревые трубы широко используются в разных отраслях промышленности по всему миру:

image


image


image


image


Сущность вихревого эффекта и конструкции вихревых труб


Вихревой эффект, или эффект Ранка, проявляется в закрученном потоке вязкой сжимаемой жидкости и реализуется в очень простом устройстве, называемом вихревой трубой (трубой РанкаХилша, вихревым энергоразделителем, вихревым холодильником), схематичная конструкция которой изображена на рис. 1. и рис. 2.

То есть, можно сказать, что Вихревой эффект (эффект Ранка Хилша, англ. Ranque-Hilsch Effect) эффект температурного разделения газа при закручивании в цилиндрической или конической камере при условии, что поток газа в трубке проходит не только прямо, но и обратно.

image
Рисунок 1.

image
Рисунок 2.

Вихревая труба представляет собой гладкую цилиндрическую трубу 1, снабженную тангенциальным соплом 2, улиткой 3, диафрагмой 4 с осевым отверстием и дросселем 5.

При втекании газа через сопло образуется интенсивный круговой поток, приосевые слои которого заметно охлаждаются и отводятся через отверстие диафрагмы в виде холодного потока, а периферийные слои подогреваются и вытекают через дроссель в виде горячего потока.

По мере прикрытия дросселя общий уровень давления в вихревой трубе повышается и расход холодного потока через отверстие диафрагмы увеличивается при соответствующем уменьшении расхода горячего потока. При этом температуры холодного и горячего потоков также изменяются.

На периферии образуется закрученный поток с большей температурой, а из центра в противоположную сторону выходит охлажденный поток. Существует распространённое заблуждение, что температурное разделение происходит путём перемещения молекул газа на прямом проходе вихря (в одну сторону). Но объяснимых физикой причин для такого разделения нет, как нет причин и для вращения центрального жгута в противоположную сторону относительно периферии. В противоположную сторону вращаются микровихри между центральным жгутом и периферией, так как жгут вращается с более высокой скоростью относительно периферии. Но катятся они, как ролики в подшипнике, в ту-же сторону, в которую вращаются внешний слой и центральный жгут. Температурное разделение происходит путём теплопередачи от сжатого (и потому горячего) кумулятивным эффектом или имплозией центрального жгута к несжатой периферии, имеющей температуру как на входе. По мере движения к горячему концу периферия нагревается от двигающегося ей навстречу сжатого горячего центрального жгута, который в свою очередь наоборот остывает. Т. о. образующийся в трубке вихрь является тепловым насосом компрессионного типа с противоточным теплообменником, способным передать до 100 % разницы температур. Поэтому для терморазделения необходим не только прямой, но и обратный проход, как на рисунке. Так как после выхода из трубки жгут расширяется до давления окружающей среды (атмосферного), выходящий из холодного конца трубки газ имеет температуру намного ниже температуры окружающей среды (если горячий конец не заглушен), а всё утерянное им тепло уносится газом с горячего конца.

- Достоинства вихревой трубки:

  • Нет движущихся частей;
  • Не требуется обслуживание;
  • Надежность;
  • Без электричества или химикатов;
  • Компактная, легкая;
  • Бюджетная;
  • Мгновенное получение результата;
  • Прочность конструкции;
  • Регулируемая температура;


Парадоксальность эффекта Ранка заключается в том, что центробежные силы во вращающемся потоке направлены наружу. Как известно, более тёплые слои газа или жидкости имеют меньшую плотность и должны подниматься вверх, а в случае центробежных сил стремиться к центру, более холодные имеют большую плотность и, соответственно, должны стремиться к периферии. Между тем, при большой скорости вращающегося потока всё происходит с точностью до наоборот!

Эффект Ранка проявляется как для потока газа, так и для потока жидкости, которая, как известно, является практически несжимаемой и потому фактор адиабатического сжатия / расширения к ней неприменим. Тем не менее, в случае жидкости эффект Ранка обычно выражен значительно слабее возможно, именно по этой причине, да и очень малая длина свободного пробега частиц затрудняет его проявление. Но это верно, если оставаться в рамках традиционной молекулярно-кинетической теории, а у эффекта могут быть и совсем другие причины.

В результате многочисленных экспериментальных исследований создано несколько конструктивных вариантов вихревых труб.

Основным их различием является конструктивное выполнение тангенциального соплового входа сжатого газа и длина цилиндрической части (вихревой зоны) трубы в калибрах.
На рисунке 3 приведены конструктивные особенности исследованных вихревых труб, показавших хорошие результаты.

image
Рисунок 3.

Разработанные Р. Хилшем вихревые трубы имеют один круглый утопленный тангенциальный сопловой вход и входную улитку прямоугольного сечения, ввиду чего на срезе сопла имеется площадка, создающая зону завихрения.

Этот недостаток устранен в конструкции В. С. Мартыновского и В. П. Алексеева, которые создали тангенциально-лотковый сопловой вход, имеющий два круглых наполовину утопленных в теле трубы сопловых входа, переходящих в лоток.

Подобная конструкция позволила устранить зону завихрения и улучшить эффективность вихревой трубы, хотя и усложнила изготовление соплового входа.
Оптимальной длиной вихревой зоны трубы (расстояние от соплового входа до дросселя горячего конца) авторы двух рассмотренных выше конструкций считают 50 калибров.

Конструкция Меркулова А. П. имеет сопловой вход прямоугольного сечения и прямоугольную входную улитку, построенную по спирали Архимеда, что обеспечивает устранение зоны завихрения на сопловом срезе при сохранении простоты конструкции.

Второй особенностью этой конструкции является сокращение длины вихревой зоны до 9 калибров, осуществляемое за счет ограничения вихревой зоны спрямляющей четырехлопастной крестовиной, устанавливаемой перед дросселем горячего потока (рис 4. и рис 5. )

Введение этих двух элементов позволило еще более повысить эффективность вихревой трубы и сделать ее значительно компактнее.

image
Рисунок 4.

image
Рисунок 5.

Влияние диаметра отверстия диафрагмы


С полным основанием можно ожидать, что на характеристики вихревых труб различных диаметров будут влиять не абсолютные значения диаметров отверстия диафрагмы, а их отношение к диаметру вихревой трубы:

image


Экспериментальные данные трех различных исследований хорошо укладываются на прямую линию (График А).
С изменением соотношения, характеристики вихревой трубы заметно меняются (График Б, где -относительный весовой расход холодного потока).

image


Влияние длины вихревой зоны трубы


В ряде работ за оптимальную длину L вихревой зоны трубы принималась длина, соответствующая 50 ее калибрам.

Это делало вихревую трубу очень громоздкой, поэтому многие исследователи пытались уменьшить ее.

В результате было найдено конструктивное решение, обеспечивающее резкое сокращение вихревой зоны.

За счет установки на горячем конце вихревой зоны четырехлопастной крестовины удалось сократить длину этой зоны до 9 калибров и при этом несколько улучшить эффективность вихревой трубы как по эффекту охлаждения, так и по холодопроизводительности.

На рис. 6 приведены опытные кривые зависимости максимальных значений эффекта охлаждения от относительной длины вихревой зоны для двух отличных друг от друга давлений и проходных сечений соплового входа.

При сокращении длины вихревой зоны до оптимальной наблюдается небольшой рост максимального значения эффекта охлаждения, а при (L/D)<9 последний резко снижается.

Выявлено, что и максимальная холодопроизводительность изменяется аналогично.

image
Рисунок 6.

Следующим шагом по пути сокращения вихревой зоны явилось запатентованное В. Хендалом предложение делать вихревую зону в виде усеченного конуса с расширением в сторону дросселя и с углом конусности около 7.

Это позволило сократить длину вихревой зоны до 4-х калибров при сохранении максимального эффекта охлаждения вихревой трубы.

Влияние площади проходного сечения сопла


Экспериментами установлено, что для получения оптимальных характеристик имеется определенное соотношение между диаметром вихревой трубы и площадью Fc проходного сечения соплового входа.

С увеличением Fc растет общий расход газа через вихревую трубу, что приводит к повышению гидравлического сопротивления отверстия диафрагмы (холодному потоку), а следовательно, и к повышению уровня давлений в вихревой зоне. Последнее снижает получаемый эффект охлаждения. Но увеличение общего расхода (и расхода холодного потока) уменьшает эффект подмешивания к холодному потоку теплого пограничного слоя, текущего по плоскости диафрагмы, что приводит к увеличению эффективности вихревой трубы.

Эти два противоположно влияющих фактора дают оптимальное значение величины проходного сечения сопла, которое удобнее выразить относительной величиной, являющейся отношением площади Fc проходного сечения сопла к площади поперечного сечения вихревой трубы:

image


Согласно указанным выше экспериментам оптимальное значение относительной площади проходного сечения сопла лежит в пределах:

image


При повышении давления питающего сжатого газа оптимальные значения приближаются к нижнему пределу.

Для случая получения максимального эффекта охлаждения при малых значение Fc увеличивается.

Для большинства случаев расчета вихревой трубы принимается:

image


Сопловой ввод конструктивно должен быть выполнен так, чтобы при сохранении тангенциальности он обеспечивал плавный вход сжатого газа в вихревую зону и осевую симметрию формирующегося вихря.

Отсутствие зон завихрения и плавность входа струи обеспечивает конструкция 3 (см. рис. 3.), имеющая прямоугольное сечение сопла и входную улитку.

Хорошую осевую симметрию и плавность входа обеспечивают конструкции 2 и 6, но они труднее в изготовлении и требуют усложненной системы подвода сжатого газа, поэтому чаще используется конструкция 3 с прямоугольным сечением сопла.

Влияние давления сжатого газа


При условии сохранения постоянным давления холодного потока за отверстием диафрагмы величина давления, подаваемого к соплу сжатого газа, играет существенную роль в получаемом эффекте охлаждения.

С повышением давления входа растут эффект охлаждения и холодопроизводительность.
На рис. 7 изображены кривые эффектов охлаждения tx и холодопроизводительности tx для различных давлений p.

image
Рисунок 7.

Влияние температуры сжатого газа


Результаты экспериментов показали, что с ростом температуры, растет эффект охлаждения холодного потока и эффект подогрева горячего потока, значение же температурной эффективности при этом практически остается неизменным.

Влияние масштаба вихревой трубы


С уменьшением масштаба вихревой трубы возрастает влияние эффекта подмешивания пограничного слоя диафрагмы к холодному потоку, что приводит к ухудшению получаемого эффекта охлаждения последнего.

Влияние масштабного фактора впервые экспериментально было обнаружено Хилшем, а затем подтверждено Мартыновским и Алексеевым. Автором были исследованы вихревые трубы с диаметрами D= 10, 16, 20, 25, 30 и 33 мм.

В этих исследованиях наблюдался рост эффективности вихревой трубы с ее масштабом.
Несмотря на то, что исследованные различными авторами серии вихревых труб имели различный диапазон диаметров и различное конструктивное исполнение при несколько отличающихся геометрических соотношениях, полученные максимальные эффекты охлаждения имеют довольно четкую зависимость от диаметра D вихревой трубы.

Эта зависимость для двух давлений входа представлена на рис. 8. Как видно из рисунка, экспериментальные точки могут быть аппроксимированы в прямые линии, несколько расходящиеся с ростом D.

image
Рисунок 8.

Возможность местного получения холода является важным достоинством вихревых труб, масштаб которых может быть как угодно малым.

Например, вихревая труба диаметром 1 мм и длиной 10 мм (близкая к размерам полупроводниковых элементов), расходуя около 15 л воздуха в минуту может обеспечить отвод от полупроводникового элемента рассеиваемой мощности порядка 5 вт.

Это делает ее незаменимым устройством для стабилизации температуры отдельных ответственных элементов полупроводниковых электронных устройств летательных аппаратов.

Теперь, возвращаясь к декларированной в названии статьи возможности получения температуры в -50 градусов, можно сказать следующее. Опираясь на результаты эксперимента, проведённого в видео, приложенном ниже, даже без каких-либо расчётов, можно грубо прикинуть минимально возможную температуру, которую мы можем получить. Предположим, что в качестве компрессора, будет использован компрессор от холодильника. Основным плюсом которого является поршень достаточно малого диаметра (около 10 мм). Однако у данного поршня есть свои плюсы: благодаря своему малому диаметру, он может качать воздух под достаточно большими давлениями.


Автором данной статьи экспериментально было выявлено, что компрессор холодильника может качать воздух под давлением в 20 атмосфер. Так как в эксперименте, показанном в ролике выше была озвучена цифра в 4 атмосферы, необходимая для получения температуры в -10 градусов, возьмём эти цифры в качестве ориентира. Основываясь на них, по формуле пропорции, высчитаем необходимую величину давления, которая позволит нам получить нужную отрицательную температуру (конечно, зависимость между давлением и температурой,- скорее всего, не будет настолько линейной, но мы можем взять за некий базис эти числа, чтобы было от чего оттолкнуться):

4 = -10
20 = х, отсюда х = -200/4 = -50 градусов.

Таким образом, используя широкодоступные компрессора от бытовых холодильников (которые можно купить в магазинах запчастей для холодильников), мы можем достичь температуры в -50 градусов.

В инструкции ниже, вкратце рассмотрено, как переделать компрессор от бытового холодильника в источник высокого давления (20 атмосфер) для экспериментов с вихревыми трубками.

Нам для этого понадобятся следующие компоненты:

image


Далее, мы делаем следующее:

image

В итоге должно получиться нечто такое:

image


Некоторые дополнительные пояснения к процессу переделки компрессора от холодильника:

1. Не стоит сильно беспокоиться за компрессор, что он должен работать постоянно в смазке, без нее-он выйдет из строя. У автора данный компрессор от холодильника работал для целей аэрографии в течение 3 лет. Только периодически (раз в месяц) доливал во входной патрубок 3-4 см3 машинного масла. Но, если хотите сделать всё более аккуратно, можно на входной патрубок установить лубрикатор специальное устройство, насыщающее всасываемый воздух распыленным маслом. Используется для смазки компрессора. Тогда вся система в сборе будет выглядеть так: лубрикатор-->компрессор-->ресивер(сойдет даже бутылка 2л от кока-колы это по моему личному, многолетнему опыту). Ресивер нужен для накопления давления, чтобы избежать пульсаций воздух и отстоя паров масла и воды в подаваемом воздухе-->вихревая трубка;

2. На напечатанной с помощью 3d печати вихревой трубке следует нарезать резьбу М10х1(если вы будете использовать рекомендованные мной компоненты). Так как печатная такая мелкая резьба получается оплывшей и лучше ее нарезать плашкой;

3. Ниже вы найдете ссылки на требующиеся в процессе переделки компоненты:



4. Во многом, вихревые трубки изготовляются, основываясь на эмпирических данных, предыдущих исследователей (примерно такого размера и таких параметров вроде работало...). Отсутствие общепризнанной теории вихревых труб сильно осложняет процесс их изготовления согласно заданных параметров (о чём уже было сказано выше).

Однако, не всё так плохо, если:

а) компрессор справляется с подачей нужного количества воздуха в трубку;

б) трубка изготовлена, опираясь на имеющиеся эмпирические данные (например, рисунок 3.) такие трубки работают сразу, почти все. Они отличаются только своими возможностями получения нужных низких/высоких температур.

Самые экстремальные исследователи, могут попробовать запитать вихревую трубку воздухом высокого давления (до 300 атмосфер!) от появившихся в изобилии в последние годы компрессоров высокого давления для PCP пневматических винтовок.
Полагаем, результат будет весьма впечатляющим.

Автор данной статьи, в процессе её подготовки, заметил еще один интересный факт, который должен быть озвучен: все публично доступные результаты экспериментов с этими трубами, основываются на стандартных технологиях.

Под этим подразумевается, что для производства данных вихревых труб используется стандартные металлические детали, изготовленные с применением стандартных металлообрабатывающих станков.

Налицо полное игнорирование возможностей изготовления данных трубок с применением 3D печати!

Однако именно 3D печать может дать новые возможности в изготовлении данных устройств!
Например: изготовление микромассива данных трубок, объединённых в миниатюрный кластер.

Данный кластер может быть установлен в дальнейшем прямо на критичные электронные компоненты, требующие охлаждения, например процессор компьютера.

А с появлением общедоступных фотополимерных принтеров по недорогой цене, например, Anycubic Photon,- возможно изготовление поистине миниатюрных и сложных кластерных систем, базирующихся на вихревых трубках (в буквальном смысле микронного масштаба)!

Таким образом, любой исследователь данного эффекта, имеющий в наличии соответствующей трехмерный принтер и программу инженерного трехмерного проектирования, например, solidworks, может с лёгкостью смоделировать и распечатать вихревую трубку или их кластер любого размера, соответствующего возможностям компрессора, имеющегося в наличии у конкретного исследователя!

Производители на aliexpress тоже не остались в стороне и выпускают весьма интересное устройство Мобильный кондиционер сварщика, основанный на данной трубке Ранка-Хилша. Данное устройство позволяет обеспечить комфортным микроклиматом рабочих в цеху персонально каждого. Это устройство достаточно подключить к цеховой сети сжатого воздуха:

image

При желании провести ряд собственных экспериментов, там же имеются и готовые вихревые трубки.

Используя 3d печать, любой исследователь может легко и быстро создать целую серию вихревых трубок, подогнав их размеры и параметры получаемой температуры под требующиеся именно ему!

С 1960-х годов вихревое движение является темой множества научных исследований. Регулярно проводятся специализированные конференции по вихревому эффекту, например, в Самарском аэрокосмическом университете.

Следует заметить, что возможности некоторых установок на эффекте Ранка внушают уважение например, рекордное охлаждение, которого удалось достигнуть на одной ступени, составляет более 200С!

Желающие более подробно ознакомиться с данным эффектом и вихревыми трубами могут прочитать следующую литературу:

  • А.П. Меркулов Вихревой эффект и его применение в технике;
  • Ш.А. Пиралишвили, В.М.Поляев, М.Н. Сергеев Вихревой эффект. Эксперимент, теория, технические решения.



Подробнее..

Плавка металлов за 9 минут в микроволновке и другие интересные штуки обзор ТОП7 самоделок еще одна

07.06.2021 14:15:24 | Автор: admin

Микроволновые печи Они достаточно давно вошли в нашу жизнь и занимают в ней прочное место благодаря своим уникальным качествам, которые дают любому пользователю: возможность быстро и беспроблемно согревать любые продукты, а также производить их готовку.

Однако, многие даже не догадываются, что их обычный бытовой аппарат способен на гораздо большие подвиги чем принято считать. Вот об этом мы и поговорим ниже.

Автор статьи также является многолетним владельцем микроволновой печи, впрочем, как и достаточно большое число людей в России (рискнем сделать такое смелое предположение).

Как и у любой техники, у микроволновой печи существует свой срок эксплуатации, по истечении которого, она выходит из строя или подаёт симптомы к скорому наступлению данного события.

На написание такой статьи автора подтолкнуло то, что его микроволновая печь стала подавать явственные признаки, что конец её близок. В нашем случае, это заключается не в выходе из строя электронной части, а скорее в физическом износе самой камеры нагрева: износилось лакокрасочное покрытие, ввиду чего, есть риск получить пищу, с кусочками краски в её составе (Ммм вкуснотишша! Всё, как мы любим! Sarcasm mode: off).

Справедливо рассудив, что этот ингредиент никоим образом не может улучшить вкус приготовляемых продуктов, а встроенная на уровне прошивки жаба не даёт автору выкинуть микроволновку, он решил пуститься во все тяжкие. А именно: посмотреть, а что ещё можно сотворить на базе микроволновки, если её полностью разобрать или же использовать как-то в других целях. Для этого было решено прошерстить просторы YouTube, который дал пищу для размышлений относительно того, какую судьбу для микроволновки стоит выбрать
Следствием данных поисков стал личный хит-парад поделок, среди которых наблюдаются весьма любопытные применения микроволновой печи. Предлагаем вам тоже знакомиться с данными поделиями.
Сразу оговоримся, что данная подборка не претендует на исключительную полноту и корректность ранжирования. Возможно даже, кто-то может посчитать мнение автора некорректным. Будем рады, если Вы выскажите своё мнение в комментариях к статье.

Итак начнем!


Проводя любой поиск на тему самоделок, на основе микроволновки, любой исследователь обязательно натолкнется на такого известного блогера, как Креосан. Это имя является нарицательным и широко известно на просторах Рунета. Поэтому он не нуждается в специальном представлении. Мнения относительно его опытов, как правило, достаточно полярны. Однако сейчас мы сосредоточимся не на особенностях рассмотрения субъективных оценок его опытов.

В своё время он провел достаточно любопытный опыт, который поднял широкую волну на просторах интернета. Опыт заключался в том, что магнетрон микроволновки был использован в качестве излучающего устройства, которое позволяло (по утверждениям его автора) создать некую дальнобойную микроволновую пушку. В виду запрета на встраивание видео, вы сможете его посмотреть по ссылке, на youtube.

Видео вызвало нешуточный вал споров. Вал дошел даже до зарубежного сегмента интернета и ряд блогеров, в частности, известный блогер Allen Pan взялся проверить утверждения, изложенные в ролике выше.

Судя по анализу этого блогера, показанное в рассматриваемом ролике не совсем соответствует реальности :-).

Но автор статьи решил пойти дальше, так как не планировал поджаривать соседей микроволновой пушкой.

Следующее видео, которое заставляет задуматься, это рассказ о том, как на основе трансформатора микроволновки сделать свой сварочный аппарат.

Кстати если интересно, можно ознакомиться с устройством типичного трансформатора микроволновки:

Хммм уже интересней если кратко обобщить, изложенную информацию, то переделка трансформатора под сварочный аппарат, как правило, заключается в том, что видоизменяется вторичная обмотка, в целях понижения напряжения и увеличения силы тока.

Однако, ввиду того, что у автора уже есть хороший сварочный аппарат инверторного типа, такие самоделки его не заинтересовали. Это связано с тем, что современные инверторные сварочные аппараты дают своему пользователю достаточно широкие возможности по регулировке, как силы тока, так и обеспечивает его интеллектуальными алгоритмами зажигания дуги. Не говоря уже о том, что физические размеры таких аппаратов весьма скромные и цена их более чем приемлема.

А вот следующая поделка, является достаточно полезной и заинтересует многих: создание аппарата точечной сварки. Для любого домашнего мастера, такой аппарат является весьма полезным, так как позволяет быстро соединять различные детали. Аппарат точечной сварки может быть весьма полезным в разработке собственных блоков питания (пауэрбанков), для чего потребуется быстрая приварка контактных пластин к различным аккумуляторным батареям, в частности, литий-ионным. Батареи такого типа весьма не рекомендуется перегревать, ввиду чего, в заводских сборках широко используется точечная сварка для прикрепления контактов:

Как можно было легко понять из предыдущих опытов, по созданию сварочных аппаратов, трансформатор микроволновки является достаточно мощным и легко переделывается в целях разнообразных самоделок. Благодаря этому, он является частой основой, для создания разнообразных систем питания таких широко известных и эффектных конструкций, работающих на основе токов высокого напряжения, как катушка Тесла и лестница Иакова:


Говоря о первой самоделке, катушке Тесла, можно сказать, что она является весьма частой в изготовлении различными энтузиастами высокого напряжения. Такая катушка позволяет производить разнообразные интересные опыты, в числе которых широко известный опыт по созданию поющего разряда:

Этот опыт широко вышел за пределы разнообразных лабораторий и комнатушек самодельщиков, с применением данного эффекта проводятся даже разнообразные шоу (весьма эффектные надо сказать):


Если кто заинтересовался этой темой, то по следующему адресу можно найти достаточно подробное описание по созданию катушек Тесла, с длиной получаемых разрядов до полутора метров!

И потихоньку, мы начинаем приближаться к самым интересным, на взгляд автора, самоделкам на базе микроволновки, первой из которых является способ плавления стекла.

Способ является выглядит так: предварительно измельченное стекло помещается в специальный теплоизолированный корпус печки для плавления, в котором и происходит его последующее спекание:

Работа печей для плавления базируется на 2 различающихся способах:

1) на дно специальной камеры для плавления укладывается кружок из карбида кремния или несколько подобных кружков. Они и являются тепловыделяющим(и) элементом(элементами), которые преобразуют энергию микроволн в тепло;

2) камера плавления представляет собой герметичную теплоизолированную камеру, которая изнутри выложена слоем карбида кремния. Данное покрытие также играет роль тепловыделяющего элемента, который и нагревает собственно камеру изнутри.

Это занятие является достаточно увлекательным, и занимаются им достаточно широкие слои, преимущественно женского, населения и их можно понять!

Если посмотреть на результаты удачных примеров фьюзинга, то бишь спекания стекла, то они поражают своей эстетической красотой и осознанием того факта, что подобные изделия могут быть получены в домашних условиях!

image

image

image

Для получения настоящего культурного удовольствия и изучения того, что в мире делается по этому направлению, рекомендуется поиск по сайту www.pinterest.com, по ключевым словам: microwave melting glass, microwave fusing glass, microwave fusing.

Если вы всерьез заинтересовались этим занятием, то на известном сайте имеются наборы начинающего.

При анализе информации, доступной в интернете по теме фьюзинга, была выявлена явная проблема, с которой сталкивается большинство энтузиастов этого дела: отсутствие четко контролируемого процесса нагрева и охлаждения. Такая проблема приводит к тому, что в получившемся изделии остаются остаточные напряжения, которые могут в любой момент привести к неожиданному его разрушению. Легко представить себе последствия, если предположить, что данное изделие является некой декоративной подвеской на шее, или серьгами в ушах!

Поэтому, здесь наблюдается явная возможность для знатоков программирования и физической железной части, такой, как плата Arduino или более продвинутой версии esp32. С использованием данного подхода, можно, после проведения ряда тестовых итераций, разработать соответствующую программу оптимального нагрева и охлаждения, которые позволят получать достойные стеклянные изделия с минимальным содержанием остаточных напряжений или совсем без оных.

И наконец, мы подошли к самому интересному моменту нашего хит-парада: плавление металла в обычной микроволновке! (на этом месте автор начинает ходить из угла в угол, с безумным взглядом, что то бормочет и машет руками. Успокоившись продолжает дальше)

В это сложно поверить, однако существует способ, который позволяет легко плавить металлы, имеющие температуру плавления до 1200 градусов в обычной микроволновке, мощностью не менее 700 Вт!

Способ заключается в том, что для плавления используется тигель из графита, с покрытием из карбида кремния, который и является радиопоглощающим материалом, который эффективно переводит энергию микроволнового излучения в тепло. Это позволяет плавить металлы (если на примере бронзы), то в районе 80 грамм, за одну закладку.

Способ плавления металлов с использованием микроволновки является особенно интересным в связи с тем, что эта технология практически полностью укладывается в один из принципов ТРИЗ (теории решения изобретательских задач), который, утрированно, звучит примерно так: идеальная машина это та, которой не существует, однако её функции выполняются.

Под этим подразумевается, что для плавления можно использовать специализированные устройства, однако лучше использовать обычное бытовое устройство, которое изначально не предназначено для данных целей и, по сути, можно сказать, что мы плавим металл в отсутствующей плавильной печи.

Рассмотренный в микроволновом способе плавки тигель у автора выдерживал 50 плавок без каких-либо признаков разрушения.

Там же, продаются доступные по цене комплекты для плавления. Да, конечно можно приобрести на известном сайте aliexpress муфельную плавильную печь, однако она тоже не лишена существенных недостатков.

Если например, рассмотренная выше технология по плавлению в микроволновке занимает по времени в среднем (от закладки до расплава) около 8-9 минут, то способ плавления металлов с использованием муфельной плавильной печи только для разогрева печи требует не менее 30-40 минут, с соответствующими энергозатратами. И это мы ещё не учитываем тот момент, что печь должна быть доставлена с Aliexpress, и она в своём комплекте содержит тигель с достаточно малым сроком наработки на отказ.

Если же брать индукционную плавильную печь, то она требует подключения воды -для охлаждения и так же не является слишком дешевой и требует времени на доставку.

Плавление же с использованием микроволновки является особенно интересным, если учесть возможность литья металла по выплавляемой модели, например, как в этой статье.

Или же в этих видео:


Единственной проблемой при таком подходе, на взгляд автора, является то, что при литье по выплавляемой модели, требуется предварительно выплавить данную модель из подготовленных для литья форм. Даже если мы используем для предварительной 3D печати легкоплавкий пластик PLA, его удаление из готовой формы может стать определенной проблемой. А именно, потребуется достаточно высокая температура, чтобы выплавить его или даже выжечь из такой формы.

Проанализировав опыт других людей, автор пришел к выводу, что наиболее приемлемым подходом в данном случае является использование высокотемпературной горелки, в качестве которой можно воспользоваться, например, паяльной лампой.

Конечно, этот процесс вряд ли можно воспроизвести в ванной комнате, пока жена спит и потребуется, как минимум, выйти во двор.

Однако сама вероятность создания металлических изделий с использованием 3D принтера и имеющейся в наличии микроволновки, является весьма примечательной и достойной внимательного рассмотрения!

Творчески сочетая 2 рассмотренных выше способа, а именно, плавление металла и стекла, можно получать весьма интересные вещи, например, заливка расплавленным стеклом металлических форм. В итоге получаются практически ювелирные изделия. Способ базируется на заполнении пустот в металлической форме специальной горячей эмалью, которая представляет собой смесь стеклянного порошка различных цветов, со связующим:

Освоив данную связку двух технологий, вы сможете делать весьма любопытные вещи, как в видео ниже. Автор для прогрева использует горелку, но у вас есть способ лучше микроволновка! Это видео вы можете использовать для ориентира, что вообще возможно делать:

Примечание. Температура плавления силикатного стекла составляет в райне 425 600C. Выше температуры плавления стекло становится жидкостью. Температура плавления металла, например, бронзы составляет в районе 950C.
Таким образом, зная температуру плавления металла, который вы используете и снимая показания температуры с помощью термопары (например), возможно плавить только стекло и не доводить до плавления металл. И стекло заполнит все нужные места в металле, а сам металл не повредится!


Бонус


Завершая рассказ нельзя не упомянуть одну достаточно забавную поделку, которая была в своё время изготовлена упомянутым ранее блогером Allen Pan-ом. Для её создания он использовал трансформатор от микроволновки, который был переделан в электромагнит.

Кроме того, в её составе были использованы следующие компоненты: плата Arduino Pro Mini, аккумулятор на 12 вольт, твердотельное реле, емкостной датчик, подключенный к рукоятке и сканер отпечатка пальца. Всё это было помещено в компактный корпус в форме молота (Мьёльнир-а), принадлежащего Богу грома Тору (согласно Вселенной Марвел).

Работает устройство следующим образом: как только кто-либо берется за рукоятку, срабатывает емкостный датчик и включается электромагнит, благодаря чему молот намертво приклеивается к любой металлической поверхности, на которую он был предварительно установлен.

Любой, кто попытается оторвать молот от поверхности потерпит неудачу, так как любое касание рукоятки включает электромагнит.

Оторвать же молот от поверхности и отключить его магнит, может только хозяин, так как система калибрована на распознавание отпечатка только его пальца, которым он должен предварительно коснуться сканера. Получилось смешно:

Если кто то задумает повторить такую поделку, следующее видео может помочь: в нем достаточно подробно показывается процесс изготовления электромагнита из трансформатора микроволновки:

Также, в настоящее время возможно упростить конструкцию молота, если взять вместо платы Arduino pro mini плату esp32: она содержит сенсорные пины, к которым можно подключить металлические площадки на рукоятке молота (предусмотрительно размещенные ранее). И вести обработку события отпустить молот исключительно логическим путём (если площадка 1 удерживается и по площадке 2 в этот момент два раза постучали пальцем то отпустить молот и т.д.). В таком случае, самоделка будет еще привлекательней, так как пропадет существенный демаскирующий признак сканер отпечатка пальца.
Как можно видеть из всего этого длинного рассказа, микроволновка, это не только средство для приготовления и разогрева пищи, но и неисчерпаемый кладезь компонентов, которые позволят вам создать свои экспериментальные и даже вполне полезные вещи.

Для некоторых из этих неординарных применений, даже не требуется каких-либо её переделок!

Что же касается самого автора рассказа, то в списке его предпочтений, так сказать, личного хит-парада, первое место прочно занимает методика плавки металла в микроволновке.

К описанной технологии плавки хотелось бы добавить еще одно примечание, что в микроволновке плавится партия металла не более 80 грамм за один раз. Соответственно для заливки такого объема металла не нужна слишком большая форма, и форма может быть легко обожжена на обычной бытовой газовой плите кухонного назначения (если у Вас в наличии имеется таковая, а не электрическая плита).

При таком подходе, процесс плавки металла становится поистине домашним и, можно даже сказать, уютным (в этом месте на заднем плане должен звучать зловещий хохот безумного учёного).

В любом случае, надеемся, что этот рассказ был для вас полезным и интересным, дав каждому читателю пищу для размышлений!


Подробнее..

Можно ли сделать деревянный стеллаж без инструмента используя только отвертку и 3D-принтер? Легко!.

14.06.2021 12:13:27 | Автор: admin


Приветствую!Я хочу поделиться с вами очередной своей разработкой, которая позволяет сделать надежную, крепкую мебель и при этом без необходимости иметь инструмент, пылить в доме/квартире и собрать её буквально за один день.Эта статья для аудитории Хабра, которая любит DIYи получает удовольствие от процесса создания вещей своими руками. Осторожно, в статье много изображений и фотографий.

Началось все с


Попросила меня супруга сделать небольшой открытый стеллаж на кухню чтобы всё было недалеко и при этом у всего было своё место. Подумал я, что делать просто ящик прямоугольной формы не хочу это не красиво и будет выглядеть как коробка Рядом с местом предполагаемой установки стоит буфет Хемнэс от ИКЕА. Посмотрел я на него и мне понравился стиль его боковых стенок по углам брусок, а в середине филёнка.
Да, это не стеллаж, но на этой фотографии лучше видно то, о чем я пишу:

Ну думаю надо делать по такой технологии,однако почти сразу понял, что данная сборка возможна только если фрезеровать ножки и вклеивать в паз филенку.У меня есть фрезер и место где это можно сделать, но работать с нимя жуть как не люблю, а люблю работать с SolidWorks и разрабатывать что-либо для печати на 3D-принтере. Поэтому было принято решение разработать детали, с помощью которых можно собрать аналогичную конструкцию, но без фрезеровки, сверления, запилов и прочей грязной работы. Наша цель максимально снизить необходимость в обработкедерева на территории дома.

Распиловка это, на мой взгляд, самая лучшая услуга оказываемая строительными магазинами и почему бы нам её не использовать? Поэтому всю задачу по обработке древесины нужно свести к распиливанию и делать это мы будем сразу в магазине. В итоге домой привозим уже готовые детали, которые нужно будет просто собрать.

Разработка


Сел за Solid, сделал пару деталей и понял, что это всё не то, надо их унифицировать. Поэтому я на время отложил Solid и пошел по интернет магазинам смотреть какие типовые размеры бывают у мебельных щитов.

Витоге с чем нам придется работать:

  • Толщина которая нас интересует 18 мм
  • Доступные ширины 200 / 250 / 300 / 400 / 500 / 600 мм
  • Длина от 600 до 3000 мм
  • Брусок на ножки взят такой, как у Хемнэс 40х40 мм

Задача и вводные данные ясны, оттягивать не стоит, нужно делать.

За типовой размер взятыХ-мм на филенку и Х+50 мм на полку. Сделано это неспроста. Допустим мы используем филенку размером 200 мм, соответственно общая ширина боковой стенки будет равна 280 мм. Делать полку 300 мм не получится, так как она будет шире самой стенки и будет выпирать. Во вторых, красивее, когда полка чуть утоплена внутрь, а не заподлицо с боковой стенкой это создает эффект объема и убирает эффект ящика. Соответственно среди типовых размеров в продаже у нас есть щиты размером 250 мм. Вот его мы и будем использовать для разработки общей конструкции деталей.

Если же мы хотим стеллаж глубиной 380 мм, то мы берем щит 300 мм на филенку и 400 мм на полки, НО! в этом случае нам просто нужно при покупке распилить щит вдоль, отрезав 50 мм, а потом поперек на длину равную длине полки.

Некоторое время на работу и в итоге у меня получилсянабориз6 уникальных деталей, которые позволяют собрать конструкцию любой длины. Некоторые детали различны для стартовой/финишнойипромежуточныхстенок. Схема стеллажа, расположения деталей и их названия показаны на схеме ниже:


Деталь panel_rack_bracingкрепится к каждой полке и нужна для придания конструкции жесткости, а также связывания нижней части. Без нее ножки не разъедутся, но конструкция не получится крепкой.
Детали в крупном виде под спойлером.Подписывать каждую не буду, они легко находится на схеме выше.

Фото деталей крупно








Как это работает


Сейчас я опишу технологию сборки на примере небольшой конструкции.
Допустим мы хотим получить столик-стеллаж глубиной 300 мм, высотой 1000 мм и длиной 1200 мм. В стеллаже должно быть 6 полок.

Покупаем в строительном магазине (Леруа / Максидом / OBI / ):

  • брусок на ножки 40х40х2000мм в кол-ве 4 штуки
  • щит на столешницу 12х300х1200 мм (стандартный размер)
  • щит на филенку 18х200х800 мм в кол-ве 3 штуки
  • щит на полки 18х250х2000 мм

Набираем это всё, идем на распиловку ипросим распилить каждый брусок наножкипо 980 мм, а щит для полок на 6 штук по 330 мм.



Там же берем саморезы с пресс-шайбой (клопы) размером 4,2х13 и саморезы с потайной головкой 4,0х30. Вторых нужно будет равным количеству нижних полок умноженное на 2. А вот первых нужно будет намного больше. Считать лучше из общего количества пластиковых деталей умноженного на 2,5.

Распечатываем на 3D-принтере:

  • 40x40_top 8 шт
  • 40x40_btm_right_shelf 2 шт.
  • 40x40_btm_left_shelf 2 шт.
  • 40x40_btm_2sides_shelf 4 шт.
  • panel_rack_bracing 6 шт.
  • rack_holder 12 шт.






На бруски надеваем верхний элемент, прикручиваем к бруску. Затем нижний (в соответствии со схемой), а в середину филенку. Всё плотно прижимаем и скручиваем. Получается такая конструкция стенки:





Далее к середине нижних полок прикручиваем держательpanel_rack_bracing



Столешницу лучше разметить на полу и через специальные отверстия прикрутить к ней ножки, а затем нижние полки.Всё, изделие собрано!Процесс сборки занимает реально очень мало времени у меня на сборку данного стеллажа ушло не более 30 минут. Из необходимого инструмента только шуруповерт или отвертка.

Вот что у нас получилось и как оно выглядит в интерьере



Дополнительныевозможности


Первый плюсплюс данной конструкции мы рассмотрели выше нам ничего не нужно пилить / сверлить / фрезеровать. При определенных длинах полок даже нет необходимости в распиловке в магазине.

Второй же плюс в том, чтоданная системапозволяет собирать стеллажи любой длины. Ранее мы собрали стеллаж длиной 1,2 м, однако мы легко можем собрать такой же стеллаж но длиной 2, 3 и даже 5 и более метров (при условии соединения столешницы на штапики). При этом жесткость конструкции будет аналогичной.

И наконец третий плюс сборка стеллажа в высоту и возможность делать комбинированные сборки, когда одна секция ниже другой. Сейчас я собираю конструкцию в спальню дочери, где одна секция будет глубиной 380 мм (филенка 300 мм, полки 350 мм), а вторая 280 мм. При этом глубокая секция высотой 2,7 м (обязательно крепить к стене или потолку), а низкая 1,6 м.

Большая секция в процессе сборки:







Внимательный читатель наверное уже заметил, что здесь появилась новая, 7/8/9-я детали. Эти деталидержат филенку в середине её длины, центрируют относительно ножки и притягивают к ней. Они немного отличаются от нижних стартовых отсутствием поддерживающей полочки.

Выглядят они следующим образом:




Собственно думаю на этом статью можно закончить и поделиться с вами моделями.
Полный набор файлов для печати выложены на Thingiverse

Буду рад если моя разработка кому-то пригодиться в быту. Все вопросы,пожеланияи предложения задавайте в комментариях, на все отвечу.
* Данная разработка предоставляется всем желающим исключительно для некоммерческого использования, в других случаях вы можете обратиться ко мне, как к автору.


Подробнее..

Рояль, азот и котик как это было

16.06.2021 12:16:05 | Автор: admin
Если кто-то пропустил, то с 24 по 28 мая мы реализовали проект под кодовым названием Рояль, азот и котик. И настало время рассказать о том, как мы всё организовали, с грязными подробностями, скандалами, интригами и расследованиями.

Сразу скажем, что это был, пожалуй, самый смелый и необычный проект для нашей компании.

Итак, наливайте в кружку кофе, смузи или ягер, и устраивайтесь поудобнее: впереди много гик-порно, мужиков с перфораторами и сварочными аппаратами, красивых девушек и, собственно, самого рояля Красный октябрь, который, как и полагается музыкальному инструменту Made in USSR, пережил падение и даже не расстроился (в прямом и переносном смысле). Чего не скажешь о капиталистическом ноутбуке

Всё началось с идеи. Ты никогда не знаешь, когда на тебя упадет рояль фраза, которая не один раз обыгрывалась в литературе и кинематографе и описывает гипотетическую ситуацию, когда происходит какое-то нелепое событие, которое, скажем так, вносит коррективы в планы главного героя.


Ок, а куда мы будем ронять этот рояль?


Очевидно, что ронять мы его будем на компьютер или ноутбук, так как речь идет о ситуации, когда под угрозой оказываются данные, хозяин которых не позаботился о цифровой копии в облаке. Чертежи, секретные материалы или резервная копия базы данных 1С: Бухгалтерии потеря этих данных уже обыгрывалась, и не один раз, как в фильмах, так и в страшных снах системных администраторов. Поэтому хотелось найти что-то свежее. И тогда мы схватились за идею, что это будет NFT-гифка с котиком, ценность которой стремительно растет.

Ну и вишенкой к этой истории станет любовная драма, которая разыграется с вашим гипотетическим другом (простым застенчивым программистом) и его девушкой властной, эмоциональной, импульсивной и доминирующей особой, в чьи коварные лапы попал ноутбук с гифкой. Долгая самоизоляция из-за коронавируса обнажила проблемы в не самых удачных союзах и отношениях между парами. По всему миру, в том числе и в России, выросло количество разводов, и этот вопрос поднялся в рейтинге актуальности на первые места. К тому же наш расчёт был и в том, что если и не у участников нашего квеста, то уж у их друзей или знакомых были какие-то эмоциональные переживания, связанные с расставанием с близким человеком, и эта история сможет вызвать более высокое вовлечение.

Итак, история придумана, основные инструменты подобраны, осталось дело за малым, весь этот план реализовать

Окей, гугл, как подвесить рояль к потолку?


Да, по этому запросу результатов катастрофически мало, поэтому придется делать всё самим.

В первую очередь мы сделали трехмерную модель всей сцены, чтобы оценить масштабы помещения, высоту, на которую надо будет повесить рояль, рассчитать ускорение, толщину тросов и прочее.


Визуализация помогла нам понять, как размещать камеры, как лучше крепить тросы, под каким углом развернуть рояль и где разместить жертву (ноутбук).

А что с помещением?


Самой сложной частью проекта оказался поиск подходящего помещения. Во-первых, нам нужен был стабильный интернет. Во-вторых, крепкий пол, который выдержит падение рояля. В-третьих, потолок высотой не менее 6 метров, на котором при этом можно будет закрепить это вс.

В голову приходили только строительные ангары, промышленные склады или заброшенные цеха. Вокруг мы построили бы декорации квартиры девушки и сносно вписались бы в легенду. Три location-менеджера, услышав наш бюджет и вышеописанные требования, глубокомысленно молчали. А когда слышали про наш план, что именно мы собираемся там уронить, вежливо заканчивали разговор и желали нам успехов в поисках.

И тут мы вспомнили о нашем друге, Алексее Горове, владельце студии Faraloft, в которой мы снимали уже несколько видео-проектов, и, не особо рассчитывая, позвонили ему. Хабр? Рояль? Жидкий азот? Разбить ноутбук? Ахаха, я в деле! ответил Алексей, и мы в очередной раз поверили в великую силу Хабра.

Оказалось, что он фанат Хабра, у него своя мини-ферма, где майнится крипта, и вообще он не против, чтобы в его легендарной студии произошла еще одна не менее легендарная история. А у него этих историй, поверьте, хватает.

Студия интересна тем, что она находится в бывшем гараже Госплана, спроектированном архитектором Мельниковым.


Сам Константин Мельников писал о своем творении так: Один глаз, смещенный с центра к высокому объёму административного корпуса с узким прорезом трубы, и я обрёл связь формалистического подхода с самой сущностью из мира прекрасного. Вобщем, идеальное место для такого авангардного арт-проекта, Константин Степанович оценил бы.

Ок, а что с роялем?


Найти в Москве поддержанный рояль было не сложно. Но когда речь заходила о том, чтобы он был в рабочем состоянии (нам нужно было, чтобы центральная октава была рабочей), тут все владельцы были не очень уверены в своих показаниях.

Наконец, нашелся один в Подмосковье (Электросталь), вполне вписывался в бюджет.

  • А он у вас в рабочем состоянии? спрашивали мы.
  • Да, две недели назад настраивали, говорила Валентина Ивановна, его владелица. Будьте с ним аккуратнее, пожалуйста!
  • Ну что вы, Валентина Ивановна! Будем сдувать с него пылинки! отвечали мы, стараясь сохранить благородные интонации в голосе.

К нам в студию он прибыл тщательно упакованный от царапин:


Как только мы его распаковали и перевезли в студию, поняли, что рояль отлично вписывается в интерьер:


Фабрика Красный октябрь (бывшая фортепианная фабрика Беккер) выпускала отличные музыкальные инструменты.
Немного из истории фабрики: В 1947 году на фабрике было создано конструкторское бюро, и в 1950-е о достоинствах инструментов Красный Октябрь заговорили в Европе. Сенсацией стало завоевание ленинградским роялем Гран-при на Всемирной промышленной выставке в Брюсселе в 1958 году, ведь прославленные Блютнер, Бехштейн и Стейнвей его и за конкурента не считали.
И да, качество рояля весьма добротное, после падения у него сломались только педали, две ножки и отлетела одна из клавиш, но при этом он даже не расстроился и на нем можно было продолжать играть:


После окончания проекта владелец студии Faraloft, Алексей Горов, отдал рояль на реконструкцию, так что наш герой еще будет радовать посетителей студии своим великолепным звучанием.

Ок, а как мы его подвесим к потолку?


Первый набросок схемы крепления рояля к потолку выглядел так:

За кадром остались пенные напитки RuVDS, без которых никак нельзя было разобраться.

Три года назад мы с командой Хабра участвовали в регате AFR, и оттуда взялась идея стянуть все тросы, удерживающие рояль, в одну консоль, которую на яхтах называют пианино (подробнее о той легендарной регате читайте тут.



Первый эскиз пианино выглядел так:


Эту консоль мы сварили из металлического профиля, и рядом со стеной закрепили лебедку, с помощью которой поднимали рояль.




Потолочный подвес сделали через балку, удерживающую крышу. Она железобетонная, поэтому спокойно выдержала рояль:

Алексей Горов (владелец студии Faraloft) монтирует строительные леса, без которых до балки было не добраться.


Простите, Валентина Ивановна, мы постарались не царапать ваш рояль

Тросы крепились за специальный поддерживающий каркас из нержавеющего профиля, прикрученного ко дну рояля:


Да, по расчетам рояль мог висеть и на одном из этих тросов. Но шоу у нас длится 5 дней, поэтому и тросов несколько:


С такелажем и консолью не всё получилось сразу. Пришлось поменять болты с 8-миллиметровых на 10-миллиметровые, потому что при тестах их кое-где начало гнуть. А на соединениях тросов пришлось добавить П-образные хомуты, потому что двойные плоские стяжки не справлялись.

Первое тестовое поднятие рояля:


Да, в кадре пусто, потому что многие из нас смотрели фильм Корабль-призрак и на всякий случай отошли подальше. Никто не захотел быть героем сиквела Рояль-призрак.

Чтобы снизить возможный ущерб от отлетающих тросов (в студии большие стеклянные окна), мы закрепили на концах малярные валики:


Сложно сказать, насколько они помогли, на замедленном видео видно, как трос с валиком спокойно отлетает в сторону крепления у потолка. Но была вероятность, что он вполне мог хлестануть в окно, закрученные волны троса намекают на это:


А что, если на рояле можно будет поиграть?


Идея дать пользователям возможность поиграть на рояле вызвала у всей команды проекта восторг.

Во-первых, это интерактив, потому что долго смотреть на висящий рояль не интересно, а вот удаленно сыграть на нем это сразу повышает вовлечение.

Во-вторых, это же квест, и рояль может стать одним из ключевых элементов. Можно будет сыграть нужную мелодию и получить доступ к одному из ключей. Про бонусный, 10-й ключ читайте в нашей инструкции по прохождению.

Параллельно мы начали думать о том, как организовать игру на рояле, и собрали на коленке прототип устройства на базе Arduino Nano и Raspberry Pi. В первом варианте у нас зажигались нужные лампочки адресной светодиодной ленты.


В конечном варианте мы добавили плату расширения с реле и два ряда соленоидов на фанерке:


Устройство собрано и готово ко встрече с роялем:


В финальном варианте это выглядело так:


Хотя сперва и была идея распечатать корпус на 3D-принтере, мы не стали прятать внутренности. Во-первых, чтобы оставить видимыми светодиоды, по которым нам будет понятно, работают ли основные узлы устройства или нет. А во-вторых, это же проект для Хабра, гик-порно и немного киберпанка:

Кадр из заставки сериала Мир дикого запада.

На сайте мы разместили клавиатуру, на которой нарисовали и цифры с нотами, что жирно намекало на то, что мы что-то там зашифровали:


Очевидно, что желающих проиграть свою мелодию будет много (за весь проект на рояле было проиграно около 2100 мелодий), поэтому мы реализовали механизм очереди через Telegram-бота. Участник проигрывал мелодию, она записывалась и передавалась ботом через API на Raspberry Pi. Пользователю сразу же после этого приходило первое оповещение с прогнозом времени воспроизведения, а затем, примерно за 20 секунд до того, как будет проигрываться запись, приглашение посмотреть этот момент вживую через трансляцию на сайте:


Участник переходил по ссылке и слушал, как его мелодия проигрывается в какой-то далекой московской квартире:


К слову, рояль играл не переставая, нам пришлось записывать несколько дублей для этого видео, чтобы найти паузу:


А что там с азотом?


Собственно, зачем вообще нужен был азот? Ну, во-первых, это красиво. А во-вторых, современные HDD делаются довольно прочными и вполне себе могут пережить такую незначительную неприятность, как падение рояля. Поэтому мы решили подойти к вопросу уничтожения NFT c котиком основательно и добавить в сюжет жидкий азот. Чтобы наверняка.

Для того, чтобы жидкий азот никуда не разлился, мы купили обычный душевой поддон и заварили у него сливное отверстие:


Резиновая пробка или герметик под действием азота могли бы довольно быстро разрушиться, поэтому Только сварка! Только хардкор!

Жидкий азот приехал к нам в обычной газели внутри которой размещался такой вот агрегат:


Да, судя по всему, одного из участников Дом 2 заморозили, чтобы реанимировать в 2035-м году и придать шоу новое дыхание:


Процесс переливки в жидкого азота в сосуд Дьюара:


В назначенный час мы, как и обещали, залили ноутбук жидким азотом:


Стоп-кадр за несколько миллисекунд до встречи с роялем. Видно, что от резкого охлаждения вспучилась панель ноутбука и клавиатура покрылась инеем:


А вот что стало с ноутбуком после заморозки и встречи с 500-килограммовым роялем:


Диск мы впоследствии вытащили, он действительно был целым, но данные на нем уже не читались, видимо, резкое переохлаждение всё же нарушило целостность печатной платы или микросхем. Ну штош, не самый дешевый способ избавиться от данных. Зато весьма зрелищный!

Итоги проекта и немного статистики:


  • 7635 уникальных посетителей заглянуло на сайт проекта.
  • 10 литров жидкого азота было вылито на ноутбук перед падением рояля.
  • 45 метров троса понадобилось для поднятия и удержания рояля.
  • 4 человека прошло квест до конца.
  • 2340 раз рояль проиграл мелодии участников проекта.
  • 113 раз рояль сыграл мелодию Чижик пыжик где ты был?


Хронология постов по проекту:


  1. Спаси котика из-под рояля
  2. Котики в NFT: революция в цифровом мире или хайповая пирамида?
  3. Рояль над котиком, день первый
  4. Хроники котика: брутфорс рояля, крыса-кун и деанон Оксаны
  5. Финал квеста и победители: особенности криогравитационного воздействия на портативные ЭВМ
  6. Hack the hackers: полное руководство по прохождению квеста
  7. Как организовать трансляцию на 5 суток (почти) без разрывов?
  8. Рояль, азот и котик: как это было <=== Вы сейчас здесь



Подробнее..

Часть 3 ESPboy2 гаджет для ретро игр и экспериментов с IoT, новости проекта 2021

24.05.2021 16:18:49 | Автор: admin

Предыдущие статьи:

В основе лежит старенький уже на сегодня чип ESP8266 c WiFi с подключенными к нему цветным экраном 128х128, кнопками, динамиком, RGB светодиодом и еще парой удобных дополнений.

Меня все время ругают, почему не ESP32. Повторюсь, что слишком уж он крутой этот ESP32, что с одной стороны добавляет возможностей, а с другой напрочь убивает творческую составляющую на тему смекалистого преодоления ограничений железа.

В ESPboy есть слот расширения, на который выведены интерфейсы I2C, SPI, UART, I2S куда втыкаются штатные модули, которые при загрузке соответствующего софта превращают устройство в ретро игровую консоль, GSM телефон, GPS навигатор, FM радио, перехватчик радиопакетов, читалку/писалку rfid/nfc, MP3 плеер, погодную станцию, универсальный ИК пульт, LORA мессенджер и много чего еще.

Есть фирменный онлайн AppStore с приложениями, куда можно подключиться прямо с устройства через WiFi, выбрать из списка нужное приложение и за полминуты загрузить. Это значительно удобнее классического обновления прошивки микроконтроллера через подключение проводами к компьютеру и последующими плясками с бубном вокруг среды разработки и библиотек с многократными попытками все это скомпилировать и залить в железку.

Список опробованных модулей можно увидеть на сайте проекта www.espboy.com, весь софт, как уже говорилось, на GitHub для изучения и экспериментов. Много чего в работе и еще больше в планах. К сожалению не удалось поспеть в прошлом году довести модули до промышленного изготовления, все они в виде прототипов, но энтузиасты с помощью сообщества в проектном форуме и Discord чате собирают при желании любой без сложностей. Думаю, что в этом году часть модулей все же получится выпустить в заводском исполнении.

Так что же конкретно нового получилось сделать за прошедший год несмотря на опостылевший вирус и волны прокрастинации:

В разработке еще с десяток модулей, которые неспешно собираются и тестируются.

Уже есть задумки по ESPboy3.

В планах развитие AppStore - добавить общую онлайн таблицу игровых рекордов, внутренние чаты, многопользовательские игры типа шахмат или пошаговых стратегий, систему отзывов у приложений и доску объявлений. Получится аналог BBS прошлого. Ностальгия )

Заглядываясь на кикстартер успех FLIPPER ZERO, тоже посещают мысли о запуске компании на Kickstarter. Но такой разворот требует значительных усилий в сторону маркетинга, продаж, что далее неизбежно повлечет за собой масштабирование производства, логистики, поддержки, переход на новый уровень R&D и управление процессами в целом. Бросаться в такой омут очертя голову не охота. Хочется делать основательно, а в этом случае уже нужны заинтересованные люди, понимающие в бизнесе и инвестиции.

В целом проект ESPboy и сопутствующий Little Game Engine неспешно развиваются с участием нескольких энтузиастов в режиме хобби с тестированием коммерческих моделей по монетизации (что пока не покрывает и малой части личных затрат), но с сохранением полностью бесплатного варианта использования.

Кому интересно, присоединяйтесь, есть много интересных задач и на этапах разработки концепций и на этапах проектирования и на этапах реализации и даже тестирования.

Да и просто поиграться с устройством в современные технологии довольно увлекательно и познавательно.

Всем добра!

С уважением, РоманС

mailto: espboy.edu@gmail.com

Подробнее..

Ретроконсоль своими руками Часть1. Выбираем железо

27.04.2021 20:11:49 | Автор: admin

Нелегкая ситуация, сложившаяся на рынке видеокарт, отличный повод вспомнить о том, что компьютерные игры это вовсе не 4K, не волшебные лучи RTX и тем более не количество полигонов на кончике носа главного героя. Крепко сбитый, захватывающий игровой процесс вот то, что отличает хорошую видеоигру от плохой, а вовсе не качество графики. В наше время это сакральное знание во многом было утеряно: современные игроделы делают ставку на красивую картинку и аддиктивные механики, забывая о том, что игра прежде всего должна развлекать и приносить радость.

Впрочем, благодаря эмуляторам классических игровых систем, сегодня практически каждый может прикоснуться к удивительному миру ретроигр, создатели которых ставили во главу угла именно геймплей. Ну а самый идеологически верный способ это сделать собрать миниатюрную консоль на базе одноплатного компьютера. Справиться с подобной задачей сможет даже человек, далекий от мира DIY, благо все необходимое можно приобрести на AliExpress, а сам процесс сборки подобного девайса оказывается не намного сложнее сборки конструктора Лего.

В первой части данного материала мы поговорим о том, какие компоненты необходимы для сборки ретроконсоли, а вторую всецело посвятим выбору подходящей операционной системы и настройке программного обеспечения. Статья ориентирована на новичков, которые прежде не имели дела с подобными проектами.

Лучшая платформа для первых экспериментов

Тем, кто ранее никогда не имел дела с одноплатными компьютерами, мы настоятельно рекомендуем начинать с Raspberry Pi. Данная платформа успешно развивается с 2012года и обрела за это время массу поклонников по всему миру. Сегодня для малинки выпускается огромное количество разнообразных модулей, корпусов и периферии, а Интернет буквально переполнен пошаговыми туториалами, посвященными созданию ретроконсолей, а также решению типичных проблем, неизбежно возникающих при реализации подобных проектов. С учетом качества, дешевизны и достаточно высокой для устройств такого класса производительности, все перечисленное делает Raspberry Pi наиболее оптимальным выбором для новичка.

Но какую же модель предпочесть: наиболее актуальную Raspberry Pi 4B или же недорогую Raspberry Pi 3B? Ответ на этот вопрос зависит от того, во что именно вы собираетесь играть. Оба одноплатных компьютера прекрасно справляются с эмуляцией 8-, 16- и 32-битных консолей, демонстрируя устойчивый фреймрейт 60 кадров в секунду даже в самых технически навороченных играх для первой PlayStation. Однако, когда речь заходит о более мощных приставках, у 3B начинаются серьезные проблемы. Следующее сравнение наглядно демонстрирует разницу в производительности между третьим и четвертым поколениями малинки при эмуляции игр для Sega Dreamcast.

Разница видна невооруженным глазом. Если говорить о цифрах, то даже в наиболее тяжелых сценах фреймрейт на 4-й модели Raspberry Pi не опускается ниже 3235 кадров в секунду, чего вполне достаточно для комфортной игры, тогда как максимальный FPS достигает 5860 к/с. Третья модификация малинки, увы, не вытягивает игры для Dreamcast в принципе: FPS регулярно падает до неиграбельных 10 кадров в секунду, а в некоторых сценах можно заметить графические артефакты, причина которых кроется отнюдь не в низкой точности эмуляции, а в том, что SoC банально не успевает обрабатывать все имеющиеся в кадре объекты.

Аналогичным образом дела обстоят и с эмуляцией Nintendo 64, хотя там результаты значительно разнятся в зависимости от конкретной игры. Так, например, в Super Smash Bros. фреймрейт не опускается ниже 59 FPS, тогда как в Golden Eye средняя частота кадров колеблется у отметки 25 кадров в секунду, при этом геймплей сопровождается постоянными фризами.

А вот количество оперативной памяти (напомним, что Raspberry Pi 4B выпускается в трех версиях: с 2, 4 и 8 гигабайтами RAM на борту) закономерно не влияет на скорость эмуляции.

Сравнительные тесты наглядно показывают, что даже при работе с эмуляторами GameCube и PSP главной проблемой одноплатного компьютера оказывается именно низкая производительность CPU и видеоядра, но никак не объем оперативки.

Таким образом, если вы планируете использовать Raspberry Pi исключительно для игр, то можете дополнительно сэкономить, приобретя базовую версию с 2 гигабайтами RAM.

Корпус для ретроконсоли

Если вы являетесь счастливым обладателем 3D-принтера, то сможете самостоятельно создать для малинки подходящий корпус. В противном случае добро пожаловать на AliExpress. Здесь можно без труда найти десятки вариантов корпусов под Raspberry Pi любых модификаций, начиная от простых наборных коробочек из акрила и заканчивая продвинутыми решениями с продуманным охлаждением и контроллерами дополнительных портов. Базовый набор стоимостью около 500 рублей будет выглядеть примерно так.

В комплект, помимо самого корпуса, состоящего из нескольких акриловых пластин, уже входят радиаторы для чипов, миниатюрный кулер, крепежные винты и отвертка для сборки. В принципе, этого вполне хватит для использования Raspberry Pi в качестве игровой приставки. Жаль только, что в таком виде малинка не особо похожа на ретроконсоль и не вызывает того неуловимо-сладостного чувства, которое принято называть ностальгией. Впрочем, этот недостаток легко исправить.

На просторах маркетплейса можно отыскать и кастомные корпуса, стилизованные под игровые консоли прошлых лет. Одной из самых интересных таких моделей по соотношению цена/качество является Retroflag NESPi 4, создатели которой вдохновлялись легендарной Nintendo Entertainment System.

В набор, который обойдется вам в сумму от 3 до 3,5 тысячи рублей в зависимости от продавца, помимо самого корпуса, входят: кулер, две термопрокладки, отвертка, адаптер питания, кабель micro-HDMI для подключения ретроконсоли к монитору или телевизору, инструкция по сборке, а также картридж-переходник для 2,5-дюймового SATA SSD. Встроенный в корпус SATA-контроллер подключается к одному из разъемов USB 3.0 малинки, поэтому один из двух имеющихся на плате высокоскоростных портов будет всегда занят, что, впрочем, не является критичным для подобного проекта.

Поскольку интерфейс третьей версии обладает пропускной способностью 5 Гбит/с (то есть 640 МБ/с), твердотельный накопитель будет работать практически так же быстро, как и при прямом подключении к SATA-разъему материнской платы (для сравнения, максимальная производительность топового WD Blue 3D NAND составляет 560 МБ/с в операциях последовательного чтения и 530 МБ/с при записи файлов). А самое главное, у вас появится возможность подключать дополнительное хранилище под файлы на случай, если вы захотите собрать ультимативную коллекцию игр для PlayStation и Dreamcast или же использовать ретроконсоль в качестве видеоплеера. Подключить же такой картридж к ПК или ноутбуку можно с помощью стандартного переходника SATA-USB.

Retroflag предлагает и собственный адаптер для работы с картриджем. Стоит такое удовольствие около 1500 рублей, при этом его использование не дает каких-либо значимых преимуществ, кроме разве что светодиодного индикатора активности SSD.

Так что приобретать подобное чудо техники имеет смысл лишь в том случае, если вам важен дизайн. Ведь переходник выполнен в том же стиле, что и оригинальные чехлы для картриджей Nintendo Entertainment System, если не считать отсутствия товарного знака Nintendo, на использование которого у RetroFlag попросту нет прав.

Еще одной интересной особенностью данного корпуса является наличие отсека для хранения microSD-карт, который можно отыскать с обратной стороны консоли, он пригодиться в том случае, если вы планируете использовать несколько разных операционных систем поочередно.

Единственным недостатком этого корпуса можно назвать очень короткие провода для подключения к Raspberry Pi контроллеров внешних портов и вентилятора кулера, что несколько усложняет процедуру сборки. Впрочем, с этим недостатком вы столкнетесь лишь единожды во время установки одноплатного компьютера внутрь.

Клавиатура и мышь

Хотя для игр мы будем использовать геймпад, первичная настройка ретроконсоли потребует наличия полноценных устройств ввода. В принципе, к Raspberry Pi можно подключить любую стандартную USB-клавиатуру и мышь, благо одноплатный компьютер оснащен полноразмерными портами USB. Однако для большего удобства вы можете приобрести беспроводную мини-клавиатуру со встроенным тачпадом наподобие Rii i8.

Такое устройство не особо подходит для повседневного использования из-за своих скромных размеров, однако для периодического администрирования является практически идеальным вариантом, помогая в том числе сэкономить дополнительный USB-порт, которых у малинки и без того не очень много. Среди преимуществ данной модели также необходимо отметить наличие мультимедийных кнопок это позволяет использовать клавиатуру в качестве пульта ДУ при просмотре видео.

Геймпад в стиле ретро

Если вы привыкли к Dualshock 4 или Xbox One Controller, то сможете использовать для игр полюбившийся геймпад, благо популярные дистрибутивы операционных систем для ретроконсолей поддерживают перечисленные игровые манипуляторы из коробки. Желающие предаться ностальгии по полной программе также могут приобрести контроллеры, стилизованные под геймпады для консолей прошлых лет: на том же Aliexpress можно отыскать десятки разнообразных моделей на любой вкус и кошелек.

В качестве же своеобразной золотой середины между этими крайностями мы можем порекомендовать 8BitDo SN30 Pro+.

Компания 8BitDo хорошо зарекомендовала себя среди поклонников ретрогейминга, предлагая покупателям сравнительно недорогие, но при этом весьма качественные игровые манипуляторы. Модель SN30 Pro+ позиционируется как универсальный геймпад и совместима с операционными системами Windows, macOS, Android, корректно распознается RetroPie, Recalbox и Lakka и может использоваться даже в качестве замены Pro-контроллера для Nintendo Switch.

По дизайну SN30 Pro+ представляет собой нечто среднее между DualShock для PlayStation и геймпада SNES. Два аналоговых стика и полный набор кнопок позволяют использовать данный контроллер не только с любыми эмуляторами ретроконсолей, но и в современных играх. Среди интересных особенностей устройства необходимо отметить:

  • наличие аналоговых курков;

  • возможность написания собственных макросов с помощью фирменного ПО;

  • съемный аккумулятор, который при необходимости можно заменить на две пальчиковые батарейки;

  • расширенная поддержка (хотя релиз геймпада состоялся в 2019 году, обновления прошивки выпускаются до сих пор: последняя версия микропрограммы датируется 14 января 2021 года).

Заплатить за все это великолепие придется примерно 4 тысячи рублей. Если же вам не особо импонирует дизайн с рожками DualShock, вы можете заказать обычную версию геймпада без приставки плюс.

По размерам и форме такой геймпад приближен к контроллеру для Super Nintendo, технически ничем не отличаясь от своего старшего брата. Данная версия обойдется вам примерно на 500 рублей дешевле.

Выбираем карту памяти для ретроконсоли

С выбором карты памяти все отнюдь не так просто, как может показаться на первый взгляд. Прежде всего определимся с емкостью. Для установки и корректной работы операционной системы нам понадобится 16 ГБ дискового пространства, тогда как весь остальной доступный объем можно будет использовать для размещения самих игр. Таким образом, в минимальной конфигурации будет достаточно microSD-карты объемом 32 ГБ, но лишь в том случае, если круг ваших интересов ограничивается проектами 8/16-битной эпохи. С учетом того, что в течение жизненного цикла той же PlayStation One было выпущено около 8 тысяч проектов, средний объем каждого из которых составлял 400 МБ, полная коллекция игр для классической приставки Sony будет занимать более 3 терабайт, в то время как сборник игр для NES весит от силы 5060 МБ.

Впрочем, поскольку Raspberry Pi поддерживает стандарт SDXC, с дефицитом свободного места у вас точно не возникнет проблем: если обратиться к перечню протестированных моделей, то в нем можно найти даже SanDisk Extreme Pro на 512 ГБ.

Другое дело, что подобные карточки достаточно дороги. Так что если вы не собираетесь использовать свою ретроконсоль в качестве мультимедийного сервера, то их покупка является не особо рентабельной. В случае же приобретения упомянутого Retroflag NESPi 4, позволяющего подключать к малинке полноценные SATA SSD да еще и менять их, словно игровые картриджи, смысл в использовании карты памяти большой емкости и вовсе теряется.

Помимо объема, при выборе microSD-карты для Raspberry Pi следует обращать внимание на ее скоростные характеристики. И речь идет не только о скорости чтения/записи, но и о минимальном устойчивом количестве операций ввода-вывода в секунду (IOPS) показателе, который напрямую влияет на производительность флеш-карты при работе с приложениями. Поскольку мы с вами будем использовать микрокомпьютер в качестве ретроконсоли, нам будет вполне достаточно карты памяти уровня SanDisk Ultra.

Карты памяти данной линейки относятся к классам производительности C10, U1, A1. На практике это означает, что даже в самых неблагоприятных условиях скорость передачи данных между флеш-картой и одноплатным компьютером не будет опускаться ниже 10МБ/с (C10, U1), а минимальное устойчивое количество операций ввода-вывода составляет 1500 IOPS в операциях случайного чтения и 500 IOPS при записи файлов (A1). Поскольку эмуляторы ретроконсолей не особо требовательны к скорости системного накопителя, а сами дистрибутивы игр отличаются малым объемом, для наших нужд этого будет более чем достаточно. С учетом того, что в операциях последовательного чтения/записи производительность SanDisk Ultra достигает 100МБ/с, особых проблем с загрузкой новых игр также не возникнет, поскольку в среднем на передачу каждых 4 ГБ данных будет уходить не более 1 минуты.


Наша ретроконсоль практически готова. Дело за малым: осталось лишь установить подходящую операционную систему и произвести все необходимые настройки. О том, как это сделать, мы поговорим уже во второй части материала.

Подробнее..

Самодельный стратостат

30.04.2021 12:16:20 | Автор: admin

result_lowres


Допустим, вы интересуетесь космосом, но космос для вас недоступен. Выше 10км не подняться, а посмотреть "что там?" очень хочется. По классификации NASA нижняя граница космоса начинается на 100км от поверхности Земли. Эта статья будет не совсем про космос, но про возможность создания своего стратосферного зонда с нуля. Я много видел примеров успешного запуска и несколько статей на Хабре, но почти все они это отчеты. Я же хочу оставить статью, которая сможет претендовать на "complete guide" для юных покорителей. Запаситесь терпением и безлимитным интернетом будет много текста, картинок и даже пару видео. Это был долгий путь для нас, но я намерен сделать его не таким изнурительным для всех желающих. Поехали?


Вступление


В этом проекте участвовало довольно много людей (навскидку ~10). Один бы я, разумеется, все это не потянул. Да и с друзьями интересней. У каждого была своя незаменимая роль в этом деле. А так как я организатор, вдохновитель и спонсор всего проекта, то мне выпала честь говорить от имени каждого участника.


Мое непосредственное участие касалось:


  • сборки электроники
  • программирования
  • финансирования
  • организационных моментов
  • подведения итогов

В запуске, финальной сборке, поиске и спасении я, к сожалению, не смог поучаствовать. Так что в этих разделах буду повествовать от лиц людей, бывавших "на местах".


От идеи до завершения этого проекта прошел почти год. Нет, это не значит, что все так долго, сложно и т.п. Все на самом деле довольно просто, весело и интересно. Это значит: неправильное планирование и незнание особенностей работы некоторых служб. Из-за такого разрыва части этой статьи писались тоже в разное время. Так что в некоторых разделах у меня не сохранились собственные скрины и я поднатягал их из интернета.


Давайте посмотрим на распределение времени по активностям:


project_length


Ожидание Ожидание служб доставки, ожидание ответа госслужб и, наконец, ожидание весны. Так как никто не хотел искать упавший зонд в ночи. А в регионе запуска (Северо-Запад) зимой темнеет очень рано. Ожидание съело 70% времени. Всегда закладывайте побольше времени в этот сегмент. Ну что я вам рассказываю? Все тут не первый день на IT женаты ;-)


Несмотря на довольно большую задержку нам удалось довести проект до успешного (!) завершения. И сейчас я расскажу вам как.


Список оборудования и компонентов


А начнем мы со списка используемого оборудования. В этом списке ссылки даны на сайты, где это можно купить. Не рекламы ради, а референса и облегчения поиска для:


  1. Raspberry Pi 4 Model B
  2. SPOT Trace GPS Tracker
  3. Шар-зонд
  4. Фал (канат)
  5. Парашют
  6. Гелий
  7. GoPro 7 Black (+Micro SD card 128GB)
  8. Powerbank x2 (20000 mah)
  9. RPI Sense Hat
  10. LTE GPS HAT LTE / GPRS / GPS SIM7600E-H for Raspberry Waveshare 14952
  11. TEMPer Gold USB Temperature Sensor
  12. RPI Tall Case
  13. RPI Mounting Kit

Вот из чего состоит наш аппарат. Я не включил в этот список некоторые вещи, такие как материал корпуса полезной нагрузки, дюбели, шланги и т.п, т.к. найти их не проблема и они не требуют особых пояснений. А теперь пробежимся по пунктам, требующим этого.


Raspberry Pi 4 Model B


Резонный вопрос: почему не Arduino? Простой ответ потому что я не умею паять \()/


Вторая причина я предпочитаю использовать dotnet везде, где это возможно. Но это в меньшей степени повлияло на выбор.


Действительно, если дружите с паяльником ардуино может стать хорошим выбором. Тем более я видел пару схожих проектов где он успешно используется. А вот в моем случае неумение паять стало причиной выбора USB термометра с весьма скромным диапазоном измерения (и это отразилось на результатах, о них в конце).


SPOT Trace GPS Tracker


Вся затея будет считаться даже не начатой, если после того как ваш шарик улетит, вы не сможете его найти. Так что к технике поиска стоит подойти максимально ответственно.
GPS трекеров существует уйма, а этот пожалуй один из самых дорогих (во всяком случае из тех что мне встречались).


В чем проблема большинства трекеров, которыми завален любой радиорынок? Давайте подумаем: GPS трекер получает свои координаты с помощь GPS спутников (ну еще компенсирует погрешность по наземным станциям) это замечательно, спутники покрывают всю поверхность Земли. Также очень замечательно, что наш трекер будет знать своё местоположение. Но нас то рядом с трекером не будет! Как он должен передать свои координаты в наш ЦУП? Самое массовое решение GSM сети. Иначе говоря покупаете симку, вставляете в трекер и он шлет вам смс-ки (ммс-ки, или стикеры в телегу, не важно). Я видел примеры успешных запусков с таким подходом. Но если честно, я пару раз выезжал за пределы КАД и готов вас уверить во многих местах сотовой связи нет совсем! Если наш зонд упадет в такой зоне провал операции, начинай сначала.


А вот сабж, в отличие от, для передачи координат использует спутниковый канал связи со 100% покрытием. Не буду наседать с рекламой, т.к. удовольствие это не дешевое, да еще и требует платной подписки, равной стоимости самого трекера, но отмечу раз вы читаете эту статью, значит свою функцию он выполнил. Хотя и дал нам понервничать. Но об этом в разделе про поиск и спасение.


Так что еще раз отнеситесь к выбору поискового трекера максимально ответственно!


Шар-зонд


Максимально просто чем больше, тем выше полетит. Мы оперировали примерами успешных запусков из интернета. Там ребята часто использовали шары диаметром 2.5м. В конторе, где мы заказывали свои, нас тоже уверили, что этот долетит. Немного не долетел, но мы склонны считать, что это не вина шара. Об этом в разделе про результаты.


Фал (канат)


Канат. Это просто тонкий канат. Заказывали у ребят по ссылке, но могли бы и купить в любом магазине за углом.


Парашют


Парашют бесстропный. Не разбираюсь в парашютах, но обратил внимание, что для таких нужд используют именно их. Его и заказали вместе с фалом.


Гелий


Остановлюсь только на факте, что количество гелия (как минимум которое надо купить), придется посчитать для своего объема шара. Вы без проблем вспомните эти школьные формулы или найдете онлайн калькулятор. Но, для истории, приведу их и тут.


Количество стандартных баллонов по 40л которое нам понадобится мы считали так:


$B = V_s\div V_h$


Где $V_s$ объем шара в $м^3$, $V_h$ объем гелия при давлении 1атм в $м^3$


$V_s = 4\div3 * \pi * (D\div2)^3$


$V_h = V_b * P_b$


Где $D$ диаметр шара в метрах.


$V_b$ объем баллона в $м^3$. Мы взяли его равным $40\div1000$. Где 40 это известный объем баллона в литрах.


$P_b$ известное давление в баллоне в атмосферах.


В нашем случае, необходимое количество баллонов по 40л получилось равным 1.36 баллона.


Фух, надеюсь ничего не напутал пока переносил формулы из Excel.


RPI Sense Hat


Для любителей RPI это довольно известная вещь. Вкратце поясню это сенсорный мультитул для RPI. Имеет на борту следующее:


  • Датчик температуры (2 штуки)
  • Датчик давления
  • Датчик влажности
  • Гироскоп
  • Магнетометр
  • Компас
  • Акселерометр
  • LED дисплей

То что надо в одном флаконе.


LTE GPS HAT LTE / GPRS / GPS SIM7600E-H for Raspberry Waveshare 14952


Еще одна спорная штука. Нет, вне сомнения, та часть функциональности, которую мы использовали нам очень нужна и она работает отлично. Но, возможно, это overkill и можно найти вариант подешевле.


А использовали мы ее только для показаний GPS (даже без GSM). Дело в том, что трекер то у нас есть (поисковый, не подключается к RPI), но хотелось бы еще к чему-то привязать телеметрию. И, желательно, привязать ее к координатам и времени. Из-за этого и появился еще 1 трекер, но уже подключенный к RPI. Показания с него (координаты, время, курс, скорость, высота) пишутся в лог и служат точкой синхронизации с показаниями всех сенсоров.


Его достоинство он имеет выносную антенну. А это очень важно, когда на борту 2 приемника GPS и 1 передатчик (поисковый трекер). Производители Spot Trace советуют размещать их трекер на расстоянии не меньше 30см от других GPS устройств, во избежание помех. Так что тут пригодилась выносная антенна, которую мы просто кинули за борт.


Его недостаток документация в лучших китайских традициях. Ее сначала пришлось поискать, а потом еще и нехило так покурить (но, в целом, она весьма исчерпывающая и понятная). Чтобы облегчить поиск будущим начинателям этой борьбы, оставлю ссылки тут (на одном из файлов стоит гриф COMFIDENTIAL (орфография сохранена), лол): раз, два.


TEMPer Gold USB Temperature Sensor


Внешний градусник (для замера температуры внутри использовали Sense Hat).


Его достоинства: он подключается в порт USB, есть рабочий тулсет для проверки (под Win)


Его недостатки: нижний предел измерения $-40^oC$. Сразу скажу этого оказалось маловато; второй недостаток документация. Ее нет. Пришлось реанимировать проекты 5-летней давности под похожие модели и написанные на разных языках. В итоге поскрещивал ежа с ужом и немного поколдовал (тяжела и неказиста жизнь простого программиста). Но, в итоге, все работает надежно, как швейцарские часы. В разделе с кодом я поясню где был тонкий момент.


RPI Tall Case


Это крутая штука, которая доставляет мне эстетическое удовольствие.


Красивый, алюминиевый, высокий кейс для RPI 4. Разумеется, перед заказом и прикинул высоту RPI с обеими шапками (Sense + GPS) чуть-чуть не влезает при плотно закрытой крышке. Но, используя spacers (извините, не знаю русского названия), можно приподнять верхнюю крышку немного, для вентиляции.


Из проблем с ним было только одно один из разъемов GPS HAT сильно выпирал за границы платы и не влезал в кейс. Разъем пришлось нежно демонтировать кусачками.


Ну только посмотрите, как элитно стал выглядеть наш самописец:

tall_case_1
tall_case_2
tall_case_3


RPI Mounting Kit


Просто наборчик тех самых spacers и прочих мелочей. Приятное дополнение.


Конструкция


Общая конструкция


Для начала рассмотрим общую конструкцию аппарата (масштаб не соблюден!):


general_scheme


Как вы понимаете, стратосферный зонд это, по факту, шарик (в нашем случае диаметром 2.5м) с полезной нагрузкой на веревке и парашютом. Парашют крепится к нагрузке с помощью вентиляционных отверстий фалом 580мм (подробней в схеме полезной нагрузки). Ну а шар к куполу парашюта, тоже фалом (700мм).


Принцип работы прост: с набором высоты атмосферное давление падает и гелий внутри шара начинает этот шар раздувать. В конце концов, шар не выдержит растяжения и лопнет. Нагрузка начинает падать и от набегающего потока воздуха раскрывается парашют. На парашюте нагрузка плавненько опускается на землю.


Полезная нагрузка


Конструкция короба для полезной нагрузки вызывала у меня немного больше переживаний. Требовалось соблюсти несколько очень важных условий:


  1. Предельная масса не более 2.5кг (для нашего объема шара)
  2. Защита от воды + плавучесть (облака, дождь, падение в озеро и т.п.)
  3. Хорошая терморегуляция (RPI не должна перегреться, а аккумуляторы не должны замерзнуть)

Посовещавшись с нашим конструкторским бюро, было решено делать куб со стороной 250мм из экструдированного пенополистирола (куплен в строительном магазине листами). Верхняя крышка двустворчатая из того же материала. В боковой стенке вырезано отверстие под объектив GoPro. Он легкий, имеет положительную плавучесть, достаточно прочный и не пропускает воду (швы, разумеется, проклеили):


payload_1
payload_2


Теперь рассмотрим компоновку компонентов. Как я сказал, тут главная проблема терморегуляция. Честно говоря я не инженер (хотя в дипломе такое слово написано). Так что за правильность решения не ручаюсь, но общими усилиями мы родили такую идею:


payload_scheme


Обратите внимание, что это схема без развесовки. Сбалансируйте компоненты так, чтобы короб не перекашивало в подвешенном состоянии. Мы это делали методом проб и ошибок.

RPI располагается внизу. Забортный воздух поступает через вент. отверстия (дюбели, 8 штук) в короб и опускается к RPI. RPI выделяет тепло в процессе своей работы и нагретый воздух поднимается вверх. Тем самым подогревая аккумуляторы, расположенные над RPI. GPS трекер имеет собственное питание и довольно неприхотлив к внешним условиям (водонепроницаем, ударопрочен, низкое энергопотребление), так что за него голова не болела. До кучи, мы еще загерметизировали соединения с камерой и внешним градусником (обычным клеем залили), т.к. ожидали образование конденсата.


payload_5


Вент. отверстия также используются для крепления фала от парашюта:


payload_3
payload_4


Конфигурация Raspberry PI 4B


Сам по себе не представляет никаких проблем, все очень просто и понятно. Это мини-компьютер с портами ввода-вывода к которым мы, в дальнейшем, планируем подключать все наши датчики\сенсоры\велотренажеры.


Скачать Raspberry PI Imager, выбрать нужную OS, свою SD карту и нажать WRITE:


Raspberry PI Imager


OS было решено взять максимально облегченную. Десктоп и рюшечки нам не нужны, только консоль, только хардкор. Выбор пал на Raspberry PI OS Lite 32-bit:


Raspberry PI Imager


SD карта для Raspberry PI


Хоть в официальной документации толком и не указан максимально допустимый объем карты памяти с которой RPI сможет загрузиться (но указан минимальный 16GB и, как-то намеками указана возможность загрузки с 256GB с определенного дистрибутива), быстрый гугл показал, что лучше взять 32GB. На этом и остановились. Класс карты не сильно критичен, но разница в цене между Class 4 и Class 10 мне показалась не критичной, так что почему бы не взять ту, что побыстрее? Тем более что это, в дальнейшем, открывает возможность скидывать поток видео с GoPro на карту. Но до этой реализации мы не дошли и, честно говоря, я пока не придумал зачем это надо. Карту взяли SanDisk Extreme 32GB типа такой


Подключаем RPI к компу


После того как OS записана на карту и карта вставлена в слот на RPI, можно включить RPI просто подав на него питание. Питается это чудо через порт USB-C, так что озаботьтесь проводом заранее (я использовал 1 из павербанков).


Тут у нас первая проблема: ну включили, лампочки замигали, вроде все ОК.


И что?

Да, операционку то мы поставили без десктопной оболочки, да и мониторы с клавиатурами мы подключать не планировали, и Wi-Fi там еще не настроен.
Так что я немного присел на стул на полчаса.


(


Честно говоря, бежать в магазин за проводом\переходником mini HDMI у меня не было никакого желания. Снова запускаем гугол и видим, что ситуация не безвыходная: можно подключить RPI к компу через USB и через него же наладить SSH. И, хотя тот же гугол говорит обратное, RPI при этом будет и питаться от компа и эмулировать сетевое соединение через один и тот же USB кабель. Нуштош, вытыкаем наш кабель из павербанка и подключаем его в USB компа. Снова замигали лампочки, RPI загрузился и, судя по статусу лампочек у него все отлично.


Но по SSH все еще не подключиться. Курим вот эту страницу. Нас интересует headless mode:


Enable SSH headless mode


Ага, надо поместить пустой файл с именем ssh в корень SD карты. Извлекаем карту из RPI и вставляем ее в комп (предварительно обесточив устройство). Делаем. Пробуем снова. Hostname, User, Password указаны там же, в подразделах для каждой OS. Но, честно говоря, информация там немного устаревшая. Например для Win10 указано, что надо использовать IP вместо имени хоста. Это не так. Забегая вперед, скажу, что и hostname: raspberrypi.local тоже заработал без приключений.


Интернеты пишут, что для этого необходимо поставить доп. приблуды от Apple, чуть ли не iTunes. Либо опенсорс аналог драйвера для таких доменных имен. Но, как я уже сказал, у меня все заработало и без вот этих вот дел. На всякий случай, вот подробная статья

Итого. Что мы имеем по подключению по SSH:


Hostname: raspberrypi.local


User: pi


Password: raspberry


Пробуем не работает. К сожалению у меня не сохранились все скрины этих приключений, ну да ладно, придется поверить мне на слово не работает.


(


Переходим на нижние интернеты Оказывается, мы забыли включить режим Lan Over Usb про который я что-то не нашел упоминания в документации (в итоге на офф форумах это им припоминали). Искомая статья (может не именно она, но шаги в ней описаны верные) тут


Итак, если вкратце, нам нужно будет поменять 2 файла на SD карте: config.txt && cmdline.txt (могут быть без расширений, я уже не помню). Вынимаем карту из RPI, подключаем к компу, находим первый файл и добавляем в конце строчку dtoverlay=dwc2:


dtoverlay


Теперь ищем второй файл (cmdline.txt).


По поводу второго файла небольшое отступление мне его менять не пришлось и так все было как надо. Но мало ли \_()/

Добавляем в него строчку, указывающую на необходимость загрузки нужного модуля ядра (все параметры идут через пробел в одну строчку, это важно!). Скрин из статьи:


cmdline.txt


Всё, файлы сохранили, карту вставили обратно в RPI, подключаем USB кабель в комп и в порт питания RPI, RPI загружается. Пробуем SSH:


ssh pi@rasberrypi.local

(да, кстати, озаботьтесь наличием SSH клиента на рабочем компе, если вдруг у вас его еще нет)


На этот раз все должно пройти как по маслу (извините, этого скрина тоже не сохранилось). Мы попадем в bash консоль на нашей Raspberry PI 4B по USB и теперь можем наворотить там дел ;-) А первое дело будет обеспечить себе максимально удобные условия работы, иначе говоря Wi-Fi!


Включаем Wi-Fi на RPI


Тут совсем все просто и без неожиданностей. В RPI OS входит утилита конфигурации через которую можно сделать все (или почти все) что может понадобиться в дальнейшем. Называется она raspi-config и ее использование, в частности в контексте настройки вафли неплохо описано в официальной документации тут.


Подключаемся по кабелю в SSH сессию нашего черного ящика, запускаем из консоли:


sudo raspi-config

Всего несколько клацаний кнопками и можно отсоединять наш USB кабель от компа и подключать его к павербанку (картинки из интернета):


raspi-config wi-fi setup


raspi-config wi-fi setup


Ну что, теперь это гораздо больше похоже на независимый бортовой самописец для стратостата, хоть он пока ничего и не самопишет.


Для удобства также советую добавить SSH ключи. Надеюсь не надо объяснять как это делать, но если вдруг, то вот отличный тутор от DigitalOcean

Сборка .NET Core проекта под RPI


Небольшое отступление: вся возня с RPI, периферией и написание софта делалось почти год назад. Много информации с тех пор утекло из моей головы и сейчас я эту часть пытаюсь восстанавливать по памяти. К сожалению, восстановить 100% этого приключения у меня не получится, но общие моменты я обозначу.

Настало время что-нибудь напрограммировать для нашего самописца. Сейчас, прочитав этот подзаголовок, многие могут подумать:


wtf


А почему не питон??

Ну по нескольким причинам. Во-первых: хваленое комьюнити которое "уже все давно написало, просто подключай и поехали", оказывается не всё написало, а то, что написало, мягко скажем не едет (об этом в разделе про внешний градусник). А во-вторых: что-бы я не начинал писать все равно получается C#.


Так что стереотипы прочь будем ваять простенький скрипт на шарпе (зря нам что ли кроссплатформу завозили)! Я буду показывать всё на примере своего проекта для логирования всех показателей. Кто захочет может использовать свой "hello world", кто не захочет вот исходники на гитхабе


Бытует мнение, что для того, чтобы завести что-то на dotnet, надо для начала этот самый dotnet установить. На самом деле это не так. Dotnet умеет паковать свой CLR в приложение для целевой платформы. Для этого у dotnet cli есть флаг --self-contained. Так же нам потребуется указать какой конкретно рантайм мы будем использовать при помощи параметра -r linux-arm. Ну и фреймворк укажем, чего уж там. Итого полная команда для сборки самодостаточного dotnet приложения (не требующего установки dotnet runtime на целевую машину) будет выглядеть так:


dotnet publish RpiProbeLogger\RpiProbeLogger.csproj --self-contained -r linux-arm -f netcoreapp3.1 -c Release

На выходе у нас получится исполняемый файл под linux arm со всеми зависимостями. Нам останется только скопировать все содержимое директории на Raspberry по SSH, сделать файл исполняемым (не обязательно) и, собственно, запустить (подробнее в разделе про CI/CD):


chmod +x /home/pi/RpiProbeLogger/RpiProbeLogger./home/pi/RpiProbeLogger/RpiProbeLogger

Если кто-то крутит носом от self-contained приложений ничего страшного, вариант с установкой рантайма и фреймворка (ну мало ли кто-то захочет еще и билдить на распберри) на RPI тоже допустим и прекрасно работает проверено! Вот статья которую я лично использовал (в ходе экспериментов).


CI/CD для Raspberry


Немного громкое название, но смысл тот-же приложения мы писать умеем, надо теперь их собирать под целевую платформу и как-то их туда доставлять. Тут нам поможет его величество PowerShell (linux-like товарищи легко заменять его на bash, sh, etc по вкусу. Это не принципиально).


Весь скрипт находится в корне репозитория и называется buildAndDeploy.ps1. Общий алгоритм такой:


  1. Подключиться к RPI по SSH для выполнения команд
  2. Установить SFTP сессию для работы с файлами
  3. Собрать наше приложение
  4. Скопировать билд на RPI
  5. Установить и включить сервис нашего приложения (чтобы запускался автоматически при загрузке RPI)

SSH


Поехали по очереди: с SSH/SFTP нам сильно поможет модуль для Powershell Posh-SSH. На мой взгляд с этим модулем все хорошо, кроме одного почему-то документацию по нему приходится искать по всему интернету и собирать по крупинкам. Может автор посчитал, что его API и ежу понятно, но вот мне было не очень понятно. Примеры использования с описаниями нашлись тут. Нас же сейчас интересует установка SSH сессии и делается она вот так:


$sshSession = New-SSHSession -Computer raspberrypi.local -Credential $credentials -KeyFile $rsaKeyFile

Сама сессия сохраняется в переменную $sshSession. Обратите внимание на 2 переменные: $credentials и $rsaKeyFile: мы же не хотим использовать привет из 90-х пароли? Мы будем использовать RSA ключи! И как это делать в случае Posh-SSH мне пришлось поискать. Сначала объясню немного про креденшиалс в Powershell есть такой командлет Get-Credential он занимается тем, что нативными средствами запрашивает пару логин-пароль у пользователя и возвращает их в качестве объекта:


$credentials = (Get-Credential pi)

В Win10 это выглядит так:


Get-Credential


Как вы уже догадались, первым параметром можно сделать пре-ввод логина pi. Нам это подходит. Теперь тонкий момент про Posh-SSH: он имеет параметр -KeyFile куда передается путь до приватного SSH ключа. НО! Приватный ключ может иметь passphrase а такого параметра Posh-SSH не имеет. Оказывается, и это пришлось поискать, Posh-SSH будет в качестве passphrase использовать пароль из объекта $credentials и это не слишком очевидное поведение, но именно из-за этого и затевалось использование Get-Credential. Что ж, этого вполне достаточно, чтобы подключиться по SSH к RPI. Полный скрипт находится в репозитории, а мы двигаемся дальше.


SFTP


Никаких откровений тут не скрыто, тот же Posh-SSH, те же Credentials, немного другое имя команды:


$sftpSession = New-SFTPSession -Computer raspberrypi.local -Credential $credentials -KeyFile $rsaKeyFile

Сразу укажу команду для копирования файлов (да, всего в одну строчку деплоим, без хитростей):


Set-SFTPFolder -SFTPSession $sftpSession -RemotePath '/home/pi/RpiProbeLogger' -LocalFolder "RpiProbeLogger\bin\$($c)\netcoreapp3.1\linux-arm\publish" -Overwrite

Да, называется она Set-SFTPFolder, не спрашивайте почему я не знаю. Можно догадаться, что копирует она содержимое исходной директории в целевую директорию, а параметр -Overwrite указывает что содержимое целевой директории будет перезаписано в случае совпадения имен файлов. Параметры -RemotePath и -LocalFolder ясны без пояснений. Единственное, что может привлечь внимание $($c) это передача параметра командной строки, который содержит тип сборки: Release или Debug. Он также используется в следующем пункте сборке приложения.


Сборка


Итак, как уже было описано в разделе про сборку .net под arm наша команда сборки будет выглядеть следующим образом:


dotnet publish RpiProbeLogger\RpiProbeLogger.csproj --self-contained -r linux-arm -f netcoreapp3.1 -c $c

Единственная разница тут это параметр $c который мы будем подставлять из параметров командной строки (Release, Debug, etc) на самом деле можно и не параметризовывать это, а захардкодить "Release" на любителя.


Включение\запуск сервисов


Все тот же Posh-SSH имеет еще одну полезную команду: Invoke-SSHCommand. С помощью нее мы выполним установку systemctl сервиса. Unix-like ребятам тут делать нечего, для остальных немного пролью свет что это.


systemctl это системная служба для управления службами (да-да). Она запускается автоматически и запускает, останавливает, управляет пользовательскими службами, основываясь на специальных файлах .service. Такой файл присутствует и у меня в репозитории в подпапке с проектом probelogger.service и вот его содержимое:


[Unit]Description=Probe Logger Service[Service]User=rootWorkingDirectory=/home/piExecStart=/home/pi/RpiProbeLogger/RpiProbeLoggerExecReload=/bin/kill -HUP $MAINPIDKillMode=processRestart=on-failureType=execStandardOutput=syslogStandardError=syslogSyslogIdentifier=RpiProbeLogger[Install]WantedBy=multi-user.target

Я не буду врать, говоря что мне тут понятно абсолютно все, но, в основном, это читается как-то так:


  1. запускать службу от пользователя root (да, секурность не секурность, я понимаю. но рут привелегии потребовались для чтения данных с порта USB. Об этом позже)
  2. рабочая директория такая-то
  3. запускать тот-то файл
  4. для перезапуска сервиса в случае катастрофы использовать команду kill
  5. перезапускать в случае падения
  6. логи сохранять в syslog

Далее пара команд Posh-SSH. Включение сервиса (означает что он будет запускаться автоматически при запуске RPI):


Invoke-SSHCommand -Command 'sudo systemctl enable /home/pi/RpiProbeLogger/probelogger.service' -SSHSession $sshSession

Немедленный запуск сервиса (не обязательно же перезапускать RPI для нашего логгера, мы же не драйвера пишем):


Invoke-SSHCommand -Command 'sudo systemctl start probelogger.service' -SSHSession $sshSession

Переменная $sshSession нам знакома из раздела про SSH сессию это именно та самая сессия. Файл probelogger.service в репозитории.


Что ж, на этом пожалуй все, что касается билда и доставки нашего самописца на RPI. Напоминаю, весь powershell-скрипт в корне репозитория (buildAndDeploy.ps1). Не совсем автоматизировано запускать нужно ручками, но вполне себе "continuous" билди хоть после каждого коммита. Можно было бы конечно поднять pipeline на основе этого на каком-нибудь Azure DevOps или кто что любит (благо выбор сейчас из десятка платформ присутствует), но я посчитал это оверкилом для таких задач. Побилдим руками, не сломаемся.


Команда билда и деплоя выглядит вот так:


.\buildAndDeploy.ps1 -enableService -runService

По умолчанию билдится Debug версия (нам же для разработки и отладки надо). Можно добавить параметр -c=Release если необходимо собрать финальную версию.


Отладка в Visual Studio


Это та часть, где время стерло бОльшую часть информации. Но поверьте тут все просто и прозрачно, а на MSDN есть даже статья по отладке кода на RPI для VSCode и Visual Studio VS Remote Debug.


Я опишу буквально в 2-х словах для своего случая (Visual Studio):


  1. Открываем окно удаленного дебага: Debug -> Attach to Process
  2. Выбираем Connection Type: SSH
  3. Вбиваем в поле Connection Target наш pi@rasberrypi.local
  4. Ищем в списке наш процесс dotnet (иногда может потребоваться включить Show processes from all users, зависит от вашей конфигурации)
  5. Жмем Attach и мы в деле!

Breakpoints, Watches, Locals, Immediate Window, Threads все работает.


Программирование


Сразу ссылка на репозиторий с исходниками GitHub


Я очень долго откладывал этот раздел для написания, т.к. софт был написан год назад и я почти забыл все те ужасы, которые мне пришлось побороть, сражаясь с китайскими комплектующими. Но попробуем хоть что-то наковырять. Сейчас я лишь заменил project reference на nuget package, т.к. зачем-то я скачивал исходники проекта нугет пакета (надеюсь просто так, сейчас солюшен билдится).


Как и в системе "театр-вешалка", dotnet приложение начинается с конфигурации. Конфигурации DI, логгеров и вот этого всего. В нашем случае в функции Main:


static async Task Main(string[] args)        {            var host = new HostBuilder()                .ConfigureServices((hostContext, services) => {                    services.AddHostedService<RpiProbeHostedService>();                    services.AddSingleton<SerialPort>((_) => {                         var serialPort = new SerialPort("/dev/ttyS0", 115200);                        serialPort.ReadTimeout = 500;                        serialPort.WriteTimeout = 500;                        serialPort.NewLine = "\r";                        serialPort.Open();                        return serialPort;                    });                    services.AddTransient<GpsModuleStatusCommand>();                    services.AddTransient<GpsModuleCoordinatesCommand>();                    services.AddSingleton<RTIMUSettings>((_) => RTIMUSettings.CreateDefault());                    services.AddSingleton<RTIMU>((provider) => {                        var muSettings = provider.GetService<RTIMUSettings>();                        return muSettings.CreateIMU();                    });                    services.AddSingleton<RTPressure>((provider) => {                        var muSettings = provider.GetService<RTIMUSettings>();                        return muSettings.CreatePressure();                    });                    services.AddSingleton<RTHumidity>((provider) => {                        var muSettings = provider.GetService<RTIMUSettings>();                        return muSettings.CreateHumidity();                    });                    services.AddTransient<SenseService>();                    services.AddTransient<ReportService>();                    services.AddSingleton<StatusReportService>();                    services.AddSingleton<TemperService>();                })                .ConfigureLogging(logConfig =>                {                    logConfig.SetMinimumLevel(LogLevel.Information);                    logConfig.AddConsole();                })                .Build();            await host.RunAsync();        }

Как видите, мы пошли путем использования IHostedService как основной крутилки нашего логгера, настроили SerialPort для доступа к GPS HAT (зачем-то я его инжектю в hosted service, вместо того чтобы использовать там GpsMuduleCommand, очевидно проглядел тогда), добавили наши сервисы для доступа к SenseHat в контейнер DI и настроили логирование в консоль. Тут все host.RunAsync()!


Не буду приводить тут содержимое каждого файла, кому надо посмотрят на гитхабе. Тут обрисую основную идею. Вся она описана в нашем хостед сервисе RpiProbeHostedService. Содержммое метода StartAsync:


public Task StartAsync(CancellationToken cancellationToken){    var gpsStatus = _gpsModuleStatusCommand.GetStatus();    if (gpsStatus?.Enabled == false)        _gpsModuleStatusCommand.SetStatus(                new GpsModuleStatusResponse                {                    Enabled = true,                    Mode = GpsModuleModes.Standalone                });    while (true)    {        if (cancellationToken.IsCancellationRequested)            return Task.CompletedTask;        var gpsData = _gpsModuleCoordinatesCommand.GetGpsData();        if (gpsData != null || _reportService.ReportFileCreated)        {            var senseData = _senseService.GetSensorsData();            var outsideTemperatureResponse = _temperService.ReadTemperature();            try            {                _reportService.WriteReport(senseData, gpsData, outsideTemperatureResponse?.OutsideTemperature);            }            catch (Exception ex)            {                _logger.LogError(ex, "Error writing report");            }        }        Thread.Sleep(1000);    }}

Итак, для начала нам нужно узнать в каком состоянии наш GPS HAT. Т.к. тот факт, что он включен еще не означает, что включен непосредственно GPS модуль. Если GPS выключен включаем его и идем дальше.


А дальше у нас бесконечный цикл с задержкой в 1с. В первую очередь нам нужны показания GPS так как это есть точка синхронизации всех данных. Так же, дата из этих показаний используется как имя файла-репорта. Так что нам эти данные прям очень нужны.


Затем собираем данные с SenseHat и внешнего градусника и записываем это все в файл-репорт. Вот и вся нехитрая логика.


С SenseHat проблем не было вообще никаких. А сейчас, при написании статьи, оказалось что с тех пор MS даже добавила его поддержку в свою iot library. Тут подробнее MSDN.


Проблемы, как вы догадались, были с внешним градусником. Я перепробовал с десяток разных проектов на разных языках (Python в их числе). Но ни один не заработал именно с этим градусником. Пару раз было очень близко, но видимо моя модель чуть-чуть отличалась и показания отрицательных температур были неверны. Это сейчас, с остывшей головой, я понимаю если проблема в месте, где присутствует минус надо смотреть на тип данных. И таки да, замена byte на sbyte сделала свое дело. Но тогда, год назад, я был на грани отчаяния. Метод ReadTemperature:


public OutsideTemperatureResponse ReadTemperature(){    if (!_controlDeviceOpen || !_bulkDeviceOpen)        OpenDevices();    var response = new OutsideTemperatureResponse();    try    {        _bulkStream.Write(_tempCommand);        var rawResult = _bulkStream.Read();        response.OutsideTemperature = ((rawResult[4] & 0xFF) + ((sbyte)rawResult[3] << 8)) * 0.01;        _statusReportService.DisplayStatus(response);        return response;    }    catch (Exception ex)    {        _logger.LogError("Error reading outside temperature", ex);        _statusReportService.DisplayStatus(response);    }    return null;}

Метод хоть и небольшой, но содержит парочку magic numbers. Знаете где вы найдете их объяснение? Нигде. Это все наковыряно и проверено (методом проб и ошибок) из разных проектов. Так что если у вас такой градусник поздравляю, ваши страдания окончены.


Не стоит забывать, что наш самописец не подключен к монитору и нам надо бы как-то понимать все ли на нем работает штатно. Для этих целей я использовал LED матрицу на SenseHat. Она небольшая, всего 8x8, так что выводить туда картинки не получится. Но получится мигать/светить лампочками. Более чем достаточно в столь аскетичном устройстве. Код метода DisplayStatus:


public bool DisplayStatus<T>(T status) where T : IResponse{    try    {        var currentStatus = _currentStatuses.FirstOrDefault(c => c.Cell.Row == status.StatusPosition.Row                                                            && c.Cell.Column == status.StatusPosition.Column);        _currentStatuses.Remove(currentStatus);        _currentStatuses.Add(new CellColor(status.StatusPosition, statusToColorMapping[status.Status]));        Show();        return true;    }    catch (Exception ex)    {        _logger.LogError(ex, "Error displaying status on LED");        return false;    }}

Видим, что я инкапсулировал координаты лампочки, которой надо посветить, в класс ответа от конкретной функции (GPS ответ, Sense ответ, ответ от внешнего градусника и т.п.). Все эти response реализуют интерфейс IResponse:


public interface IResponse{    public bool Status { get; }    public Cell StatusPosition { get; }}

Соответственно, обязаны предоставлять статус в формате "Успех\провал" и координаты ячейки LED куда его поместить, и делают это на свое усмотрение. Не буду говорить что это идеальный дизайн, но, как минимум год назад, мне он показался подходящим. Вот, например, как реализует свой статус ответ от SenseHat:


[Ignore]public bool Status => FusionPose.HasValue &&                        FusionQPose.HasValue &&                        Gyro.HasValue &&                        Accel.HasValue &&                        Compass.HasValue &&                        Pressure.HasValue &&                        PressureTemperature.HasValue &&                        Humidity.HasValue &&                        HumidityTemperature.HasValue;[Ignore]public Cell StatusPosition => new Cell(0,2);

Итого у нас есть 5 подсистем:


  1. GPS модуль: вкл\выкл
  2. GPS модуль: координаты получены и прочитаны
  3. SenseHat
  4. Внешний градусник: показания есть\нет
  5. Лог-файл: координаты имеются\нет

Таким образом, маркером для нас, что мы готовы к запуску, будет служить 5 зеленых индикаторов на матрице.


GPS HAT тоже не вызвал особых проблем, насколько я помню. За исключением новости (для меня), что для работы с SerialPort нужны привелегии root и его ответ пришлось немного попарсить:


private string[] ParseCoordinatesResponse(string rawResponse) =>    rawResponse        .Split(Environment.NewLine)        .FirstOrDefault(s => s.StartsWith("+CGNSSINFO:"))?        .Replace("\r", "")        .Replace("+CGNSSINFO:", "")        .Trim()        .Split(',');private GpsModuleResponse FormatResponse(string[] parsedResponse) =>    new GpsModuleResponse {        Latitude = $"{parsedResponse[5]}{double.Parse(parsedResponse[4]) / 100}",        Longitude = $"{parsedResponse[7]}{double.Parse(parsedResponse[6]) / 100}",        DateTimeUtc = DateTime.ParseExact($"{parsedResponse[8]} {parsedResponse[9]}", "ddMMyy HHmmss.f", null),        Altitude = double.Parse(parsedResponse[10]),        Speed = double.Parse(parsedResponse[11]),        Course = double.Parse(parsedResponse[12])};

Положение всех компонентов ответа указано в документации.


Еще 1 момент EventBased подход я решил не использовать, но он вроде работает и методы для него (DataReceived) остались в коде. Честно говоря, не помню почему я так решил, но думаю причины были.

Перейдем к финансам.


Бухгалтерия


Быстренько пробежимся по моей нелюбимой части сколько все это чудо стоит. В этот манускрипт не попали: стоимость камеры (она у меня уже на тот момент и так была), стоимость спасения и всякая мелочевка, типа клея и винтиков. Эти позиции сильно субъективны.


costs


Внизу 2 суммы: одна за все позиции, вторая (Minimum) это только если запускать одну камеру без RPI и всего с ней связанного. Как видите, поисковый трекер вместе с подпиской занимают ~30% цены всего аппарата. Так что если найдете вариант подешевле это хороший повод сэкономить.


Также, в процессе моих экспериментов, я накупил много лишнего это красная секция в табличке. Это то, что совсем не пригодилось. Желтая секция это то, без чего можно было бы обойтись. Эдакая ни вам, ни нам середина. Запуск только лишь зеленой секции означает запуск только камеры и RPI с Sense Hat. Мы запускали зеленую + желтую.


Конечно тут есть простор для оптимизации. Например, я считаю, что вместо GPS HAT можно было бы найти что-то подешевле, за парашют мы тоже явно переплатили, карту памяти для RPI можно смело брать 16Гб (а то и меньше), ну и так далее. Но это все было в первый раз, хотелось подстраховаться отсюда и цена соответствующая.


Подготовка к запуску


Прежде всего надо понять где запускать? Если вы житель мегаполиса, у меня для вас плохие новости нигде. Ладно шучу, не все так плохо =)


Главное надо никому не мешать. Рядом не должно быть ни воздушных трасс, ни аэродромов, ни запретных или бесполетных зон. Выбирать место надо с учетом предполагаемой траектории движения (которая зависит от ветра и вертикальной скорости аппарата).


Для этого можно воспользоваться сервисом FPLN: включаем в настройках показ всего что нам нужно и ищем глазами свободное место. Вот чисто для примера такое (в зависимости от предполагаемой траектории):


launch_options


Откуда нам взять предполагаемую траекторию? Тоже есть сервис. CUSF Landing Predictor 2.5. Вбиваем наши варианты и параметры и смотрим что будет:


route_predicted


Совмещаем картинку с FPLN и смотрим подходит/не подходит? Если нет ищем новое место, если да поздравляю.


Для прогнозирования ветра можно использовать Windy. CUSF Landing Predictor так же учитывает направление и силу ветра на выбранное время и координаты. Как вспомогательное средство, можно использовать FlightRadar чтобы помониторить в реальном времени самолеты в предполагаемом районе запуска.

Ну что. Если вы дошли до этого этапа, значит бОльшая часть пути позади. Впереди запуск!


Запуск


Со слов участников: Выбрали точку, заправили тарантас, взяли пару баллонов гелия и двинули на место. Описывать тут особо нечего. Имейте только ввиду шар такого размера с гелием имеет неплохую подъемную силу! Так что придерживайте его пока будете надувать (а лучше привяжите временно).


В этой операции использовались:


  1. Клапан Голубева
  2. Переходник под него
  3. Шланг
  4. Переходник со шланга на баллон 3/4 дюйма

Просто вставлю пару фото, чтобы дать понять масштабы:

launch_2
launch_1


Убедитесь что GPS трекер включен! Без него вся эта затея будет провалена сразу после запуска. Далее подключаем питание к RPI и GoPro. Ждем успешный статус на RPI, включаем запись видео на камере, запаковываем короб, крепим к парашютному фалу, парашют к шару и Поехали!


Поиск и спасение


Ооооо, это был самый волнительный и насыщенный этап! Как только аппарат оторвался от земли (а точнее от рук) я, как оператор ЦУП, затаился в ожидании первых координат от поискового трекера.


operator


И первый трек не заставил себя долго ждать. Приведу сразу весь маршрут, полученный с поискового трекера и давайте немного его обсудим:


route_spot


Расстояние между конечными точками ~100км. Хотя расчетное было около 200км. Наш зонд немного не долетел. Но с этим разберемся в результатах.


Наивысшая точка (F) по этим показаниям 9800м. Дело в том, что у нашего поискового трекера предел измерения высоты 10км. Так что это еще не значит, что зонд выше не поднимался, нет. Просто после этой точки он пропал! Я, разумеется, ожидал этого и ждал, и ждал, и ждал. Ну сколько он может там летать над 10км? Ну час, ну максимум два. Учитывая, что расчетное время всего полета было 2ч 25мин. Но обратите внимание на дату и время в этой точке (верхняя часть):


f_point


А теперь взглянем на следующую точку G:


g_point


Где тебя носило больше суток ( )(._.`)?! Я все морги-больницы обзвонил все это время не спал и мониторил показания (да что уж там все мониторили). Но, видимо, условия для передачи сигнала были не благоприятные. Хорошо что запас автономности у этого трекера очень хороший он до сих пор передает координаты на тех же аккумах. Ок, в итоге нашелся, посмотрим где упал?


Упал он на краю лютого болота в 4-х километрах от ближайшей дороги. На фотках это не так видно, но поверьте ребята там были (дважды) болото непроходимое.


swamp_distance


Ближайшая дорога:


swamp_road


Край болота:


swamp_edge


Побродили несколько часов вокруг и, благоразумно не став геройствовать, позвонили мне со словами: ололо, нам нужен вертолет! Явно нужен был план. Соваться туда ногами (болотоходами, снегоступами и прочими средствами бывалых разведчиков) никто не захотел. Вариант забыть и простить даже не рассматривался.


Вертолет, как водится, не на каждом углу припаркован. Более реалистичный вариант вездеход! Начали шерстить интернеты, друзей и соцсети. Не скажу, что прям на каждом шагу раздают вездеходы в аренду в поисках мы провели несколько дней. Наконец вышли на одних ребят, Питерские производители вездеходов, которым нужен был, внезапно, демо-ролик их детища :3 И они согласились предоставить их вездеход с командой, если мы оплатим им сутки работы видеографа (так они его назвали). Что ж, из альтернатив был только другой вездеход, но почти вдвое дороже. Так что мы начали соглашаться. Ребята подготовили свой вездеход (все это время поисковый трекер передавал статусные сигналы раз в сутки, так что мы были вполне спокойны: его не украли медведи и он не утонул) и мы получили вот это:


awd


Согласитесь, выглядит, как то, что надо!


Не буду вставлять фотки с катанием на нем по болотам, лучше в конце прикреплю видео ;-) Итог этих покатушек, как вы понимаете, весьма успешен. Вот наш короб, открытый сразу после того, как мы его подобрали:


awd_result


Да, бутылка, с понятной жидкостью, все это время летала вместе с оборудованием. Она там была как презент нашедшему виски из стратосферы. К счастью, нашедшими оказались мы, так что и презент нам. Радовались, как дети, чесслово =)


Результаты


Ну наконец-то. Давайте поговорим о том, что же мы вытащили из болота ценой таких усилий.


result_hires


Разумеется все кинулись проверять камеру. Это фото это один из последних кадров (я выбрал покрасивей) из заснятого видео. Вообще, по расчетам, запаса аккумулятора камеры должно было хватить еще и на приземление и на полежать немного. Но, как видите, не хватило она записала всего 25 минут видео (4k60fps), из которых 7 на земле перед запуском. Мы строили разные теории почему так произошло. В итоге, поковырявшись уже дома с оборудованием, выяснили: был сломан USB порт на павербанке для камеры. В какой момент он был сломан неизвестно. Но пока основная версия такова: подключили и включили камеру, как-то сломался порт, камера продолжала работать от внутреннего аккумулятора пока он не сел. Из-за внутреннего аккумулятора мы не смогли вовремя распознать поломку, а его запаса, по экспериментам, хватает примерно на 25-30 минут записи.


Когда все остыли, пришло время ковырять показания нашего самописца он отработал на все 100! И сейчас будет поток графиков, построенных по его показаниям. Так как RPI работал долгое время на земле (до и после запуска), я, для удобства анализа, обрезал куски данных с земли.


На шкале X всегда будет время в секундах с момента отрыва от поверхности. Поехали!


График набора высоты по показаниям GPS HAT:


alt_gps


Взглянув на него, мы видим: максимальная высота, которую он набрал на 2247-й секунде полета, составила 18993 метра над уровнем моря! Это выше чем Эверест, это выше чем летают любые пассажирские самолеты! Но прилично ниже расчетных 30км. Взглянув на то что осталось от, непосредственно, шара, мы предположили, что мы его просто перекачали и он взорвался раньше положенного. Была у меня еще версия что мы его недокачали. Но тогда бы он повисел на высоте, пока гелий не выйдет и опустился бы целым на землю. А от него ничего не осталось. Значит перекачали. Учтем на будущее.


Еще по этому графику можно прикинуть на какой высоте остановилась запись. Приблизительно на 7км. Так что кадр выше примерно с высоты всего 7км.


Раз уж у нас есть показания барометра, забавы ради (практической пользы не несет), я решил рассчитать относительную высоту по барометрической формуле и сравнить эти показания с данными GPS:


alt_compare


Как видим корреляция есть, отклонения не сказать чтобы пугающие (макс. высота получилась 16183 метра).


Теперь, что же там с давлением?


pres_over_alt


Мы видим, как падало давление с набором высоты (эффект ожидаемый). Все в той же точке 2247 было зафиксировано минимальное значение 58 миллибар. Для сравнения на поверхности было 1050 миллибар. Т.е. всего 5.7% от давления на поверхности!


Как там работал наш кустарный охладитель? Температура внутри бокса:


inside_temp


Как видно скакнула до $38,5^oC$, но это очень далеко от предельной. Так что никто не перегрелся и никто не замерз. Да и в целом разброс всего 33-35 считаю очень хорошим результатом.


Что в этот момент происходило снаружи? Снова график 2-в-1, чтобы не захламлять картинками:


outside_temp_over_alt


Помните я сетовал на градусник? Вооот. Как видите провал ниже -40. Значит там было еще холоднее! И второй вывод, который тут можно сделать: самая холодная точка не самая высокая!


Насколько наш климатизатор страдал, можно оценить по графику разницы температур Inside vs Outside:


outside_inside_temp_diff


Как видите разность температур доходила почти до 80! Не сказать что хардкор, но прилично.


Ну и последний на сегодня показатель влажность:


humidity_over_alt


Там довольно сухо, да. Влажность падала до 3%. Ну а откуда ей там взяться?


Хватит графиков. Это, конечно же не все показания, которые записал наш RPI, но статья и так уже слишком разрослась. Так что я оставлю ссылку на полную телеметрию:



Видео


Использование вездехода по назначению:



Видео полета с бортовой камеры:



Выводы


Итак, несмотря на то, что расчетная высота достигнута не была: 19км против 30км все равно считаю, что проект завершился успешно. Тем более, это был первый опыт подобного рода для всех участников проекта. Давайте обозначим технические проблемы, возникшие в процессе этого мероприятия:


  • Камера не записала весь полет.
    • Возможная причина: поломка аккумулятора на запуске.
    • Возможное решение: заменить внешний аккумулятор, удалить внутренний аккумулятор перед запуском (позволит отследить проблему с внешним на ранних этапах)
  • Не была достигнута расчетная высота.
    • Возможная причина: перекачали шар. Закачали 1.5 баллона вместо расчетных 1.36
    • Возможное решение: закачать меньше гелия (1.36 баллона)
  • Порвался парашют. Не прям в хлам, пара мелких отверстий сбоку. Купол не пострадал и на полетные характеристики это не повлияло. Решение тут только одно заменить парашют на новый во избежание дальнейшего распространения повреждений.
  • Приземление в труднодоступной местности.
    • Причина: ранний взрыв шара
    • Возможное решение: закачать правильное количество гелия. 100% гарантии это не даст, но по итогу, расчетная траектория совпала с реальной, за исключением того, что нагрузка приземлилась раньше положенного времени.

На этом все, всем чистого неба над головой и удачи!

Подробнее..

Ретроконсоль своими руками Часть 2. Установка и настройка RetroPie

30.04.2021 20:15:00 | Автор: admin

В предыдущей статье мы подобрали все необходимые компоненты для сборки нашей самодельной ретроконсоли. Настало время вдохнуть в нее жизнь! В этом нам поможет RetroPie операционная система, основанная на Linux-дистрибутиве Raspbian OS и представляющая собой сборник эмуляторов разнообразных игровых приставок прошлых лет и удобный менеджер для работы с вашей игротекой в одном лице. Хотя это отнюдь не единственное из доступных решений, по нашему мнению, именно данная сборка лучше всего подходит новичку, так как требует минимальных навыков для базовой установки и настройки, отличаясь при этом стабильностью и достаточно широким спектром возможностей. Итак, приступим.

1. Подготовка microSD-карты

Первое, что необходимо сделать, установить RetroPie на карту памяти, которая будет исполнять роль системного накопителя. Объем карточки всецело зависит от того, как именно вы планируете использовать консоль. Если вы собираетесь играть исключительно в 8/16-битные проекты или запускать игры с внешних носителей (а такую возможность RetroPie также поддерживает), то вам вполне хватит SanDisk Ultra на 32 гигабайта. В противном же случае стоит приобрести microSD-карту емкостью 128256 ГБ: вряд ли вам понадобится хранить в памяти ретроконсоли все когда-либо выходившие игры для PlayStation и DreamCast, а для избранных релизов такого объема должно быть вполне достаточно.

Карты памяти данной серии относятся к классу A1 (Application Performance Class). Это означает, что даже в самых неблагоприятных условиях их производительность не опускается ниже 1500 IOPS при случайном чтении и 500 IOPS при записи файлов, при этом скорость передачи данных в последовательных операциях достигает 100МБ/с. Таким образом, с одной стороны, вы сможете достаточно быстро загружать в память консоли даже объемные ROMы, а с другой не будете испытывать проблем при работе с RetroPie или во время игр.

Если в вашем компьютере или ноутбуке отсутствует встроенный карт-ридер, для подключения флеш-карты вы можете воспользоваться SanDisk MobileMate USB 3.0. Благодаря компактным размерам устройства, его будет достаточно удобно использовать и с самой ретроконсолью, если у вас вдруг возникнет такая потребность.

Для установки RetroPie проще всего воспользоваться Raspberry Pi Imager инсталлятором с функцией автоматической загрузки дистрибутивов из сети, доступным в версиях для операционных систем Windows, Mac OS и Ubuntu. После подключения карты памяти к ПК или ноутбуку запустите утилиту, нажмите на CHOOSE OS, а затем выберите Emulation and game OS ---> RetroPie ---> RetroPie version_number (RPI 4/400).

Теперь кликните по CHOOSE SD CARD, выберите нужную флеш-карту и запустите установку RetroPie, нажав на кнопку WRITE. Дождитесь окончания процедуры.

2. Настройка геймпада

Установите карту памяти в microSD-слот Raspberry Pi, подключите геймпад через USB-кабель и включите ретроконсоль. Сразу после подачи питания инициируется процедура настройки системы, которая занимает в среднем около 1,52 минут.

По завершении всех операций на экране появится окно приветствия. Поскольку мы уже подключили геймпад по проводу, система автоматически его определит и предложит настроить. Для запуска мастера нажмите любую кнопку на контроллере.

Все, что требуется далее, последовательно нажимать нужные кнопки на геймпаде в соответствии с подсказками на экране.

Если вы затрудняетесь с выбором, предлагаем вашему вниманию стандартную раскладку для контроллеров семейства DualShock и их аналогов.

Примечание. В самом конце RetroPie попросит вас задать кнопку Hotkey. Лучше всего выбрать в качестве хоткея кнопку Home, так как она не задействуется в играх. Если на вашем геймпаде таковая отсутствует (например, вы используете реплику оригинального контроллера для SNES), то на ее роль вполне сгодится кнопка Select. Хоткеи открывают доступ к дополнительным функциям RetroArch/Libretro-based-эмуляторов, входящих в состав RetroPie. Список доступных комбинаций приведен в таблице ниже.

Комбинация клавиш

Команда

Хоткей + Start

Выход

Хоткей + Правый бампер

Сохранить игру

Хоткей + Левый бампер

Загрузить сохранение

Хоткей + Вправо

Следующий слот сохранения

Хоткей + Влево

Предыдущий слот сохранения

Хоткей + X

Внутриигровое меню

Хоткей + B

Сброс

Внутриигровое меню обеспечивает доступ к дополнительным функциям эмулятораВнутриигровое меню обеспечивает доступ к дополнительным функциям эмулятора

3. Активация полноэкранного режима

После первого включения вы наверняка обратите внимание на наличие черной рамки по краю экрана.

Давайте от нее избавимся.

1. Зайдите в меню CONFIGURATION, нажав кнопку A на геймпаде, и перейдите в раздел RASPI-CONFIG.

2. Выберите пункт 7 Advanced Options.

3. Зайдите в A2 Overscan.

4. Выберите No.

5. Нажмите Ok.

6. Нажмите Finish, чтобы завершить процесс настройки.

7. Система предложит выполнить перезагрузку, чтобы изменения вступили в силу.

После перезапуска RetroPie будет работать в полноэкранном режиме.

4. Подключение беспроводных девайсов по Bluetooth

RetroPie поддерживает большинство игровых контроллеров и беспроводных клавиатур, так что проблем с подключением у вас возникнуть не должно. Тем не менее давайте посмотрим, как это сделать, на примере геймпада 8BitDo SN30 Pro. Обратите внимание на то, что перед выполнением действий, описанных ниже, необходимо обновить прошивку девайса до актуальной с помощью утилиты с официального сайта производителя, а затем включить устройство, нажав одновременно кнопки Y + Start, и перевести его в режим сопряжения, нажав расположенную на верхнем торце геймпада кнопку Pair и удерживая ее в течение 3 секунд.

Теперь можно приступать к настройке.

1. Вновь зайдите в меню CONFIGURATION и перейдите в раздел BLUETOOTH.

2. Активируйте 8BitDo mapping hack.

Примечание. Mapping hack рекомендуется включать для всех геймпадов 8BitDo с версией микропрограммы ниже 4.0. Если вы используете, например, контроллер 8BitDo SN30 Pro+ с актуальной версией прошивки (5.01 на момент написания данного материала), просто пропустите этот шаг.

3. Перейдите в раздел Register and Connect to Bluetooth Device.

4. RetroPie инициализирует поиск доступных устройств, после чего выведет их перечень на экран. Выберите геймпад 8BitDo из списка.

5. На следующем шаге выберите опцию DisplayYesNo.

6. Система сообщит о том, что устройство было успешно зарегистрировано и подключено.

Аналогичным образом можно подключить и беспроводную клавиатуру. Кстати, она нам понадобится уже на следующем этапе.

5. Подключение ретроконсоли к WiFi

Чтобы иметь возможность обновлять программное обеспечение, устанавливать новые пакеты или копировать игры с ПК, используя сетевые папки, консоль необходимо подключить к домашней сети.

1. Как и ранее, зайдите в CONFIGURATION и выберите WiFi.

2. Далее зайдите в Network Options.

3. Перейдите в раздел Wi-fi.

4. Выберите вашу страну из списка.

5. Перейдите в раздел Connect to WiFi network.

6. Выберите свой роутер из списка доступных устройств.

7. Введите пароль для подключения к сети.

8. Raspberry Pi подключится к роутеру. Теперь на экране настройки WiFi в левом верхнем углу отобразится локальный IP-адрес устройства. Запишите его.

6. Загрузка игр и BIOS

Базовая настройка консоли завершена. Осталось загрузить в память устройства игры, и можно наслаждаться геймингом в стиле ретро! Сделать это можно прямо с ПК, находящегося в той же локальной сети. Наберите в строке проводника retropie или IP-адрес, присвоенный консоли роутером. На экране отобразятся доступные сетевые папки.

О предназначении каждого каталога легко догадаться по его названию:

  1. Папка bios предназначена для загрузки дампов BIOS игровых приставок, которые необходимы для функционирования некоторых эмуляторов.

  2. В папке configs хранятся конфигурационные файлы эмуляторов.

  3. Папка roms предназначена для загрузки образов игр.

  4. В папку splashscreens можно загрузить собственные заставки.

Каталоги bios и roms имеют идентичную структуру: в каждом из них вы найдете множество подпапок, названия которых соответствуют названиям эмуляторов, установленных в RetroPie. Благодаря этому в них очень удобно ориентироваться. Так, например, чтобы загрузить в память ретроконсоли сборник игр для Sega Mega Drive, достаточно перенести необходимые образы в подпапку genesis каталога roms, а игры для Nintendo Entertainment System необходимо скопировать в подпапку nes.

Перенеся образы игр в соответствующие папки, перезагрузите устройство. Теперь эмуляторы, для которых вы добавили игры, отобразятся в главном меню.

Если вы последовали нашему совету, приобретя корпус NESPi 4, то cможете подключать к ретроконсоли 2,5-дюймовый SSD, используя его в качестве хранилища ROMов. Для этого накопитель необходимо предварительно отформатировать и создать на нем папку с названием retropie.

После подключения к консоли, RetroPie распознает SSD в качестве внешнего хранилища и автоматически создаст все нужные папки и подпапки. По окончании процесса вы сможете загружать на твердотельный накопитель образы игр точно так же, как и на системную карту памяти, копируя ROMы в подпапки соответствующих эмуляторов. Данный способ подходит и для USB-накопителей.


На этом настройка RetroPie завершена. Теперь в вашем распоряжении имеется ультимативный игровой комбайн, способный заткнуть за пояс любую фирменную ретроконсоль вроде PlayStation Classic или NES Classic Mini. А при желании данный девайс можно без особого труда превратить в полноценный мультимедийный сервер. Но о том, как это сделать, мы расскажем как-нибудь в следующий раз.

Подробнее..

Превращаем дисковый телефон в цифрового помощника с использованием Google Assistant и Raspberry Pi

03.05.2021 16:20:48 | Автор: admin

Дисковых телефонов, к сожалению, почти нигде уже нет, а вместе с ними ушла целая эпоха. Но есть в этих аппаратах что-то особенное, что привлекает как обычных людей, так и разработчиков. Что касается последних, то они используют дисковые системы для самых разных проектов, и об одном из них мы сегодня расскажем.

Речь идет о преобразовании телефона в цифрового секретаря, который всегда готов прийти на помощь. Для реализации проекта нужна плата Raspberry Pi Zero и подключение к Google Assistant. Ну а теперь подробнее о проекте.

Чтобы сразу было понятно, о чем идет речь, вот видео уже собранного телефона с активированным помощником.


Чуть подробнее о необходимых компонентах


Нам понадобится:
  • Raspberry Pi Zero с запаянными пинами, карта памяти с Raspberry Pi OS и адаптер питания.
  • Старый дисковый телефон с работающей трубкой (микрофоном и динамиком) и работающим рычажным переключателем, который придется кастомизировать.
  • Разного рода кабели, паяльник, отвертки и прочие мелочи.
  • 1 USB audio адаптер, совместимый с Linux.
  • 1 male-male 3.5 мм аудио кабель.
  • 1 Raspberry Pi Zero micro USB to USB A адаптер.

Как установить Google Assistant на старый телефон


Здесь несколько этапов работы:
  • Регистрация в Google (самое простое).
  • Аутентификация с Google (тоже несложно).
  • Кастомизация телефона.
  • Настройка помощника Google.

Регистрация в Google


Речь, конечно же, не о простой регистрации аккаунта в сервисах компании, а о регистрации с raspberry pi. Этот этап может быть немного сложным для тех, кто никогда не работал с Google Cloud Platform, так что лучше прочитать этот пункт, дабы не терять время. Если вы все знаете его можно и пропустить.

Клонируем репозиторий на малинку.

cd ~/
git clone https://github.com/rydercalmdown/google_assistant_telephone


Открываем console.actions.google.com в браузере. Здесь расположен центр управления Google Assistant Actions.

Выбираем новый проект и заполняем появлющиеся поля.


В новой вкладке подтверждаем имя проекта и выбираем Enable для включения API.


Далее на первой вкладке пролистываем страничку до конца и выбираем Are you looking for device registration? Click here


Теперь нужно зарегистрировать девайс, заполнив все поля и скопировав полученный ID в отдельный файл он понадобится позже.


Выбираем Download OAuth 2.0 credentials для того, чтобы загрузить соответствующий файл, который малинка будет использовать для формирования запросов.


Переименовываем загруженный файл в oauth_config_credentials.json и передаем его на Raspberry Pi. Разместить его нужно в папку скопированного репозитория, загруженного в самом начале.

# Rename your downloaded file
cd ~/Downloads
mv your_unique_secret_file_name.json oauth_config_credentials.json
# Move the file into your repository
scp oauth_config_credentials.json pi@your_pis_ip_address:/home/pi/google_assistant_telephone


Возвращаемся к браузеру. После загрузки и переименования нажимаем Next и выбираем Save Traits, не изменяя настроек.


Аутентификация с Google


После того, как регистрация закончена, самое время аутенифицировать девайс для возможности доступа к аккаунту Google и персонализации помощника.

Открываем ссылку console.cloud.google.com/apis/credentials/consent и проверяем, чтобы имя проекта, заданное выше, совпадало с отображаемым по ссылке.

Выбираем External и нажимаем Create


Заполняем поле с названием, выбираем из выпадающего списка почту и добавляем этот e-mail в поле Developer contact information и сохраняем все.


На следующей странице выбираем Add or Remove Scopes и ищем в поисковой строке Google Assistant API. Выбираем /auth/assistant-sdk-prototype scope, обновляем путем нажатия на upfate и сохраняем все.


Затем выбираем OAuth Consent Screen и Add User, добавляя свою почту.


Теперь переходим в папку загруженного репозитория на Raspberry Pi и запускаем команду:

cd ~/google_assistant_telephone
make authenticate


Она завершает процесс аутентификации, после чего нужно скопировать полученный код в консоль. Если все хорошо, то появится сообщение credentials saved:

Эти данные требуются для перехода в текущую аудиторию.

# credentials saved: /Users/test/Library/Application Support/google-oauthlib-tool/credentials.json
mv /Users/test/Library/Application\ Support/google-oauthlib-tool/credentials.json /home/pi/google/assistant/telephone/credentials.json


Кастомизируем телефон


Конечно, модели дисковых телефонов отличаются друг от друга, но их схемы более-менее похожи, поэтому то, что показано ниже, можно использовать для всех аналогичных аппаратов.

В любом случае телефон сначала нужно разобрать.


Далее находим провода, которые идут к рычажковому переключателю. Их нужно будет подключить к пинам малинки, чтобы плата могла определять, снята трубка или нет.


Провода нужно припаять к 18 пину и к земле.

Далее подключаем USB аудио адаптер к raspberry pi zero, после чего припаиваем к проводам трубки два разных 3,5мм провода. Они будут передавать сигнал от Raspberri Pi к трубке и обратно. Возможно, придется повозиться, определяя, где какой провод, но в целом здесь нет ничего сложного.


Заканчиваем кастомизацию телефона, подключая 3,5мм провода к адаптеру.


Остается лишь закрыть корпус телефона, не забыв вывести кабель питания малинки.


Настройка помощника


Осталось совсем немного настраиваем помощника и все. Здесь тоже несколько шагов.

Запускаем установочный скрипт. Это займет не один час, если вы используете Raspberry Pi Zero. Лучше всего запустить все вечером и оставить на ночь.

cd google_assistant_telephone
make install


Настраиваем USB-аудио. Для этого нужна всего одна команда.

make configure-audio

Теперь тестируем аудиоадаптер.

# Run, speak something into the microphone, and listen
make test

# Set volumes
alsamixer


Экспортируем ID проекта. Можно просто зайти вот по этой ссылке и выбрать
Project Settings

export PROJECT_ID=your-project-id

Экспортируем ID

export DEVICE_MODEL_ID=your-model-id-from-the-earlier-steps

Теперь выполняем команду

make run

После чего тестируем телефон. Это просто поднимаем трубку и задаем любой вопрос помощнику. Если все ок, консоль покажет определенное действие, а помощник ответит.

Наконец, выполняем команду ниже для запуска помощника.

make configure-on-boot

Больше подробностей на страничке самого проекта.

Подробнее..

Как спасти разбитую читалку, если у вас прямые руки

14.05.2021 10:12:48 | Автор: admin
Статей о том, как подключить дисплей на электронных чернилах к Arduino, STM32, ESP32 и т.д. (нужное подчеркнуть) на этом ресурсе более чем достаточно, и я не стану утомлять читателя очередным погодным информером. Речь пойдет о том, как в хозяйстве можно использовать электронную книгу, ставшую жертвой комбинации четвертой фундаментальной силой природы гравитации и седалищной мышцы Человека Разумного. Хе-хе. Нисколько не сомневаясь в том, что читатель прекрасно знает принцип работы дисплея на электронных чернилах, все же очень кратко пробегусь по основным тезисам.

Для простоты рассмотрим, как устроен один чернильный пиксель. В наиболее распространённом случае, это прозрачная сфера микронных размеров, наполненная неким подобием силиконового масла. В ней плавает некоторое количество частиц черного и белого цвета, имеющих разноименные заряды. И нет, это не электроны с протонами. Как правило частицы представляют собой полимер, обладающий электретными свойствами, то есть они способны долговременно удерживать электрический заряд со всеми вытекающими отсюда свойствами. То есть они будут соответственно себя вести в электрическом поле заряженные частички будут испытывать силу притяжения или отталкивания от обкладок конденсатора с соответствующими зарядами. Ниже, я проиллюстрировал эту магию:



Справедливости ради, стоит упомянуть еще один распространенный вариант устройства пикселя, где черные и белые частички слеплены вместе образуя электрический диполь. В этом случае, такая частичка, при приложении электрического поля, просто вращается в соответствии с ориентацией поля.
Ну а теперь к сути.
Случилось страшное и безжалостная пятая точка смертельно ранила нашу читалку. В подобных случаях я себя всегда успокаиваю тем, что убитый девайс навсегда останется в моем сердце можно использовать как донор разных полезных ништяков. Ну ладно, экран мы разбили, но пиксели-то остались целыми. А значит приступим к операции и экспериментам. Справедливости ради надо сказать, что это далеко не первый мой эксперимент с мертвой читалкой и я наперёд знаю, что и как надо делать, чтобы получить нужную и полезную в хозяйстве вещь. Итак, первое что надо сделать, это разобрать убитый девайс и снять дисплей с электронными чернилами. Сейчас я буду нудно рассказывать о том, как это все сделать самому, ибо сфотографировать процесс не хватило мозгов. А потому:



В общем-то сам экран представляет собой бутерброд, где на активную стеклянную подложку приклеена гибкая пленка с намазанной с внутренней стороны пастой с пикселями. В разрезе это выглядит приблизительно вот так:



Для того что бы отделить активный слой от стеклянной подложки, достаточно немного прогреть феном бутерброд и пленка легко отделиться от основания. Однако, как правило стеклянная подложка по площади чуть больше защитной пленки и по краям пленка приклеена на довольно прочный клей и тут придётся немного повозиться, чтобы схватиться за край пленки. Проще всего использовать канцелярский нож для этих целей. На фото ниже уже препарированный экран, в нижней части частично отделена пленка от основания и видна стеклянная подложка:



По моему опыту есть два вида дисплеев, отличающихся клеевой основой для удержания пленки на подложке. Принципиально они ничем не отличаются, разве что при препарировании клей может либо остаться на основе, либо отделиться вместе с пленкой. В моем случае клей остался на пленке. На фото ниже, обратная сторона пленки покрыта темно-оранжевым клеем. Его тоже желательно удалить, это увеличит контрастность в конечном устройстве.



Клей отделяется как тончайшая, гибкая но довольно хрупкая пленка, обнажая слой с чернилами. Тут важна аккуратность, поскольку чернила легко можно смазать прикосновением пальца. Более того, их можно просто смыть водой.

Итак, мы сняли активный слой с чернилами. Что дальше? Опять теория. Как я уже писал выше, пиксели начинают активничать при приложении к ним электрического поля. Стеклянная подложка представляет собой матрицу из огромного числа обкладок конденсатора, где одна обкладка один пиксель. Второй обкладкой служит прозрачный токопроводящий слой на защитной пленке. Таким образом, изменяя полярность на обкладках конденсатора, происходит изменение цвета пикселя.
А теперь сама суть. Подложка у нас не рабочая, но ничего не мешает нам самим изготовить ту самую подложку, вытравив на текстолите пиксели и подключив их да хоть к ардуине и таки собрать очередной погодный информер с преферансом и барышнями. Вот прям информер я собирать не буду, для упрощения реализуем семисегментный дисплей, но суть та же. В теории это должно выглядеть примерно следующим образом:



Снова включаем воображение и представляем, что это текстолит с вытравленным рисунком семисегментного индикатора. Оранжевые участки это обкладки конденсатора. Синяя рамка это зона, где расположен наш дисплей. Прямоугольник слева нужен для контакта с токопроводящим слоем дисплея, посредством которого и будет создаваться разность потенциалов. Из схемы видно, что каждый сегмент дисплея управляется отдельным контактом. Arduino UNO, на котором мы и построим устройство, имеет достаточно контактов для реализации двухразрядного индикатора. Я решил исполнить устройство в виде шилда и после разводки получил примерно такой рисунок:


Верхняя и нижняя стороны

Синим обозначен контакт для второй обкладки конденсатора, его мы соединим с токопроводящим слоем пленки. Я их по ошибке развел на разные контакты Arduino, но тут достаточно одного. Белые сегменты индикатора соединяются с контактами Arduino с противоположной стороны платы. Зеленая область нужна для очистки остаточного изображения на дисплее. Суть в том, что если мы будем изменять напряжение только на сегментах, то, в случае если мы сняли экран с остаточным изображением, то оно у нас так и останется в тех местах, где НЕ будет приложено напряжение между обкладками. То есть везде вне сегментов. Если же у нас экран был чист, то они и не нужны. Под экраном я развел контакты для кнопок управления, но впоследствии решил их не распаивать. Плату изготавливал классическим способом через фоторезист.

Пару фото:

Верхняя и нижняя сторона заготовки. Фоторезист пленочный, наносил при помощи ламинатора. Маски распечатал на прозрачной пленке лазерным принтером. Лежат по бокам. Засвечивал матрицей УФ светодиодов.



Обратная сторона:



Не засвеченный фоторезист смывал обычным стиральным порошком:



Травил в хлорном железе:



Остатки фоторезиста легко смываются ацетоном:



Теперь необходимо соединить сегменты индикатора, с обратной стороной платы. Я использовал обычные проволочные перемычки, после чего зачистил шкуркой верхнюю сторону платы:



Исключительно ради удобства решил нанести на плату паяльную маску на верхнюю сторону. Использовал двухкомпонентную зеленую.

Для начала креплю заготовку на устойчивое основание на малярный скотч:



Наносить маску буду через трафаретный шелк, натянутый на деревянную фоторамку:



Замешав пасту, наношу ее прямо поверх шелка и продавливаю пластиковым шпателем:





В результате получаем более-менее однородный и ровный слой маски:



Далее все это дело сушу 15 минут в коробке из-под обуви, с воткнутым в нее термофеном, и выставленной температурой в 150 градусов. Затем засвечиваю пасту ультрафиолетом через маску, распечатанную на все том же лазерном принтере и смываю стиральным порошком. Результат ниже:



Как видим, открытыми для дисплея остаются участки с сегментами и контактные площадки по бокам для верхней обкладки конденсатора.

Теперь займемся дисплеем. Поскольку он выполнен на полимерной пленке, нужную форму легко вырезать ножницами:



На дисплее сохранилось остаточное изображение, для этого и использовал дополнительный полигон вокруг сегментов. Стоит обратить внимание, что по бокам я снял слой чернил, эти открытые площадки нужны для контакта с полигонами верхней обкладки конденсатора. Тут надо заострить внимание на некоторых особенностях. Как я писал выше, пленка у меня снялась вместе с клеевой основой. Первый вариант клеил к плате вместе с этим клеем и для того, чтобы оголить участки по бокам, может возникнуть желание канцелярским ножом отрезать эти участки клея и затем их механически удалить. Но токопроводящее покрытие на пленке очень тонкое и даже легкий разрез легко его повреждает, в результате у нас будет отсутствовать контакт между участками экрана. На фото ниже образец поврежденного таким образом дисплея:



Тут мы видим, что клеевой слой я удалил вместе со слоем чернил, но прозвонка между боковыми контактами показала бесконечное сопротивление. Во втором варианте я удалил клеевой слой и просто смыл влажной салфеткой чернила с боковых контактов. Сам дисплей приклеил к плате на ту же пасту что и использовал для создания зеленой маски на плате. Затем несколько раз прогнал плату через ламинатор, засветил УФ светодиодами и распаял контакты для Aarduino:



Для улучшения контакта дисплея с боковыми площадками, я подложил между дисплеем и контактами на плате кусочки фольги и затем дополнительно покрыл все скотчем:



Теперь можно воткнуть шилд в Arduino и набросать скетч. Тут важно понимать, что при смене изображения, весь экран для начала нужно очищать, а потом выводить новое изображение.

Собственно, видео того, что получилось в результате. Идет счет от 1 до 99 в цикле.



На видео видно, что смена изображения идет через черный и затем белый экран, но как показала практика, от черного экрана можно отказаться, хотя в этом случае очищает немного лучше.

Здесь можно скачать PSD с разведенной платой и скетч.



Послесловие


Какие выводы можно сделать из данного эксперимента?

Во-первых, технология не так сложна, как кажется на первый взгляд и вполне годна для использования в домашних поделках.

Во-вторых, убитая читалка это вовсе не повод ее отправлять на мусорку.

И самое вкусное очевидно, что радиолюбитель может не ограничиваться теми средствами вывода информации, которые нам предоставляет производитель. Мы имеем возможность самостоятельно изготовить дисплей любой формы и нужного нам размера. Более того, я уже экспериментировал с нанесением дисплея на гибкую печатную плату, небольшой тизер:



На фото выше, прототип наручных часов, изготовленный на гибкой печатной плате.

А теперь скромно озвучу свои наполеоновские планы. В этой статье можно прочесть о технологии изготовления электронных чернил. Принципиальных сложностей там нет. Есть мысль упростить и попробовать повторить самостоятельно.

P.S. Если будет интерес, запилю статью с поэтапным изготовлением наручных часов на гибкой печатной плате с самодельным экраном E-ink.

Скетч arduino для устройства из статьи:
#define LEFT_SPACE 13 // Левый контакт дисплея
#define RIGHT_SPACE A5 // Правый контакт дисплея
#define RESET A3 // Полигон вокруг сегментов для полной очистки дисплея

// Контакты первого сегмента
#define A1 9
#define B1 7
#define C1 6
#define D1 8
#define E1 11
#define F1 12
#define G1 10

// Контакты второго сегмента
#define A2 3
#define B2 0
#define C2 A4
#define D2 1
#define E2 4
#define F2 5
#define G2 2

uint8_t num_1 = 0;
uint8_t num_2 = 0;

void setup()
{
//Serial.begin(9600); // Напрямую использовать нельзя, поскольку на эти пины подключены сегменты дисплея
pinMode(BTN_01, INPUT);
pinMode(BTN_02, INPUT);
pinMode(BTN_03, INPUT);

pinMode(LEFT_SPACE, OUTPUT);
pinMode(RIGHT_SPACE, OUTPUT);
pinMode(RESET, OUTPUT);

pinMode(A1, OUTPUT);
pinMode(B1, OUTPUT);
pinMode(C1, OUTPUT);
pinMode(D1, OUTPUT);
pinMode(E1, OUTPUT);
pinMode(F1, OUTPUT);
pinMode(G1, OUTPUT);

pinMode(A2, OUTPUT);
pinMode(B2, OUTPUT);
pinMode(C2, OUTPUT);
pinMode(D2, OUTPUT);
pinMode(E2, OUTPUT);
pinMode(F2, OUTPUT);
pinMode(G2, OUTPUT);
clearDisp();
}

void loop()
{
// Считаем от 1 до 99
num_2++;
if (num_2 == 10)
{
num_2 = 0;
num_1++;
}
if (num_1 == 10)
{
num_1 = 0;
num_2 = 0;
}
num(num_1, num_2);
}

// Функция очистки дисплея
void clearDisp()
{
digitalWrite(LEFT_SPACE, 1);
digitalWrite(RIGHT_SPACE, 1);
digitalWrite(RESET, 0);
digitalWrite(A1, 0);
digitalWrite(B1, 0);
digitalWrite(C1, 0);
digitalWrite(D1, 0);
digitalWrite(E1, 0);
digitalWrite(F1, 0);
digitalWrite(G1, 0);
digitalWrite(A2, 0);
digitalWrite(B2, 0);
digitalWrite(C2, 0);
digitalWrite(D2, 0);
digitalWrite(E2, 0);
digitalWrite(F2, 0);
digitalWrite(G2, 0);
delay(500);

}

// Функция для отображения цифр
void num(int num1, int num2)
{
clearDisp();
digitalWrite(LEFT_SPACE, 0);
digitalWrite(RIGHT_SPACE, 0);
switch (num1)
{
case 0:
digitalWrite(A1, 1);
digitalWrite(B1, 1);
digitalWrite(C1, 1);
digitalWrite(D1, 1);
digitalWrite(E1, 1);
digitalWrite(F1, 1);
digitalWrite(G1, 0);
break;
case 1:
digitalWrite(A1, 0);
digitalWrite(B1, 1);
digitalWrite(C1, 1);
digitalWrite(D1, 0);
digitalWrite(E1, 0);
digitalWrite(F1, 0);
digitalWrite(G1, 0);
break;
case 2:
digitalWrite(A1, 1);
digitalWrite(B1, 1);
digitalWrite(C1, 0);
digitalWrite(D1, 1);
digitalWrite(E1, 1);
digitalWrite(F1, 0);
digitalWrite(G1, 1);
break;
case 3:
digitalWrite(A1, 1);
digitalWrite(B1, 1);
digitalWrite(C1, 1);
digitalWrite(D1, 1);
digitalWrite(E1, 0);
digitalWrite(F1, 0);
digitalWrite(G1, 1);
break;
case 4:
digitalWrite(A1, 0);
digitalWrite(B1, 1);
digitalWrite(C1, 1);
digitalWrite(D1, 0);
digitalWrite(E1, 0);
digitalWrite(F1, 1);
digitalWrite(G1, 1);
break;
case 5:
digitalWrite(A1, 1);
digitalWrite(B1, 0);
digitalWrite(C1, 1);
digitalWrite(D1, 1);
digitalWrite(E1, 0);
digitalWrite(F1, 1);
digitalWrite(G1, 1);
break;
case 6:
digitalWrite(A1, 1);
digitalWrite(B1, 0);
digitalWrite(C1, 1);
digitalWrite(D1, 1);
digitalWrite(E1, 1);
digitalWrite(F1, 1);
digitalWrite(G1, 1);
break;
case 7:
digitalWrite(A1, 1);
digitalWrite(B1, 1);
digitalWrite(C1, 1);
digitalWrite(D1, 0);
digitalWrite(E1, 0);
digitalWrite(F1, 0);
digitalWrite(G1, 0);
break;
case 8:
digitalWrite(A1, 1);
digitalWrite(B1, 1);
digitalWrite(C1, 1);
digitalWrite(D1, 1);
digitalWrite(E1, 1);
digitalWrite(F1, 1);
digitalWrite(G1, 1);
break;
case 9:
digitalWrite(A1, 1);
digitalWrite(B1, 1);
digitalWrite(C1, 1);
digitalWrite(D1, 1);
digitalWrite(E1, 0);
digitalWrite(F1, 1);
digitalWrite(G1, 1);
break;
}



Спасибо за просмотр ;)



Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Стенд для испытания некоторых технических решений для 3Д принтера

21.05.2021 14:10:59 | Автор: admin


Собственно, статью решил написать не столько ради демонстрации возможностей, а скорее, как источник некоторых технических решений, возможно, интересных сообществу. Да это и не полноценный обзор устройства, а, как и написано анонс будущего обзора. Но тут уж как завершу проект :)

Итак, что мы имеем. Года полтора назад достался мне на халяву кусок Э-эм Ну то есть 3D принтер Wanhao i3plus. Должен сказать я сам выбрал данный девайс, причем выбирал я не по тех. характеристикам (будем откровенны, у всех девайсов данного ценового диапазона они, мягко говоря, так себе), а привлек меня цветной сенсорный дисплей от компании DWIN, а точнее операционная система на которой он построен. Ну кастомизация там и все такое Да ладно, кого я обманываю, конечно же повелся на свистоперделки.

В общем поигрался пару месяцев. Сделал к нему термокамеру, на фото ниже


Нарисовал свою прошивку для дисплея:






Еще немного поиграл. И убил аналоговые входы контроллера, к которым подключена резистивная тач-панель. Сам принтер работает, дисплей показывает, но сенсор сдох. Ну да ладно, можно отправлять на печать с компа. Ну вот таким образом я и забил на девайс до лучших времен.

Лучшие времена настали месяц назад и таки решил я его немного апгрейдить да и увлекся. Таки остался от былого устройства только мотор подачи филамента, пару кареток, ремни, да винтики со шпунтиками, остальное все совершенно новое. Однако проект пока не завершен, но хочу поделится некоторыми интересными решениями.

Для начала пару слов о самом устройстве. Картезианская система стол Z, экструдер XY. По оси Y ось X двигает два мотора включенных в параллель. Мотор оси X установлен на экструдере. Понимаю, что это плохо для веса последнего, но, как ни странно, мне нужен именно тяжелый экструдер, об этом позже. Пара фоток узла:



Собран из алюминиевых профилей всех возможных видов и размеров, винтиков-шпунтиков, 8мм цилиндрических направляющих, синей изоленты и шерсти кота. Имеет закрытую термокамеру с подогревом с внутренним алюминиевым коробом и внешним ПВХ. Катушка пластика спрятана в выдвижной лоток под камерой. Лоток оборудован собственной системой микроклимата, об этом подробнее ниже. Электроника 32bit MKS Sbase 1.3 + MKS TFT 7.0 Дисплей. Собственно сам дисплей такой:


Дура размером 7 дюймов с разрешением 800x480. Выбор такого дисплея вызван тем, что он построен на стандартном чипе ssd1963 который управляется STM32F407 по стандартной чето-там DMA шине. Короче я на него могу без проблем запилить свою прошивку, что мне и надо. И вообще он зачетный. С ним кстати забавная история связана. Вот приехал он ко мне, я его красиво так распаковал, офигел от размера, включил, еще раз офигел, залез в настройки вайфая (свисток стандартный ESP8266, стандартно втыкается сзади) и ничего не работает. Два дня провозился, оказалось металлическая рамка дисплея процарапала защитную маску платы и коротила своей землей на пин ресета вайфая. Вопиющее рукожопство производителя! Таки ладно, поехали дальше. Прижим подачи экструдера взял небезызвестный MK8


Ну его правда пришлось полностью переработать, но в детали вдаваться не стану. Автолевел столика реализовываю на пьезе под столиком. Срабатывает на 'тук' пипкой по столику. Тут все стандартно: пьеза операционный усилитель с фильтрами по частотам операционный усилитель в режиме компаратора пин на плате для автолевела. Что бы не срабатывал на 'тук' застывшего пластика, торчащего из пипки, экструдер сначала разогревается до рабочей температуры, затем соплю вытирает о войлок и силиконовый барьер. Тоже стандартно. Что бы не стало совсем скучно, кину пару фоток каркаса:




Эти зачетные шторы я купил в магазине около метро О чем это я А, да. Потом я выделил внутренний объем области печати и зашил его дюралевыми листами 1.5мм. Как я заколебался кроить эту люминьку. Сперва ножом для бумаги с обоих сторон оставлял глубокие борозды на листе, затем его гнул туда-суда до тех пор, пока не появлялась трещина, по которой я и двигался пока лист не разламывался полностью. Я знаю про существование электролобзика, но лобзик не знает про существование ровных линий, а ножницы крутят металл в баранку. Короче нож для бумаги, стальная линейка и пару порезанных пальцев дают эффект, сравнимый разве что с лазерной резкой. С дугами правда сложно. Короче обшил я камеру и сварганил э-эм Даже не знаю, как это называется. В общем штука, которая нагревает внутри камеры воздух до определенной температуры и гоняет его по замкнутому контуру. Эдакий калорифер. Собственно, фото самой камеры:


Видно два отверстия в конце камеры. Это и есть контур. В одно отверстие воздух всасывается из другого выходит уже нагретый. Вот крупнее:


В правом отверстии установлен на всос производительный серверный вентилятор. Внутри установил нихромовый нагреватель. Хотел купить готовый, но в радиусе 50 метров от дома не нашел подходящего по параметрам пришлось ехать в Чип и Дип за куском слюды и нихромовой проволокой. собрал примерно похожую конструкцию и запихнул ее внутрь контура:


Оригинальное фото постараюсь выложить в полном обзоре после окончания строительства. А пока ниже на фото сам контур:


В это продолговатой коробочке установлен нагреватель и вентилятор. Слева виден кусок защитной решетки. Посредине мотор оси Z. Если что, то это фото нижней задней части принтера. Здесь же снизу установлен выдвижной лоток для катушки пластика. Лоток нужен не просто для удобства, выше я уже писал, что в нем создается подходящий для хранения пластика микроклимат. Всем известна проблема гигроскопичности пластика. Обычно с ней борются при помощи герметичных пакетов с силикагелем и это нормальное решение. Я пока не изобрел для своего Wanhao тремокамеру, всегда пользовался следующим способом не разрывал полностью пакет с катушкой пластика, а делал маленькое отверстие, через которое просовывал конец пластика. Кое как подобная конструкция защищала катушку. Но что делать если я у мамы рукожоп и пластик уже мокрый. Нормальные пацаны жарят его в духовках, сушилках и иже с ними девайсах. Выход? Выход! Таким образом лоток я сделал герметичным, вколхозил в него несколько видоизмененный термодевайс из термокамеры, воткнул термовлагосенсор и запилил в контур емкость с силикагелем. Алгоритм работы такой: Открываем лоток вставляем катушку пластика загружаем пластик (полуавтоматика об этом ниже) закрываем лоток. Автоматика определяет факт замены катушки и, если лоток закрыт начинает внутри гонять холодный воздух. Если пластик влажный, сенсор это определит и включит нагреватель. Нагретый воздух проходит через фильтр из силикагеля. Вся эта лабуда работает до тех пор, пока влажность не достигнет установленных значений. Процедуру можно выполнить в ручном режиме из меню. Насчет полуавтоматической загрузки пластика. Тут пока я не определился. В первом варианте у меня был прямо в лотке установлен дополнительный мотор подачи пластика. То есть достаточно было просунуть в приемное отверстие конец пластика, как его тут же подхватывал мотор. Но в данном варианте не факт, что хватит места. Ладно, хватит текста вот фото необшитого каркаса лотка:


В передней части лотка виден контур нагрева поток как бы непрерывно обволакивает катушку. Посреди контура отсек для силикагелевого фильтра. Затем на упорный подшипник будет установлен диск под катушку. В общем эту фичу предлагаю взять на вооружение сообществу. Теперь другая фича. В самой термокамере температура может быть достаточно высокой, такое понятное дело не понравится двигателям. Значит двигатели необходимо вынести за пределы термокамеры. Экструдер в том числе. Реализовал я сие таким образом, как видно на фото:


Это алюминиевые пластины с вырезами разного размера, положенные друг на друга особым образом. Подобная конструкция позволяет двигаться головке по двум осям и при этом не нарушать внутренний микроклимат. Вот как это выглядит сверху:


В центре экструдер без кинематики лежит на квадратных листах алюминия. Да это алюминий. Да вижу текст. Нет не читал что там написано. Потому, что это листы от типографского аппарата. Купил в Сделай сам. Нет не дорого :)

На самом деле недостаточно все просто разместить как на фото выше, еще необходимо соответствующие углы всех листов связать резинкой или пружинкой, тогда листы не будут крутиться и перемещение их будет линейно. На фото ниже рядом с блоком нагревателя, в листе алюминия видно отверстие:


Это для обдува детали. Тут я применил не совсем стандартный подход. Время покажет правильность/неправильность подобного решения, а пока опишу саму суть. Возможно кто-то заметил, что на экструдере установлен водоблок а не обычный вентилятор охлаждения. Ну то есть подразумевается использование водяного охлаждения. Дело вовсе не в том, что я собираюсь загружать в экструдер алюминиевую проволоку и надобно бы охлажденьице да помощнее. Нет. Задача попробовать охлаждать длинные мосты и первый слой детали на поддержке ОООЧЕНЬ холодным воздухом. Мосты что бы не прогибались. Первые слои что бы не прилипали к поддержке. ОООЧЕНЬ холодный воздух (относительно конечно) я буду получать при помощи элемента Пельтье, который не столько охлаждает, сколько создает разницу температур по разные стороны от элемента. Соответственно, чтобы получить ОООЧЕНЬ холодную первую поверхность, надо бы хорошенько охладить вторую поверхность, для чего я и использую водяное охлаждение. И снова фотки:

Слева-направо послойно: водоблок, элемент Пельте, самодельный радиатор, MK8 механизм подачи, скоба, мотор подачи.


Справа-налево послойно: водоблок, элемент Пельте, самодельный радиатор, MK8 механизм подачи, скоба, мотор подачи.


Лажа, с которой я столкнулся при изготовлении всей этой лабуды была в том, что я не смог найти подходящего радиатора. Пришлось колхозить из алюминиевого профиля. Но самое страшное то, что его надо было не просто нарезать нужного размера, но и спаять. Алюминий. Спаять. Паяльником. Таки пошел я искать флюсы и припои для алюминия. Накупил реально кучу всего. Три жидких флюса, два каких-то порошка, и два припоя с кадмием (Вообще я отношусь к тому типу людей, который предупреждения об опасности воспринимает примерно так: Хм. Здесь написано, что если я посмотрю на этот порошок, то у меня сначала отвалиться задница, потом вырастут рога и через 12 секунд наступит неминуемая смерть мозга. Ну ок, убедили, в салат его добавлять не стану. Что бы вы понимали, когда изготавливаю платы, я их обезжириваю разумеется в щелочи. Перчатки одевать лень, тем более за десять секунд полоскания ладоней в щелочи с ними ничего не случиться. Но щелочь штука скользкая, потому потом ее нейтрализую, окуная руки после щелочи в кислоту. Я всю эту ахинею к чему пишу. Люди. Кадмий РЕАЛЬНО штука опасная. Это я тупой, случайно до сих пор жив. Но если вы вдруг будете паять люминьку кадмиевым припоем, делайте это ОБЯЗАТЕЛЬНО под вытяжкой!) Короче не сработало Не хочешь в лоб, пойдем хитрым путем. Сделал я гальванованну, разбодяжил купорос электролитом для аккумов, натырил у мамки из удлинителей цветмета, подключил все это к заряднику от мобилки и оасдил слой меди на алюминиевые детали. Теперь можно паять. Вот такую красоту я получил по итогу:



Видно, что таки усилил уголки винтиками-шпунтиками, но средний радиатор между собой спаян.

Работы осталось еще немеряно. Надо собрать все отдельные элементы и механизмы в единое устройство, разместить электронику, провести электрику, обшить лоток, прикрепить дверцу (она у меня кстати на направляющих сдвигается вверх, на ней же размещен экран) и все это дело зашить внешним кожухом. Текущая работа над принтером убила 3 месяца времени, пару пальцев на руках и таки электролобзик. Как уже выше писал, здесь речь идет не о похвастаться: Смотрите какую крутую туку сделал, а в первую очередь хотел рассказать о примененных технических решениях. Опыт использования закрытой термокамеры однозначно говорит в положительную сторону по части печати ABS и другими пластиками, дающими усадку. Что касается обдува ОООЧЕНЬ холодным воздухом, то тут еще необходимы тонкие подстройки.

Ну а на этом пока все. Всем спасибо и надеюсь кому-то будут интересны идеи из проекта.



VPS серверы от Маклаудx быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Чем поживиться айтишнику на барахолке?

28.05.2021 10:14:13 | Автор: admin


Приезжая в Питер, нужно обязательно посетить Эрмитаж, Русский музей и блошиный рынок на Уделке. Я бываю там не менее пары раз в год и хожу в это уникальное место, как в музей. Там можно найти не просто всё, а вообще всё, даже то, чего искать не собирался. Антикварную посуду и копаные старинные монеты, советские документы и виниловые пластинки, самовары и пионерские горны, а еще кучу всевозможного барахла, которое слегка помятые граждане продают прямо с разложенных на земле клеёнок.

Немного покопавшись в этом свалочном клондайке, порой можно отыскать самые настоящие сокровища, или купить подешёвке какую-нибудь занятную вещицу. Кому как, а лично мне доставляет несказанное удовольствие пройтись вдоль рядов разномастных товаров, прицениться, пообщаться с продавцами и другими покупателями. Это заряжает позитивной энергией.




В очередной свой визит на Уделку я вдруг подумал: а отчего бы не взглянуть на этот блошиный рынок глазами айтишника? И я стал целенаправленно высматривать среди разложенного под ногами прохожих барахла всевозможные компьютерные девайсы, интересоваться ценами, торговаться. Понятно, что покупка любой техники сложнее лопаты на барахолке это всегда лотерея. Работает устройство, или нет большой вопрос, проверить обычно не представляется возможным, остается только верить на слово продавцам. Но тем интереснее. Я люблю приятные сюрпризы. Итак, чем же может поживиться айтишник на блошином рынке, кроме кучи анонимных сим-карт от основных операторов, что продаются там на каждом углу?



Среди стареньких видях форм-фактора PCI и AGP, а также разбросанных тут и там модулей памяти иногда попадаются почти целые устройства. Например, вот за этот очаровательный Acer Aspire 5030 на AMD Turion 64 продавец попросил 1000 рублей, но ноут оказался без блока питания, нижней крышки и со снятым кулером. Потому покупать его я отказался. Цена тут же упала до 700 рублей, но я остался непреклонен.



Нетбук Samsung выглядит так, словно по нему долго топтался Камаз. Без аккумулятора и винта продавец оценил его в 500 рублей, материнку отдавал за полтиник.



Поблизости обнаружилась целая коробка роутеров выбирай на любой вкус: от 50 до 150 рублей. Работоспособность, ясное дело, величина неизвестная.



Обалденная вещь винтажный механический арифмометр, жутко тяжёлый, но очень атмосферный. Неисправен, но можно отреставрировать, либо просто поставить на полку как есть и пугать им гостей. 150 рублей.



Китайские 3D-ручки по 300 рублей: где-то неисправен двигатель подачи пластика, где-то нагревательный элемент. При желании можно собрать из двух одну рабочую.



Планшет Samsung Galaxy Tab 3 с треснутым экраном, 300 рублей. Включать, по словам продавца, не пробовали. Когда, повертев в руках, я положил его на место, владелец вкрадчиво спросил: Что, дорого? А за сколько возьмешь?.



Материнка ASUS P5GDC-V на 915-м чипсете с каким-то камнем на борту, по уверениям хозяина, исправная. Стольник. Платы серии P5 у ASUS вообще практически вечные, так что на ее базе вполне можно собрать какую-нибудь пишущую машинку. За дополнительный стольник продавец предложил выбрать из обувной коробки для нее какой-нибудь оперативки там была представлена целая куча россыпью.



Игровых рулей на рынке нашлось множество, все по 150 рублей, большинство в комплекте с педалями. Половина из них даже с USB-портом, часть под игровой. Один руль был с обратной связью, однако работает девайс или нет, опять же, непонятно.



Системник в сборе от несуществующей уже ныне фирмы Кей. Характеристики неизвестны. Степень исправности неизвестна. Населена вирусами. Цена? Триста (шутка про тракториста). В принципе, один блок питания там стоит примерно столько же. Если он работает, конечно.



Кнопочных телефонов и стареньких смартфонов на барахолке продается великое множество. Цены колеблются от 100 рублей и докуда хватит наглости продавца. В целом этим ассортиментом вполне можно оснастить какой-нибудь колл-центр ведущего российского банка, а потом регулярно заменять аппараты после каждого шмона.



Единственное стопроцентно работающее вычислительное устройство на рынке счеты канцелярские деревянные. 150 рублей. Всю жизнь мечтал научиться с ними обращаться, да так и не удосужился.



Мониторов разной размерности и калибров на рынке продается уйма, прайс, опять таки, начинается от 300 рублей. При желании можно купить и слегка побитый телевизор во всю стену для просмотра любимых сериальчиков. На вопрос сколько стоит? продавец лукаво поинтересовался: а сколько дашь?. Да нисколько: я это чудовище на себе просто не утащу.



Среди покоцаных и не очень планшетов я внезапно обнаружил первый iPad на 64 гига, модель А1337. Айпэд явно летал углом на твердую поверхность, но экран и тач не пострадали, корпус тоже оказался не слишком сильно затерт аппарат определенно берегли и носили в чехле. Купил за 300 рублей.



Вскрытие показало, что в результате падения на шлейфе зарядки отлетел один из навесных элементов, из-за чего аккумулятор оказался высажен в нуль и больше не заряжается. Так что залочен планшет, или нет, проверить не удалось. После замены шлейфа узнаем :).

Понятно, что какую-то серьезную выгоду от путешествий на блошиный рынок получить трудно: продают там, в основном, хлам, да и тот в сильно убитом состоянии. Ну, например, тот же iPad можно загнать на Авите по запчастям примерно за 1500 (один дисплейный модуль легко уйдет за 1000), но это, признаться, так себе бизнес. Я посещаю барахолки по иной причине. Там нужно наслаждаться атмосферой, неторопливо прогуливаясь меж рядами, а потом купить какой-нибудь старый винрарный девайс, чтобы отремонтировать его и радоваться полученному результату.

Так я отреставрировал несколько старых ноутбуков родом из 90-х (включая великолепный Apple PowerBook), классическую букашку БК 0010-01 А еще исполнил детскую мечту приобрел на рынке и привел в порядок редкую игру от завода Электроника, родственницу знаменитой Ну, погоди!. Правда, в моей Электронике с романтическим названием Тайны океана главным героем выступает не Волк с корзинкой, собирающий куриные яйца, а осьминог, который ловит водолазов.



В целом, прогулка по барахолке позволяет не просто хорошо провести время, но и поностальгировать: где еще вы найдете такой же очаровательный развал с фильмами и музыкой разных эпох? Можно приобрести на соседнем лотке плеер Квазар, вставить в него батарейки, взять за стольник аудиокассету, и под залихватские аккорды Юры Хоя отправляться на поиски приключений. Я здоровый, как кабан, я имею свой баян Годы идут, а вечные ценности остаются!



Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Перевод Как самостоятельно собрать жидкостную линзу с настраиваемым фокусным расстоянием

31.05.2021 10:13:24 | Автор: admin

Эта инструкция расскажет вам, как создать свой собственный объектив с регулируемым фокусным расстоянием, используя простые компоненты. Эта линза сможет изменять форму и, следовательно, фокусное расстояние, в зависимости от количества жидкости внутри нее. У него также будет мягкая поверхность, на которую мы можем надавить, чтобы исказить все, что мы видим через линзу!

Предупреждение: мне потребовалось несколько попыток сделать линзу, которая не протекала. Я надеюсь, что это руководство сработает с первого раза, но если нет, задайте вопрос в комментариях! Кроме того, фотографии в этом руководстве сделаны в течение нескольких разных попыток, поэтому могут не совсем точно соответствовать тому, что получится у вас. Наконец, в этом руководстве используется лазерная резка и сварка акриловым растворителем, поэтому всегда соблюдайте соответствующие меры безопасности при работе с опасными или неизвестными веществами и инструментами!

Шаг 1: Справочная информация



Прежде чем мы начнем, позвольте нам сначала немного рассказать об оптике!

Свет меняет свое направление, проходя через разные среды (явление, называемое преломлением). В линзах мы тщательно контролируем угол, под которым свет проходит из одной среды (воздуха) в другую (стекло или пластик, из которого состоит линза) и обратно, чтобы сфокусировать или иным образом видоизменить свет. Большинство объективов камер состоят из ряда отдельных элементов, которые работают совместно для коррекции различных типов аберраций (оптических ошибок) и создания плоского сфокусированного изображения на плоскости изображения (датчик камеры). Но если все элементы объектива имеют фиксированный размер и форму, как объективы камеры фокусируют или масштабируют изображение? Когда объектив камеры меняет масштаб или фокус, он перемещает отдельные элементы объектива (или группы элементов) вперед и назад по отношению друг к другу внутри объектива.

Шаг 2: Подбор материалов



В этом руководстве мы собираемся создать только один элемент объектива, но в отличие от элементов в типичном объективе камеры, наш сможет изменять форму (что приведет к изменению его оптических свойств). Это потому, что одна сторона нашей линзы будет иметь прозрачную силиконовую мембрану, которая будет менять форму в зависимости от количества жидкости внутри линзы. Другая сторона нашей линзы будет плоской. Наша линза сможет изменять форму от плоско-вогнутой линзы (одна сторона плоская, одна сторона вогнутая) до плосковыпуклой линзы (одна сторона плоская, одна сторона выпуклая) линзы и всего, что между ними!

Ниже приведены материалы и инструменты, необходимые для этого проекта:

Материалы :

  • Прозрачный акрил толщиной 3.175 мм;
  • Шприц и трубка;
  • Силиконовый герметик;
  • Акриловый растворитель (в качестве альтернативы: вы можете использовать акриловый клей);
  • Прозрачный силиконовый лист;
  • Пропиленгликоль;
  • Крепежные винты и гайки;

Шаг 3: Подбор инструментов





Инструменты:

  • Лазерный резак * ;
  • Наждачная бумага (подойдет любая зернистость);
  • Зажимы для удержания деталей во время склеивания их вместе.

* Примечание: для этого проекта не обязательно использовать лазерный резак, и я знаю, что доступ к нему может быть затруднен! Тем не менее, данное описание предназначено для лазерного резака, потому что я использовал именно его. Если вы найдете другой способ сделать жидкую линзу, расскажите о нём в комментариях (а еще лучше, напишите свою инструкцию!)

Шаг 4: Проектирование / подготовка файла для лазерного резака


Некоторые размеры, которые вы захотите проверить и, возможно, скорректировать для вашей конкретной сборки, включают:

Размер отверстия для трубки: он должен быть примерно таким же, как диаметр трубки, которой вы располагаете. Оставшееся пространство мы заполним силиконовым герметиком.

Размер отверстий для болтов: отверстия для крепежных болтов должны соответствовать имеющимся у вас болтам. Я бы не стал располагать их рядом с краями или уплотнительным кольцом.

Уплотнительное кольцо: в этой конструкции акриловое уплотнительное кольцо вырезается из того же куска акрила, который образует канавку для уплотнительного кольца. Чтобы обеспечить достаточный зазор для прохождения силиконового листа вокруг уплотнительного кольца, я добавил дополнительные прорези внутри и снаружи уплотнительного кольца. Это означает, что уплотнительное кольцо и канавка образованы 4 концентрическими кругами в конструкции. Возможно, потребуется разрезать несколько уплотнительных колец и отрегулировать их толщину, пока вы не найдете подходящее, но не протекающее!

Чертежи для резки

Шаг 5: Лазерная резка акриловых деталей



Вырежьте детали из листа акрила, используя настройки для конкретной машины, которую вы используете!

Шаг 6: Припаяйте нижнюю половину линзы растворителем



Удалите бумагу со слоев 1-3 и положите их поверх другого, убедившись, что их отверстия для болтов совпадают (для этого вы можете использовать сами болты). В хорошо проветриваемом помещении тщательно спаяйте или склейте слои растворителем, следя за тем, чтобы растворитель не попал на открытый центр слоя 1.

Шаг 7: Установите трубку в нижнюю половину



Далее мы установим трубку, которая изменяет количество жидкости внутри линзы.

  • Зашкурьте конец трубки и внутреннюю часть акрилового канала, где она будет сидеть, используя наждачную бумагу, чтобы у силиконового герметика была поверхность, к которой он может прилипнуть;
  • Нанесите достаточное количество силиконового герметика;
  • Будьте осторожны, чтобы не замазать конец трубки.

Шаг 8: Продолжайте сборку со слоем # 4



Добавьте слой 4 поверх нижней половины и припаяйте растворителем. Убедитесь, что в районе трубки нет зазоров. Возможно, вам понадобится использовать зажимы, чтобы обеспечить хорошее уплотнение. На этом этапе трубка должна быть установлена на своем месте.

Шаг 9: Продолжите сборку со слоем # 5 (слой уплотнительного кольца)



Слой 5 состоит из трех частей: внешней части, уплотнительного кольца и самой внутренней части. Приклейте внешнюю и внутреннюю части к слою 4. Пока оставьте уплотнительное кольцо в стороне.

После того, как клей высохнет, хорошо отшлифуйте все детали вокруг канавки для уплотнительного кольца и само уплотнительное кольцо, чтобы избежать острых краев, которые могут порезать силиконовый лист.

Шаг 10: Добавьте слой силиконового герметика на дно канавки под уплотнительное кольцо



Одна из первых вещей, чему меня научил этот проект, это то, что очень сложно сделать вещи воздухо- или водонепроницаемыми. Жизнь всегда пробивает себе дорогу, и пропиленгликоль тоже! Добавление капель силиконового герметика на дно канавки для уплотнительного кольца, определенно помогает удерживать пропиленгликоль на месте, внутри линзы!

Шаг 11: Продолжайте сборку с помощью силиконового листа и слоя 6



Честно предупреждаю, что это один из самых сложных шагов в этой инструкции, так что перед этим этапом лучше устроить себе перерыв...

На этом этапе мы пытаемся закрепить силиконовый лист на верхней части линзы и соединить все вместе с помощью крепежных болтов и гаек. Это должно выглядеть примерно так:

  1. Удерживайте силиконовый лист относительно туго над верхней частью линзы;
  2. Попросите друга сдавить уплотнительное кольцо вместе со слоем 6;
  3. Установите зажимы по периметру, чтобы удерживать всё вместе;
  4. Один за другим, замените зажимы на болты, убедившись, что силиконовый лист все еще прижимается уплотнительным кольцом.

Шаг 12: Проверка на протечки!




Если вам удалось пройти предыдущий шаг, не разорвав силиконовый лист, поздравляем! Теперь проверьте герметичность, подув в трубку. На видео из линзы выходит воздух: когда я дую, силиконовый лист раздувается, но когда я перестаю дуть, воздух откуда то выходит наружу. :( Надеюсь, ваша конструкция на этом этапе будет держать свою форму!

Шаг 13: Заполняем!




На этом этапе, если ваша линза герметична, вы можете заполнить ее пропиленгликолем и использовать.

Для этого:

  1. Наполните шприц пропиленгликолем;
  2. Присоедините шланг к линзе;
  3. Постепенно добавляйте немного пропиленгликоля и, одновременно, удаляйте воздух из линзы;
  4. Не переполняйте линзу!

Шаг 14: Пробуем в работе



На данный момент у вас должна быть рабочая линза с регулируемым фокусным расстоянием! Очень круто! Что дальше?

Что ж, есть много проектов, в которых можно было бы использовать такие линзы. Вы можете использовать его перед проектором или камерой для необычных эффектов, или использовать его как увеличительное стекло, или час за часом прижимать пальцы к его липкому совершенству (просто посмотрите на эти ногти!). Это зависит от вас. В приведенном выше видео есть примеры того, как я тестировал / играл со своим объективом.

Пожалуйста, дайте мне знать в комментариях, как у вас получается, нашли ли вы способ улучшить этот процесс или обнаружили ещё какой то способ использования этого объектива.

Шаг 15: Дальнейшие исследования


Надеюсь, этот объектив только начало новых оптических проектов. Этот проект во многом был вдохновлен некоторыми проектами, приведенными ниже:

Практический опыт с жидкими линзами


Очки с регулируемыми линзами

Линзы, изготовленные с применением ЧПУ / 3D печати.

Прим. переводчика:Все современные устройства находится в бесконечной гонке в поисках всё большей и большей компактности своих компонентов. Благодаря этому происходит и ускорение научно-технического прогресса, и постоянное уменьшение электронных компонентов, а также механических систем.

Оптика тоже не осталась в стороне от действия этих тенденций. Если на предыдущем этапе, для уменьшения оптических систем использовались плоские линзы Френеля, то на современном этапе наука вплотную подошла к использованию линз с изменяемыми свойствами.

Ещё в 1995 году один из французских физиков предложил использовать жидкие линзы для применения их в фотоаппаратах:



И буквально в марте этого года вышла новость о том, что фирма Xiaomi собирается внедрять подобные линзы в своих смартфонах будущих поколений:





Облачные серверы от Маклауд быстрые и безопасные.

Зарегистрируйтесь по ссылке выше или кликнув на баннер и получите 10% скидку на первый месяц аренды сервера любой конфигурации!

Подробнее..

Перевод Проект VG64 добавляем второй монитор к Commodore 64

11.06.2021 14:22:51 | Автор: admin

После появления идеи добавления второго дисплея к Commodore 64 я довольно быстро реализовал этот проект. Все железо уместилось в картридж стандартного размера (вместе с коннектором DE-15). Видеовыход совместим с VGA (31 кГц).

Внутри картриджа 128 КБ SRAM для кадрового буфера и простой 1-битный ЦАП.

TL;DR


Вот так выглядит плата, размещенная внутри картриджа. Загрузить исходник можно здесь.


Программный интерфейс


Картридж можно поместить в любую часть 64 КБ адресного пространства, включая I/O1 или I/O2. Есть Verilog код для представления либо в окне в буфере кадра @EXPROM, что заберет 8 КБ памяти Basic, либо основанный на регистрах подход, экономящий оперативную память.

В приведенных примерах для регистров управления используется I/O1 на $DE00. У вас может возникнуть желание изменить поданный пример, если есть конфликт с каким либо другим эддоном (второй SID-чип и т.п.). В целом, существует поддержка специального токена, который позволяет избежать конфликтов, но у меня нет дополнительного ПО, которое эти конфликты вызывает.

Регистры

IOBASE = token
IOBASE+1 = lsb address
IOBASE+2 = msb address
IOBASE+3 = data

Кадровый буфер линейный, использовать его несложно, подобно собственным режимам C64 с растровым отображением. В SRAM его начало $00000.

Вывод видео


Вне зависимости от выбранного режима видео выводится с pixel rate в 25 МГц благодаря встроенному генератору 100 МГц. Этот параметр близок к стандарту в 25,175 МГц для экрана с разрешением 640x480 при FPS 60 Гц. Соответственно, любой подключаемый мною дисплей показывал изображение корректно и без проблем. Вертикальная и горизонтальная синхронизация, а также области гашения настроены на правильную полярность и длину для запуска этого режима. Возможны две интерпретации данных кадрового буфера: режим высокого разрешения 640x480 1 бит на пиксель и многоцветный режим низкого разрешения 320x480. Оба режима palette direct.

Железо


Аппаратное обеспечение достаточно простое: регулятор 3,3 В, CPLD, генератор и SRAM. SRAM тратит половину своего времени на ответы хосту, и еще половину на загрузку пиксельных данных. Используемый здесь CPLD, Xilinx 95144XL, устойчив к 5 В, поэтому он установлен на шине расширения C64, хотя и запитан от регулятора 3,3 В вместе с остальным оборудованием.


Используются почти все ресурсы CPLD. Я надеялся поместить один аппаратный спрайт для указателя, но для этого просто не осталось места.

Для тех, кто будет печатать кулеры, в модели STL есть все необходимое, причем в стиле C64.

Важный момент вам понадобится программатор JTAG для загрузки битового потока в CPLD.

И еще картридж не работает с платой Ultimate 64. Более того, установка картриджа на эту плату может вызвать повреждение картриджа. Зато все работает со всеми версиями плат C64, C128 и C64 Reloaded. Точно не знаю, совместим ли картридж со всеми версиями C64 или C128, выпущенными Commodore, но я никаких проблем не вижу.



Технические характеристики


  • 4-х слойная печатная плата. Включены файлы Gerber. Скос на краю значительно увеличивает стоимость, поэтому просто отшлифуйте его вручную (обязательно сделайте это, в противном случае можно повредить female-контакты).
  • Корпус картриджа сверху и снизу. Включены файлы STL.
  • Алюминиевый поляризованный конденсатор, 22 мкФ, 6,6 мм
  • Переключатель мгновенного действия, например pn 430156043726, если нужна кнопка reset для вашего компьютера.
  • Коннекторы .1"
  • резисторы 0603: 2 499R, 3 300R, 2 30R
  • конденсаторы 0603: 10 0,1 мкФ, 7 0,01 мкФ
  • 2 светодиода 3,2x1,6 (полезно для отладки, но не обязательно)
  • XC95144XL-5TQ100C CPLD (скорость не важна)
  • JEDEC 128kx8 SO Async SRAM a la AS6C1008-55PCN (не медленнее)
  • Прямой угловой разъем VGA высокой плотности с отверстиями, гнездовой разъем DE15

Verilog


Я использовал Xilinx ISE 14.5, поскольку не нашел открытого набора инструментов для этих CPLD. Если у кого-то есть такая информация, то поделитесь.

Упаковка пикселей


В режиме высокого разрешения каждый бит соответствует одному пикселю. 1 = белый, 0 = черный. Адреса перемещаются от (0,0) в верхнем левом наиболее видимом положении к нижнему правому (639 479), по столбцу, затем по строке. Бит 7 в каждом байте это первый пиксель.
В многоцветном режиме пиксели выводятся с той же скоростью, что и в монохромном режиме, но каждый цветовой канал имеет разное разрешение. Зеленый это 1/2 pixel rate, а красный и синий 1/4 pixel rate. Сопоставление битового шаблона с цветовым каналом побайтно (фрагментарно) и составляет:

G0 G1 G2 G3 R0 R1 B0 B1

В то время как экранное представление каждого байта буфера кадра выглядит следующим образом:

R0 R0 R0 R0 R1 R1 R1 R1
G0 G0 G1 G1 G2 G2 G3 G3
B0 B0 B0 B0 B1 B1 B1 B1

Преобразование изображений для отображения с помощью ImageMagick, монохромный режим:

convert input.tiff -resize 640x480 -colors 2 -depth 1 output.mono

Цветной режим:

convert input.tiff +dither -posterize 2 -resize 640x480 output.tiff
convert output.tiff -separate channel%d.png

Код написан на Python мне этот вариант показался самым простым:

from PIL import Imagefrom array import *import numpy as npir = Image.open("channel0.png")ig = Image.open("channel1.png")ib = Image.open("channel2.png")ir = ir.resize((640,480))ig = ig.resize((640,480))ib = ib.resize((640,480))r = ir.load()g = ig.load()b = ib.load()arr=np.zeros((480,80,8))out=np.zeros((480,640))for y in range(0,480):        for x in range(0,80):                # 0 1 2 3 is green level                # 4 5 is red level                # 6 7 is blue level                # GREEN                        arr[y][x][0]=(g[x*8+0,y]+g[x*8+1,y])/2                arr[y][x][1]=(g[x*8+2,y]+g[x*8+3,y])/2                arr[y][x][2]=(g[x*8+4,y]+g[x*8+5,y])/2                arr[y][x][3]=(g[x*8+6,y]+g[x*8+7,y])/2                # RED                arr[y][x][4]=(r[x*8+0,y]+r[x*8+1,y]+r[x*8+2,y]+r[x*8+3,y])/4                arr[y][x][5]=(r[x*8+4,y]+r[x*8+5,y]+r[x*8+6,y]+r[x*8+7,y])/4                #BLUE                arr[y][x][6]=(b[x*8+0,y]+b[x*8+1,y]+b[x*8+2,y]+b[x*8+3,y])/4                arr[y][x][7]=(b[x*8+4,y]+b[x*8+5,y]+b[x*8+6,y]+b[x*8+7,y])/4for y in range(0,480):        for x in range(0,80):                for bit in range(0,8):                        arr[y][x][bit] = int(round(round(arr[y][x][bit])/255))newfile=open("output.bin","wb")for y in range(0,480):        for x in range(0,80):                out[y][x] = int(arr[y][x][0] + arr[y][x][1]*2 + arr[y][x][2]*4 + arr[y][x][3]*8 + arr[y][x][4]*16 + arr[y][x][5]*32 + arr[y][x][6]*64 + arr[y][x][7]*128)                newfile.write(out[y][x].astype(np.ubyte))newfile.close()

Демонстрационное видео:


Собираем и припаиваем:




По этой ссылке можно загрузить все необходимые для работы файлы.

Подробнее..

Перевод Алюминиевый профиль как универсальный ресурс для сборки чего угодно. Часть 2

15.06.2021 00:15:33 | Автор: admin

В прошлой статье мы говорили о типах алюминиевого профиля, видах крепежа и других нюансах. Сейчас наступила очередь добавить к профилю еще один отличный инструмент 3D-печать. Воистину, используя алюминиевый профиль и напечатанные на принтере пластиковые детали можно собрать все, что угодно.

Те из нас, кому повезло иметь собственные мастерские, могут применять деревообработку, сварку или металлобработку. Но если мастерской нет или она небольшая, либо использование всех этих методов по какой-то иной причине невозможно, лучше обратиться к 3D-печати и алюминиевому профилю.

Все можно построить из профиля


В прошлой статье уже были приведены в качестве примера некоторые проекты, где использовался алюминиевый профиль. Например, вот этот регулируемый модульный рабочий стол из ДСП и профиля.


При помощи 3D-принтера можно создавать нестандартные соединения для алюминиевого профиля, которые отличаются от тех, что есть в большинстве каталогов. Как правило, стандартные крепежи предназначены для соединения профиля под прямым углом. При помощи печати можно создавать соединения любой формы.


С их помощью крепить профиль можно под любым углом 30, 45 или 60 градусов изготовить подобное несложно. Пример нестандартного пластикового соединения показан выше.

Нестандартный не означает сложный


Это действительно так мы можем объединить купленные компоненты (профиль и часть крепежа) с изготовленными собственноручно элементами. Алюминиевый профиль при этом обеспечивает общую структуру изделия, а пластик связывает направляющие вместе, задавая определенную форму и поддерживая ее. Давайте посмотрим, как можно изготовить крепления для построения нестандартных углов.


Проектирование креплений выполняется в любой CAD-программе. Как правило, это задача обработки прямоугольного твердого тела с выемкой нескольких цилиндров для создания монтажных отверстий. Соединение с трехсторонним профилем, выполненное на 3D-принтере, обычно достаточно прочное, чтобы обеспечить нужную жесткость конструкции. Начать проектировать можно с малого, постепенно совершенствуя навыки.

Пример: сложные углы без проблем


Мой проект, робот из алюминиевого профиля, слишком сложен, чтобы печатать его как единое целое. Поэтому я разделил корпус на отдельные части, связанные вместе креплениями, напечатанными на 3D-принтере.


Посмотрите на углы, под которыми закрепляются элементы профиля. Ни один поставщик крепежа не предоставит нечто подобное, поскольку соединение нестандартное. Более того, и без того кастомизированный пластиковый элемент усложнен дополнительными отверстиями для подшипников и некоторых других элементов. Это задача как раз для 3D-принтера.

Цель статьи показать возможности самодельных соединений, так что пока не будем углубляться в сложные темы. Но все же стоит отметить важные для нас особенности 3D-печати, которые имеют значение для создания сложных структур.

Так, ориентацию слоя и другие параметры пластиковых деталей необходимо тщательно подбирать, поскольку, если превысить расчетный лимит (нагрузка на изгиб и т.п.), деталь просто поломается, разламываясь вдоль слоя. Для каждой оси стоит использовать минимум два крепежа, разнесенные между собой на определенную ширину для распределения рабочей нагрузки. Использование лишь одного приведет к повышенной нагрузке и возможному нарушению конструкции.




Небольшая хитрость: замена т-образной гайки, вставки и чего угодно


После того, как индивидуальное соединение для проекта готово, мы сталкиваемся с другой проблемой необходимостью приобретения специализированных крепежными элементами. В прошлой статье они подробно обсуждались. Чаще всего это вставки и гайки для Т-образного паза. Форма таких элементов специально предназначена для встраивания в паз алюминиевого профиля. Купить такой крепеж несложно, проблема не в его недоступности или редкости, а в том, что он достаточно дорогой.

Альтернатива использование обычных гаек вместо Т-образных. Стандартные гайки совместимы не со всеми разновидностями профиля, а лишь с Misumi 3 Series. Компания Misumi предлагает и специализированные гайки, которые стоят около 9 долларов за 100 штук. В то же время обычные M3 стоят примерно 0,88 доллара за 100 штук. Их мы и будем использовать, решив попутно парочку проблем.


Первая проблема обычная гайка, хотя и подходит по размерам к пазу в профиле от Misumi, не обеспечивает настолько же плотного и качественного сцепления с профилем, что специализированная гайка. Во-вторых, специализированный крепеж обычно удерживается на месте пружиной, но если использовать обычную гайку, никаких пружин мы не получаем. Получается, что лучше заплатить за специализированный крепеж, чтобы не было потом проблем?

Нет, поскольку у нас есть 3D-принтеры. И они способны распечатать то, что решит обе указанные выше проблемы. Плюс ко всему, собирать готовые элементы будет удобно. На картинке ниже показан пластиковый элемент, который и нивелирует проблемы. Во-первых, у этой детали есть небольшой выступ, который действует по аналогии со специализированной пружиной, закрепляя соединение. Во-вторых, этот пластиковый элемент облегает гайку, так что она держится не хуже, чем специализированная. Ну и в третьих, есть еще специализированный выступ (reposition hook), который дает возможность изменять положение крепления, не разбирая все соединение.


Толщина элемента соответствует ширине сопла 3D-принтера, что позволяет без проблем поместить пластиковое крепление в пазу профиля, экономить пластик и быстро печатать. Излишним будет говорить, что этот элемент одноразовый, вторично его использовать после разбора соединения нельзя.





Попробуйте этот способ крепления профиля возможно, он вам пригодится и станет основным.

Подробнее..

DIY регистратор молний

15.06.2021 20:16:32 | Автор: admin

Автор: Alex Wulff (из-за глюков хабраредактора не получилось оформить как перевод)

К старту курса о разработке на С++ мы перевели статью о персональном регистраторе молний небольшом устройстве, сообщающем об ударах молнии поблизости. Оно даже сообщает, на каком расстоянии ударила молния; при этом, по словам автора, собрать его самому обойдётся дешевле, чем купить в магазине. Ещё один очевидный плюс вы сможете отточить свои умения в схемотехнике.

В основу устройства положен детектор молний AS3935 с ВЧ-каналом производства DFRobot. Детектор обнаруживает электромагнитное излучение молнии и с помощью специального алгоритма преобразовывает эту информацию в информацию о расстоянии до удара.


Датчик может обнаруживать удары молнии на расстоянии до 40 км (25 миль) и определять расстояние до места удара молнии с точностью до 4 км (2,5 мили). Сам датчик довольно надёжен, но может срабатывать неверно, если устройство находится на открытом воздухе. Самодельное устройство может работать не так надёжно, как коммерческий регистратор молний.

Материалы
  • микроконтроллер-жучок (beetle) DFRobot #DFR0282. Это плата Arduino Leonardo очень малых размеров;

  • Gravity: датчик расстояния до молнии DFRobot #SEN0290;

  • зарядное устройство для литиевых аккумуляторов DFRobot #SEN0290;

  • аккумулятор LiPo, 500 мАч Amazon #B00P2XICJG;

  • пьезодинамик 5В, например Amazon #B07GJSP68S;

  • маленький скользящий переключатель;

  • монтажный провод (одно- или многожильный).

Инструменты
  • компьютер с бесплатным ПО Arduino IDE.

  • паяльник и припой;

  • пистолет для горячего клея;

  • машинка для зачистки концов провода от изоляции;

  • 3D-принтер (не обязательно).

1. Разработка схемы соединений

Схема устройства проста. Информация с датчика молнии передаётся по линиям SCL и SDA, плюс к этому одно соединение предусмотрено для звукового сигнала. Устройство питается от литий-ионного полимерного аккумулятора (LiPo), поэтому я решил встроить в схему зарядное устройство для такой батареи.

Рисунок AРисунок A

Схема устройства показана на рисунке A. Обратите внимание, что аккумуляторная батарея LiPo соединяется с зарядным устройством через штекерно-гнездовые разъёмы JST и не требует пайки.

2. Сборка схемы

Для сборки устройства лучше всего применить так называемую технику свободной сборки. Детали не крепятся к подложке (например к перфорированной плате) а просто соединяются проводами (рис. Б). Так устройство собирается гораздо быстрее и получается меньше по размеру. Правда, страдает эстетика... Но сомнительную эстетику никто не увидит, если сборку закрыть напечатанным на 3D-принтере корпусом. На видео выше показано, как я собрал схему методом свободной сборки.

Подсоедините жучок к зарядному устройству

Отпаяйте зелёные клеммы от зарядного устройства LiPo. Они бесполезны, но занимают пространство. Соедините положительную (+) и отрицательную (-) клеммы зарядного устройства аккумуляторной батареи LiPo с положительной (+) и отрицательной () клеммами на лицевой части жучка. По этим проводам первичное напряжение батареи LiPo будет подаваться непосредственно на микроконтроллер. Технически жучку требуется 5В, но от напряжения 4В батареи LiPo он всё равно будет работать.

Подключение датчика молнии

Обрежьте входящий в комплект четырёхконтактный кабель так, чтобы от провода осталось примерно 5 см. Зачистите концы и подключите кабель к датчику молнии, выполнив следующие соединения:

  • положительную (+) клемму на датчике молнии соедините с положительной (+) клеммой на жучке;

  • отрицательную () клемму на датчике молнии соедините с отрицательной (-) клеммой на жучке;

  • контакт синхронизации (C) на датчике молнии соедините с колодкой SCL на жучке;

  • контакт данных (D) на датчике молнии соедините с колодкой SDA на жучке.

Контакт IRQ на датчике молнии также должен быть соединён с колодкой RX на жучке. Соединение должно подходить к аппаратному прерывателю на жучке; колодка RX (контакт 0) единственный оставшийся контакт, поддерживающий прерывание.

Подключение зуммера

Подключите короткий провод зуммера к отрицательной () клемме на жучке (земля), а длинный провод к контакту 11. Сигнальный вывод зуммера должен быть подключён к выводу PWM (для обеспечения максимальной гибкости), здесь идеально подходит контакт 11.

Подсоединение переключателя

Подсоедините к аккумуляторной батарее переключатель. Он будет включать и выключать устройство. Сначала припаяйте два провода к соседним клеммам переключателя. Поскольку соединения переключателя довольно хрупкие, после пайки я также закрепил их горячим клеем.

Рисунок БРисунок Б

Обрежьте красный провод на аккумуляторной батарее примерно наполовину и к каждому концу припаяйте провода от выключателя. Эти соединения показаны с правой стороны на рисунке Б. Обязательно закройте открытые участки провода термоусадочной трубкой или залейте горячим клеем, так как они могут соприкоснуться с одним из заземляющих проводов и привести к короткому замыканию. После подсоединения переключателя к зарядному устройству можно подключить аккумулятор.

Окончательная компоновка

Рисунок ВРисунок В

Последний шаг избавляемся от беспорядочного скопления проводов и компонентов и приводим устройство в более презентабельный вид (рис. В). Это нужно делать аккуратно, чтобы не переломить провода. Приклейте горячим клеем зарядное устройство LiPo к верхней части батареи LiPo, затем сверху приклейте жучок. И последнее действие: приклейте к самому верху датчик молнии. Зуммер я вывел на сторону, как показано на рисунке В. В результате получилось несколько скреплённых между собой плат с торчащими из них проводами. Выводы переключателя я также оставил свободными, чтобы позже вставить их в корпус, распечатанный на 3D-принтере.

3. Программирование микроконтроллера

Запустите на компьютере Arduino IDE и убедитесь, что в меню ToolsBoard (ИнструментыПлата) выбрано значение Leonardo. Загрузите и установите библиотеку для датчика молнии. Затем скачайте код проекта и загрузите его на жучок. Программа предельно проста и очень легко настраивается.

Обнаружив молнию, устройство сначала подаст несколько звуковых сигналов, чтобы предупредить об ударе молнии поблизости, а затем подаст определённое количество звуковых сигналов, соответствующее расстоянию до молнии в километрах. Если молния находится на расстоянии менее 10 км (6,2 мили), детектор подаст один длинный звуковой сигнал. Если расстояние превышает 10 км (6,2 мили), расстояние будет поделено на 10, округлено, и устройство подаст соответствующее полученному числу количество сигналов. Например, если молния ударит на расстоянии 26 км (16 миль), то сигнала будет три.

Программное обеспечение запускается прерываниями от датчика молнии. Когда он обнаружит электромагнитное излучение от удара, на контакт IRQ подаётся высокое напряжение, оно вызывает прерывание в микроконтроллере. Датчик также может посылать прерывания для событий, не связанных с ударом молнии, например при превышении порогового уровня помех/шума.

В этом случае нужно отойти с детектором подальше от электронных устройств. Исходящее от таких устройств излучение может "забить" сравнительно слабое излучение удалённого удара молнии.

4. Распечатка корпуса на 3D-принтере (не обязательно)

Рисунок ГРисунок ГРисунок ДРисунок ДРисунок ЕРисунок Е

Корпус для устройства разработал я сам. Файлы для 3D-печати можно загрузить здесь. (рис. Г, Д). Верхняя часть корпуса прищёлкивается к нижней, никакого специального оборудования не требуется. Корпус достаточно просторный, чтобы в нём могло поместиться и ваше устройство, если вы будете собирать его по-другому (рис. Д). В любом случае вам ничего не мешает спроектировать аналогичный корпус самому:

  • определите габариты устройства;

  • спроектируйте устройство в программе CAD (мне нравится Fusion 360 студенты могут получить её бесплатно);

  • создайте корпус, перетащив профиль из модели устройства. Допуска в 2 мм будет вполне достаточно.

Обнаружение ударов молнии

Поздравляем, теперь у вас есть работающий регистратор молний! Как проверить, работает ли устройство? Ответ очевиден дождитесь грозы. Не знаю, насколько надёжен датчик, но мой сработал с первого раза.

Заряжать устройство очень просто достаточно подключить microUSB-кабель к зарядному устройству LiPo и дождаться, когда индикатор зарядки загорится зелёным цветом. Во время зарядки устройство должно быть включено, иначе энергия не будет поступать в аккумулятор!

Внесение изменений

Регистратор молнии можно сделать более полезным и удобным в использовании, если внести в программное обеспечение определённые изменения:

  • другие звуковые сигналы: чтобы устройство звучало приятнее, используйте библиотеку звуков Tone.h;

  • спящий режим: микроконтроллер ATmega32u4 (чип, на основе которого работает жучок) поддерживает аппаратные прерывания в спящем режиме. Устройство можно перевести в спящий режим, и любое поступившее от датчика молнии, событие заставит датчик реагировать. Спящий режим может значительно продлить срок службы батареи.

Этот материал показывает, что умение разрабатывать программы на С++, работа с электроникой, даёт широкие возможности и может быть полезна в самых разных сферах: представьте, например, что вы часто бываете на природе тогда о грозе лучше знать заранее и даже за километры, но не нужно дорогого оборудования. Если вам нравится чувствовать, как вы управляете железом, идущим по микросхемам током, то вы можете присмотреться к нашему курсу о разработке на С++, где студенты готовятся к началу карьеры разработчика ПО на этом сложном и мощном языке.

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Другие профессии и курсы
Подробнее..

Торцовочная пила своими руками

20.06.2021 18:15:44 | Автор: admin

Самоделка, самоделка, самоделочка! Что есть самоделка на самом деле, попробуем разобраться в этом на примере собранной мной торцовочной пилы.

Это не самый сложный станок, который мне довелось произвести на свет, тем более он делался для себя. Самоделка ли это надеюсь в ходе моего размышления, ответ на этот вопрос будет ясен ближе к концу статьи.


Концепция этого станка

У меня, наверное, как и у многих есть хобби я люблю что-либо изобретать, проектировать, собирать своими руками, но подход к этому довольно своеобразный. В одной из своих статей я уже рассказывал про изготовление станка с ЧПУ из того, что скопилось у меня в гараже (конечно, многое пришлось докупать). На этом станочке я многое уже попробовал изготовить, в том числе различные барельефы и поделки из дерева. Собственно, они мне и запали в душу, хочется продолжать работать с деревом с использованием станка с чпу, но при этом не хочется создавать полноценную столярку (хотя возможно к этому и приду).

Для того чтобы что-то сделать на станке с ЧПУ нужна заготовка и не всегда для этого хватает ширины или толщины доски, тогда приходится склеивать заготовку из нескольких кусков, получив щит. Предварительно заготовки для будущего щита надо обработать, сделать все плоскости ровными и по возможности перпендикулярными. У вас, наверное, сразу возник вопрос - почему бы просто не купить этот щит - потому что из твердых пород дерева щит не везде найдешь и еще меньше их сделано качественно, да и цена у этих щитов откровенно сказать - так себе.

Исходя из этих причин и куда весомее - собственного интереса, решил изготовить станочек, который мог бы торцевать и даже при желании распиливать доски вдоль, а также занимал не так много места.

Сразу признаюсь, что идея не нова, и я ее подсмотрел в Интернете, но исполнение немного отличается.

Конструкция

Когда я чуть выше написал про довольно своеобразный подход, то я имел ввиду проектирование всех своих изделий (станков, приспособлений и механизмов) в CAD программах со всеми вытекающими из этого плюшками.

Теперь непосредственно про конструкцию, в основу которой легла ручная циркулярная пила. Предварительно я ее обрисовал, получив упрощенную 3Д модель, далее вокруг пилы построил механизм перемещения и основание, попутно определившись с покупными элементами всей конструкции.

Ширина станочка получилась сама собой после обрисовки пилы, длина тоже определилась из того, что цилиндрические направляющие продаются не менее одного метра. Если брать 1 метр направляющей, то получится длина хода довольно маленькая, так как направляющая должна распилиться на пополам и каждую сторону необходимо отторцевать, как итог берем 2 метра.

Все элементы конструкции связаны металлическим листом толщиной 10 мм торцы основания и 6 мм подвижная каретка.

Изготовление

Начал с покупки комплектации, в местном магазине прикупил четыре каретки, опор для направляющих, два метра самой цилиндрической направляющей диаметром 25мм.

Всего необходимо изготовить 3 детали плюс торцануть в один размер направляющие и сделать в них отверстия с резьбой.

Три детали из листовой стали заказал на лазерной резке, для этого отправил технологам файл в векторном формате для раскроя на станке.

Направляющие с припуском на обработку распилил и отдал токарю.

После того как все детали были готовы и лежали в мастерской, мне осталось лишь проделать немного слесарной работы в виде нарезания нескольких резьб в листовых элементах.

Листовые детали отвез на пескоструйную обработку и полимерную порошковую покраску, параллельно с этим купил немного крепежа, наименование и количество которого определилось в ходе моделирование станка.

Через день забрал детали с покраски и собрал станок как конструктор, довольно приятное занятие.

В качестве чернового стола приобрел лист фанеры толщиной 15 мм.

Цена вопроса

Конкретные цифры приводить не буду, но для сравнения скажу, что изготовление станка, обошлось примерно в цену бюджетной торцовочной пилы из магазина.

Размышления на тему самодельности

Мыслей конечно по этому поводу много, и они могут показаться несколько сумбурными, но все же.

Можно пойти альтернативным путем и изготовить данный станок исключительно при помощи болгарки и дрели, не прибегая к конструированию и моделированию. При этом потратить кучу времени на выпиливание деталей болгаркой из ржавого листа, а вечером, принимая душ, высмаркивать черные сопли, превозмогая мышечную боль и усталость.

На покупнине конечно тоже можно сэкономить, постараясь найти что-то подходящее для этого в металлоприемке. Но сколько на это может уйти времени, и найдете ли?

Еще вариант - сделать все из фанеры, как это сделал автор видео, из которого я взял идею станка. Вроде у него и жесткости хватало и в целом все работало, да и дешевле, но в руках я такой станок не щупал

Каждый выбирает тот вариант, который ему ближе.

Отчасти я сделал все сам: спроектировал, собрал. Другую часть работы за меня сделали люди. Получается, что я и не сам все делал значит у меня не самоделка?

Что характеризует самоделку? Самостоятельность изготовления и/или применение только ручного инструмента в изготовлении? А может быть что-то еще?

А что думаете Вы на эту тему?

Подробнее..

Recovery mode Очередной Wi-Fi Jammer на Очередной ESP8266

17.05.2021 18:06:47 | Автор: admin

Предупреждение ( некий АХТУНГ, так сказать)

Я не являюсь автором ПО и, тем более, не зазываю Вас повторять подобные устройства, так как это может быть запрещено законом и преследуется наказанием. Спасибо.

Вступление

Я в свои практически 20 лет (на момент написания статьи - через 3 дня) уже как года 4 слежу за всякими интересностями на Ардуино и околоАрдуинных платах для разработки. Сначала купил Нанку, с которой не понимал, что делать, потом поступил на разработку ПО и начал понимать, шо да как. От этого мой интерес увеличился настолько, что это стало моим хобби. Да, я не силён в программировании до сих пор, так как я банально прогуливал пары, но зато у меня есть база, так сказать основа, с помощью которой я снова вхожу в программирование через визуализирование этого во всяких поделках на Ардуино и им подобных. Мне не нравилось программирование из-за того, что результат ты увидишь далеко не сразу, а с помощью микроконтроллеров этапы готовности можно посмотреть прямо на глазах, да и потрогать, пощелкать, попереключать.

Перейдем к железу

По железу все банально и просто: Китайский клон Wemos D1 Mini на базе ESP8266, I2C дисплейчик 128х64 и две кнопки, которые я вырвал с китайской магнитолы. В оригинале их 3, но у меня не влазило в корпус, поэтому решил оставить только кнопку "ок" и "вниз", так как если долистать меню до конца, то указатель начнет с самого начала. Да, больше времени уходит на листание менюшек, но зато компактнее .

Прошивка

Прошивку можно скачать по ссылочке ( ТЦ )

Так же там имеется подробная инструкция для таких, как я XD

Я не буду заостряться на подробностях настроек до прошивки, в конфиге все банально ясно. Есть два вида файлов: .bin, который шьется NodeMCU Flasher и исходный код со скетчем ардуино. Я использовал скетч, что бы настроить подключение дисплея, переназначить кнопки и изменить названия.

Корпус

Изначально я раскурочил старый 3G модем от МТС (который сейчас в Украине Vodafone), вырезал отверстия под дисплей и кнопки. Ровно после финальной сборки я понял, что выглядит не очень: кривые вырезы, лишние размеры для дисплея, болтающиеся кнопки, корпус плохо закрывался, питание подключалось путем разгибания нижней части корпуса. Короче, не комильфо. Надо думать что-то новое.

Новый корпус и формфактор.

Решил я размещать компоненты не в одной плоскости, а бутербродом. Более подробные фото сборки показывать не буду, ибо это бешенный колхоз, так как в распоряжении у меня был только малярный нож, паяльник и клеевой пистолет с изолентой. Материалы корпуса - пластик, вырезанный с корпусов старых телефонов, которых у меня целый пакет и горстка. Собирал все на секундный суперклей для надежности паял пластик обычным паяльником. Ничего нового, короче. Позже зашкурил наждачкой и покрасил с баллончика.

По размерам устройство получилось 3х4см с учетом вылета кнопок с корпуса. И это меня очень радует. У меня не было конкретной цели собрать джаммер, я просто хотел своими руками сделать какое-то крутое устройство, да и еще в подобных размерах.

Возможности

Вкратце пройдемся по функциям новоиспеченного утройства, так как более подробная информация есть в источнике, упомянутом несколькими разделами выше.

  • Сканирование сетей и устройств ( если они подключены к сетям) с последующим просмотром количества отправляемых пакетов, MAC-Адреса и мощность сигнала.

  • Атака путем деаутентификации как полностью всей сети, так и конкретного устройства по MAC-адресу

  • Режим "Бекон", который создает до 80 точек доступа, названия которых можно скопировать с существующих сетей, записать свои или создать с помощью встроенного генератора.

  • Режим "Probe" с которым я так и не разобрался, да и фиг с ним )

Помимо управления с помощью дисплея и кнопок, существует так же Веб-интерфейс. Устройство создает точку доступа, вы к ней подключаетесь, вводите в браузере Deauth.me и попадаете на страницу, похожую на веб-интерфейс роутера, в котором гораздо больше настроек, в отличии от автономного использования джаммера.

Выводы

Хоть моей целью не было воспроизведение конкретно этого устройства - результатами я очень доволен, так как это моё первое самодельное устройство, размеры которого не превышают распределительную коробку из строй магазина за 15 гривен

P.S. Чуть позже запишу видео, как сие чудо техники работает на примере своей точки доступа и ноутбука

Подробнее..

Недоумение про ещё один корпоративный чат или как сделать приятно всем

21.06.2021 12:17:59 | Автор: admin

На рынке мессенджеров сейчас есть примерно всё, как на Привозе. Есть решения на открытом коде, есть мессенджеры с миллиардом пользователей (или даже двумя). Но четкого понимания, что же взять с прилавка, чтоб все сотрудники огромного банка (и его 300+ дочек) с улыбкой открывали какой-то один и это всё проходило бы под требования по безопасности, у меня не сложилось.

Но жаловаться на несовершенство этого мира, недостижимость идеалов и тщетность бытия бесполезно. Поэтому перейдём к требованиям. Что хочет очень большая организация?

Чтоб было безопасно. Т.е. чтоб не просто data scientist модный в шортиках из одной американской/китайской/российской компании не мог в рамках своих задач узнать что-то полезное, а даже рядовой админ банка не смог увидеть или унести переписку одного уважаемого человека с другим. Даже в качестве картинки. Даже на свой админский супер-защищённый комп. Следовательно, оно должно быть self-hosted разворачиваемо отдельно и полностью контролируется исключительно теми, кому положено следить и зарплату за это платят. Ещё нужно подключиться к системам, отвечающим за безопасность передаваемого контента. Ещё нужно иметь в руках команды сопровождения все возможные рычаги, чтобы нерадивого пользователя можно было ограничить в желании другому пользователю передавать то, что не положено.

Чтобы было удобно. Сейчас на дворе 2021 год. Но даже закачать справочник пользователей или синтегрить с корпоративной телефонией банка что-то это уже подвиг на грани фантастики. И удивлению моему не было предела тот же slack обладает пользовательским интерфейсом, который физически невозможно объяснить курьеру из доставки подавай ему пользовательский интерфейс ala telegram. И желательно с видео конференциями встроенными. И прям очень нужен голосовой виртуальный ассистент, голосом удобнее. Ещё невозможно объяснить человеку, у которого есть одновременно два телефона, планшет и два компьютера почему ему нужно выбрать, где же можно работать с этим мессенджером, а где остаться без мессенджера. Ну и зачем каждый раз свой номер телефона светить не ясно.

Чтобы было удобно для внутренних коммуникаций. Тут приходят умные люди из разных отделов, департаментов и цельных предприятий и говорят нам возможность узконаправленных рассылок нужна. Таргетированных, как это модно называть. По полу, по городу, по региону, по подразделению, по должности и т.д. И в этот момент все open-source решения для чатов (а их только на github больше 2100 штук) куда-то деваются. Остаются те, кто реально зарабатывает. Но первый пункт не выполняется.

Чтобы развитие продукта помогало бизнесу, а не мешало всем подряд. Удивительно, но с этой точки зрения почти никто не смотрит. Сколько времени сотрудник тратит на поиск телефона в адресной книге где-то там, потом нужно найти телефон, чтобы позвонить и на этом телефоне набрать 11 заветных цифр. И выяснить, например, что номер с ошибкой. Гораздо удобнее нашёл ФИО, посмотрел фото и сразу набрал. Нужно ещё двоих подключить аналогично набрал и добавил. И никакой музыки от абонента, которому кто-то в это время позвонил, портящей всем 114 остальным участникам совещания не только настроение. 2021 на дворе. И чтоб если нужно любой модуль за месяц прикрутить можно было. Ну хорошо, иногда за два

Отсутствие зависимости от вендора и его капризов. Если ты маленькая организация из 50 человек (а по статистике таких ох как много), тебе нужно решение готовое. Даже когда 3000 человек нужно обслужить вопрос даже не стоит идёшь и выбираешь решение. Можно даже покапризничать и тендер объявить. А если у тебя 400 000 сотрудников? А если миллион планируется? Тут и вендоров вечных с хорошим SLA мало, и возможности их контролировать тоже не велики. Или вендор маленький и может случайно помереть при очередном кризисе или принятии закона/уехать ему понадобится всей командой, или вендор большой, но его мало интересуют проблемы конкретного клиента у него самого может быть 40 000 сотрудников и 1000 таких же клиентов по миру.

Казалось бы каждое из этих пяти требований по отдельности легко покрывается тысячами продуктов. Если взять и выкинуть одно тоже есть десятки. А вот всё вместе и сразу можно только самим мучительно делать. Чем и занимаемся. И вас зовём.

Ну и на всякий случай сошлюсь на бородатые требования одного habrовода (http://personeltest.ru/aways/habr.com/ru/post/405887/ - их мы тоже учли и удовлетворили): кроссплатформенность. Чтоб я наконец-то мог сидя на обеде, или в транспорте, или в отпуске кому-то что-то написать с телефона, да и узнать, что мне кто-то написал. И чтоб мой коллега, у которого Линукс, не делал каждый раз печальное лицо при слове чат. заточенный под общение в компаниях. Чтоб у меня был чат, где есть все мои коллеги и только мои коллеги живой активный проект. Чтобы баги, как застывшие в янтаре насекомые, не висели в продукте до конца времён передача файлов. Ну зачем мне заливать эту картинку в общую папку, если я просто могу кинуть её через чат! нормальная синхронизация уведомлений / непрочитанного. Чтобы не как в Скайпе словил сообщение, и потом в течение 24 часов находишь уведомление о нём на каждом своём девайсе.

Продолжение следует.

Подробнее..

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru