• Робот из LEGO и Arduino, обходящий препятствия

    • Translation


    Мы обожаем LEGO и Crazy Circuits [LEGO-совместимая электроника / прим. перев.], поэтому решили скомбинировать их в простого и интересного робота, умеющего обходить препятствия. Мы покажем, как собрать такого робота и подробно опишем этот процесс. Ваша версия робота может не полностью совпадать с нашей.

    Приводим список необходимой электроники и деталек LEGO. Не бойтесь экспериментировать с ними.
    Читать дальше →
    • +18
    • 4.2k
    • 8
  • Литье форм из жидкого силикона в домашних условиях

    • Tutorial
    image

    В прошлый раз я описывал разработку набора для фокуса «Растворимая ложка», в котором фигурировала форма из силикона.

    Сегодня подробно распишу сам процесс литья таких форм из жидкого силикона на основе платины. Предупреждаю, под катом много фото!
    Читать дальше →
  • Домашний ЧПУ-фрезер как альтернатива 3D принтеру, часть четвертая. Общие понятия обработки

    • Tutorial
    Начав писать про стратегии обработки, я понял что творю «обезьяний набор» — пошаговое руководство даже не для чайников, а для идиотов, мои шаги повторить можно, сделать свои по образцу тоже, но понимания не добавляется. В свое время, когда я внезапно решил стать фрезеровщиком, имея в бэкграунде высшее медицинское, МБА и 10 лет компьютерного ритейла, мне было очень сложно продираться через терминологию и абсолютно новый понятийный аппарат.

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

    image

    Ниже — моя скромная попытка пробежаться по базовым понятиям фрезерной обработки с краткой расшифровкой. Терминологию я использовал русскую из делкамовских учебников, она может не совпадать с другими CAM программами, но я думаю тут уже интуиция и гугл спасут. Ну и как всегда, капелька личного опыта по обработке пластиков на хоббийных станках.
    Читать дальше →
  • Как выгрузить dll из Java-машины

    Java взаимодействует с операционной системой через методы, помеченные ключевым словом native, при помощи системных библиотек, загружаемых процедурой System.loadLibrary().

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

      Даже неверное решение, проведенное в жизнь с должной последовательностью и энергией, приводит к успеху

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

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

      Всем привет!

      Пожалуй, стоит представиться немного — я обычный инженер-схемотехник, который интересуется также программированием и некоторыми другими областями электроники: ЦОС, ПЛИС, радиосвязь и некоторые другие. В последнее время с головой погрузился в SDR-приемники. Первую свою статью (надеюсь, не последнюю) я сначала хотел посвятить какой-то более серьезной теме, но для многих она станет лишь чтивом и не принесет пользы. Поэтому тема выбрана узкоспециализированная и исключительно прикладная. Также хочу отметить, что, наверное, все статьи и вопросы в них будут рассматриваться больше со стороны схемотехника, а не программиста или кого-либо еще. Ну что же — поехали!

      Не так давно у меня заказывали проектирование «Система мониторинга энергоснабжения жилого дома», заказчик занимается строительством загородных домов, так что кто-то из вас, возможно, даже уже видел мое устройство. Данный девайс измерял токи потребления на каждой вводной фазе и напряжение, попутно пересылая данные по радиоканалу уже установленной системе «Умный дом» + умел вырубать пускатель на вводе в дом. Но разговор сегодня пойдет не о нем, а о его небольшой, но очень важной составляющей — датчике тока. И как вы уже поняли из названия статьи, это будут «бесконтактные» датчики тока от компании Allegro — ACS758-100.
      ________________________________________________________________________________________________________________________

      Даташит, на датчик о котором я буду рассказывать, можно посмотреть тут. Как несложно догадаться, цифра «100» в конце маркировки — это предельный ток, который датчик может измерить. Скажу честно — есть у меня сомнения по этому поводу, мне кажется, выводы просто не выдержат 200А долговременно, хотя для измерения пускового тока вполне подойдет. В моем устройстве датчик на 100А без проблем пропускает через себя постоянно не менее 35А + бывают пики потребления до 60А.

      image
      Рисунок 1 — Внешний вид датчика ACS758-100(50/200)
      Читать дальше →
    • Надежное user-friendly управление силовыми нагрузками умного дома: Domoticz + ручной переключатель

      Привет, Geektimes!

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

      В качестве центрального контроллера в моей версии умного дома я использую Raspberry Pi с установленными Domoticz и MQTT брокером Mosqito. Центральный контроллер управляет разнообразными нагрузками, зачастую расположенными достаточно далеко от основного здания, например, в гараже или в теплице. В таких удаленных узлах я использую недорогие UDP реле KMTronic для коммутации нагрузок и Ардуино с Ethernet Shield для сбора данных и обратной связи.

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

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

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



        Цель этого поста – показать процесс разработки и изготовления подобной платформы. Обычно в статьях по робототематике показывают уже готовые устройства, демонстрируя, что сделано и как оно в результате работает. Это интересно, конечно же. Но с бóльшим удовольствием я читаю статьи, в которых поэтапно показывается, как именно сделано, почему и описание каких-то отдельных моментов или мыслей. Я попробую подробно описать как собиралась движущаяся платформа в домашних условиях. Эта статья – профильное чтение для отдыха. Саму статью я подготавливал, наверное, больше времени раза в три, чем рукоделием занимался. Не претендую на полноту описания, высокотехнологичность, наукоёмкость, инновационность и безошибочность… Но надеюсь, что для кого-то она поможет сделать какие-то первые шаги и покажет, что современная модульная электроника это совсем не сложно, хотя и не совсем просто, как кажется. «Дяди снова играют в машинки вместо того, чтобы серьёзным делом заниматься». Но ведь нужно же заниматься чем-то тем, кто никак не может вырасти. Осторожно – под катом будет много текста и неприлично много картинок.
        Читать дальше →
      • Как я сделал электронную плату для телеметрии датчиков и для управления периферией

        В ходе создания робота-официанта, робота телеприсутствия, селфибота появились некоторые разработки, которыми грех не поделиться с сообществом, то есть сделать open-source. Одной из рабочих версий стала электронная плата под кодовым названием SB version 4.0, использующая недорогую и сравнительно малофункциональную Arduino, а именно, Nano 3.0. Плата SB 4.0 достаточно проста и понятна, чтобы в процессе её сборки закрепить свои знания электроники и навыки пайки, достаточно функциональна, чтобы сделать собственные практичные проекты (например, включить лампочку по сигналам с датчика движения и датчика освещенности или по вашей команде по Bluetooth), а себестоимость комплектующих с доставкой при заказе у наших китайских друзей с таобао составила около $55 (включая сами датчики).

        Основное назначение платы SB 4.0 — аппаратный интерфейс. Собрав, вы можете использовать её для получения и обработки данных от нескольких предустановленных датчиков и дальнейшего принятия решения и исполнения алгоритмов. Для удобства отладки создан интерфейс в OS Windows, в котором наглядно отображаются телеметрические показания с датчиков и источника питания, состояние кнопок и сервоприводов, можно отправлять команды на микроконтроллер.

        В этой публикации я опишу характеристики платы и один из примеров её применения. Повторюсь, всё это open-source, под лицензией CC Attribution Non-Commercial Share Alike.

        Да, уже есть подобные платы управления и KITы с датчиками (более дорогие платы Ардуино с шилдами, у Raspberry Pi, у амперки йодо), но SB 4.0 отличается от них наличием платы питания и удобной программы контроля, написанной с помощью среды разработки LabView. То есть SB 4.0 состоит из двух плат: управления + питания. Это будет видно на фотографиях и видео.
        Читать дальше →
      • «Ни единого разрыва»: чего стоит сделать онлайн-трансляцию, которая не будет падать, тормозить и вызывать боль в глазах?

          Если кто следит за нашим блогом, наверняка уже знает, что мы проводим хардкорные технические конференции в разных областях программирования (Java, .NET, HolyJS, iOS/Android, тестирование). Конференции эти традиционно проходят в Москве и Петербурге, почему? Потому что в этих городах физически больше разработчиков – это позволяет собирать под одной крышей по 500-1000 единомышленников.



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

          Как выглядит идеальная на наш взгляд трансляция? Вот несколько ссылок на свежие трансляции последних конференций:
















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

            Один из аспектов профессии разработчика — посвящение профанов в особенности процесса разработки ПО.
            С. Макконнелл, Совершенный код

            Цель этой публикации — поделиться опытом работы над проектом со сложной историей и тяжёлым наследием. После ухода из очередного т.н. «стартапа», я решил что хочу попробовать новых ощущений: enterprise, legacy, etc. Для этого взялся за работу над корпоративным приложением для транснационального концерна. Разработка на тот момент шла уже третий год, приложение пережило несколько поколений разработчиков, но стабильного релиза так и не было.

            Полагаю публикация будет полезной:

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

            Затрагиваемые в статье вопросы:

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

            Читать дальше →
          • К вопросу о пинах

            • Tutorial

            Дню знаний посвящается...


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

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

            Все это верно, но лишь до того момента, когда вам потребуется подключать к А что-нибудь пошустрее светодиода (у меня нет претензий к этим замечательным приборам, но обычно в силу специфики использования особого быстродействия от них не требуется), и тут то Вам понадобится эффективная работа с пинами (будем так для краткости именовать порты ввода/вывода), и тогда на форумах возникают вопросы «почему у меня так медленно работает программа», на которые молодые гуру мгновенно отвечают «работай напрямую с регистрами и будет тебе счастье» и показывают, как именно, по их мнению, следует это делать.

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

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



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

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

              Evil by Design, Крис Ноддер
              Один из лучших подходов к проектированию чего-то хорошего — это спроектировать сначала самое ужасное из возможного. Пользователь обычно не скажет, как сделать ему хорошо, но точно знает, как бывает плохо. Например, юзер не говорит «я хочу, когда нажимаю на ссылку напоминания пароля, там в поле уже была введена почта», зато вполне способен сказать: «слушай, меня дико бесит, когда логинишься, тебе показывают новую страницу про то, что пароль не подошёл, и, чтобы его восстановить, надо ещё один долбанный раз вводить почту». Вся книга Криса состоит из таких «тёмных» шаблонов, когда какие-то гады намеренно вводят вас в заблуждение. Он там очень переживает за этику, поэтому вступления лучше пропустить. Единственная в этом обзоре книга на английском, но довольно простом.
              Читать дальше →
            • 8 лекций, которые помогут разобраться в машинном обучении и нейросетях




                Мы собрали интересные лекции, которые помогут понять, как работает машинное обучение, какие задачи решает и что нам в ближайшем будущем ждать от машин, умеющих учиться. Первая лекция рассчитана скорее на тех, кто вообще не понимает, как работает machine learning, в остальных много интересных кейсов.
                Читать дальше →
                • +43
                • 80.7k
                • 5
              • Госдума ввела НДС 18% для иностранных интернет-компаний

                  Иностранец? Плати


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

                  Законопроект № 962487-6 «О внесении изменений в части первую и вторую Налогового кодекса Российской Федерации (в части налогообложения отдельных операций, совершаемых через сеть «Интернет»)» — так называемый «налог на Google» — принят сегодня Госдумой в окончательном чтении.

                  Результаты голосования с пофамильным списком голосовавших

                  Протекционистский закон, который защищает российский рынок от иностранных конкурентов и значительно пополняет казну, поддержали российские игроки, в том числе «Яндекс», Mail.ru Group, Rambler & Co, «ВКонтакте», Group-IB, Российская ассоциация электронных компаний (РАЭК) и другие.
                  Читать дальше →
                • Статический анализатор HuntBugs: проверяем IntelliJ IDEA

                    Как многие помнят, некоторое время я развивал статический анализатор Java-байткода FindBugs. Однако проблем в FindBugs накопилось столько, что я решил, что будет проще написать новый анализатор байткода. Я не очень творчески назвал его HuntBugs. Разработка ведётся на GitHub. Он пока в ранней стадии разработки, иногда глючит и покрывает примерно 35% диагностик из FindBugs, но при этом добавляет свои интересные штуки. Попробовать можно на вашем Maven-проекте с помощью команды mvn one.util:huntbugs-maven-plugin:huntbugs (отчёт пишется в target/huntbugs/report.html). Альтернативно можно собрать вручную из гита и запустить приложение командной строки one.util.huntbugs.HuntBugs, которому можно подавать на вход JAR-файлы или каталоги с .class-файлами.


                    Как-нибудь потом, когда проект несколько повзрослеет, я расскажу о нём более подробно. А в этой статье я покажу, чего интересного нашёл HuntBugs в IntelliJ IDEA Community Edition. Я скачал с официального сайта и поставил последнюю версию этой IDE, а затем натравил HuntBugs на файл lib/idea.jar, в котором почти всё и лежит. Я люблю тестировать статический анализ на IDEA, потому что это IDE, в которой самой есть очень неплохой статический анализатор и разработчики им явно пользуются. Интересно посмотреть, что остаётся после него.

                    Читать дальше →
                  • Игры для программистов


                      Снова здравствуйте, сегодня мы поговорим о таком вообще-то необычном явлении, как игры про программирование. Или игры для программистов. Короче говоря, игры, где чаще всего нельзя напрямую решать какие-то проблемы, а нужно составлять указания и инструкции для их решения. Итак, для кого они вообще?
                      Читать дальше →
                    • Обзор инфракрасного датчика CO2 MH-Z19

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

                        В отличие от старых датчиков CO2, MH-Z19 не требует специфического напряжения или высокой мощности и умеет передавать данные через UART и PWM.


                        Читать дальше →
                      • Как начать летать самостоятельно, хоть на чем-то, с мотором

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

                          Парящий полет (первая статья)
                          • Параплан
                          • Дельтаплан
                          • Планер

                          Моторный полет (под катом)
                          • Самолет
                          • Мотодельтаплан (дельталет)
                          • Паратрайк (аэрошют)
                          • Парамотор (карлсон, мотопараплан)
                          • Мотопланер



                          Первый раз за штурвал самолета я сел в 18 лет. До первого самостоятельного вылета налетал 25 часов и совершил около 100 взлетов и посадок. Сейчас мой суммарный налет на всем, что летает — порядка 400 часов. Это жутко мало, чтобы считать себя опытным пилотом, но достаточно, чтобы подсесть на “летную иглу”. Приглашаю и вас стать авиазависимыми.
                          Запустить двигатель