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


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

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

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


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

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

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

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

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


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

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

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

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

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


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

Питание приходит разъемом на такой терминал и раздается направо-налево по клеммам. Зеленые – плюс, синие – минус.

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

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

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


Теперь то, за что, возможно, меня проклянут все апологеты оригинального К9…

У него много чего было из устройств разных всяких, но, вот, чего точно не было (во всяком случае, никак не демонстрировалось в фильмах) – внешнего освещения. Даже никакого чахлого фонарика нигде ни разу!

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

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

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

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

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

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

Под них так же пришлось разработать свой крепеж к каркасу:

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

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


Тему “света” продолжают фоторезисторы.

Это хорошо, что робот имеет возможность засветить вам в глаз. Буквально. Даже, четыре раза… Но ради вселенской справедливости и баланса между Добром и Злом, было бы неплохо, чтобы и вы могли ответить ему тем же. Хоть разок… А для этого, его самого нужно сделать чувствительным к свету.

При помощи вот такого фоторезистора:

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

Ну, теперь у робота таких фоторезисторов будет сразу две штуки. По бокам кончика носа.

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

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

Два фоторезистора позволяют роботу “видеть” разницу в интенсивности освещения, как справа от себя, так и слева.

Ясен пень, усредненное значение с обоих сенсоров = некий общий уровень освещения.

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


Так… Что там дальше из заявленного? “Голос”… Ага…

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

Тут же речь пойдет о примитивной “системной пищалке” на каждом отдельно взятом контроллере:

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

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

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

Пищалки – махонькие и там вокруг пушки в носу есть еще место, где их можно напихать:

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

Спонсорами появления этих пищалок стали мои обширные загашники.

Когда идея только возникла (до светодиодов, которыми можно было бы моргать, на тот момент еще было, как пешком до Китая), рука, было, привычно уже занесла мышку над амазоном каким-то, но потом… Позвольте ка! И – точно. Вот же целая коробка с антикварными матерями от старых компьютеров. А что на них всегда было в те далекие времена? Правильно – пьезо-пищалка!

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


Теперь – “слух”…

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

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

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

В качестве простейших звуковых сенсоров были взяты платы VMA309.

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

Велемановские (Velleman) же VMA309 , помимо очень НЕкитайского качества имеют не только цифровой выход, но еще и аналоговый. И несмотря, на относительно низкий диапазон чувствительности, с них вполне уверенно можно отлавливать несколько отчетливых пороговых значений.

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

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

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

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

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


И последнее из заявленного – “осязание”…

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

Осязание сделано совсем просто. Никаких дополнительных плат, сенсоров, креплений – ничего такого. Кусок провода + резистор. То, что называется “capacitive sensor”:

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

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

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

Когда ушки появятся, тогда я на них эти провода просто переброшу.

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

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

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

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

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

Поэтому, пока – уродские шайбы на черепе…


P.S. “За кадром”…

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

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

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

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

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

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

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

Но, чего уж греха таить… Лично я в восторге от происходящего! Очень давно мечтал до вот этого всего дорваться. Дорвался… На старости лет…

Если у тебя в детстве не было велосипеда,
а сейчас есть Роллс-Ройс, то все равно
у тебя в детстве не было велосипеда


Продолжение читайте в следующих статьях цикла…