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

Diy или сделай сам

RPi-няня

28.08.2020 10:04:17 | Автор: admin
Периодически меня подмывает сделать что-то странное. Очевидно бесполезную вещь, которая не оправдывает себя по объему вложенных средств, и через полгода после создания пылиться на полке. Но зато полностью оправдывает себя по количеству эмоций, полученному опыту и новым рассказам. На Хабре даже есть две моих статьи про такие эксперименты: Алкоорган и умная кормушка для птиц.
Что ж. Пришло время рассказать о новом эксперименте. Как собрал, что из этого вышло и как повторить.

К новому проекту меня подтолкнуло событие, в каком-то смысле, банальное родился сын. Я заранее устроил себе отпуск на месяц. Но ребёнок оказался тихим было свободное время. И спящий рядом деть.
Дома много разных embedded-железок для computer vision. В итоге решил сделать видео-няню. Но не такую унылую, которыми завалены все магазины. А что-то поумнее и поинтереснее.


Статья будет написана в повествовательном ключе, чтобы понять как шла разработка игрушки, куда она пришла и куда движется дальше.
У статьи есть несколько дополнений:
1) Видео где я показываю и рассказываю как всё работает.
2) Небольшая статья на VC где я рассказываю почему такие штуки скорее всего не придут в нормальный продакшн, и про ограничения ML систем такого плана.
3) Сорсы всего на гитхабе + готовый образ для RPi. В конце статьи описание как пользоваться.

Выбор идеи


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


Выбор платформы


У меня была большая статья на Хабре про сравнение различных платформ. Глобально, для прототипа типа того что я делаю есть несколько вариантов:
  1. Jetson Nano. Есть на руках + я много с ним работал (не только с Nano), но меня немного смущает, что он более производственный. Из коробки запустятся только самые простые модели. Чтобы ускорить и оптимизировать память надо переносить на TensorRT. Это требует времени. Но все обученные сети надо искать, тестировать, не факт что запуститься их коробки, не факт что из коробки TensorRT пойдёт.
  2. VIM3. Никогда не использовал, попробовать было бы интересно. Но ради проекта для которого есть уже пять разных вариантов исполнения не хотелось тратить денег.
  3. Raspberry PI + Movidius. Есть большая пачка предобученных сетей. Производительности хватит, удобно работает, более менее стабилен.
    1. Абсолютно непроизводственное решение, но для игрушки сойдёт.
    2. Нереально переобучить выложенные сети. Не все сети обученные с нуля будут работать.
  4. Raspberry PI 4 при работе через OpenCV будет хорошо утилизировать открытые сети, чего должно хватить. Но, было подозрение, что не хватит производительности.
  5. Coral у меня он есть на руках, по производительности прошло бы, но в другой моей статье написано почему я его не люблю:)

Итого я выбрал Rpi+movidius. Есть на руках, умею работать с ним.

Железо


Вычислитель Raspberry Pi 3B, нейропроцессор Movidius Myriad X. С этим понятно.
Остальное поскрёб по сусекам, докупил.



Камера


Я проверил три разных, которые у меня были:
  • Камера от RaspberryPI. Шумная, неудобный кабель, нет удобного крепления. Забил.
  • Какая-то IP камера. Очень удобно потому что не надо включать в RPI. Камера разнесена с вычислителем. Моя камера имела даже два режима, дневной и ночной. Но та что была у меня не давала достаточного качества лица.
  • Веб камера от Genius. Я её использовал уже лет 5. Но что-то в последнее время стала работать нестабильно.А для RPI в самый раз. Более того, оказалось что её можно тривиально разобрать и достать оттуда IR фильтр. Плюс, как потом выяснилось, что это был единственный вариант с микрофоном.


А фильтр меняется вот так:



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

Освещение


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

Направляю на потолок комната освещена.


Экран


Для некоторых режимов работы мне понадобился монитор. Остановился на таком. Хотя не уверен что это самое правильное решение. Может стоило взять полноформатный. Но про это позже.


Питание


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


OpenVino


Пройдём немного по OpenVino. Как я сказал выше большим преимуществом OpenVino является большой объём предобученных сетей. Что нам может пригодиться:
Детекция лица. Таких сетей в OpenVino много:
  1. 1
  2. 2
  3. 3

Распознавание ключевых точек на лице. Это нужно нам чтобы запускать следующие сети
Распознавание ориентации лица. Активность ребёнка и куда смотрит.
Распознавание направление взгляда если пробовать взаимодействовать
Анализ глубины? Может быть получится
Анализ скелета
Ну и много других интересных
Основным минусом этих сетей будет их основное преимущество их предобученность
Это можно поправить, но сейчас мы делаем быстрый прототип, наша цель не работа в 100% случаев, а принципиальная работа которая будет приносить хоть какую-то пользу.

Поехали. Общая логика версии 1


Так как мы разрабатываем embedded устройство, то нам надо с ним как-то взаимодействовать. Получать фото/сигналы о тревоге. Так что решил сделать так же как когда делал кормушку, через телеграмм. Но довести до ума.
Для первой версии я решил:
  • Запустить на RPi обозначенные сети (хотелось бы сразу все, вдруг производительность позволит). Это позволит посмотреть больше вариантов решения задачи/вероятных путей развития
  • Написать общий шаблон программы.
  • Придумать алгоритм распознающий просыпание.
  • Сделать алгоритм присылающий уведомление при потере лица

Пошло всё более-менее неплохо, не считая кучи багов всего вокруг. Это свойственно для ComputerVision Я привык к этому:)
Вот краткая сводка того на что я натолкнулся:
  1. OpenVino под RPi не запускается в последней версии (на май 2020) из-за того что не срабатывает from openvino.inference_engine import IECore. Есть способы иначе использовать OpenVino (через OpenCV например), но там логика программы изменится, не хотелось.
  2. OpenVino старой версии не работает на новых сконверченных нейронных сетях, надо конвертить с -generate_deprecated_IR_V7 или брать старые
  3. OpenVino в последней версии (опять же, на май) с Movidius под виндой не может инферить сетки с int 8 из официального репозитория. В int32 может. Под RPi в int8 может. Ничего критичного, но сложнее дебажить.
  4. OpenVino не устанавливается под виндой в нестандартную папку. Точнее ставится, но все дальнейшие проблемы не решились и OpenVino не запустился. Про это много ругани, но судя по тому что у меня то же самое произошло так и не починили.
  5. OpenVino не работает на старых но мощных процах Intel (не везде дебажить удобно, но не критично).
  6. PyTorch в версии 1.5 не смог сконвертировать сети в onnx, пришлось конвертировать из 1.4


Но, тут как Уверен что если бы пошёл через TensorRT, то там бы проблем было как всегда больше.

Итак. Всё сбилжено, сети запущены, получаем что-то такое (запустив стек по голове, ориентации, ключевым точкам):

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

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

Остальные графики грусть/злость/радость/удивление. Даже не особо суть того что где по цветам. К сожалению, данные сети нестабильны, что мы и видим. Нестабильность возникает когда:
  • Лишняя тень на лице (что ночью не редкость)
  • Лиц ребёнка не было в обучающей выборке OpenVino => произвольные переключения на другие эмоции
  • Ребёнок реально корчит рожи, в том числе во сне

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

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

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

(здесь где-то час времени сна)
Значит надо всё же делать нормальное распознавание

Возникшие проблемы версии 1


Просуммируем всё что мне не понравилось в первой версии.
  1. Автозапуск. Не удобно запускать эту игрушку каждый раз заново, подключаться по SSH, запускать скрипт наблюдения. При этом скрипт должен:
    • Проверять состояние камеры. Бывает что камера выключена/не воткнута. Система должна ждать пока пользователь включит камеру.
    • Проверка состояния ускорителя. То же самое что с камерой.
    • Проверка сети. Штуку я хочу использовать и дома и на даче. А может где-то ещё. И опять же, заходить по ssh не хочу => надо сделать алгоритм подключения к wiFi если инета нет.
  2. Просыпание, обучение сети. Простые подходы не зашли, значит надо обучать нейронку на распознавание открытых глаз.

Автозапуск


В целом, схема автозапуска получилась следующей:
  • Запускаю на старте программу свою. Как я это делаю написал отдельную статью, не сказать что это на RPi сделать тривиально. Если кратко:
    • Создаю сервис который инициализирует OpenVino окружение
    • Сервис на старте запускает сначала скрипт проверки окружения, а потом основной рабочий скрипт
  • Проверяю наличие камеры
  • Проверяю наличие Movidius-модуля
  • Проверяю наличие интернета
    • Если нет запускаю камеру и жду QR-кода локальной wifi сети
  • Проверяю наличие информации о канале telegram через который будет управление. Если нет жду QR-код с данными на управление


Обучение сети для распознавания глаз


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

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

Остаётся его разметить и обучить. Более подробно процесс разметки я описал тут (и видео процесса на 10 минут тут). Для разметки использовалась Толока. На настройку задания ушло~2 часа, на разметку 5 минут + 300 рублей бюджета.
При обучении думать особо не хотелось, так что взял заведомо быструю сеть, которая имеет достаточное качество для разрешения задачи mobilenetv2. Весь код, включая загрузку датасета, инициализацию и сохранение занял меньше 100 строк (большей частью взятых из открытых источников, переписал пару десятков строк):
Скрытый текст
import numpy as npimport torchfrom torch import nnfrom torch import optimfrom torchvision import datasets, transforms, modelsdata_dir = 'F:/Senya/Dataset'def load_split_train_test(datadir, valid_size = .1):    train_transforms = transforms.Compose([transforms.Resize(64),                                           transforms.RandomHorizontalFlip(),                                           transforms.ToTensor(),                                       ])    test_transforms = transforms.Compose([transforms.Resize(64),                                      transforms.ToTensor(),                                      ])    train_data = datasets.ImageFolder(datadir,                    transform=train_transforms)    test_data = datasets.ImageFolder(datadir,                    transform=test_transforms)    num_train = len(train_data)    indices = list(range(num_train))    split = int(np.floor(valid_size * num_train))    np.random.shuffle(indices)    from torch.utils.data.sampler import SubsetRandomSampler    train_idx, test_idx = indices[split:], indices[:split]    train_sampler = SubsetRandomSampler(train_idx)    test_sampler = SubsetRandomSampler(test_idx)    trainloader = torch.utils.data.DataLoader(train_data,                   sampler=train_sampler, batch_size=64)    testloader = torch.utils.data.DataLoader(test_data,                   sampler=test_sampler, batch_size=64)    return trainloader, testloadertrainloader, testloader = load_split_train_test(data_dir, .1)print(trainloader.dataset.classes)device = torch.device("cuda" if torch.cuda.is_available()                                  else "cpu")model = models.mobilenet_v2(pretrained=True)model.classifier = nn.Sequential(nn.Linear(1280, 3),                                 nn.LogSoftmax(dim=1))print(model)criterion = nn.NLLLoss()optimizer = optim.Adam(model.parameters(), lr=0.003)model.to(device)epochs = 5steps = 0running_loss = 0print_every = 10train_losses, test_losses = [], []for epoch in range(epochs):    for inputs, labels in trainloader:        steps += 1        inputs, labels = inputs.to(device), labels.to(device)        optimizer.zero_grad()        logps = model.forward(inputs)        loss = criterion(logps, labels)        loss.backward()        optimizer.step()        running_loss += loss.item()        if steps % print_every == 0:            test_loss = 0            accuracy = 0            model.eval()            with torch.no_grad():                for inputs, labels in testloader:                    inputs, labels = inputs.to(device), labels.to(device)                    logps = model.forward(inputs)                    batch_loss = criterion(logps, labels)                    test_loss += batch_loss.item()                    ps = torch.exp(logps)                    top_p, top_class = ps.topk(1, dim=1)                    equals = top_class == labels.view(*top_class.shape)                    accuracy += torch.mean(equals.type(torch.FloatTensor)).item()            train_losses.append(running_loss / len(trainloader))            test_losses.append(test_loss / len(testloader))            print(f"Epoch {epoch + 1}/{epochs}.. "                  f"Train loss: {running_loss / print_every:.3f}.. "                  f"Test loss: {test_loss / len(testloader):.3f}.. "                  f"Test accuracy: {accuracy / len(testloader):.3f}")            running_loss = 0            model.train()torch.save(model, 'EyeDetector.pth')


И ещё пара строк на сохранение модели в ONNX:
Скрытый текст
from torchvision import transformsimport torchfrom PIL import Imageuse_cuda=1mobilenet = torch.load("EyeDetector.pth")mobilenet.classifier = mobilenet.classifier[:-1]mobilenet.cuda()img = Image.open('E:/OpenProject/OpenVinoTest/face_detect/EyeDataset/krnwapzu_left.jpg')mobilenet.eval()transform = transforms.Compose([transforms.Resize(64),                                      transforms.ToTensor(),                                      ])img = transform(img)img = torch.unsqueeze(img, 0)if use_cuda:    img = img.cuda()img = torch.autograd.Variable(img)list_features = mobilenet(img)ps = torch.exp(list_features.data.cpu())top_p, top_class = ps.topk(1, dim=1)list_features_numpy = []for feature in list_features:    list_features_numpy.append(feature.data.cpu().numpy())mobilenet.cpu()x = torch.randn(1, 3, 64, 64, requires_grad=True)torch_out = mobilenet(x)torch.onnx.export(mobilenet, x,"mobilnet.onnx", export_params=True, opset_version=10, do_constant_folding=True,input_names = ['input'],output_names = ['output'])print(list_features_numpy)


Сохранение модели в ONNX нужно для дальнейшего вызова модели в Open Vino. Я не запаривался с преобразованиев в int8, оставил модель как была в 32-битном формате.

Анализ точности, метрики качества?.. Зачем это в любительском проекте. Такие штуки оцениваются по-другому. Никакая метрика не скажет вам система работает. Работает система или нет вы поймёте только на практике. Даже 1% ошибок может сделать систему неприятной для использования. Я бывает обратное. Вроде ошибок 20%, но система сконфигурирована так, что они не видны.

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

Проблемы версии 2


Текущая реализация качественно другая, но всё же она имеет ряд проблем:
  • Лицо детектируется не всегда. Это особенность вызвана тем, что сеть обучалась для других условий:
    • Целевым объектом сети были явно не младенцы
    • Сеть не обучалась в ИК
    • Сеть явно отдаёт преимущество вертикальным лицам
    • Сеть явно предпочитает лица размером где-то в кадра.

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


Переобучить детект лица?


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

Звук


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

Идём дальше, что ещё


В какой-то момент я провёл тест, запустив зацикленное 5-секундное видео себя с супругой:



Был видно, что сын залипает на лица людей в поле зрения (монитор подвесил его минут на 30). И родилась идея: сделать управление выражением лица. Это не просто статичное видео, но и вариант взаимодействия. Получилось как-то так (при смене эмоции сына происходит переключение видеоряда):

Папа, ты что, долбанулся?!

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

А потом?


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

Как всё в итоге выглядит, описание, мысли


Как сейчас всё работает (в начале статьи есть более масштабное видео):
  • Всё управление идёт через Telegramm + через камеру.
  • Если не нужно управление видео эмоциями, то вся девайсина выглядит так:

  • Запускается включением питания на павербанке.
  • Если есть подключенная сеть то устройство уже готово к работе
  • Если нет сети то надо показать QR-код с сетью, система автоматически запуститься
  • Через Telegramm можно выбрать набор событий за которыми следить:

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

  • В любой момент можно запросить фотографию с устройства чтобы посмотреть что твориться


В целом отзывы от себя любимого:
  1. Детектор лица работает не очень. Это реально особенность любых детекторов нефайнтьюненых на детей. Обычно это не мешает детектировать просыпание (хоть парочка нормальных фото с открытыми глазами да придёт). Сейчас нет планов переобучать.
  2. Без экрана немного непрозрачный запуск (считался QR код или нет). А с экраном много проводов. Я думаю, самый правильный вариант будет посадить диодов на GPIO. И зажигать их в зависимости от статуса (есть коннект, не работает камера, не работает Movidius, нет коннекта к telegram'у, и.т.д.). Но пока не сделал
  3. Иногда сложно закрепить камеру. Так как у меня есть пара штативов как то справляюсь. А без них, пожалуй, ничего бы не заработало.
  4. Реально позволяет освободить сколько-то времени и дать свободы перемещения. Больше это чем у нормальной радионяни/видеоняни со стримингом? Не знаю. Может чуть-чуть проще.
  5. Прикольная штука для экспериментов.


Как запускать


Как я и говорил выше я попробовал выложить все исходники. Проект большой и разветвлённый, так что может что-то забыл или не дал подробных инструкий. Не стесняйтесь спрашивать и уточнять.
Есть несколько способов всё развернуть:
  1. Сорсы с гитхаба. Это более сложный способ, придётся долго настраивать RPi, может что-то забыл. Зато вы полностью держите процесс под контролем (включая настройки RPi).
  2. Использовать готовый образ. Тут можно сказать что безблагодатно и несекьюрно. Зато на порядок проще.


GitHub


Основной репозиторий расположен тут github.com/ZlodeiBaal/BabyFaceAnalizer
Он состоит из двух файлов которые надо запускать:
  1. Скрипт инициализации/проверки состсояния/настройки сети QRCode.py (для этого скрипта, напомню, есть более подробное описание). Он подключает WiFi и проверяет что имеется настройки для бота в Telegram.
  2. Основной рабочий скрипт face.py

Кроме того. в Git нет двух вещей:
  1. Файла с креденшоналами WiFi wpa_supplicant_auto.conf
  2. Файла с креденшоналами Telegram бота tg_creedential.txt

Можно позволить система создать их автоматически при следующем запуске. Можно использвать следующие, заполнив пустые поля:
tg_creedential.txt
token to access the HTTP API чтобы его получить, отправьте @BotFather в telegram команду "/newbot"
socks5:// по умолчанию не используется, но должна быть пустая строчка хотя бы
логин для socks5 по умолчанию не используется, но должна быть пустая строчка хотя бы
пароль для socks5 по умолчанию не используется, но должна быть пустая строчка хотя бы


wpa_supplicant_auto.conf
network={
ssid="******"
psk="*******"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}


Свистелки и перделки по настраиванию RPi


К сожалению, просто положить и запустить скрипты на RPi не получиться. Вот что ещё надо для стабильной работы:
  1. Установить l_openvino_toolkit_runtime_raspbian_p_2020.1.023.tgz по инструкции docs.openvinotoolkit.org/latest/openvino_docs_install_guides_installing_openvino_raspbian.html
  2. Установить автозапуск
  3. Удалить мессадж о дефолтном пароле (может не надо, но мне мешало) sudo apt purge libpam-chksshpwd
  4. выключить скринсейвер www.raspberrypi.org/forums/viewtopic.php?t=260355
  5. Для детекции аудио:
    • pip3 install webrtcvad
    • sudo apt-get install python-dev
    • sudo apt-get install portaudio19-dev
    • sudo pip3 install pyaudio
  6. Скачать модели из репозитория OpenVino используя скрипт Get_models.py в папке Models


Образ


Образ выложен тут(5 гигов).
Пара моментов:
  1. Используется стандартный логин-пароль (pi, raspberry)
  2. Включен доступ по SSH
  3. По умолчанию не подключен WiFi и не настроен адрес бота в телеге которого система будет использовать для контроля.


Как настроить WiFi в образе


Первый вариант после запуска показать QR код с текстом:
WIFI:T:WPA;P:qwerty123456;S:TestNet;;

Где после P идёт пароль сети, после S индентификатор сети.
  1. Если у вас есть телефон с Android 10 то там такой QR код генерируется автоматически при нажатии поделиться сетью
  2. Если нет то можно сгенерировать на www.the-qrcode-generator.com


Второй вариант зайти по SSH на RPi (подключившись по проводу). Либо включить монитор и клавиатуру. И положить файл
wpa_supplicant_auto.conf
network={
ssid="*********"
psk="*******"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}

c вашими настройками wi-fi в папку "/home/pi/face_detect".

Как настроить телеграм-бота в образе


Первый вариант после запуска показать QR код с текстом:
tg_creedential.txt
token to access the HTTP API чтобы его получить, отправьте @BotFather в telegram команду "/newbot"
socks5:// по умолчанию не используется, но должна быть пустая строчка хотя бы
логин для socks5 по умолчанию не используется, но должна быть пустая строчка хотя бы
пароль для socks5 по умолчанию не используется, но должна быть пустая строчка хотя бы

сгенерировав его через www.the-qrcode-generator.com
Второй вариант зайти по SSH на RPi (подключившись по проводу). Либо включить монитор и клавиатуру. И положить файл tg_creedential.txt описанный выше в папку "/home/pi/face_detect".

Ремарка про детство


Уже когда собрал первую версию и показывал её своей маме, то получил внезапный ответ:
-О, а мы в твоём детстве почти так же делали.
?!
Ну, коляску с тобой на балкон выставляли, через форточку туда выкидывали микрофон, который был включен в усилитель в квартире.

Вообщем внезапно оказалось что это наследственное.

Ремарка про супругу


А как супруга отнеслась?
А как она позволила тебе эксперименты над сыном ставить?!
Спрашивали не раз.
Но, я жену испортил хорошо. Вот, она даже на Хабре иногда статьи пишет.

P.S.1


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

P.S.2


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

Складская программа C2 WMS 1.1

28.08.2020 16:14:16 | Автор: admin
Здравствуйте, уважаемые коллеги!

Представляю вашему вниманию исходный код проекта C2 WMS.

Складской программы-платформы, которая использовалась в одном из магазинов запчастей Беларуси в связке с 1С: Бухгалтерия 8.

C2 выросла из приложения Android, поэтому некоторые решения могут вам показаться странными.

Есть ли велосипеды? ДА.
Есть ли ошибки? ДА.
Архитектурные ляпы? ДА!

Часто C2 WMS писалась на коленке на передовой во время вражеской бомбардировки, когда не было времени на красивые решения, а применялись быстрые.

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

Год успешной эксплуатации это показал во всей красе.

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

Почему выкладываются исходники успешной системы?

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

Анализируйте. Внедряйте. Улучшайте.

Блог программы
Скачать

КУПЛЯЙЦЕ БЕЛАРУСКАЕ!
Подробнее..

Перевод Как выбрать подходящий модуль спутникового позиционирования для своего проекта

28.08.2020 18:19:00 | Автор: admin


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

Все одинаковые, но совершенно разные


Работа с GPS может внушать некоторые опасения, но благодаря усилиям промышленности и отдельных энтузиастов в наше время эта задача оказывается удивительно простой. Большинство имеющихся на рынке модулей будут работать одинаково. Чаще всего они передают данные по стандартному последовательному интерфейсу, обычно на скорости 9600 бод; также бывают интерфейсы I2C и SPI. Сами сообщения также стандартизированы они выдаются в формате NMEA-0183. Если вы хотите сами обрабатывать данные, по этому стандарту полно документации. Однако если вы очень торопитесь, для многих платформ с микроконтроллером можно найти готовый код, который всё сделает за вас. Такие проекты, как NeoGPS, Adafruit GPS и minmea примут входящий поток последовательных данных и выдадут все географические данные, которые вам только могли понадобиться. Так что же GPS это просто GPS?



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

Мне просто нужно знать, где он!


Если вам необходима точность порядка нескольких метров и нечастое обновление местоположения, вам подойдёт простейший модуль GPS. Их стоимость может быть меньше $20, и они могут предложить частоту обновления 1-5 Гц и небольшое количество дополнительных свойств. Для многих проектов этого будет достаточно для определения местоположения человека, робота или транспортного средства. Также с такой частотой могут работать и простейшие автопилоты. Потребляют такие модули обычно менее 50 мА, а общаются по последовательному порту.

В эту группу попадают устройства на базе GP-20U7, а также уже устаревшего uBlox NEO-6M. Это дешёвый и простой способ недорого собрать ваш первый проект с GPS.

Мне нужен постоянный сигнал!


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


Качественная антенна с отдельным заземлением может значительно улучшить качество приёма

Точное определение местоположение требует получения хорошего сигнала от нескольких спутников поэтому, чем больше выбор, тем легче этого достичь. Большая вероятность увидеть достаточно много спутников будет у модулей, способных распознавать различные навигационные системы. У нас есть китайская Бэйдоу, европейская Галилео, российская ГЛОНАСС и если взять модуль, способный принимать дополнительный сигналы, у него будет огромное преимущество при работе в застроенной части города с ограниченным обзором неба.

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

Все эти возможности увеличивают вероятность успешного определения местоположения, но и стоят денег. Модули XA1110 и ublox NEO-M8U стоят от $50 до $100. Но за такие деньги зато они часто предлагают дополнительные интерфейсы типа USB-serial и I2C, а также высокую частоту обновления.

Мне нужны быстрые обновления!


Если вы собираете нечто, движущееся с большой скоростью, 5 Гц вам может показаться мало. Более частое обновление у модулей бывает от 10 Гц до 25 Гц, благодаря чему ваш быстро движущийся проект сможет куда лучше ориентироваться в пространстве. Конечно, если вы строите крылатую ракету, то вы вряд ли будете закупаться в Sparkfun а в противном случае развлекайтесь! Эти устройства обычно обмениваются данными на больших скоростях по последовательному порту или I2C, чтобы чаще обновлять местоположение.



Модули с такими возможностями всё равно бывают относительно недорогими, от $20 до $100. Для своих высокоскоростных проектов ищите модули типа SAM-M9N или BN-880Q.

Мне нужна сантиметровая точность!


Для некоторых случаев точность прежде всего. Если вы управляете комбайном, и не хотите, чтобы он протаранил ограду, то метровая точность вас не устроит. В данном случае лучше всего использовать приёмники с технологией Real Time Kinematics (RTK). Они объединяют полученный со спутника сигнал с локальными данными коррекции, полученными с базовой станции, в идеале находящейся не далее 10 км от их местоположения.


RTK работает, добавляя локальные данные коррекции, полученные с базовой станции

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

За точность приходится расплачиваться сложностью и деньгами. GPS-модули с поддержкой RTK идут уже по $200-$300 за штуку. Среди них NEO-M8P и ZED-F9P. Также требуется прикупить базовую станцию, если в вашей местности нет публичной. Данные нужно будет заводить в модуль либо по интернету, либо по радиосвязи. Не забудьте учесть эти требования при разработке!

Заключение


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

DIY Электрическая система переключения скоростей для шоссейного велосипеда

31.08.2020 22:13:27 | Автор: admin

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

Сервопривод и корпус устройства.Сервопривод и корпус устройства.

Предистория

Меня зовут Вячеслав. В коронокризис было скучно, поэтому я начал бегать. За 3 месяца пробежал 350км и 02.08.2020 пробежал Московский полумарафон.

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

Электронное переключение скоростей

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

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

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

Конструкция элементарная Батарея+Arduino nano+две кнопки+серво.

Кнопки подтянул к 5V через внутренний резистор.

Код Arduino

#include <Servo.h>Servo myservo;int speedg = 1;int up = 1;int p = 0;void setup() {  myservo.attach(9);  pinMode(8, INPUT_PULLUP);  pinMode(7, INPUT_PULLUP);}void loop() {  if (digitalRead(7) == 0) {    if (speedg > 1) {      speedg--;      up = 0;    }    p = 1;  }  if (digitalRead(8) == 0) {    if (speedg < 7) {      speedg++;      up = 1;    }    p = 1;  }  if (speedg == 1) {    myservo.write(0);  }  if (speedg == 2) {    if (up == 1) {      myservo.write(75);    } else {      myservo.write(60);    }  }  if (speedg == 3) {    if (up == 1) {      myservo.write(85);    } else {      myservo.write(80);    }  }  if (speedg == 4) {    if (up == 1) {      myservo.write(97);    } else {      myservo.write(90);    }  }  if (speedg == 5) {    if (up == 1) {      myservo.write(110);    } else {      myservo.write(103);    }  }  if (speedg == 6) {    myservo.write(120);  }  if (speedg == 7) {    myservo.write(140);  }  if ( p == 1) {    delay(300);    p = 0;  }}

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

Распечатал на 3D-принтере корпус для Arduino, серво и батареи. Прикрепил корпус к раме, тросик от серво соединил с тросом штатной системы(фото КДПВ, смотри выше).

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

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

Добавив 3-осевой гироскоп и акселерометр MPU6050, пришлось повозиться с калибровкой. Зная угол велосипеда можем переключать передачи автоматически в горку и с горки.

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

В планах

  • Поменять микроконтроллер.

  • Добавить датчик скорости вращения колеса.

  • Добавить BTLE для синхронизации и передачи данных в STRAVA.

  • Сделать корпус устройства в виде фонаря с дисплеем отображения текущей скорости и серво-приводом внутри.

  • Заменить сервопривод на актуатор с обратной связью.

Внимание, вопрос

Как Вы считаете стоит ли попробовать это решение для выхода на краудфандинг?

Подробнее..

Малиновый киноцентр или как сделать неубиваемый смарт-ТВ

01.09.2020 02:06:58 | Автор: admin

Предыстория

Шёл 2018 год. У меня сломался старый DVD-магнитофон компании BBK. Выглядел он, примерно, так:

Умерший дивидюшникУмерший дивидюшник

Знаю, что скажут 90% читателей: "Зачем тебе магнитофон? Смарт-ТВ купи и счастье". Я отвечу. Проблема в том, что ещё в 90-ых был куплен шикарный телевизор с 5.1 звуком и Full-HD монитором, правда не стандартного разрешения (не 4:3 и не 16:9). Менять телевизор и попадать минимум на 40 тысяч из-за дивидюшника за 3 тысячи - как-то не разумно. В планах сделать экран с проектором и звуком, но вот покупать смарт-ТВ, который не поковыряешь - для меня слишком больно. Купил Sony - мучайся с их смартом и так с любой фирмой.

Так вот. Пошёл я в магазин и увидел 3 варианта DVD-магнитофонов:

  • Panasonic, Philips, Sony и т.п. за 10 тысяч

  • Шлакоблок-ноунейм за 500 рублей

  • Ну и банально, мой умерший BBK за 2,5 тысячи

Проведя серьёзное исследование вопроса (нет), я понял, что есть ряд косяков в каждом варианте. По порядку:

  • Магнитофон за 10 тысяч - вещь очень капризная и нудная. Читает только конкретный формат видео (в основном .avi), капризен к размеру файла - до 4 ГБ, а где-то и до 1,2 (шёл 2018 год, а видео больше 1,2 гигов не читаются), да и цена вопроса - печаль-тоска. Плюшки в виде записи телепрограмм или же Blu-ray привода - очень условны, так как запись читается (в плане без костылей и страданий) только на этом магнитофоне. ПК - в пролёте (2018 год!). А хвастать Blu-ray приводом - это как-то совсем уж печально.

  • Шлакоблок работает 3 раза, да и ставить не известно что к хорошему телевизору - печаль.

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

Тут меня посетила идея сделать всё самому.

Подготовка

В моём распоряжении был старый комп-башня и куча старых деталей, который валялись по квартире и офису. Тестил всё на этом железе в разных конфигурациях: от сборки с интегрированной видюхой от интел с 1 ГБ оперативы и пентиумом на борту, до GTX 660 с 8 ГБ оперативы и i5 во главе. Разница есть, но только в загрузке файлов - то есть не критичная. Картинка в FullHD выдаётся ровно без крашей всю дорогу. Имея задумку повесить экран с проектором, делать громоздкую станцию - не вариант.

Выбор пал на малинку (на тот момент - 3 Model B+). Чтобы не заморачиваться с поиском деталей на алике - я использовал стартовый набор за 5 тысяч. Бюджет вполне утраивал.

Комплектация:

  • Малинка

  • Корпус под плату

  • 3 радиатора с термопастой-двойным скотчем

  • Карта на 16 гигов с переходником

  • Кабель питания

  • HDMI на пол метра

Комплектация малинки Комплектация малинки

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

Если будете брать сейчас - берите 4 Model B. Смысл тот же, но сама плата помощнее. Набор на том же сайте. Разница 600 рублей, но сейчас цены завышены.

Проблема 2

Если коротко - проблема ниже

ТюльпанТюльпан

Во всех старых телевизорах старые RCA-разъёмы (тюльпаны), а это большая проблема, так как разъём аналоговый, а малинка работает только в цифре.

Задача - найти переходник в FullHD с отдельным выходом на питание. Дело в том, что малинка - энергоэкономичное устройство и она не может сама запитать по HDMI переходник.

Боже храни AliExpress.

ПереходникПереходник

170 рублей и нет проблем. Питание по USB всё от той же малинки.

Операционная система

У меня было 2 варианта операционной системы - костыльный Android и система Kodi. Я выбрал Kodi с сиcтемой LibreELEC. Во-первых, это система рассчитана именно под мою задачу - создание киноцентра, а во-вторых, система полностью настраиваемая.

Установка проста как мир. Загружаем установщик -> на шаге 1, выбираем платформу (в моём случае, Raspberri Pi 3) и версию системы (просто, последнюю версию) -> жмём Download на шаге 2 -> вставляем microSD с переходником из комплекта -> на шаге 3 выбираем карту -> жмём "Write" на шаге 4.

Установщик системыУстановщик системы

После завершения настроек карты, система готова к использованию. Вставляем её в малину и запускаем.

Базовые настройки

До меня многие люди делали примерную настройку системы. Мы же сделаем всё от и до.

Итак, система на базе UNIX, а значит настроить можно всё. Система встречает нас на русском языке и это победа!

Экран настроекЭкран настроек

Калибровка

Напомню, мой ТВ не формат (не 4:3 и не 16:9). Чиниться всё легко. Идём в настройки системы.

СистемаСистема

Переходим во вкладку "Экран". Там автоматом стоит 1920х1080 и это хорошо, так как переходник на RCA вещает в 1080 (если подключали по HDMI, система сама определит оптимальное разрешение). Идём в самый низ меню во вкладку "Калибровка дисплея". Если она не отобразилась сразу - переключитесь на "Экспертный режим" (кликаем внизу левого меню).

КалибровкаКалибровка

Калибруется всё 4 ползунками:

КалибруемКалибруем

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

Мы видим ровную картинку с любого ТВ/экрана/проектора.

Итак, результат. У нас полноценный магнитофон с запуском с USB и работа с клавиатурой/мышью.

Телефон - это пульт

Тут всё просто. Скачиваем на свой смартфон/планшет программу из AppStore или Google Play. Если вы с малинкой в одной сети - приложение схватит всё само.

DVD

Чтобы мы могли читать диски, необходимо докупить DVD-привод. Какой по душе. Я не поскупился и купил бесшумную модель - Hitachi-LG GP60NB60. Минус 2 тысячи из бюджета.

DVD-приводDVD-привод

Итого, магнитофон, который читает любые файлы, управляется с телефона и читает DVD. Не плохо, но для 7 тысяч - маловато функционала.

Продолжим!

Дополнения до смарта

Идём во вкладку "Дополнения" и скачиваем все указанные:

Дополнения 1Дополнения 1Дополнения 2Дополнения 2Дополнения 3Дополнения 3

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

Bing-обои

Эта штука мне понравилась ещё в заставках Windows. Когда вы отойдёте от малинки, а она включена - через 2 минуты будет появляться еженедельно обновляемые фото-победители на Bing. Всё что нужно - дополнение "Bing: Photos of the Week".

Переходим во вкладку "Интерфейс".

ИнтерфейсИнтерфейс

Выбираем вкладку "Заставка".

ЗаставкаЗаставка

В этой вкладке выбираем наше дополнение

BingBing

Модно, стильно, молодёжно. Едем дальше.

Региональные настройки

Если что-то нужно поменять - переходим во вкладку "Интерфейс".

ИнтерфейсИнтерфейс

Вкладка "Региональные" и меняем как удобно. У меня выставлены следующие настройки:

Региональные натсройкиРегиональные натсройки

Изменение настроек системы

Если что-то не устраивает в системе глобально - перейдите во вкладку "LibreELEC".

LibreELECLibreELEC

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

Wi-FiWi-Fi

Погода

Я пользуюсь приложение Gismeteo и оно весьма точно предсказывает погоду. Баловство, конечно, в ТВ, но пусть будет :)

Вкладка "Службы".

СлужбыСлужбы

Кнопка погоды и приложение Gismeteo.

ПогодаПогодаGismeteoGismeteo

IPTV-сила

Настроем IPTV. Вкладка дополнения и в ней приложение "PVR IPTV Simple Client".

PVR IPTV Simple ClientPVR IPTV Simple Client

Жмахаем на неё и настраиваем напрямую.

Настройки IPTVНастройки IPTV

Тут всё просто. Вписывает ссылку на M3U. Далее в разделе"Установка EPG", можно указать путь до программы передач. Для этого выберите пункт"Ссылка на XMLTV".

Ссылка на M3UСсылка на M3U

Выбор IPTV

Тут дилемма: бесплатно и так себе или платно и хорошо. Решать вам, но я расскажу об обоих вариантах.

Бесплатное IPTV

Лучшее, что я смог найти - Самообновляемый плейлист "ONE". Это бесплатный самообновляемый плейлист в формате m3u. Разрабы обещают, что плейлист будет всегда бесплатным.

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

Платное IPTV

Тут, на мой взгляд, лучший вариант - sharavoz. За 3 бакса (т.е. 250 рублей) вы получите все каналы НТВ+, стандартное вещание и кучу плюшек. У ребят 1 день бесплатного теста. Попробуйте. Я остановился на этом варианте.

YouTube жив!

Почему так пафосно? Дело в том, что в прошлом году пришли какие-то черти и сломали YouTube. Доступ к API в Kodi закрыли и система потеряла смысл.

Однако! Ребята в Kodi смогли придумать способ обхода блокировки и этот способ хоть и не прост, но вечен.

Итак. Переходим по ссылке. Вводим логин-пароль.

Заходим в настройки YouTube через дополнения.

YouTubeYouTubeНастройкиНастройки

Далее, по инструкции ниже.

Ввод в системе, а не через SSHВвод в системе, а не через SSH

Аналоги на рынке

Аналог сделанного нами устройства - Xiaomi Mi Box.

Xiaomi Mi BoxXiaomi Mi Box

Цена вопроса - 5000 рублей. Без дисковода - цена один в один, но есть 2 весомых косяка:

  1. Android, который работает весьма кривенько

  2. Невозможность подстроить экран по разрешение (калибровка в Kodi)

Из-за этих двух весьма сильных косяка - устройство для меня стало абсолютно бесполезно, хотя если экран будет стандартного разрешения 16 к 9 - будет всё нормально, но это только в таком раскладе и с андроидом в коробке

Итоги

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

  • Подстройка под нестандартные экраны

  • Работа как по цифре (HDMI), так и по аналогу (тюльпан)

  • Настроено IPTV

  • Выносной DVD-привод

  • Приятное оформление

  • Настроен YouTube, который пытались вырезать из системы

  • Цена - 7 000 рублей

  • Устройство можно перетаскивать с собой в поездки и при возвращении и подключении к домашнему ТВ - настройки сохраняются

Подробнее..

Из песочницы Устрой дестрой, порядок НЕ отстой как я приводил в чувство шкаф для хранения девайсов

03.09.2020 20:17:52 | Автор: admin


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

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

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

Девайсы (планшеты и телефоны разных моделей) ключевой инструмент каждого QA: именно на них мы тестируем приложения и готовим к релизу.

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

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

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

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

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

1. Становление. Освоение. Боль


Как я попал в Лайв Тайпинг


Про Лайв Тайпинг я узнал еще в 2014 году на happyDev-lite. Всегда восхищался тем, с каким позитивом и интересом спикеры этой студии погружаются в свои темы, с какими горящими глазами рассказывают и как это сильно выделяет их на фоне остальных компаний.

Помню, как восхитился выступлением Романа Беляева: он рассказывал, что стал дизайнером в ЛТ благодаря soft-скиллам. Его взяли с пустым портфолио сразу после тестового задания, над которым он пахал всю ночь. Меня поразило даже не то, что его брали на ключевую позицию без опыта, а то, что компания увидела потенциал и дала ему возможность раскрыться. На должности в другие команды требуются молодые специалисты с продолжительным опытом работы в перспективных IT-компаниях и набором кейсов в портфолио. Я был восхищён тем, что есть люди, готовые развивать талантливых ребят с нуля.

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

Я окончил школу Тамтек, где получил серьёзную базу в дизайне, и осознал, что таких знаний не даёт ни одна из Омских компаний. И после этого попытал удачу на собеседовании в ЛТ. В компанию я попал, пройдя тестовое задание и два интервью, как QA с опытом в дизайне.

Как освоился


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

Работа в такой атмосфере шла сама собой казалось, что всё идеально, но на тот момент я ещё ничего не подозревал

Почему это оказалось больно


На одном из этапов тестирования проекта мне потребовались разнообразные девайсы. Именно тогда и произошло моё знакомство с главным героем истории.

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

2. Самозабвение


История с долгими поисками девайсов и/или проводов стала касаться меня ежедневно. Такая пустяковая задача, как найти Xiaomi Mi A1, занимала кучу времени и приносила душевные страдания. Спустя некоторое время, я пришёл к мысли, что меня это бесит и на поиск девайса столько времени уходить не должно. Я нашёл узкое горлышко в рабочих процессах и решил его ликвидировать.

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

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



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

Ну вырежи дырки в пенопласте, разложи девайсы чё ты так запарился, говорили они...


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

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

3. Семя


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



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

Точка опоры


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

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



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



4. Первичный расчёт


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



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

Для того чтобы покрыть весь набор девайсов было решено сделать пять полок:

  1. Верхняя полка под планшеты
  2. Полка для топ-iPhone
  3. Полка для топ-Android
  4. По убыванию новизны Android
  5. По остаточному принципу

5. Сложности в студию!


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

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

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



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

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

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


Скотч намертво крепит подставки и при этом скрыт от глаз. Супер.



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

6. Апгрейды


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



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

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

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

Но помимо этого, были и еще проблемы состояние проводов. О да, провода

На старых крыльях новый самолет пролетает недолго


Разве можно было оставлять в шкафу такое?


У всякой проблемы всегда есть решение простое, удобное и, конечно, ошибочное. Генри Луис Менкен
Между решением и проблемой настолько тонкая грань, что можно их приравнять. Что для одной проблемы решение, то основание для другой и так до бесконечности. Надежда лишь на то, что последующая будет меньше предыдущей.

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



Наконечник бывает трёх типов под каждый разъем: micro, type-c и lighting. Он вставляется в девайс и находится там постоянно, а провод при поднесении к наконечнику примагничивается и держится таким образом продлевается срок службы разъёмов. К тому же девайсы достаточно удобно ставить на зарядку. Выглядит это как-то так.



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

Предметная визуализация залог минимизации ошибок


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

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



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

Посылка с проводами или чемодан без ручки


Спустя некоторое время пришла заветная посылка. Заказывал я на Aliexpress у официального представителя Floveme, но и тут были свои риски. Несмотря на положительные отзывы и моё доверие к бренду, продавец прислал всё, кроме 15 lighting-наконечников. Жажда денег, обман или случайная ошибка? Непонятно, но паника появилась определенно.

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

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

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

7. Бирки


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

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



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



8. Совершенство, выводы и стратегия развития


На данном этапе я совершил то, что задумал: шкаф прекрасно вписался в уголок LT.

Отец и дитя



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

Раскрою секрет второго этапа разработки, о котором задумываюсь: а что, если у каждого сотрудника будет свой уникальный id на бейджике, а на шкафу планшет с простеньким приложением, подключенным к базе данных? И каждый раз, когда сотрудник захочет взять девайс, ему будет нужно поднести бейджик к сканеру rfid-меток.

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

Любая проблема решабельна, если верить в неё и отдаваться полностью. Всегда приятно внести вклад в общее дело и улучшить какой-то процесс. Я думаю, что в ЛТ появился ещё один повод для гордости.
Подробнее..

Энергия старого мира

04.09.2020 20:08:16 | Автор: admin
image

Введение


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

image

Теперь нужно решить энергетический вопрос. И тут начинаются основные отличия от двигателей внутреннего сгорания (ДВС). В таких двигателях бензин, смешиваясь с воздухом, попадает в цилиндр двигателя и при воспламенении этой воздушно-топливной смеси выделяется энергия. Расширившиеся продукты горения давят на поршень, производя работу. Но вот у паровых машин, энергия рождается не в двигателе. Она рождается в котле. Котёл производит пар, который в свою очередь и будет давить на поршень нашего двигателя. Эту древнюю энергию нам и требуется обуздать!

Устройство


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

Существует два основных типа котлов: классический и прямоточный. Первый тип чаще всего использовался для работы паровых машин. Его можно описать как железный резервуар, в который врезана топка. Топливо горит в топке, обогревая воду в резервуаре. Вода в нём начинает кипеть и создаётся пар под давлением. Такой тип использовался на паровозах и всех первых паровых машинах:
image
У классических котлов есть как преимущества, так и недостатки. Преимущества заключаются в том, что для создания давления пара не требуется каких либо насосов, так как накопленная энергия воды может ещё долго снабжать двигатель паром даже при отсутствии огня. Такие котлы не очень требовательны к качеству воды. Паровозы заправляли самой обычной водой из речек, родников, колодцев и прочее.
Прямоточный котёл можно представить как длинную, компактно свёрнутую трубку, обтекаемую пламенем, в которую насосом закачивают воду. Такой тип котла обладает целым рядом преимуществ:
  1. Позволяет создавать пар большего давления при меньшей массе и небольшому объёму котла.
  2. Из-за того, что в трубке не так много носителя, такой котёл считается более безопасным (не запасается большое количество энергии).
  3. Быстрый выход на режим, так как не нужно прогревать большое количество воды.

Для лёгкого понимания работу такого котла можно представить в упрощённой форме:
image

Создание прямоточного котла


И, конечно, мне захотелось сделать именно прямоточный котёл.
Подобрав длинные нержавеющие трубки разного сечения, я сварил их вместе таким образом, чтобы сечение постепенно увеличивалось. Затем, весь этот 8 метровый кишечник был компактно свёрнут и уложен в раму мотоцикла. Внешние стенки, которые должны удерживать пламя и направлять его в нужную сторону, были сделаны из простой жести. Насос, закачивающий воду (носитель), изготовил из газового доводчика, который обычно придерживает капоты и багажники автомобилей. Конструктивно, доводчик это готовое изделие. Мне необходимо было только приварить вход и выход для воды и приделать клапан, который не пускал бы закаченную воду обратно. Насос подвижно крепился одной своей частью к раме, а второй к кривошипу на валу колеса. С помощью гибкого шланга высокого давления (тормозной шланг от авто) вода под давлением закачивалась в котёл, а забиралась из отдельного бачка, располагавшегося выше насоса. Горелку сделал по типу кровельных, такими рабочие греют рубероид на крышах зданий. Чтобы процент обтекания трубок был больше, горелки поставил сразу две.

Итог


Испытания парового мотоцикла, оснащённого прямоточным котлом, с самого начала пошли не так. Самой первой проблемой стало отсутствие начального давления в котле. Приходилось руками покручивать колесо, чтобы насос отправлял некое количество воды в трубопровод. Но, когда я открывал ручку газа (подавая пар на двигатель) давление пара мгновенно падало, не успевая закрутить колесо. Выход нашёлся не сразу. Был сделан небольшой воздушный ресивер после насоса. Он работал как пружина для воды. Запасал энергию сжатия от насоса и отдавал её обратно, когда насос был в мёртвой точке или в фазе всасывания питательной воды.
Двигатель заработал! Но проработал, около 10 секунд. Золотниковый клапан заклинил. При разборе двигателя, никаких проблем выявлено не было. Собрав его обратно и запустив снова, я столкнулся с той же проблемой. Она оказалась приходящей и уходящей сама собой. После изучения этой проблемы, нашлась ошибка в расчётах теплового расширения. Изначально, золотник представлял собой цельную деталь из фторопласта, а у него, как оказалось, очень большой коэффициент теплового расширения (22) и он при прогреве расширялся настолько, что его насмерть заклинивало в корпусе.
После подробных и тщательных расчётов тепловых расширений был выточен стальной золотник, оснащённый фторопластовыми кольцами, шириной 2 миллиметра.

image

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

image

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

imageimageimage

я понял, что у меня слишком маленький котёл (длина обогреваемой трубки), в следствие этого при увеличении производительности, вода просто не успевала испаряться и вылетала вместе с паром в двигатель. От такого эффекта пропадает КПД всей установки, так как расширение воды слишком мало или не происходит вовсе. Увеличить длину котловой трубки уже задача не такая простая. Но и на этом моё горе не закончилось.
Во время очередных испытаний, я мучил аппарат, заставляя его работать, но состояние двигателя начало резко ухудшаться и в какой-то момент он заклинил. На этот раз, просто остудить его снегом, не помогло. Снова понадобилась капитальная переборка. Результаты вскрытия показали, что расплавились все фторопластовые кольца и даже алюминиевый поршень от нагрева расширился настолько, что начал задирать цилиндр. И это оказалось фатальной проблемой. Дело в том, что при большом расходе, данный котёл не успевал производить должное количество пара, а при маленьком расходе, он создал пар такой энергии, что просто вышел из строя весь двигатель. И не удивительно. Ведь выходные трубки котла были раскалены докрасна. То есть пар, достигал температур, порядка 600-700 *С. Как мы знаем, фторопласт распадается при 400*С. Для меня, это и стало последней каплей! Мне уже хотелось получить работоспособный мотоцикл, а я погряз в каких-то бесконечных проблемах! Нужно было переделывать в котле почти всё. И в этот-то момент я понял, что, несмотря на неоспоримые преимущества прямоточного котла, это изделие весьма не простое и требует тонкого расчёта, дополнительного регулирующего оборудования, да и насос съедал не малую часть вращательной энергии. Сложилось чёткое понимание, что, если бы я делал классический котёл, то ни одной из этих проблем просто не возникло бы!
Небольшое видео про мучения с прямоточным котлом:



Классический котёл


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

Изготовление


На металлоприёмке я нашёл какой-то ресивер или болон из-под пропана с толщиной стенки 3-4 мм, так что габариты котла уже были заданы жёстко.
Если сильно заморачиваться с массивной и эффективной топкой, то останется мало места для самой воды (носителя). Если топка будет слишком маленькой, то у нас не будет достаточной энергии для более менее удовлетворительной крейсерской скорости, ну и сам процесс нагрева котла займёт слишком много времени.
И вот, что я придумал. Топка будет подвержена сдавливанию огромным давлением, поэтому решено было сделать её простой, сквозной и круглого сечения. Под это пошла обычная труба 100 мм. Для увеличения КПД нашей топки (теплообменника), были врезаны 12 поперечных сквозных трубок.
image
Я посчитал это очень выгодным, так как они обтекались бы пламенем и выхлопными газами под прямым углом,
image
а вода внутри них циркулировала бы под естественным эффектом конвекции. Это позволит сохранить максимальный объём воды в котле, а для нас это запас хода. И, как бонус, такую топку было легко врезать в резервуар. Следовало всего лишь сделать два отверстия по обоим краям.
image
Для контроля давления установил небольшой манометр. Температуру носителя контролировать не обязательно, так как она напрямую связана с давлением и явно не выходит за критическую отметку (400*С). Давление в котле решил сделать как у реальных паровозов 16 bar. Предохранительный клапан настроил на 18 bar. Теперь осталось его опрессовать. Это своего рода проверка на прочность. Котёл наполняется доверху водой и накачивается повышенное давление. Сначала, я это делал оставшимся от предыдущей котловой системы, насосом из доводчика, но сжимать такой насос при давлении более 20 bar, оказалось не простой задачкой (очень хорошо, что мы теперь можем отказаться от такого узла, ведь он забирал уйму мощности на себя). Оказалось, что опрессовывать удобнее всего углекислотным огнетушителем. Им я без труда создал давление в котле в 25 bar (это был максимум моего манометра) и, выждав несколько минут, приступил к настройке предохранительного клапана.
image

Итог


Котёл получился на славу. Даже давление в 25 bar оказалось ему нипочём. Он даже не начал хрустеть. Предохранительный клапан (использовал от компрессоров) срабатывал чётко, хоть и ронял давление с 18 до 9. Этот для нас очень не выгодно, но он будет срабатывать только в тех случаях, когда сам за давлением не уследишь. Так что, до его срабатывания лучше не доводить. Это будет бессмысленное выбрасывание ресурсов.

Пламя


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

Изготовление


На металлоприёмке нашёл отличные, маленьких размеров, нержавеющие бачки. Судя по их форме и синей окраске, это кислородные баки от какого-то пассажирского самолёта. Я собрал несколько таких бачков в батарею и объединил магистралями подачи газа и заправки. Объём каждого бачка примерно 1.7 л, а значит, можно будет везти с собой запас топлива более 5л. жидкого газа. Согласитесь, не плохой запас энергии.

image

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

imageimage
Эксперимент (рис А)Пламя с не прогретой горелки (рис В)Правильный режим, прогретая горелка

Поэтому подавать газ, в нашу горелку, следует плавно, чтобы она успела прогреться.
Испытания котла прошли как по маслу. Заправил примерно 35 л воды, горелку вывел на полную мощность и ждал. Через 14 минут вода закипела, и давление потихоньку начало подниматься. Примерно через такое же время в котле было 16 bar.
Для управления подачей пара, я использовал простой водопроводный шаровой кран, который отлично справлялся и с температурой, и с давлением. В них используется тот же самый фторопласт, так что проблем, думаю, не будет.
Для интереса, я решил открыть кран на полную и посмотреть на нашу энергию. Струя пара долетала до соседних гаражей и создавала шум взлетающей ракеты. При этом я ощутил силу реактивной тяги, пришлось даже придерживать котёл, чтобы он не начал летать по всей улице. Я был очень доволен!

image

В котле подобного типа запасается огромное количество энергии. Спуская пар в течение 5 секунд через отверстие дюйма, давление в котле упало всего лишь наполовину. Дело в том, что при уменьшении давления, смещается и точка кипения воды. То есть вода начинает кипеть и без подогрева, всего лишь от уменьшения давления. Этот эффект будет работать до тех пор, пока температура воды не упадёт до 100 *С. Это для нас приятная новость. Значит, можно будет долго ездить и с выключенной горелкой.
Но есть и один не совсем для меня понятный эффект. При активном выпускании пара при давлении менее 5 bar, начинает вылетать вода. Я предположил, что она кипит столь интенсивно, что в своём неистовом бурлении долетает до сухопарника и подхваченная потоком пара улетает наружу. Для эксперимента я слил часть воды, оставив уровень 20%. Эффект конечно уменьшился, но всё равно остался. Неужели вода подпрыгивает в котле на 30-40см? Если честно, с этим я пока так и не разобрался. Такая вот небольшая загадка.
Ну да ладно! Функционал готов, пора собрать наш аппарат!

Стиль


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

image

Большинство различных самоделок имеют стиль Безумного макса или Постапокалиптического мира. Да, так проще всего. Особо то и делать ничего не нужно. Ржавые железки, приваренные гаечные ключи, немного висящих тряпок и стиль готов. Но этой простоты, или так сказать ленивого стиля в нашем мире очень много. Мне захотелось сделать что-то маленькое, милое и красивое. Сделать конфетку, так сказать. И раз уж у нас древняя паровая технология, сам собой напрашивается Стимпанк.

imageimage

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



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

image

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

Видео отчёт. Испытания парового мотоцикла



Заключение


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

Своими руками Компьютер в столе с жидкостным охлаждением

06.09.2020 10:13:38 | Автор: admin
image

Друзья всех приветствую!

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

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

Размеры товарищ захотел 122 на 65 см.

image

Товарищ захотел сочетание черного и белого цвета, в матовом исполнении.

image

Изготовление кастом СВО:

Отдельный контур под процессор
Отдельный контур под видеокарту

Два радиатора по 420 мм от EK
Две колбы HEATKILLER
Моноблок на процессор EK
Водоблок на видеокарте EK
Кулеры по 140 мм от Thermaltake

image

Контур под процессор, здесь используется i9-9900K
Товарищу хватает его за глаза.

image

Моноблок от EK отлично охлаждает i9 и цепи питания на материнской плате.

image

Много подсветки, но она легко выключается одной кнопкой.

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

image

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

image

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

image

Вид сверху

image

Конфигурация ПК

Процессор: i9-9900K
Мать: ASUS ROG Maximus XI Hero
ОЗУ: G.SKILL Trident Z Royal (32 GB)
Видеокарта: EVGA RTX 2080 SUPER
SSD: Samsung 970 Pro (1024 GB)
HDD: WD Black (2 Tb)

Тест на нагрев в AIDA64 и FurMark

Процессор прогревался до 50 градусов
Видеокарта прогревалась до 55 градусов
Уровень шума (при пиковой нагрузке) около 36 db.

image

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

image

Вся подсветка RGB и делится на несколько зон.

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

image

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

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

image

Вставка в ножке на магнитах и легко снимается.

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

image

Подставка от монитора не занимает место на столешнице и при этом его можно двигать во всех плоскостях.

image

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

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

image

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

image

Стол легко разбирается и удобно транспортируется в деревянном ящике.

Именно в такой упаковке, этот ПК В СТОЛЕ и отправился к моему товарищу.

image

На изготовление такого проекта с нуля, у меня ушло 30 дней.

Спасибо за внимание! :)

image
image
Подробнее..

Как я делаю цифровую минигитару

06.09.2020 16:13:36 | Автор: admin
image

В этой статье я постараюсь в общих чертах описать путь создания девайса от идеи до реализации юзабельного прототипа.

Меня зовут Дмитрий Дударев. Я занимаюсь разработкой электроники и очень люблю создавать различные портативные девайсы. Еще я люблю музыку. Полгода назад я взял у друга акустическую гитару чтобы попытаться научиться на ней играть по урокам из ютуба и табулатурам. Было тяжело. То ли я неправильно что-то делал, то ли плохо старался, то ли в обществе моих предков мелкая моторика вредила размножению. В любом случае, ничего кроме звуков дребезжащих струн у меня не выходило. Мое негодование усиливала постоянная расстройка струн. Да и окружающим тысячный раз слушать мою кривую Nothing else matters удовольствия не доставляло.

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


Идея


В голове начала вырисовываться структура цифровой гитары.

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

  1. Устройство должно имитировать гитару с 6-ю струнами и 12-ю ладами на грифе
  2. Должно быть компактным, в идеале складным, чтобы можно было брать его с собой куда угодно
  3. Должно подключаться ко всем популярным осям Android, IOS, Windows, Linux, MacOS и определяться там как MIDI устройство без каких-либо драйверов
  4. Работа от аккумулятора
  5. Подключение должно производиться без проводов (но раз уж там будет USB разъем для зарядки, то и по проводу пусть тоже подключается)
  6. Возможность сразу начать играть, без необходимости в долгих тренировках по адаптации кистевых связок
  7. На каждой струне и каждом элементе грифа должно быть по светодиоду, чтобы можно было запустить табулатуру мелодии, и гитара сама показывала куда нужно прикладывать руки
  8. Возможность использования основных техник игры на гитаре: hummer on, pull off, slide, vibrato
  9. Задержка передачи midi команд не более 10мс
  10. Все должно собираться из подручных материалов без сложных техпроцессов и дорогой электроники

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

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

Аналоги


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



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



Значит, можно приступать.

Proof of concept


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

Контроллер

В своих проектах я чаще всего использую STM32. Они мощные, дешевые, доступные. Выбрал STM32F042. В нем есть USB (причем, со специальным внутренним генератором на 48МГц чтобы не вешать внешний кварц), 32-битное ядро, и вся необходимая периферия. И все это при стоимости меньше бакса.

Беспроводное подключение решил оставить на следующую итерацию.

Струны на дэке

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

Замоделил в солиде и напечатал для оценки эргономики.





Получилось довольно приятно на ощупь. Должно работать.

Сенсоры на грифе

На гитаре предполагаются 6 струн и 12 ладов. Суммарно это 72 сенсора на грифе и еще 6 на дэке. Можно было бы использовать на каждый элемент по тактовой кнопке, но, во-первых, они щелкают, во-вторых, не получится реализовать техники вроде slide или vibrato. Хотелось бы еще и усилие нажатия определять.

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



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

АЦП

Для считывания состояния каждого датчика нужен ацп. В STM-ке их всего несколько штук, так что для опроса 78 датчиков понадобится что-то еще. Можно было бы использовать внешние многоканальные ацп микросхемы, но они слишком дорогие. Поэтому я решил поставить 5 дешевых 16-канальных аналоговых мультиплексора CD74HC4067 и подключить к каждому по одному каналу ацп STM-ки.

Плата

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







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

Из 80-ти датчиков рабочими оказались только несколько, и то с разными параметрами.



От изображения на сайте продавца они отличаются заметно в худшую сторону.

И чего я ожидал, покупая электронику на али?..

И тут меня осенило.

Можно ведь применить другой метод детектирования измерение емкости как в датчиках прикосновения. Это гораздо дешевле и доступнее. А если правильно спроектировать механику, то можно и усилие определять.

Что ж. Удаляю все что было сделано.



Начинаю сначала


В новой версии минималистичного proof of concept-а в качестве сенсорных элементов я выбрал напиленные из 4мм медного прутка цилиндрики, припаянные к плате.

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

Опрос сенсоров

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

Микросхема подключается по I2C интерфейсу и имеет 2 конфигурационных пина, задающих адрес. Соответственно, на одну шину можно повесить максимум 4 микросхемы. А мне нужно 12. Не проблема, распределяю их на три группы и подключаю к шине STM-ки через мультиплексор.

Платы





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

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



Железяка готова. Следующая задача заставить ее играть.

Софт


План следующий:

  1. Скачать виртуальный синтезатор, который может работать с MIDI устройствами и издавать гитарные звуки.
  2. Написать прошивку, которая будет опрашивать сенсоры и передавать результаты в комп через USB custom HID интерфейс около 100 раз в секунду.
  3. Написать программу на питоне, которая будет принимать эти данные, эмулировать виртуальное MIDI устройство, генерировать MIDI пакеты и отправлять их на виртуальный синтезатор.

Разбираться как сразу прикинуться MIDI устройством решил чуть позже.

Чем воспроизводить звук?

Виртуальных синтезаторов под винду с поддержкой MIDI оказалось довольно много. Я попробовал Ableton live, RealGuitar, FL studio, Kontakt. Остановился на RealGuitar из-за простоты и заточенности именно под гитару. Он даже умеет имитировать несовершенства человеческой игры скольжение пальцев по струнам, рандомизированные параметры извлечения нот.



Подключение к виртуальному синтезатору

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



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



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

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



Тест

Похоже, все готово для первого теста. Пилить прутки и паять все 12 ладов мне было лень, поэтому ограничился 8-ю. Момент истины:


ITS ALIVE! Жизнеспособность концепта подтверждена. Счастью не было предела! Но нельзя расслабляться.

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

Светодиоды

Для подключения 84 светодиодов я выбрал самый простой пусть daisy chain из 14-ти 8-битных сдвиговых регистров. Их удобно подключить к SPI MOSI выводу STM-ки и слать по DMA массив данных без участия ядра.

Акселерометр

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

Беспровод

Для беспроводной передачи данных решил поставить ESP32. Оно поддерживает различные протоколы Bluetooth и WI-FI, будет с чем поэкспериментировать (на тот момент я еще не знал, что в моем случае существует только один правильный способ подключения).

Корпус

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

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

Начинаю работу


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



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



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











MIDI устройство

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

Оказалось, сделать это не так сложно, все спецификации есть на официальном сайте usb.org. Но все алгоритмы, которые выполнялись на стороне питонского приложения, пришлось переписывать на C в контроллер.

Я был удивлен, что оно сразу заработало на всех устройствах. Windows 10, MacOS, Debian 9, Android (через USB переходник). Достаточно просто воткнуть провод и в системе появляется MIDI устройство с названием Sensy и распознается всеми синтезаторами. С айфоном пока протестировать не удалось т.к. нет переходника. Но должно работать так же.



Беспроводной интерфейс

Следующая задача организовать работу без проводов.

Погуглить сразу я поленился, поэтому потратил несколько дней на тестирование различных беспроводных интерфейсов. BLE я отмёл сразу, т.к. в моей голове Low energy прочно ассоциировалось с низкой частотой передачи пакетов. Пробовал WI-FI в режиме клиента, WI-FI в режиме точки доступа, Bluetooth в режиме SPP и т.д. Везде была одна и та же проблема огромная задержка (больше 100мс на глаз) и неравномерность прихода пакетов во времени. Это делало игру невозможной.

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

Но тут я случайно наткнулся на спецификации новых версий протокола BLE и увидел, что минимальный connection interval там 7.5мс, что отлично вписывается в мои требования.

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

Единственной проблемой оказалось то, что такой низкий connection interval и вообще BLE MIDI поддерживаются только относительно новыми платформами. Подробности еще предстоит выяснить, но тесты с доступными мне девайсами прошли успешно.

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

Прошивка

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



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

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


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



Какие минусы у этой конструкции?

  1. На сенсорах нигде не измеряется усилие нажатия. Это влечет за собой три проблемы:
    • Постоянно происходят случайные задевания соседних струн как на дэке, так и на грифе. Это делает игру очень сложной.
    • Все играемые ноты извлекаются с одинаковой громкостью. Большинство подопытных этого не замечают, но хотелось бы более приближенной к настоящей гитаре игры
    • Невозможность использовать техники hammer on, pull off и vibrato
  2. Светодиоды одноцветные. Это ограничивает наглядность при игре по табулатурам. Хочется иметь возможность разными цветами указывать на различные приемы игры.
  3. Форма корпуса не подходит для левшей. С точки зрения софта я уже реализовал инверсию струн по акселерометру. Но механический лепесток, необходимый для удержания гитары рукой во время игры, поворачивается только в сторону, удобную правшам.
  4. Отсутствие упора для ноги. Сейчас, при игре сидя, нижняя струна почти касается ноги, а это неудобно.
  5. Сустав сгибания гитары требует осмысления и доработки. Возможно, он недостаточно надежен и стабилен.

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


Переезжаю на контроллер серии STM32F07. На нем уже 128КБ флэша этого хватит на любой функционал. И даже на пасхалки останется.

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

Конечно, будут реализованы и три главных нововведения:

  • светодиоды теперь RGB,
  • на каждом сенсоре грифа будет измерение усилия (тактовые кнопки больше не нужны),
  • струны на дэке станут подвижными.

На данный момент плата дэки выглядит так (футпринт ESP на всякий случай оставил):


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

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

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

Кому интересно следить за новостями проекта оставляйте почту в форме на сайте и подписывайтесь на соцсети.

Очень надеюсь на обратную связь от Хабрасообщества с комментариями и предложениями!

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

И тут случайно нестандартным способом перезагружаю плату в терминал приходит буква N в ascii. Это соответствует числу 0x4E, которое я не отправлял. Перезагружаю еще раз приходит буква O. Странно. Может быть проблема с кварцевым резонатором и сбился baud rate? Меняю частоту в терминале, перезагружаю плату опять приходит N. С каждой новой перезагрузкой приходит по новой букве, которые в итоге составляют повторяющуюся по кругу фразу NON GENUINE DEVICE FOUND.

Что эта NRF-ка себе позволяет? Прошивку я обнулял. Как она после перезагрузки вообще помнит, что отправлялось в предыдущий раз? Это было похоже на какой-то спиритический сеанс. Может, я и есть тот самый NON GENUINE DEVICE?

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

Снова спасибо китайцам.

Спасибо за внимание!
Подробнее..

Recovery mode Моя Яндекс.Станция Мини умеет выводить два звука одновременно, а ваша?

07.09.2020 04:21:52 | Автор: admin
Совсем недавно приобрел Яндекс.Станцию Мини. Если, кто не знает, это маленькая умная колонка, управляемая голосом и жестами. Внутри голосовой помощник Алиса: она включает музыку, отвечает на вопросы и выполняет поручения. Приобреталась как умный радиоприемник на кухню, последующего создания умного дома со своими навыками.

После спаривания с операционными системами Winodows 7, 10, Ubuntu 16.04, вдоволь поигравшись с ее возможностями, ознакомился с официальной документацией.

https://yandex.ru/support/station-mini/speaker.html
Использовать Станцию Мини как музыкальную колонку
На Станцию Мини можно транслировать музыку с компьютера, планшета или смартфона через Bluetooth как на обычную беспроводную колонку:
Скажите: Алиса, включи Bluetooth или нажмите кнопку отключения микрофонов и удерживайте ее пять секунд, пока подсветка Станции Мини не замигает.
Включите Bluetooth на компьютере, планшете или смартфоне и запустите поиск устройств Bluetooth.
В списке выберите Станцию Мини и включите музыку.
Пока Станция Мини играет музыку через Bluetooth, Алиса вас не слышит. Чтобы выйти из режима трансляции, разорвите соединение на стороне вашего компьютера, смартфона или планшета.







После прочтения очень сильно расстроился. С одной стороны потрясающие возможности речевого управления, создания навыков, умного дома. С другой стороны, используя возможности зарядки от USB 3.0 порта ноутбука, получаем пульт голосового управления с радиусом дальнобойности хорошей точки Wi-Fi, без особых ухищрений до 100 метров!

Решил проверить кодовую фразу на колонке, спаренной по Bluetooth с компьютером. Алиса, включи радио Маяк. И радио запело И параллельно шел звук с компьютера. В итоге,
официальная документация опровергнута, устройство с августа 2020 получило новые возможности. Для двух потоков рекомендуется командовать одним потоком как обычно, командами Алисы, потоком по Bluetooth можно управлять регуляторами громкости компьютера, так же задействовав беспроводную клавиатуру с клавишами управления, либо, если есть, отдельными кнопками управления громкости ноубука с торца устройства.

У кого еще получится провести такой эксперимент?
Подробнее..

Разработка hexapod с нуля (часть 9) завершение версии 1.00

07.09.2020 14:15:25 | Автор: admin

Всем привет! 2 года разработки, 9723 строчек кода и киллограмы пластика сделали свое дело разработка гексапода подошла к заключительному этапу в рамках текущей версии. К этому этапу проект полностью перешел на красивые зеленые железки, слегка изменен дизайн и появилась трансляция видео. Так же будет клёвое демо-видео. Все выходные были успешно слиты на его съемки и монтаж, надеюсь понравится.

Этапы разработки:

Часть 1 проектирование
Часть 2 сборка
Часть 3 кинематика
Часть 4 математика траекторий и последовательности
Часть 5 электроника
Часть 6 переход на 3D печать
Часть 7 новый корпус, прикладное ПО и протоколы общения
Часть 8 улучшенная математика передвижения
Часть 9 завершение версии 1.00

Силовая часть


Прошлая плата была собрана из того что было в кейсах с компонентами: LM2596S и no-name дроссели. Нехорошо нужно переделать. На этот раз я решил сделать 6 канальный блок питания по одному каналу на конечность, в качестве DC-DC взял LM2678. Получилась довольно приличная плата:



Нагрузочные тесты показали хорошую эффективность. При нагрузке 4А эффективность преобразования составила 92% при 12В входном и 6.5В выходном напряжении. Один такой канал вытягивает 3 сервопривода без серьезной просадки напряжения (менее 0.2В).

Внутри гексапода плата смотрится просто шикарно никакого колхоза и висящих проводов.



Плата управления


Данная часть получила минимальные изменения. В функционале осталось все так же, были переразведены USARTы для коммуникации с камерой, перемещены транзисторы для управления светодиодами, изменены тип кнопок BOOT и RESET, ну и всё в таким духе.

Была добавлена возможность управления питанием сервоприводов, т.к. текущие приводы при потере импульса продолжают удерживать последнее положение. Тут всё просто вывод микроконтроллера подключен к выводу ENABLE микросхемы LM2678 и в случае ошибки или разряда батареи контроллер сможет выключить питание.

Трансляция видео


О да, теперь гексапод может транслировать видео на телефон, либо другое устройство где есть браузер. Сделано это на базе ESP32-CAM. Я не хотел создавать себе лишних проблем и пришлось прибегнуть к запретной технике Arduino. Да, я просто взял готовый пример с передачей кадров по HTTP, немного его допилил и всё готово.

При получении HTTP GET запроса ESP32 забирает фрейм с камеры, преобразует его в JPEG формат разрешением 640х480 и отсылает чанками по WI-FI на приложение\браузер.

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


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

Теперь немного об архитектуре. Гексапод это ходячая точка доступа WI-FI, ESP32 в данном случае настроен в качестве клиента. При подаче питания гексапод поднимает точку доступа WI-FI в течении 30-40 секунд, ESP32 в это время делает попытки подключится ней и в случае успеха передает по USARTу свой IP адрес в STM. В результате мы имеем беспроводную локальную сеть.

Такая архитектура сделана по нескольким причинам:

  • STM32F373 не потянет обработку такого потока данных;
  • Не нужно делать свой протокол передачи изображения. На борту есть HTTP, почему бы его не использовать сразу?;
  • Прямая передача данных на устройство по воздуху, минуя STM и провода;
  • Возможность трансляции видео на любое устройство с браузером, которое подключилось к гексаподу. К примеру, я могу управлять гексподом с телефона и спокойно смотреть его глазами с ноутбука. Мне показалось это очень удобным.

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



Долгожданный результат



Планы на будущее


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

С ножовкой на лазер, с голыми руками на чип. Как DIY-авторы создают свои шедевры на Хабре

07.09.2020 20:15:27 | Автор: admin
image

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

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

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





Чип без Дейла: об опыте вшивания в руку двух меток


Автор: Bluewolf
Статья: Как я имплантировала RFID себе в руку, а потом ещё NFC. Часть 2

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

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

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

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

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


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

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




DIYщками не рождаются, DIYщиками становятся


Автор: c_kotik
Статья: Поделки из нерабочих HDD мини-помпа

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

Уже после окончания вуза и устройства на постоянную работу, когда друзей жизнь раскидала, а сериальчики все были пересмотрены, возник вопрос о том, чем бы заняться. Ну не спиваться же, в самом деле! Вот я и решил в качестве альтернативы заняться моддингом тогда это ещё прочно было связано с изготовлением охлаждения и корпусов ПК своими руками. Это сейчас, увы, достаточно насыпать светодиодов и изогнуть трубки для СЖО и, вуаля, ты звезда YouTube крутой моддер.

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

Так, по тем же помпам аналога с нужными мне габаритами я не нашёл даже на вездесущем AliExpress.

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

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


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




От FM-приёмника до умного дома


Автор: madcatdev
Статья: TinyFL драйвер фонарика на микроконтроллере

Я достаточно долгое время занимаюсь DIY, причём это касается не только электроники, но и программирования. Мне всегда нравилось делать что-то своими руками. Самое первое из электроники, что cделал, cпаял набор Собери сам из ЧиД, мне тогда было лет 10. Это был простенький карманный FM-приёмник с питанием от батарейки Крона. Был приятно удивлён, когда он заработал, потом возил его летом на дачу и слушал по вечерам Наше радио.

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

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


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

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




Комментарий на Хабре подвиг на эксперименты


Автор: epsonic
Статья: Сказ о том, как я собирал 120-дюймовый домашний кинотеатр из труб, веревок, складного экрана и черного бархата

Проекторами как таковыми я заинтересовался лет 8 назад, когда понял, что мне не хватает моего 52-дюймового телевизора. Моим первенцем был Epson EH-TW450, который служил мне верой и правдой много лет, но перед переездом я его продал, а на новенький Epson EH-TW5650 бюджета не хватало.

Как-то раз в одном из обсуждений я схлестнулся с хабравчанином, который настаивал, что XGIMI X2 куда лучше Epson. Так меня и потянуло на эксперименты. В результате китаец оказался вполне смотрибельным.


Главный минус у него гуляет фокус. Когда проектор холодный, фокус промахивается снизу, когда разогревается, промахивается сверху, и приходится каждый раз чуть-чуть корректировать. Плюс у него ужасный лаг, играть в отзывчивые игры не получается. Если включить ноутбук ДО включения проектора, то ноут некорректно определяет HDMI-диапазон и у картинки проваливаются тени до исправления диапазона через настройки драйвера. Ну и яркость у него смешная в районе 200 ANSI lm, смотреть можно только в полутьме или в полной темноте.

Что касается конструкции домашнего кинотеатра в целом, то она по-прежнему работает, именно на этом 120-дюймовом экране я смотрю кино, чемпионаты StarCraft 2 (GSL в частности), видео с YouTube и играю в игры на PS4. Периодически пробую разные модели проекторов, ищу идеальную замену китайцу, который планирую эксплуатировать, пока тот не выйдет из строя, хотя, признаться, я от него уже прилично устал.

Кстати, кратко моё мнение о том, как выбрать проектор: яркость не менее 1 000 люмен, разрешение fHD, обязательно на базе 3LCD, поскольку DLP-радугу хорошо видно на контрастных быстрых сценах, а также у DLP в тенях видно шум от дрожащих зеркал, которые формируют изображение. Это же, кстати, можно отнести и к минусам китайца, о котором писал выше, так как он RGB-LED DLP.

Домашний кинотеатр не единственная DIY-конструкция в моём доме. У меня есть, например, 46-дюймовая световая LED-панель с 10 кГц ШИМ-диммером, собранная из LED-ленты, пластиковых уголков, сэндвич-панели и оптики/рассеивателей от старого неисправного телевизора. Работает, пользуюсь.

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



Хочу создать свой музей лазерной техники


Автор: Laserbuilder
Статья: Самодельный лазер на парах хлорида меди

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

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


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

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

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

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

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

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

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



Наверняка и вы, раз вас заинтересовал этот пост, тоже сделали что-то крутое своими руками, а то и уже успели написать об этом в текущем году. Или вы как раз в процессе реализации своей крафт-идеи? Или наши топовые герои вдохновили вас сотворить собственную поделку и описать этот опыт? В таком случае заявляйтесь на конкурс IT-статей ТехноТекст-2020 в жанре DIY / Сделай сам возможно, именно ваш техношедевр восхитит Хабр и победит!

Подробнее..

Forte de Nossa Senhora da Graa

09.09.2020 16:16:51 | Автор: admin

Это выжимка из комментариев к видео про один старинный форт, который старше 200 лет, но в нем содержатся технологии передачи сигналов на расстояние, аналогичные современным телефонам.

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

Монитор сделан из поверхности водного рва глубиной 20 см.

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

Найден артефакт древней цивилизации

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

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

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

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

В чем суть проблемы

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

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

Все оказалось еще хуже

В этом артефакте нашли технологии и физические принципы, которые на нашей планете Земля все приличные люди (естественно это дипломированные остроконечники с сертификатами качества) не знают не менее 250 лет. Так давайте и рассмотрим эти стыдливые и неприемлимые инопланетные технологии.

Что это?

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

Для понимания общих принципов этого форта начните с простого представления. Допустим что там был слой воды 20 см на входе. И он служил для 2 целей.

Первая для сигнализации о том что кто то пошёл по воде. И вторая цель это остановка человека.

  • На самом деле все не так работало но для начального уровня объяснения. Когда человек шёл, то регистрировались волны на воде с помощью капельницы и тут же подключалась батарейка на короткий момент времени для подачи напряжения.

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

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

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

  • Ну есть еще, пятый, шестой десятый и т.д.

Батарейка

Смысл понятия Ёмкость раскрывается так: если напряжение от источника напряжения составляет 1 В, то емкость в 1 нанофараду, как у лейденской банки маленького размера, может запасти 10 в минус 9 Кл.

Если напряжение составить 100 000 Вольт, то емкость будет 10 в минус 4 Кл. Ток в такой цепи может достигать 10 А, если его использовать без прерывателя, то это будет в 1000 раз привышать смертельную дозу. Чего хватит для большой гурппы нападающих.

Грубо говоря маленькой банки достаточно на убийство 10 человек. Цистерны из Крепости зведы достаточно для одновременного смертельного воздействия на 1000 человек.

Пока не достаточно входных параметров. Слишком много допусков. https://fiz.1sept.ru/2003/36/no36_1.htm

1/4Eo=1/4(3.14)(8.85410^-12) =8.910^9

С внесистемной единицей ампер-час кулон связан равенством: 1 Кл = 1/3600 ампер-часа. Элементарный электрический заряд (с точностью до знака равный заряду электрона) составляет точно 1,602 176 6341019 Кл, поэтому 1 Кл примерно равен заряду 6 241 509 074 460 762 607 электронов.

https://znanija.com/task/37816427 Значит их общее количество 10 штук электронов, но заряженных всего 10 - 2000 раз меньше.

Согласно исследованиям А. Н. Фрумкина, полярный характер молекул воды и их ориентация в поверхностном слое обусловливают потенциал около 0,25 в и положительный (т. е. одноименный) заряд всех капель воды. Для капли воды, например с г=10-з см (это отвечает размеру глобул НгО в некоторых видах облаков), вычисление дает заряд около 2000 е, а адсорбция газовых ионов для той же капли дает 10 е. Такой сравнительно высокий заряд глобул воды предохраняет их от коалесценции при броуновском движении.

Сколько капель

Занчит в 1 Кл около 3 241 509 074 460 762 капель воды. В году 31 449 600 секунд. Откуда видно что потребуется около 30-100 тысяч лет чтоб накапать приличный заряд в микрокулон. Да же если у нас 12 Капельниц Кельвина, всё равно это 10 000 лет примерно.

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

На крючке под капельницей кельвина просто подвешивали две баночки и шарик на веревочке. Он отклонялся то к одной баночке, то к другой. Издавал приятный звук звонка Франклина. Смотрите видео Капельница Кельвина на канале Юлия Чурсина.

Другие виды энергии

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

Упругостатика

Например энергия разности звука , температуры (для Испании и Португалии не актуально), - Упругостатика

Магнитостатика

Разность излучения (фотопанели - в Андалусии выгоднее просто солнечное зеркало использовть для нагрева пищи напрямую без конвертации в электричество), магнитного поля земли, как в тангенсальном гальванометре. - Магнитостатика

Электростатика

Когда люди начнут использовать статическое электичество высокой частоты и напряжения. Йонный газ с йонами азота. - Электростатика.

Слабодинамика

Еще один способ это энергия ветра для вибрации конденсаторов. - Слабодинамика.

Электрослабое взаимодействие

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

Ну и все известные комбинации вышеперечисленных

Так например Упруго-электрические это электрогенераторы с вращением и частотой. Электродинамические это электрофорные машины. И т.д.

Гипотеза о батарейке Земля

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

Я считаю что в этом есть кое что. А именно если у нас потоп а потом землетрясение - то поверхность земли образует складки в соответствии с зонами Брюльена или гармониками.

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

Цистерна с колонной и газом и генератором сверху с зазором.

Видите там упругие слои. То есть этот столб как свая на 1 сантиметр может вибрировать.

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

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

Недостающее звено

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

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

Тут мы видим устройство не откопанных подземных ходов. Хорошо видно длинный "резистор". Это смеситель и приёмник внешних колебаний. Очень напоминает проект Тесла (если это был его проект а не заимствованный). Собственную частоту этого тела можно регулировать подавая в "слуховые" ходы инфразвуковые волны необходимой частоты.

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

Что расстояние между окончаниями ходов в от 147 см до 3 м. То есть да же без симуляции этой 3D структуры видно что это предварительный усилитель со встроенным фильтром, рассчитанный на частоту в диапазоне 200-500 Гц.

P-волны

P-волны (первичные волны) продольные, или компрессионные волны. Обычно их скорость в два раза быстрее S-волн, проходить они могут через любые материалы. В воздухе они принимают форму звуковых волн, и, соответственно, их скорость становится равной скорости звука. Стандартная скорость P-волн 330 м/с в воздухе, 1 450 м/с в воде и 5 000 м/с в граните.

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

А ямы (которые были якобы с кольями в них выходили завершающие подземные ходы) возле Звезды выполняли 2 функции. Фильтрацию шумов, отражение с усилением и в случае длинной цепи ям, они работают как акустическая линза слегка фокусируя сигнал. Это позволяет сигналу пройти под дополнительными лучами звезд на севере без угасания, которое снижало амплитуду.

Благодарю другого комментатора с youtube, который заметил что такие выемки служат для подстройки антенны (АФУ).

Устройство предварительного усилителя приемника

Подавались 2 волны в противофазе на 1 и 2 и другая волна на 3 и 4. Там расстояние между 2 и 4 по паре метров было. Они взаимно уничтожались, но если приходил сигнал из 3 гармоник, то он тут же подмешивался в боевой ход.

Устройство монитора Конфуция

Откуда попадал на поверхность пруда в виде ряби. Развертка сигнала (волна обегала) происходила примерно за 3-4 секунды вокруг периметра.

Вот только тут я понял что значит:

Цуки-но Кокоро,Мидзу-но Кокоро()- Дух -как Луна, Дух - как Вода - Луна лишь изливает свой свет на гладь пруда в безветренную погоду, Вода лишь отражает Луну.

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

Цистерна служила в качестве источника инфразвука, за счет создания давления в колонне.

Кто гений из 2500 коментаторов?

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

"Только я это заметил?"

На этом плане цифрой 8 обозначен генератор солитонов на основе резонатора Гельмгольца.

Магнетрон и флейта

Под цифрой 9 на плане ниже вы видите необычный музыклаьный инструмент интегрированный прямо в архитектуру здания. Какой свежее решение! Так в камере ноты До может поместиться 10 лилипутов и устроить там танцы. Как можно заметить по схеме, оставляя окрытой отверстие 8 - мы получаем ноту До, триграму для этой ноты можно подобрать по "Книге перемен". Нота Ре у нас всегда закрыта лилипутским телом стоящим на Розе ветров выложенной из булыжника. Ноту Ми мы получаем открыв отверстие 6.

Роза Ветра вымощенная перед дверью это место и возможность управления 3 гармониками (путём перекрытия слуховых окон флажками) для передачи сигнала. Помните Триграммы из Книги перемен и Круголета числобога?

Частотный диапазон ответа системы до 200 Гц, до 500 Гц и свыше 500 Гц. Это как раз начиная с Басовой струны гитары, средние струны и высокие. Развертка осуществляется вдоль воды через щели со скоростью бегущей звуковой волны. За одну секунду пробегает весь периметр. На пруду отображаются результаты сбора сигнала с подземного слоя сенсоров.

Язык программирования

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

Вынужден констатировать, что технологии древние Корейские - Журженские.

Я бы отнес их к 1581 году. Когда расцвела империя Великих Моголов. Которые говорили на Дари и Кхайти (Санскрит и тот же язык записанный Арабской вязью). Но это были языки межнационального общения. Суржики. Основные языки были древне русский и Арабский. Примерно за 50 лет до этого состоялось путешествие Джен Хэ, предположительно, в Европу через реку пересекавшую Африку с Востока на Запад до самых Атласных гор Марокко.

В1580годуумирает корольЭнрике, и португальский трон переходит в руки испанского короля Филиппа II Габсбурга.

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

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

Как чакры человека слить с чакрами здания

Позвоночник человека с 7 чакрами. А это здание всего с 3. Это как огромная флейта размером со всё здание на которой возможно сыграть мелодию.

Для этого, либо оставляя открытыми либо нижнуюю струну (8 на схеме выше) , либо вернюю частоту (6 на схеме выше), либо оставляя основной тон, либо перекрывая его поднимая руки вверх.

У Крепости звезды в отличие от человека всего 3 позвонка и есть вот схема передачи между ними.

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

Это хорошо видно на португальском видео Fuerte de Gracia.

Дачный проект

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

А из пруда с карпами сделать классный нагнетатель кислорода с отображением принятой информации :-)

Средняя часть Форта

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

Синхротрон времен Филиппа II Габсбурга

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

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

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

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

Недостаток информации

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

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

Эту систему использовали для управления генерацией солиона (волны из двух торов). Точнее контроля дальности и мощности.

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

Маяк

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

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

Вишенка на торте - транспорт им. тов. Сталина

Посмотрите 7-ю минуту вот этого фильма 01-36. СВЯЗЬ ЗВЕЗД. Новые звезды. Новые предположения. История России Дима Димов ДИМ-ТВ ЛОХ-ТВ там про транспорт.

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

Мы делали эксперименты с обычным радиопередатчиком. Обычная электромагнитная волна на 422 Гц в земле распространяется на полтора метра минимум (точнее сквозь обычную землю\глину).

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

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

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

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

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

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

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

Вопрос: Как поведет поток такого газа в волноводах на поворотах не более 45 градусов (который распространяется внутри тоннелей) и какая оптимальная форма волны?

Можем ли мы использовать солитонное решение?

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

Выводы

Система связи и мониторинга это наиболее правдоподобная гипотеза для данного инопланетного артефакта.

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

Строили во времена расцвета Португалии и Импернии Великих моголов в 1580-х годах. В 1580 году умирает король Энрике, и португальский трон переходит в руки испанского короля Филиппа II Габсбурга. Строили португальцы, но помогали им специалисты из Золотой Орды или Китая.

Специалистами были корейские и вьетнамские потомки Чингисхана на службе у Китайского императора, которые прибыли с крайней китайской экспедицией Джень Хе и его флотилии через Реку в Африке, огибая Канары в Лиссабон и тогдашнюю столицу Элваш.

Подробнее..

Мини Термометр amp гигрометр с E-PAPER на nRF52 или о том, что пока не выпустили производители

10.09.2020 06:07:43 | Автор: admin
Приветствую всех читателей Habr! Хочу поделится с вами своим новым опенсорс проектом. Из названия статьи понятно что речь пойдет о датчике температуры и влажности с дисплеем на электронных чернилах. Уже достаточно давно я попробовал сделать проект датчика температуры с такими дисплеями в виде ардуино модуля. С тех пор тема e-ink дисплеев меня заинтересовала.

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




Датчик работает на чипах nRF52, для данного проекта был выбран модуль от компании MINEW. Модуль небольшого размера, имеет 18 выводов, 13 из которых gpio, два варианта антен, печатная и керамическая, так же на модуль устанавливается несколько вариантов чипов, nRF52810 и nRF52832, а после непродолжительного общения с менеджментом компании мне без вопросов поставили на эти модули чипы nRF52811. Так я кстати получил свои первые 811-ые и к тому же по цене в полтора раза ниже чем мог бы купить у дистрибьютеров просто чипы, но это уже другая история. На модуле разведен вариант схема DC-DC и часовым кварцем. Размеры модуля 12мм х 15мм. Присутствует металлический экран.



Из линейки e-ink дисплеев выбор естественно пал на достаточно новую модель м размером экрана 1.02 дюйма. Стоимость одного дюйма электронных чернил составила 500 рублей, что мне показалось приемлемо. Небольшие трудности с разработкой платы под этот дисплей вызвал его разъем, 30 пиновый FPC c шагом в 0.5мм. Ширина FPC разъема намного больше ширины самого дисплея, что вызвало неудобство при проектировании. Но зато было проше с объвязкой дисплея, она проще чем на других моделях (даташит GDEW0102T4).



Из цифровых сенсоров температуры и влажности решил остановится на sht20, их и в достаточном колличестве было у меня, простой достаточно, хорошая цена, удобный размер. Так же одним из плюсов можно назвать то что вместо sht20 при желании легко установить sht21, si7020, si7021, htu20d, htu21d и hdc1080, но последний вариант не самый очень ;).

Под датчик проектировалось 2 платы, одна под экран и его объвязку, вторая под радиомодуль, сенсор температуры и влажности и батарейку. Ключевыми параметрами размеров плат были размеры экрана и батарейки. На плате c экраном были заложены отверстия под винты (1.4 х 3) для крепления платы к корпусу, на второй плате были сделаны вырезы для удобной установки винтов. Так как это DIY устройство я мог себе позволить поставить вкусную батарейку CR2450. Ну а если мне покажется когда то что устройство толстовато, то я всегда смогу напаять держатель под батарейку CR2430. В итоге получилось две платы размерами 36мм на 26мм.



Корпус проектировался в СолидВоркс, модели плат были экспортированны из DipTrace в формате DXF, которые уже в СолидВоркс были преобразованы в 3D модели. Корпус состоит из двух частей и кнопки, Крепления половинок корпуса друг к другу сделано так же винтами(1.4 х 4) с одной стороны и выступающим зацепом c другой стороны. Сделаны два отверстия для циркуляции воздуха для сенсора температуры и влажности.



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



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

Cхема устройства







В итоге все свои требования к функционалу реализовать получилось. Устройство может работать с контроллером УД, так же устройсво может работать напрямую с каким либо устройством в сети МySensor. Привязка устройст для прямого обмена может происходить как посредством конфигурации устройств через контроллер УД, внешними командами, так и без участия контроллера УД с помошью простого нажатия кнопки для активации режима привязки(binding). Датчик температуры и другое устройство к которому привязан датчик могут нормально поддерживать обмен даже без работающего шлюза MySensors или работающего контроллера УД, что безусловно повышает отказоустойчивость. Отдельная проблема была с драйверами eink дисплея, вероятно потому что дисплей достаточно новый, на сайте производителя и сайте WaveShare(предлагающий eink экраны Good Display под своим брендом) реализации библиотек достаточно сырые. Пришлось что то переделать, что то дописать. В датчике реализовано поддержка нескольких языков, инверсия цвета по внешнец команде в режиме конфигугрирования устройства, несколько вариантов шрифтов так же меняемые по внешней команде пв режиме конфигурации устройства. Датчик выводит на экран показания температуры и влажности, заряд батареи и уровень сигнала. Интервал замеров температуры и влажности, интервал замера уровня батарейки можно задать так же внешней командой. Для температуры и влажности в минутах, для уровня заряда батарейки в часах. Передает датчик в УД следующие данные: температура, влажность, уровень заряда в %, напряжение, уровень сигнала, причину перезагрузки.



Посмотреть как это выглядит можно в небольшом видеоролике

таймстампы интересных моментов:
3.10 Конфигурирование (смена шрифта, инверсия цвета)
5.10 Замер потребления, работа WTD

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

В спящем режиме датчик потребляет 2мкА, сброс WTD кажные 5 секунд, потребление в момент сброса 4-5мкА. в режиме работы с экраном и сенсором температуры и влажности 2-3мА, в режиме передачи 5-8мА(такой диапозон в 3 мА связан с тем что датчик сам регулирует мощность передачи на основе данных по уровню сигнала.

Под спойлером фотографии датчика













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

Всех кто хочет делать устройства, начать стороить автоматизацию своего дома предлагаю познакомиться с простым в освоении протоколом Mysensors телеграм чат MySensors

А тем кто ищет достаточно взрослые решения для домашней автоматизации приглашаю в телеграм чат Open Thread.

Мой GitHub этого проекта, схема, гербер файлы, зд модели корпуса, bom, ПО

Всем как всегда Добра!
Подробнее..

Автоматизируем работу системы отопления в квартире без переделки интерьера умный дом z-wave

10.09.2020 18:21:56 | Автор: admin
Давно у меня стояла задача по автоматизации работы системы отопления в доме. Дано классические термостаты теплого пола ballu с крутилкой покупались в leroymerlin в далеком 2017 году для управления электрическим полом.


Сейчас мне необходимо автоматически включать теплые полы в ванной и на балконе по геолокации, семидневному расписанию или событию. Для своей цели я долго выбирал смарт термостаты и остановился на Heatit Z-TRM3 термостат с Z-Wave чипом 5го поколения на частоте 869mhz.

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

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


Сам термостат есть в черном и белом цвете, он позволяет устанавливать температуру теплого пола не только с телефона или контроллера Z-Wave, но и с дисплея на термостате.


Heatit совместим с apple homekit и яндекс алисой, как и практически любые Z-Wave устройства, сейчас постараюсь рассказать как настраивал управление.

Нужен нам Z-Wave контроллер, я выбирал хаб исходя из некоторых соображений: цена, функционал, стабильность, интеграция с голосовыми помощниками и остановился на контроллере RaZberry. Это хаб с ПО Z-Way с неплохим базовым набором функций, так выглядит web интерфейс /smarthome


Поскольку Z-Wave это радио протокол управления, в хабе можно выбрать нужную частоту контроллера через expert ui интерфейс:


Ну тогда по порядку, снимаем старый термостат, устанавливаем наш Heatit по схеме. Для добавления устройства переводим контроллер в режим добавления, для простоты выберем добавление без шифрования, хотя устройство с чипом Z-Wave 500 серии имеет возможность надежно шифроваться алгоритмом AES-128 для параноиков :) термостат можно и так подключить.


И удерживаем центральную кнопку на термостате, дальше у нас появляется 5 виджетов, ненужные можно скрыть из интерфейса.

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

А вот так выглядит настроенный термостат в стандартном бесплатном мобильном приложении, оно называется Z-Wave.Me, можно скачать с AppStore / PlayMarket.


Ну мне этот интерфейс не слишком нравится, хотя вроде все есть темная тема, смена иконок, комнаты, правила, пуш уведомления.

Почему-то нравится HomeKit. И настройка очень простая заходим в интерфейсе в раздел приложения онлайн приложения ищем HomeKit, жмем добавить, называем наш мост умного дома и готово! вводим полученный HomeKit pin в приложении Дом на iPhone/iPad.


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


Управлять в приложении Дом можно как локально так и удаленно если у тебя есть iPad/homepod/apple tv.

Настроил автоматизацию по геолокации я прямо в приложении дом за пару минут:


(Валентина это остановка по пути к дому, после этой локации обычно через 15-20 минут я дома)

И все отлично работает, тут-же можно настроить семидневное расписание, ну или быстрее даже будет в интерфейсе z-way smarthome, заходим в локальные приложения, выбираем расписание, задаем нужный график работы на 7 дней и жмем сохранить:


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

По голосовому управлению Siri не совсем адаптирована под русский язык, тем более у меня есть Яндекс станция, решил и это настроить чтоб можно было сказать Алисе теплый пол 30 градусов не вставая с дивана. Это всегда удобно. Для этого нам надо в приложении Яндекс на iOS/Android зайти в раздел Устройства, добавить устройство другое устройство и ищем в списке производителей Z-Wave.Me. В моем случае надо нажать обновить список устройств, так как хаб уже добавлен в Алису. В конце выйдет окно с настройкой устройства.


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


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


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

А еще в этом термостате есть интересная функция SmartStart, я могу отсканировать QR-коды всех устройств мобильным приложением, подсоединить контроллер к интернету и включить питание каждого гаджета, дальше произойдет магия QR-код содержит информацию о так называемом уникальном ключе устройства (Device Specific Key, DSK), который производители присваивают каждому компоненту умного дома контроллерам, датчикам и актуаторам. После сканирования QR-кода информация об устройствах сохраняется не в мобильном приложении, а в специальном облачном сервисе. Из него контроллер по DSK-ключам получает сведения о конфигурации всех гаджетов, которые нужно зарегистрировать в сети.

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

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

Хорошо забытое новое Falcon Acoustics возрождает DIY-акустику и продаёт колонки-конструктор за 150 000 рублей

24.09.2020 20:09:56 | Автор: admin
Неизвестно, что послужило толчком к появлению старого-нового формата, но один из крупнейших производителей динамических громкоговорителей в Европе решил порадовать покупателей акустическими системами для самостоятельной сборки. По словам производителя, это сделано для сокращения стоимости устройства. Известно, в западной Европе, тем более в Великобритании, акустические системы высокой верности стоят невменяемых денег (мы не говорим об аудиофильских изысках, которые дороги везде), речь о добротной HI-FI-акустике, но произведенной в Западной Европе. Британская компания решила исключить самую затратную часть себестоимости сборку, и делегировала этот процесс меломанам.



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


DIY-акустика как предмет роскоши


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



Могу предположить, что ещё одна внушительная часть стоимости это как раз корпус из березовой фанеры, изготовление и сырье, для которого стоят совсем не дёшево в Европе. Можно долго спорить о влиянии или не влиянии пород древесины на верность воспроизведения, но факт в том, что деревянные АС (при правильном расчете) при прочих равных звучат определенно лучше (вернее), чем корпуса из ЛДСП и аналогичных материалов.

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

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

Реинкарнация прототипа 1974 года


Вышеназванные составляющие уже позволяют отнести устройство не столько к бытовым утилитарным предметам, сколько к предметам роскоши, по факту, геморроя с фанерой и прочими танцами с аудиофильскими бубнами. Помимо прочего акустике подарили культовые динамики, как утверждает производитель, попарно подобранные Falcon B110 и T27. Именно эти драйверы стояли в прототипах студийных мониторов Falcon LS3/5a 1974 года.



Пара представляет собой пятидюймовый СЧ/НЧ-излучатель с бекстреновым диффузором и 9-мм майларовый твитер. Частотный диапазон устройств составляет от 38 Гц до 20 кГц с чувствительностью 86 дБ. Параметры в целом совпадающие с характеристиками студийных устройств.



Совокупная масса одной колонки около 12,5 кг, основная часть этой массы сосредоточена в толстостенном корпусе и достаточно мощном постоянном магните СЧ/НЧ динамика. В фильтре нет ничего сверхвыдающегося. Как меня заверили знакомые инженеры, вполне надежная и заурядная конструкция, почти стандартная для большинства двухполосных мониторов. Электролитические конденсаторы с запасом, годная катушка.



Колонки за 30 минут


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



Можно также утверждать, что у АС не так много общего с классической аудиоэлектроникой для самостоятельной сборки, распространённой в послевоенные годы. То, что некогда было популярным, требовало много усилий, более продолжительное время, навыки пайки и, в идеале, чтобы всё было правильным, руководить процессом должен инженер.

В качестве заключения


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



Реклама
Мы продаем электронику, в нашем каталоге много разного, в том числе акустические системы, наушники и многое другое.
Подробнее..

Перевод Автоматический вечный календарь с подсветкой

25.09.2020 14:16:06 | Автор: admin


Статья с сайта Instructables на конкурс самоделок с применением станков с ЧПУ

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

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

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

Далее я по шагам объясню, как всё это работает.





Шаг 1: Принцип работы


Я долго искал в интернете происхождение подобного вечного календаря, но так и не нашёл. На картинках выше вы видите, как выглядит календарь. В таблице из 13 столбцов и 6 (иногда 5) строк размещаются даты месяца, и сдвигая рамку, можно выбирать конфигурацию дней, соответствующую текущему месяцу. Для октября 2020 получится так, как на картинке ниже:



Однако с сентябрём 2020 возникает проблема:



Хотя в сентябре 30 дней, 31-е число в календаре видно. Ещё хуже ситуация с февралём 2021, поскольку в нём 28 дней, но видно даты 29, 30 и 31.

Это основной недостаток такого календаря у многих месяцев даты будут доходить до 31. Несмотря на это, в интернете можно найти тысячи продуктов или проектов, сделанных по этому принципу. Поищите на etsy, посмотрите на эти ссылки на Amazon (link1, link2) или Youtube (link1, link2, link3, link4) и вы поймёте, о чём я.

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

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

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



Шаг 2: Что для этого понадобится




















Необходимые компоненты:
  • 2 листа дымчатого оргстекла, 3 мм и 5 мм толщиной.
  • Болты с утопленной головкой на 3 мм, шайбы и гайки.
  • Белая бумага А4.
  • Светодиоды 72xWS2812 с ленты плотностью 60 штук на метр.
  • ESP-01 модуль с ESP8266.
  • Стабилизатор 5 В / 3,3 В.
  • Разъём питания 5,5 х 2,5 мм мама.
  • Источник питания на 5 В / 2 А с разъёмом питания 5,5 х 2,5 мм папа.
  • Соединительные провода.


Инструменты
  • Станок с ЧПУ, даже недорогой, поскольку нужна обработка пластика.
  • Паяльная станция.
  • Струйный принтер.
  • Клеевой пистолет.
  • Сверло на 3 мм.
  • Сверло на 5 мм на конус.
  • Всякие общие инструменты.


Шаг 3: Обработка компонентов на станке с ЧПУ




















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

Подробных статей о самом процессе вырезания при помощи станка с ЧПУ в интернете можно найти множество (ссылка, ссылка, ссылка, ссылка, ссылка, ссылка, ссылка).

По большому счёту, скорость вращения сверла должна быть не очень большой, а скорость подачи материала большой, чтобы избежать расплавления материала. Из-за расплавления края отрежутся плохо, кроме того оно может вызвать вибрацию и даже повреждение фрезы. Я использовал сверло на 3 мм на скорости 10000 об/мин и скорость подачи порядка 420 мм/мин. Для проделывания углублений под головки винтов я использовал сверло диаметром 5 мм. Глубина сверления 1,5 мм. В итоге головки помещаются очень хорошо. В начале раздела приведены фотографии процесса работы и результата.

content.instructables.com/ORIG/FIH/5PZO/KEN0JZJ6/FIH5PZOKEN0JZJ6.svg

content.instructables.com/ORIG/FQE/VGPV/KEN0JZJ7/FQEVGPVKEN0JZJ7.svg

content.instructables.com/ORIG/FRV/TUUY/KEN0JZJ8/FRVTUUYKEN0JZJ8.svg

content.instructables.com/ORIG/F28/M3ON/KEN0JZJ9/F28M3ONKEN0JZJ9.svg

Шаг 4: Бумажный экран






Пока станок трудился над резкой оргстекла, я приступил к распечатке экрана.

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

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

Потом я отложил бумагу, чтобы чернила просохли, и перешёл к электронной части.

content.instructables.com/ORIG/FYA/VY88/KEN0K2O3/FYAVY88KEN0K2O3.svg

content.instructables.com/ORIG/F7V/R8IP/KEN0K2O4/F7VR8IPKEN0K2O4.svg

Шаг 5: Электроника














Схема очень проста, я прикрепил её выше. Для её реализации я сделал следующее:
  • Вырезал 5 кусочков ленты по 13 светодиодов, и один кусочек с 7 светодиодами. Залудил края для облегчения пайки всех соединительных проводов.
  • Приклеил ленты в вырезанные каналы на задней стенке календаря согласно схеме (мои светодиодные ленты идут с клеящим слоем).
  • Синими проводами я соединил контакты Data Out и Data In светодиодных лент.
  • Припаял питание красными проводами (+ 5 В), а между отрезками ленты использовал зелёные провода (земля) с соблюдением полярности.
  • Припаял провода от ленты к стабилизатору, и от него к ESP-01.
  • На ESP соединил Vcc и CH_PD, затем соединил контакт GPIO2 модуля ESP-01 и Data In с первого отрезка ленты.
  • Наконец, припаял провод питания.


Шаг 6: Сборка
















Закончив с пайкой электроники, закрепил всё, что мог, при помощи горячего клея модуль ESP-01, стабилизатор, провода. Потом:
  • Вырезал распечатанный рисунок с полями в 1 см. Проделал в вырезке 2 отверстия на противоположных углах. Вставил винты через заднюю стенку корпуса в отверстия, соответствующие отверстиям в бумажной вырезке, и привинтил к этому среднюю часть корпуса с решёткой.
  • Аккуратно продел винты через отверстия в бумаге так, чтобы распечатка как можно лучше совпадала с решёткой и светодиодами.
  • На бумагу положил фронтальную часть корпуса.
  • Вставил остальные 4 винта, затянул их шайбами с гайками.
  • Первые два винта вытащил, вставил с другой стороны, затянул.
  • Отрезал лишнюю бумагу как можно ближе к краям.


Шаг 7: Программирование






Программа сделана на основе того же фреймворка, который я использовал в своём проекте с ESP8266 ESP 8266 Arduino IDE WebConfig и BVB_WebConfig_OTA_V7.

Фреймворк предлагает веб-интерфейс для настройки доступа модуля ESP8266 к роутеру, а также доступ к дате и времени, которые модуль получает с NTP-сервера. Оставалось лишь добавить функцию вывода дней текущего месяца и текущей даты, но мне хотелось иметь возможность ещё и выбирать, считать ли первым днём недели воскресенье или понедельник. Также я хотел использовать другие светодиоды, поэтому решил, что будет интересно подсвечивать специальные иконки, соответствующие важным событиям дням рождения или праздникам. Исходник программы лежит на Github.

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

Программировал я микроконтроллер при помощи адаптера ESP-01 и адаптера USB to TTL.

Для компиляции и загрузки программы в ESP я использовал Eclipse IDE для Arduino под названием Sloeber, библиотеку esp8266 версии 2.7.4 и библиотеку FastLED версии 3.3.3.

Шаг 8: Оно живое!


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



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

Шаг 9: Варианты, что дальше?


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

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

Хотя я делал всё на станке с ЧПУ, это же можно сделать при помощи лазерной резки или 3D-принтера. Однако в последнем случае потребуется принтер, способный вместить детали размером 235120 мм.

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

Per aspera ad astra, или как я строил ракету. Часть 2. Собираем альтиметр на STM32 и BMP280

26.09.2020 16:11:14 | Автор: admin


Всем привет!

В предыдущей части я остановился на том, что мои ракеты удачно взлетели и приземлились, а на одной даже был установлен альтиметр. В этой статье я и расскажу о том как сделать простой высотомер на основе STM32 Nucleo L031K6 и датчика давления BMP 280 , который к тому же хранит все данные во Flash памяти.

Выбор железа


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

Исходя из них в качестве микроконтроллера взял STM32 Nucleo L031K6 (высокая скорость работы, низкое потребление тока, малый размер). Высоту решил измерять с помощью барометра BMP280 (те же резоны, что и у МК). Также добавил кнопку, при нажатии которой начиналась запись высоты. Ну и питала всю электронику батарейка CR2032, подключенная через адаптер. В итоге получилась такая схема:


Использованные модули

STM32 Nucleo L031K6


BMP280


Адаптер для CR2032

Разработка кода


Код вы можете найти на моем гитхабе . Пины STM32 были сконфигурированы в CubeMX под IAR. Для работы с BMP280 использовал вот эту библиотеку, добавил в нее функцию расчета высоты над уровнем моря с помощью барометрической формулы и инициализацию датчика с нужными мне параметрами частоты считывания, фильтрации и тд. Так как я хотел измерить высоту полета относительно земли, мне нужно было сначала вычислить высоту над уровнем моря в моей местности, взять ее за ноль и относительно нее измерять высоту полета. Частота измерений равнялась 10 Гц.

Запись во Flash память происходила следующим образом так:
Организация памяти в STM32 L031K6


  • Для всех измерений выделил 8 Кбайт с 0x08006000 по 0x08007FFF адреса
  • На одно измерение выделил 2 байта
  • Во Flash записывал по 4 байта, то есть сразу два измерения
  • Максимальное количество измерений 4096, этого хватало на запись примерно 7-ми минут полета
  • Высоту записывал в сантиметрах для большей точности

А происходила запись следующим образом:
  1. Если итератор записи четный, то в переменную с данными для записи во Flash сохраняем текущую высоту в младшую половину слова;
  2. Если итератор записи нечетный, то в переменную с данными для записи во Flash добавляем текущую высоту в старшую половину слова и сохраняем эту переменную в ячейку Flash

В итоге алгоритм работы программы следующий:
  1. После включения 5 секунд ждем нажатия кнопки для старта измерений высоты.
  2. Если кнопка не была нажата, то зажигаем встроенный светодиод и начинаем передачу по UART данных о высоте, записанных во Flash памяти
  3. Если кнопка была нажата, то два раза моргаем встроенным светодиодом и вычисляем высоту местности.
  4. После вычисления нуля два раза моргаем встроенным светодиодом и записываем во Flash-память высоту ракеты над землей.
  5. Когда выполнили передачу по UART или завершили измерения высоты, бесконечно моргаем встроенным светодиодом;
  6. Ждем пока нас найдут люди и выключат.


При питании STMки от CR2032 через пин 3.3V обнаружил, что код не работает. Проблема была в том, что при подаче питания через эту ногу необходимо было отпаять SB9 (расположен рядом с выводами RX и TX на обратной стороне МК) иначе плата постоянно перезагружалась.

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

Сборка альтиметра


Так как во время приземления ракета может сильно ударится о землю, необходимо было хорошо зафиксировать всю электронику, чтобы при тряске не отваливались проводки, или, того хуже, сами модули. Альтиметр разместил в головном обтекателе (места там было достаточно, и стабильности за счет смещения центра тяжести к головному обтекателю прибавилось) в 3D-печатном креплении. STMка стояла вертикально, BMP280 контактами вверх и под крепление приклеил адаптер для CR2032. Из-за того, что он не помещался в корпус ракеты, пришлось немного сточить контакты минуса. Рядом с контактами в боковой стенке 3D-печатного крепления проточил вертикальную канавку, чтобы протянуть через нее минус от CR2032, а под плюсом просверлил отверстие и пустил провод через него. Думал крепить альтиметр к головному обтекателю с помощью самореза, поэтому в корпусе есть отверстие, но потом от этой идеи отказался.


Модель крепления, напечатанного на 3D-принтере

Собранный блок альтиметра

Вид сверху


Вид снизу

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

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


Собранный альтиметр. Вид спереди


Вид сзади. Видна резинка, соединяющая альтиметр с ракетой

Альтиметр был готов! Теперь предстояло его испытать, а это значит, что я снова отправился на полигон!

Запуск альтиметра и результаты измерений


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

В итоге график получился таким:


По горизонтали номер измерения. Каждые 10 измерений 1 секунда. По вертикали высота в сантиметрах

Ракета взлетела на 15м, затем устремилась в землю. После прохождения апогеячерез 1 секунду началась какая-то аномалия: после значения 12м почему-то показания упали до -8м. Это произошло в момент второго запуска двигателя (которого не должно было быть), так что не исключаю, что неисправный двигатель как-то повлиял на альтиметр. Во всех остальных тестах он работал отлично, так что это была проблема явно не в электронике. В общем, те испытания альтиметра были успешными лишь наполовину, так как во вторую половину полета произошла аномалия. Сам график вы можете найти на гитхабе, он называется rocket_flight_fall_test.

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


По горизонтали номер измерения. Каждые 10 измерений 1 секунда. По вертикали высота в сантиметрах

Ракета поднялась на 150м и успешно приземлилась. Таким образом это испытание было полностью успешным. Я удостоверился в том, что альтиметр работает и приступил к разработке новой бортовой аппаратуры.

Заключение


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

Спасибо за внимание!
Подробнее..

Беспроводной DIY датчик тепрературы и влажности с e-paper дисплеем

26.09.2020 22:13:23 | Автор: admin
Всем привет! Сегодня хочу рассказать читателям о своем DIY проекте датчика температуры и влажности с e-ink дисплеем. Это будет некая обзорная статья об этапах создания устройства, будет много картинок. Идея этого проекта родилась около двух лет назад, примерно тогда я увлекся беспроводными автономными устройствами. Целью проекта было создание небольшого девайса для знакомства и изучения дисплеев на электронных чернилах. Было решено на плату добавить датчик температуры, что бы можно было выводить какие то полезные данные на экран, ну и передавать данные далее в систему умного дома.




Первая версия устройства была сделана на микроконтроллере atmega328 и радио-модуле nRF24L01. Очень быстро стало понятно что для работы с e-ink дисплеем не хватает памяти, а энергопотребление устройства довольно большое.


Тест первой версии устройства

Используется датчик температуры и влажности SHT20. Питание от трех батареек CR2430 (6V) через step down converter.

Следующая версия устройства, была разработана на nRF52832. Для этой версии был выбран радио-модуль от компании Holyiot YJ-16048. Характеристики радио-чипа: ARM Cortex-M4F с ОЗУ 512кб 64кб. Встроенный приемопередатчик 2,4 ГГц, поддержка BLE, ANT, ESB (совместимо с nRF24L01). Подробнее об этой версии рассказано тут.

В этом варианте, проблем с хранением в памяти микроконтроллера большого количества данных не было. Наличие в nRF52 режима DC-DC, для работы радио в режиме с оптимизацией питания (экономия до 40%), позволило сократить максимальное пиковое потребление до 7-8мА. Вторая версия датчика, как и первая планировалась как модуль для разработки, поэтому вопрос выбора корпуса не ставился.


Тест работы прототипа второй версии.

Так же используется датчик температуры и влажности SHT20. Питание от двух батареек CR2450 через step down конвертер TPS62745DSSR с малым энергопотреблением.

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

Естественно проект захотелось довести до состояния законченного устройства. Поэтому первым этапом, стал корпус. Для возможности установки в корпус был переработан дизайн платы. Модель корпуса была разработана в программе SolidWorks. Первые корпуса я печатал на бытовом SLA принтере Anycubic Foton. Плюсами была высокая точность печати и простота пост-обработки корпуса (полировка). Из минусов (на тот момент) печати корпуса полимерной смолой была хрупкость. Не то чтобы напечатанная модель разваливалась в руках, но если собранное устройство (с батарейками) уронить, то скорее всего корпус треснет (что и случилось однажды).

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





Тест работы прототипа третьей версии

В этой версии был расширен список сенсоров. Помимо SHT20, ПО может работать и с датчиками si7021, HTU21D, а так же с BME280 (отдельная версия платы).

Начиная с этой версии, устройство может работать от одной батарейки. Работа через step down конвертер или напрямую от батареек, устанавливается перемычками. Так же, с помощью перемычек, устанавливается последовательность подключения двух батареек: последовательное или параллельное. Плюс к этому, расширен список радио-модулей и разработаны версии плат под радио-модули EBYTE и MINEW.

Для работы в более экономичном режиме, была добавлена поддержка чипов nRF52810 и nRF52811, что позволило сократить потребление в спящем режиме до 1,7 2мкА.

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

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

В настоящий момент, разработаны 3 варианта корпуса, под разные батарейки. От самого тонкого, для батареек СК2430 до максимально прочного, под две батарейки CR2477. Все варианты моделей корпусов доступны на GitHub этого проекта.




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

В настоящий момент, можно настраивать:

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










Тест работы обновленной третьей версии.

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

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

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






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

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

Всем, кто хочет делать устройства, начать строить автоматизацию своего дома, я предлагаю познакомиться с простым в освоении протоколом Mysensors телеграм-чат MySensors

А тем кто ищет достаточно взрослые решения для домашней автоматизации приглашаю в телеграм-чат Open Thread. (что такое Thread?)

Всем, как всегда добра!
Подробнее..

Беспроводной DIY датчик температуры и влажности с e-paper дисплеем

27.09.2020 00:06:12 | Автор: admin
Всем привет! Сегодня хочу рассказать читателям о своем DIY проекте датчика температуры и влажности с e-ink дисплеем. Это будет некая обзорная статья об этапах создания устройства, будет много картинок. Идея этого проекта родилась около двух лет назад, примерно тогда я увлекся беспроводными автономными устройствами. Целью проекта было создание небольшого девайса для знакомства и изучения дисплеев на электронных чернилах. Было решено на плату добавить датчик температуры, что бы можно было выводить какие то полезные данные на экран, ну и передавать данные далее в систему умного дома.




Первая версия устройства была сделана на микроконтроллере atmega328 и радио-модуле nRF24L01. Очень быстро стало понятно что для работы с e-ink дисплеем не хватает памяти, а энергопотребление устройства довольно большое.


Тест первой версии устройства

Используется датчик температуры и влажности SHT20. Питание от трех батареек CR2430 (6V) через step down converter.

Следующая версия устройства, была разработана на nRF52832. Для этой версии был выбран радио-модуль от компании Holyiot YJ-16048. Характеристики радио-чипа: ARM Cortex-M4F с ОЗУ 512кб 64кб. Встроенный приемопередатчик 2,4 ГГц, поддержка BLE, ANT, ESB (совместимо с nRF24L01). Подробнее об этой версии рассказано тут.

В этом варианте, проблем с хранением в памяти микроконтроллера большого количества данных не было. Наличие в nRF52 режима DC-DC, для работы радио в режиме с оптимизацией питания (экономия до 40%), позволило сократить максимальное пиковое потребление до 7-8мА. Вторая версия датчика, как и первая планировалась как модуль для разработки, поэтому вопрос выбора корпуса не ставился.


Тест работы прототипа второй версии.

Так же используется датчик температуры и влажности SHT20. Питание от двух батареек CR2450 через step down конвертер TPS62745DSSR с малым энергопотреблением.

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

Естественно проект захотелось довести до состояния законченного устройства. Поэтому первым этапом, стал корпус. Для возможности установки в корпус был переработан дизайн платы. Модель корпуса была разработана в программе SolidWorks. Первые корпуса я печатал на бытовом SLA принтере Anycubic Foton. Плюсами была высокая точность печати и простота пост-обработки корпуса (полировка). Из минусов (на тот момент) печати корпуса полимерной смолой была хрупкость. Не то чтобы напечатанная модель разваливалась в руках, но если собранное устройство (с батарейками) уронить, то скорее всего корпус треснет (что и случилось однажды).

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





Тест работы прототипа третьей версии

В этой версии был расширен список сенсоров. Помимо SHT20, ПО может работать и с датчиками si7021, HTU21D, а так же с BME280 (отдельная версия платы).

Начиная с этой версии, устройство может работать от одной батарейки. Работа через step down конвертер или напрямую от батареек, устанавливается перемычками. Так же, с помощью перемычек, устанавливается последовательность подключения двух батареек: последовательное или параллельное. Плюс к этому, расширен список радио-модулей и разработаны версии плат под радио-модули EBYTE и MINEW.

Для работы в более экономичном режиме, была добавлена поддержка чипов nRF52810 и nRF52811, что позволило сократить потребление в спящем режиме до 1,7 2мкА.

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

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

В настоящий момент, разработаны 3 варианта корпуса, под разные батарейки. От самого тонкого, для батареек СК2430 до максимально прочного, под две батарейки CR2477. Все варианты моделей корпусов доступны на GitHub этого проекта.




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

В настоящий момент, можно настраивать:

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










Тест работы обновленной третьей версии.

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

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

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






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

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

Всем, кто хочет делать устройства, начать строить автоматизацию своего дома, я предлагаю познакомиться с простым в освоении протоколом Mysensors телеграм-чат MySensors

А тем кто ищет достаточно взрослые решения для домашней автоматизации приглашаю в телеграм-чат Open Thread. (что такое Thread?)

Всем, как всегда добра!
Подробнее..

Категории

Последние комментарии

© 2006-2020, personeltest.ru