• Простая Bluetooth машинка на Arduino

    Широкое распространение и дешевизна платформы Arduino и различных робоплатформ позволило любителям создавать радиоуправляемые машинки на любой вкус. А широкое распространение смартфонов позволило использовать их в качестве контроллеров этих машинок. Главной проблемой для многих любителей Arduino является отсутствие опыта в программировании под Android. Сегодня я расскажу, как легко решить эту проблему, используя среду визуальной разработки android-приложений App Inventor 2.


    Читать дальше →
  • Полная энергетическая автономия или как выжить с солнечными батареями в глубинке (часть 2. практическая)



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



      Собираем автономку
    • Большие подводные камни маленького контроллера

      Эта публикация — ответ на часто задаваемые вопросы по семейству микроконтроллеров ATtiny4/5/9/10. Большинство из них решается внимательным чтением документации. Тем не менее, я решил описать основные отличия в работе с этими МК. Под катом вы найдёте рассказ о самых младших AVR'ах, а также описание проблем, появляющихся при знакомстве с ними.

      image
      Читать дальше →
    • Китайский HID программатор USBISP (USBASP) в Linux. Препрошивка

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



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

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

      Для тех, кто хочет быстрого решения, в конце статьи есть ссылка на архив с доработанной мною прошивкой USBASP от Thomas Fischl и список изменений в формате git diff.
      Читать дальше →
      • +25
      • 40,9k
      • 7
    • Сделай сам: MSc Computer Science на уровне топ американских университетов из дома

        Вступление


        Давно хотел написать статью про образование в Computer Science, но руки не доходили. Решил все-таки это наконец сделать. Итак, о чем пойдет речь? Речь о том, что из себя представляет диплом MSc Computer Science топовых университетов США (во всех подробностях, включая основные курсы, книги и проекты) и как ему соответствовать.

        Почему именно MSc? Это — некая развилка: с одной стороны после MSc — вы уже готовый к жизни инженер (да, речь идет о инженерной подготовке, как мне кажется это самое больное место в нашей системе образования), с другой — можно спокойно идти по пути PhD. Как известно, в PhD программу можно попасть и не особо умея программировать — особенно это касается теоретического Computer Science. С другой стороны найти работу программиста тоже дело не очень сложное, и часто не требует мощного образования. Но достигнув уровня MSc — вы получаете возможность разбираться как во всех новый идеях в Computer Science, так и возможность их воплотить в практику. То есть с одной стороны круто разобраться в каком-нибудь deep learning и сделать в нем что-то новое, а также взять и написать свою операционную систему (кто так сделал?). Причем вы не зажаты в рамки узкой специализации (если конечно продолжаете учиться). То есть вы теперь — универсальный солдат, готовый на все.

        Надеюсь что эта статья будет полезна:
        1. Студентам, которые хотят соответствовать высоким стандартам топ вузов США, или собирающиеся туда в аспирантуру по Computer Science
        2. Профессионалам, которые хотят закрыть «дыры» и пробелы
        3. Может кто-то из преподавателей возьмет на заметку для своих курсов.
        4. Студентам, аспирантам американских вузов — хотелось бы тоже получить фидбэк, особенно касается последних трендов в образовании

        Что же здесь будет написано? Минимум философии и общих мыслей: конкретная программа undergraduate и graduate курсов, конечно из дисциплин наиболее мне близких. Все курсы были лично прочувствованы на собственной шкуре, по этому и пишу. (Я пытался записаться на все интересные курсы, которые были, но мой основной упор — системное программирование, базы данных и искусственный интеллект. Отсюда конечно некий bias, но пытаюсь предложить более-менее универсальную программу).
        Читать дальше →
      • WEB Server на базе ENC28j60 + Arduino — проще не бывает

          image

          Всем привет.
          Как многие слышат, что нужно создать WEB сервер – сразу становится не по себе, всячески пытаются отойти от этой темы применив другие варианты управления и мониторинга своих устройств. Но ведь интернет и сеть есть уже почти в каждом устройстве. Так чем Ваш творение хуже?
          Так что Если Вам интересно – идем дальше.
          Читать дальше →
        • Изобретения — изобретателям. Или почему вам не нужен огромный принтер

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

            Когда-то давно, когда вышла моя первая публикация «Что будет, если вы задумаете собрать 3D принтер своими руками», на меня сразу обрушился шквал писем с помощью в создании принтера и пр. С тех пор я не переставал собирать и разбирать принтеры, следить за новинками и пробовать себя во многом. На сегодняшний день на моем счету больше 12 проектов с нуля, но только один меня разочаровал и обрадовал одновременно.

            В августе 2014 года в славном городе Санкт-Петербурге прошла небезызвестная выставка GeekPicnic, в которой я участвовал уже во второй раз. На ней скромно, на отшибе и стоял самый высокий российский 3D принтер PRISM PRO (мне до сих пор не импонирует это название, но что поделать):

            image

            О нем-то и пойдет речь. Я хочу рассказать, каково создавать такие машины, сколько они стоят на самом деле, что для этого нужно, что требуется от вас, где найти все детали, подарю все чертежи и принципиальные схемы, в общем, подарю вам этот принтер.
            Читать дальше →
          • Как начать разрабатывать железо, используя ПЛИС — пошаговая инструкция

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

            Для этого вовсе не обязательно выбрасывать несуразные деньги а-ля сделка Сколкова и MIT.

            Есть масса дешевых и эффективных мер по апгрейду российской образовательной системы. Одна из них — широко ввести практические классы ПЛИС / ППВМ / FPGA среди старших школьников и студентов. Это то, на чем учатся и инженеры, которые потом разрабатывают микросхемы внутри Apple iPhone в Купертино, Калифорния.
            Читать дальше →
          • Как восстановить неправильно выставленные фьюзы в ATtiny

            • Tutorial
            image

            Привет всем хабраюзерам. Думаю многие, кто занимается микроконтроллерами, имеют небольшой опыт в «блокировке» микроконтроллера неправильно выставленными фьюз-битами, например, неправильные настройки тактирования, в частности — очень низкая частота, например 16 КГц.

            Так же данный метод должен подойти для случаев, когда были случайно изменённые фьюз-биты RSTDISBL, а конкретнее — порт RESET используется как порт ввода/вывода или же небрежное отношение к фьюз-биту SPIEN(разрешение на последовательное программирование), всё это исключает прошивку классическим способом по протоколу SPI(In-System Programming).



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

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

            • ATtiny13;
            • ATtiny24;
            • ATtiny25;
            • ATtiny44;
            • ATtiny45;
            • ATtiny84;
            • ATtiny85.

            На видео я показал как можно восстановить заводские фьюз-биты при помощи Arduino, по сути информация представлена ниже дублируется в видеоформате.
            Читать дальше...
          • Обзор наиболее интересных материалов по анализу данных и машинному обучению №34 (2 — 8 февраля 2015)


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

                2 года назад я написал статью о классификации знаний в области программирования. Это было на волне интереса и моей активной деятельности по самообразованию в компьютерных науках. Написал статью и забыл о ней. Публиковать на Хабре не собирался. В конце концов, она базируется на моем личном опыте и знаних, которые могут оказаться весьма субъективны.

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

                Но прежде, чем «запустить» материал, еще небольшое отступление. О том, почему вообще я все это писал. Дело в том, что у нас в странах бывшего СССР с образованием в области IT очень туго. С одной стороны нет программ обучения, которые подготовят специалистов на должном уровне (наверное, за очень редкими исключениями, которые можно отнести к погрешности). С другой стороны, из-за широких возможностей самообразования, программисты и не спешат учиться в ВУЗах — все стремятся начать практиковать как можно раньше. Часто изучается только одно направление (например PHP+Mysql — самое популярное) и в бой. Причем, на этом все заканчивается. В итоге у нас огромное количество программистов, которые и базовых вещей не знают. Отсюда вытекают проблемы с качеством кода, и с эффекивностью алгоритмов, с велосипедированием.

                Но программирование — это полноценная область знаний, которая требует в том числе и инженерной подготовки. Точно так же, как строительство или телекоммуникации. Да, построить дом (особняк) можно своими руками и без образования. А поднять большинство сайтов можно прочитав пару книг по PHP и HTML. Но многоэтажку без специальной подготовки не построишь, как и Гугл не напишешь, не зная основ.

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

                Поехали.
                Читать дальше →
              • Прошивка Arduino Pro Mini через Nano

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

                Почитав на сайте http://arduino.cc и посабирав информацию на разлинчых форумах, узнал о возможности прошивать Pro Mini при помощи других плат Arduino.
                Подробности
              • Собираем лазерный проектор из доступных деталей

                  UPD: Добавлены файлы платы с ЦАП на GitHub

                  Изначально я планировал сделать Лазерную арфу, но пока получился промежуточный результат — устройство, которое можно использовать как лазерный проектор — рисовать лазером различные фигуры, записанные в файлах формата ILDA. Я в курсе, что многие, кто берется за сборку лазерного проектора, в качестве устройства, управляющего гальванометрами (так и не понял как лучше перевести на русский сочетание “galvo scanner"), используют дешевые слегка модифицированные звуковые платы для компьютера. Я пошел иным путем, так как в конечном счете мне нужно будет полностью автономное устройство, которое может работать без компьютера.



                  Посмотрим из чего состоит мой лазерный проектор. Стоимость всех деталей составила около 8000 руб, из которых больше половины — это 70mW лазерный модуль.
                  1. Гальванометры и драйверы к ним для отклонения луча лазера по осям X/Y
                  2. 532нм 70mW лазерный модуль с питанием от 5В Dragon Lasers SGLM70
                  3. Texas Instruments Stellaris Launchpad
                  4. Самодельная плата с ЦАП AD7249BRZ
                  5. Блок питания

                  Читать дальше →
                • Умная поливалка цветка на микроконтроллере Attiny13A

                    image

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

                    Предлагаю вашему вниманию устройство для автоматического полива цветов на базе микроконтроллера Attiny13a, подробности под катом.
                    Читать дальше →
                  • Конечный автомат (он же машина состояний) на чистом С

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

                    Собственно через регулярные выражения я к ним и пришёл.
                    Читать дальше →
                  • Осваиваем CC430 — микроконтроллеры с радиомодулем: фотофиниш своими руками

                      Серия микроконтроллеров Texas Instruments CC430 — это MSP430 со встроенным радио модулем. В отечественных интернет-магазинах можно купить модули TE-CC430F51-433, содержащие на крошечной плате такой микроконтроллер с кварцем и кучкой других полезных деталей, по вполне демократичной цене. В этой статье я расскажу о построении на базе таких модулей фотофиниша — устройства весьма полезного для любителей спортивных состязаний. На нем естественно потенциальная сфера применения не ограничивается. Наличие 12 битного АЦП, аппаратного умножителя и другой периферии открывает широкий простор для применений, требующих передачи данных на расстояние до нескольких сотен метров.
                      Читать дальше →
                      • +36
                      • 22,5k
                      • 7
                    • Превращаем Arduino в полноценный AVRISP программатор

                      • Tutorial
                      image

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

                      Меня уже давно спрашивают — можно ли прошивать hex файлы при помощи Arduino? Изменять фьюзы? Считывать прошивку? И всякое такое… Ответ — можно, и я сегодня вам расскажу, как я это делаю.


                      (Данное видео дублирует представленную ниже информацию)
                      Интересненько...
                      • +14
                      • 145k
                      • 8
                    • Искусственный рассвет

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



                      — А, что ж так темно-то, Господи? © День радио.

                      Впрочем, для человека, живущего зимой по летнему времени — мысль вполне естественная.
                      Что же делать?
                    • Ключевое отличие AngularJS от Knockout

                        imageЗа последнее время я несколько раз успел поучаствовать в дискуссиях о том, чем Angular лучше или хуже Knockout и других JS-фреймворков. И очень часто я сталкивался с тем, что есть некоторое непонимание сути различий в подходах, заложенных в эти продукты. Иногда дело доходило даже до того, что в качестве преимущества Knockout приводились валидные по умолчанию префиксы «data-», что ну просто совсем смешно (не говоря уж о том, что их можно использовать и в Angular).

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

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

                        И третий пункт мне здесь видится наиболее сложным для понимания. Поговорим именно о нем.
                        Читать дальше →
                      • AngularJS vs. KnockoutJS

                          Добрый день уважаемые, хабрачеловеки.
                          В данной статье я хочу поделиться с вами своим опытом работы с такими фреймворками как AngularJS и Knockout.
                          Cтатья будет интересна тем, кто хорошо знаком с JavaScript-ом и имеет представление хотя бы об одном из упомянутых фреймворков и естественно желает расширить свой кругозор.

                          Читать дальше →