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

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

Итак… Предупреждаю сразу – букв будет много…


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

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

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

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

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

Было:

Стало:

Т.е., изменилась форма верхней части вилки, несущей серв, чтобы сверху можно было разместить в ней контроллер. Так же ушла вдаль рельса раздачи 12 вольт – больше не нужна…

Для самих мозгов была сделана своеобразная “корзиночка”, в которой они и разместились:

Все произошло быстро и безболезненно. И, теперь, наконец, можно поговорить о старом/новом составе головы.


Из совсем-совсем нового… Еще один вентилятор в затылке, например:

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

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

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

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

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

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

Простейший терморезистор, прямо над процессором дуи. Его показания определяют, будет ли вентилятор включен или нет. И это – новый безусловный рефлекс появившийся у робота. Подробнее о “теории рефлексов” – вот тут.

Хотя я и понимаю, что эта “борьба по-мелочи” – как мертвому припарки. Приводы колес, по уровню шума, сведут всю эту мышиную возню в ноль.

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


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

За одним маленьким исключением…

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

Почему это хорошо… Да, для основного мозга будет важно получать точные уровни значений. Пускай они и выдаются в абстрактных попугаях, но, все же, это некий диапазон (0-255), позволяющий оценивать динамику разворачивающихся событий, определять их интенсивность и т.п. Зато, на уровне простых рефлексов, достаточно только порогового значения 0 или 1: “все нормально” – “караул!”.

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

Ранее, в целях экономии входов-выходов контроллера, использовались только аналоговые выходы. И чтобы определить запускать рефлекс или нет, контроллеру приходилось заниматься пересчетом аналоговых попугаев в заданное пороговое значение. Да, всего одна строка кода. Зато теперь и она не нужна. Пороговое значение задано переменником на модуле и контроллер просто читает эту его ножку. Он в любом случае это делал, зато теперь не нужно заниматься приведением диапазона к порогу: если прочитано HIGH – порог превышен, запускаем рефлекс. LOW – норм, не обращаем внимания.

Пока рефлексы есть только у некоторых газовых анализаторов. Если собачка учует сильный запах алкоголя – недовольно побурчит и пристально посветит вам в глаза. А если учует дым, то начинает мигать всем чем может и противно пищать с частотой 3100-3200 Hz.

Частота выбрана не случайно. Стандартные детекторы дыма в наших домах тоже орут на этой частоте. Помимо того, что это и сам по себе противный звук (который человеку трудно проигнорировать, как бы крепко он ни спал), во многих моделях детекторов все организовано так, что, если детектор в одной комнате услышал писк с такой частотой из другой комнаты, то он тоже начнет пищать, даже если сам и не чует дыма. Это касается не всех моделей/брендов, но многих. У меня в доме – именно такие. Получается эдакая “беспроводная связь” между устройствами совершенно нахаляву. Просто, тупо, никаких там вайфаев, блютуфов и прочих проводов. Один заорал – заорут все кто его услышит. А потом заорут все, кто услышал заоравших. Цепная реакция, охватывающая весь дом целиком.

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

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

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

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


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

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

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


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

Лампочки на носу – это, как было, так и осталось.

Но!

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

… у имеющихся двух контроллеров уже не оставалось выходов (брехня!) и вычислительной мощности (а это – правда). И именно тогда начала бродить идея о появлении в голове третьего контроллера.

С другой стороны, “глаза” у собачки, по сути – сплошное забрало красного цвета. Соответственно, подсветка, управляемая или нет, располагалась бы за ним. И светила бы сквозь него. Сквозь красное забрало, чем не свети, оно будет светиться красным (позже выяснилось, что – нет). Это первое. Второе: управляемая подсветка на третьем контроллере исключала для себя любое рефлекторное взаимодействие.

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

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

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

Вуаля! Для простых реакций на движение – вам приветливо подмигнут кровавые угольки глаз в полумраке комнаты. Но ежели чего, то собачка может ИСПЕПЕЛИТЬ ВЗГЛЯДОМ НАХРЕН В РАДИОАКТИВНЫЙ ПЕПЕЛ:

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

“Орган зрения”, в целом, вышел весьма непростым:

Ему я посвящу отдельную статью.


Кстати, про визор… Очень не хотелось опять насиловать Природу и делать у собачки органы зрения где-нибудь в заднице. Мудрость Природы: “дырочки в коже у кошки расположены в том месте где у кошки глазки” – помните? Вот… Глазки у собачки тоже должны быть расположены там же где дырочки.

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

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

Есть “забрало” визора – сложившийся факт данный нам создателем дизайна робота. Оно сплошное и красное. Таким пускай оно и будет.

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

Когда же камере надо видеть, то забрало просто убирается с ее дороги все целиком. Радикально и безкомпромисно:

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

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


Принтер. Сам по себе – без изменений. В точности все, как было написано тут.

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

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

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

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

Мало того. Та же самая проблема касается и общения мозга головы по i2c-шине с центральным мозгом. Дуя – “низковольтная”. Если мозг все же окажется “высоковольтным”, то ей может поплохеть. Между ними тут без вариантов – общение идет в обе стороны.

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

Собсно, эту красную платку мы и видим в составе “материнского шилда” на общем фото выше.

У этого конвертора на борту есть 4 канала. Ровно столько мне и надо. 2 канала для i2c (общение с центральным мозгом) и 2 канала для TTL (Rx/Tx сигналы принтера). Причем все сделано так, что этот преобразователь можно использовать, а можно и игнорировать (просто, не вставлять его в “материнский шилд”, если не нужен).

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

Пока, “по умолчанию”, все сконфигурировано так, как если бы мозг был “низковольтным”.

По текущим раскладам, вероятность именно такого исхода, существенно выше прочих: на 90% выбор уже сделан в пользу nVidia Jetson Nano в качестве основного мозга. Сейчас устаканиваю в голове (своей) последние “тонкие моменты”…

В перспективе, его можно будет проапгрейдить на Jetson Xavier… Но начну с Jetson Nano, если все же решусь, а там видно будет…


Регистрация уровня шума вокруг и реакции на него – без изменений. То же самое и с сенсорами освещенности – без изменений. Подробнее – тут.

Датчики движения – без изменений. Хотя, про них я, вроде, нигде особо подробно не писал, но про них и писать особенно нечего. Совершенно стандартные PIR-модули. Это вон те полушария в составе вот этих узлов по бокам головы:

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

Кто-то меня спрашивал… Не помню, кто, где и когда… Микрофоны в составе модулей фиксируют только уровень окружающего шума. Не более того! Это не те микрофоны, которыми собачка будет слышать человека. То чем собачка будет слушать человека – будет нормальным микрофоном.


Воспроизведение звука.

Есть две пьезо-пищалки в носу, про которые уже рассказывалось. С ними – без изменений. Пока… Потому, что, как уже было сказано выше, их нужно будет усилить. Сейчас их еле слышно. Это задача на ближайшие дни.

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

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


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

В составе “материнского шилда” есть три преобразователя:

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

Под этим преобразователем идет преобразователь на 5 вольт для “тихих” устройств. Которые не сильно “шумят” в линию. Всякие сенсорные модули, светодиоды и т.п. Тоже в обвязке из фильтров, как до, так и после преобразователя.

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

Есть устройства со своими преобразователями (принтер, серв поворота головы), которым нужны исходные 12 вольт. Ясен пень, в этом случае никаких преобразователей на “материнском шилде” нет. Приходящие на нее 12 вольт так к этим девайсы и уходят. Через фильтр, само-собой.

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


Вся проводка заменена целиком и полностью. На этот раз использовались провода в силиконовой изоляции. Познавательное видео на ютубе:

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


Как то вот так оно все сейчас. Итого, резюмируя все вышесказанное…

Сенсорный массив (что голова умеет регистрировать):

  • Температура внутри головы
  • Температура окружающей среды
  • Относительная влажность внешней среды
  • Анализаторы состава атмосферы: алкоголь, дым, угарный газ, бытовой газ, общее качество воздуха (air quality)
  • Уровень освещенности. Раздельно справа и слева.
  • Датчики движения. Раздельно справа и слева.
  • Сенсоры шумового фона. Раздельно справа и слева.
  • Сенсоры прикосновений: нос, левое ухо, правое ухо, визор камеры + один в резерве.

Исполнительный массив (что голова может делать):

  • Управлять “оружием” в носу. Выдвигать, убирать, наводить по вертикали в пределах 30 градусов.
  • Управлять положением ушей. Вращать по горизонтали в пределах 100 градусов.
  • Управлять поворотом головы. По 30 градусов вправо и влево.
  • Управление шторками визора камеры. Открыть, закрыть. Или выставить под любым углом в пределах между этими состояниями. Последнее позволяет собачке ехидно щурится.
  • Управление “носовой подсветкой”. Четыре светодиода. По два с каждой стороны носа. Управление каждым светодиодом – индивидуальное. Только “белый цвет”.
  • Управление подсветкой визора. Два кольца по 16 адресных светодиода в каждом (т.е. 32 индивидуально управляемых светодиода в сумме). Полное RGB, насколько это возможно для деталей такого уровня (WS2812).

Рефлексы и реакции:

  • Касание носа (“оружия”). Ствол вздрогнет. Даже, если он в этот момент выполняет последовательность команд. Безусловный рефлекс. Если тюкать в нос постоянно, то собачку это ДОСТАНЕТ. Она начнет рычать и тыкать стволом “оружия” в вас. Момент, когда вы ее ДОСТАЛИ в некоторой степени непредсказуем – нужно тюкнуть подряд от 7 до 25 раз.
  • Касание ушей. То же самое, что и с носом. Если вы ДОСТАЛИ собачку тюкая по ушам, она начнет рычать и постарается отвернуть ухо подальше. Тоже безусловный рефлекс.
  • Касание визора. Откроет его или закроет (зависит от его текущего положения). Безусловный рефлекс.
  • Реакция на свет. Включаются “носовые фары”. Выделяются два уровня освещенности. В простом полумраке загорится только по одному светодиоду в каждой паре. В полной темноте зажгутся все четыре. Условный рефлекс. Может быть подавлен центральным мозгом.
  • Реакция на звук. Мигает в такт шуму “носовыми фарами”, шевелит ушами. Чем шума больше, тем бурнее реакция. Шум справа и слева отрабатываются независимо. Реакция устройств, так же, независимая (“правые” реагируют на “правых”, левые – на “левых”). Условный рефлекс. Может быть подавлен центральным мозгом. Для носовых фар, рефлекс на шум ниже по приоритету, чем рефлекс на свет.
  • Реакция на дым и запах алкоголя. Вой и мигания на первое, осуждающее выражение морды лица – на второе.
  • Реакция на присутствие кого-то рядом. Включается подсветка визора. Красоту этого феномена могут оценить только теплокровные. Поэтому нет смысла строить глазки и тратить электричество, когда рядом нет никого, кто это мог бы оценить. Условный рефлекс. Может быть подавлен центральным мозгом.

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

Так или иначе, в помойку ушло 90% “стандартных” ардуиновых библиотек, используемых ранее. На их замену, либо найдены нормальные/компактные/быстрые/проверенные, либо были созданы свои собственные, специально заточенные сугубо под конкретные нужды собачки.

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

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

Там, где раньше уровень шума, например, оценивался по шкале от 0 до 10 (на более высоком разрешении контроллер начинал тормозить), теперь уровень шума имеет разрешение от 0 до 255. Из-за этого, мигающие в такт звукам светодиоды фар, стали не просто мигать, но еще и менять яркость (за счет “PWM-эффекта” вызываемого высокой частотой смены состояний):

На видео – музыка звучит из колонок, расположенных по левую сторону от головы. Хорошо видно, что пара светодиодов с той стороны реагирует заметно интенсивнее, чем те, что расположены справа.

За счет увеличения рабочей памяти контроллера, каждый из сервов может теперь запоминать в себе очереди до 512 команд. Можно строить и отправлять контроллеру на выполнение очень сложные сценарии анимации тех или иных “частей тела”. И это далеко не предел. Просто больше команд в очереди пока не нужно. Контроллер их выполняет все равно быстрее, чем центральный мозг успевает их скармливать ему. Но это пока в качестве имитатора основного мозга используется третья малина. Так, что, если основной мозг станет быстрее и мощнее, и понадобится очереди в 1024, 2048 и более команд – как два пальца об консоль. В конфиге изменить один единственный дефайн. Сейчас вся прошивка контроллера занимает всего 15% его рабочей памяти. Есть куда расти…

Ну и все остальное в том же духе: быстрее, точнее, больше, толще, дальше.


Буквы и картинки, это всего лишь буквы и картинки – я понимаю. Слышу крики “хлеба и зрелищ!”. Видеоблоггер из меня, в общем, довольно хреновый всегда выходил, но я попробую… На неделе, если время и обстоятельства позволят, постораюсь снять длинное видео с демонстрацией всех доступных на сегодня функций головы…

Кроме пищалок в носу. Я их разобрал. Потому, что жду платки усилителей от китайцев. А придут они только к концу недели. До момента съемки и монтажа видео они сто пудово еще не будут готовы…

Такие дела…

Поделиться: