• Как использовать десктоп без десктопа? Обзор Samsung DeX

    • Tutorial
    Привет, Хабр.

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

    Решение пришло случайно при просмотре одного из обзоров — интерфейс Samsung DeX, позволяющий использовать в десктоп-режиме собственный смартфон.



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

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

    На момент написания статьи ориентировочная конечная стоимость изделия составляет ~70 000 руб. Если у вас есть 3D принтер, то можно смело вычесть из нее 20 000 руб. Если принтера нет, то его появление станет приятным бонусом. Все расходы я буду описывать исходя из того, что у нас нет ничего, кроме денег.

    Как выглядит результат:



    Также нужно отметить, что для программирования руки нам понадобится компьютер с установленными ОС Linux (я использую Ubuntu 18.04) и фреймворком ROS (я использую Melodic).

    Может возникнуть вопрос «почему 70К рублей – это дешево?»

    Отвечаю.
    Читать дальше →
  • Где прячется Российская электроника

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

      Читать дальше →
    • Часы светодиодные для улицы, так что внутри?

      Рассмотрим сам «процесс», так сказать от момента «звонка Клиента» и вплоть до монтажа и наладки…

      Создание макета.

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

      Затем — создается чертеж предполагаемого изделия. Обычно — пара вариантов, ибо слишком большое «пространство выбора», как показывает опыт — сильно усложняет процесс «Клиент определился». Чертёж разрисовывается в цвет предполагаемого свечения светодиодов.

      image
      Читать дальше →
    • Интеграция в проект LVGL графической библиотеки для микроконтроллеров

        LVGL — Light and Versatile Graphics Library также известная как LittleVGL.


        Библиотека поддерживает большое количество микроконтроллеров, таких как STM32, ESP32 и другие. Мне пока удалось запустить полноценную демо программу на ESP32 и STM32f429 Discovery. Библиотека открытая, поддерживает большое количество графических элементов с Dark and Light темами. Распространяется под MIT license. Можно свободно использовать даже в коммерческих продуктах. Можно посмотреть интерактивное Online Demo без установки на устройство
        Читать дальше →
      • Собираем недорогой 9.7" E-Ink дисплей для отображения чего угодно

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


          Читать дальше →
        • ILUШA vs Dynamixel. Выбор сервопривода с обратной связью

            Сервопривод отечественного производства Илюша.



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

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

            image

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

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

            Автор этих строк также был заложником дофаминовой петли, созданной непрерывным потоком новостей и стремительными переходами от ссылки к ссылке. Все это происходило по десять-пятнадцать раз в сутки, нередко сопровождаясь пустыми дискуссиями в комментах. Как удалось преодолеть такую зависимость – в этой статье.
            Читать дальше →
          • Как устроен Apple Lightning

            • Перевод


            Это моя маленькая статья с описанием (почти) всего, что я знаю об интерфейсе Apple Lightning и связанных с ним технологиях: Tristar, Hydra, HiFive, SDQ, IDBUS и др. Но сначала маленькое предупреждение…

            Читайте эту статью на свой страх и риск! Информация основана на большом количестве внутренних материалов AppleInternal (утечка данных, схем, исходных кодов), которые я прочёл по диагонали. И, конечно, на моих собственных исследованиях. Должен предупредить, что я никогда раньше не проводил подобных исследований. Таким образом, эта статья может использовать неправильные или просто странные термины и оказаться частично или полностью неправильной!
            Читать дальше →
          • Самый sexy framework для веб-приложений

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




              Итак, Sexy framework – это реактивный компилятор и анализатор Javascript кода для создания пользовательских интерфейсов. В отличии от других фреймворков, Sexy спроектирован, чтобы использовать весь нативный потенциал Javascript.


              Это означает, что фреймворк не работает в runtime. Всю основную работу он делает в момент компиляции. Фреймворк анализирует ваши компоненты и переводит их в нативный Javascript с очень небольшим оверхедом: максимальный вес бандла всего 3.7kb gzip. (если будут использованы все типы рендеринга, анимации и т.д.)

              Читать дальше →
            • Запускаем камеру от телефона, или что делать, когда ничего не получается?


                Лет восемь назад работал я в одном… а в прочем, не важно где. Делали мы там всякие разные интересные вещи. В том числе занимались системами технического зрения для роботов. Роботы были немного маленькие. И если привод для них маленький сделать не было для нас особой проблемой, то вот сделать миниатюрную цифровую камеру, которая не была бы размером с половину робота, было трудно (когда же мы наконец похороним PAL в таких разработках и везде будет цифра?). Если вам любопытно узнать, чем же всё закончилось, прошу под кат!

                Читать дальше →
              • Пишем декодер для sigrok

                • Tutorial
                image

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

                Его особенностью является открытый исходный код, а также, то что за декодирование сигналов отвечает open-source библиотека sigrok. Вместе с внушительным списком уже существующих декодеров сигнала эта библиотека предоставляет API для написание собственных. Этим мы и займемся.
                Читать дальше →
                • +24
                • 2,4k
                • 9
              • История разработки одного дозиметра (Часть 1)

                Всем привет. Месяца два назад, от нечего делать, решил достать из своего пыльного ящика пару уже давно заброшенных проектов, до которых никак не доходили руки, и один из них был проект дозиметра-радиометра, который я начинал делать года так 3 назад, но из за недостатка знаний так и не довёл его до рабочего варианта. И вот теперь, спустя два долгих и мучительных месяца, хочу рассказать вам с чем я за это время успел столкнуться, и как делать не надо.
                Читать дальше →
                • +15
                • 5,6k
                • 8
              • Солнечная электростанция на балконе. Личный опыт

                • Tutorial
                Привет, Хабр.

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


                Фото (с) smartflower.com

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

                Для тех, кому интересно, как это работает, продолжение под катом.
                Читать дальше →
              • Делаем машину для намотки тороидальных катушек на базе Arduino

                • Перевод


                Перевод с сайта Electric DIY Lab

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

                В данной статье я расскажу, как построить эту машину и дам подробности её работы.


                На видео всё подробно описано – можно посмотреть его или прочесть статью.
                Читать дальше →
              • На что ещё способны шаговые моторы? — Забивать голы в настольном хоккее

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

                Механика робота для настольного хоккея

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

                Расскажу про 4 момента, на мой взгляд заслуживающих особого внимания:

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

                В настольном хоккее Stiga Play-Off с каждой стороны по 6 игроков (вратарь и 5 на поле). У моего робота для настольного хоккея, в соответствии с количеством игроков — 6 роборук, по одной руке для каждого игрока, и каждую руку приводят в движение 2 мотора. Первый мотор перемещает игрока вперёд и назад, а второй мотор вращает клюшку. Итого задействовано 12 шаговых моторов.

                Почему именно шаговые моторы? Мне понадобилась точность и аккуратность, а шаговый мотор как раз и обладает способностью вращать вал строго на заданное количество градусов/шагов. Но, кроме точности, понадобилась скорость, и тут начались проблемы и поиск решения.
                Читать дальше →
              • Управление в стиле Догвилль

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

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

                  Этот подход в общении и, особенно, управлении используют примерно все, причём – бессознательно. Даже дети и животные. Поглядим, как он работает.
                  Читать дальше →
                • Как я делал себе АВР для генератора



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

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

                      С удалённой работой перегрузить себя ещё проще — ходить никуда не надо, никто не зовёт попить кофе, а список вариантов отдохнуть «снаружи» сократился.

                      В онлайне только и разговоров, как работать эффективно и сохранять баланс с отдыхом, но ведь гораздо проще включить YouTube, заесть чем-то сладеньким. Через час устать ещё больше: «Какого чёрта, я хотел посмотреть полезное видео, а смотрю как УАЗ наматывается на столб»?!

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

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


                      Читать дальше →
                    • Шпаргалка по регулярным выражениям

                      • Перевод
                      Доброго времени суток, друзья!

                      Представляю Вашему вниманию перевод статьи «Regex Cheat Sheet» автора Emma Bostian.

                      Регулярные выражения или «regex» используются для поиска совпадений в строке.

                      Ищем совпадение по шаблону

                      Используем метод .test()

                      const testString = 'My test string'
                      const testRegex = /string/
                      testRegex.test(testString) // true
                      

                      Ищем совпадение по нескольким шаблонам

                      Используем | — альтернацию

                      const regex = /yes|no|maybe/
                      

                      Игнорируем регистр

                      Используем флаг i

                      const caseInsensitiveRegex = /ignore case/i
                      const testString = 'We use the i flag to iGnOrE CasE'
                      caseInsensitiveRegex.test(testString) // true
                      

                      Извлекаем первое совпадение в переменную

                      Используем метод .match()

                      const match = 'Hello World!'.match(/hello/i) // 'Hello'
                      

                      Читать дальше →
                      • +10
                      • 8,1k
                      • 8