Рубрика «arduino»

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

Вот сейчас школьников учат программировать Ардуино и другие устройства на основе микроконтроллеров и встроенных процессоров (Лего, Расберри Пай итд). А вот в 1970-е годы школьников учили здесь же, в Калифорнии, собирать схемы на макетной плате, на транзисторах и микросхемах малой степени интеграции (7400 TTL, CMOS 4000 итд) с элементами И-ИЛИ-НЕ и D-триггерами. Это как бы и прогресс — на микроконтроллере можно написать программу, которая бы осмысленно двигала роботической рукой, чего трудно сделать на индивидуальных логических элементах, но как мы вырастим школьников, которые бы умели проектировать (не программировать) сами микроконтроллеры?

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

Зашел в офис Ардуино; поговорили о ПЛИС-ах; требуются добровольцы - 1

Идея учить школьников по всему фронту цифровой схемотехники и встроенного программирования звучит хорошо теоретически, но как воплотить это в жизнь?
Читать полностью »

RobotDyn Mega + ESP8266
Что делает разработчик в редкие часы досуга? Правильно, просматривает прайсы железячных магазинов. Выдалась свободная минутка и я решил полистать странички популярных интернет-магазинов — скукота, ничего интересного, всё это мы уже видели… и тут неожиданно мой взгляд падает на очередную Mega. Ба! да это не простая Мега, а совмещённая со всеми любимым ESP8266, да ещё заботливо снабжённая переключателями для совместной работы двух контроллеров — проводного (при помощи Ethernet Shield) со множеством GPIO и Wi-Fi для беспроводной связи.

Неплохо! Подумал я и вспомнил про AMS — туда же можно установить два сервера — проводной и беспроводной и связать их в одну систему — ESP8266 получит 54 цифровых и 16 аналоговых пинов, а Mega получит беспроводное управление по Wi-Fi и все плюшки ESP8266. Давненько мне не попадалась такая интересная плата.

— Здравствуйте! У вас есть плата Mega + ESP8266?
— Есть, но у нас только одна осталась.
— Почему только одна?
— Остальные разобрали.
— Зарезервируйте её, пожалуйста, для меня.
Читать полностью »

Впервые про программируемый логический контроллер по имени CONTROLLINO мне довелось узнать году еще в 2014-м в случайной переписке с человеком, который подбирал себе ПЛК для домашней автоматизации. Я ему рекомендовал какие-то классические модели, а он в ответ сообщил, мол, видел на кикстартере некий интересный проект под названием CONTROLLINIO. Это промышленный ПЛК, который программируется так же, как Arduino, в его родной IDE.

Тот парень работал php-программером и С++ был для него не проблема. Деньги и идеи имел, а желания изучать LAD или Codesys нет. В итоге отписался, что сделал предзаказ на CONTROLLINO и больше на связь не выходил.

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

Ардуино-совместимый ПЛК CONTROLLINO, часть 1 - 1
Читать полностью »

Эмулятор купюроприемников и диспенсеров на Arduino - 1
Смена деятельности — это то, что весьма хорошо влияет на плодотворность работы. Так что, когда мне предложили сделать драйвер для купюроприемника и диспенсера, а затем и платежный терминал целиком — я согласился, предупредив, правда, что работа для меня новая и мне неведомая.
С тех пор было написано штук 30 драйверов: часть из них — абсолютно уникальные, другая часть — разные реализации одного и того же.
Иметь дома устройство каждого вида — нецелесообразно. Тем более, что стоимость устройства сравнима со стоимостью разработки драйвера под него.
Но ведь тестировать как-то надо. Чаще всего устройство тестируется удаленно через remote desktop.
Но это жутко неудобно и часто приходится ждать наличия того или иного устройства.
И вот я созрел сделать Читать полностью »

Вновь организуем небольшую раздачу слонов для тех, кто стремится нести детям доброе, мудрое, вечное.
Раздаем железки для организации детских кружков робототехники - 1

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

В предыдущей статье я описал устройство для управления климатом на ESP8266. Возникает вопрос, а при каких событиях мы должны выполнять это управление? Самое простое — при наступлении определенного времени.

Второе что приходит в голову — присутствие в доме. Если вас нет дома, то нет смысла (или есть?) проветривать, отапливать и кондиционировать помещение.

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

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

С чего начать?

Зайдите в школу, где вы учились сами или где учатся ваши дети, и договоритесь с кем-нибудь из учителей провести пару занятий (вам там будут рады, это точно совершенно). Любому технарю, если он своим предметом увлекается, есть что рассказать интересного детям. Они будут слушать внимательно, поскольку серьезных людей им сильно не хватает. Я в свое время начал с того, что освежил в памяти университетский курс по радиобиологии, пришел в родную школу и прочитал старшеклассникам лекцию про радиацию (есть у них такая тема в программе).
Читать полностью »

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

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

Пришлось делать самому. Малые частоты нужно измерять через период, потому идеальный конечный результат — нечто вроде функции pulseIn(), только измеряющей не длительность импульса, а период. Получилось несколько вариантов, которые и предлагаю аудитории в надежде, что кому-нибудь они пригодятся. Для каждого варианта определялись границы применимости и рассматривались достоинства и недостатки в сравнении друг с другом.
Читать полностью »

Предлагаемый Вашему вниманию драйвер шины 1-Wire не является чем-то революционным, все использованные схемотехнические решения давно известны. Причиной публикации стало желание не загромождать статью о программной реализации примитивов 1-Wire-master на основе PWM и ICP.
Читать полностью »

Если кто-нибудь использовал linux-драйвер шины 1-Wire на основе GPIO, то наверняка замечал, что в момент выполнения обмена данными загрузка SY% подскакивает чуть ли не до ста 100% (что вполне логично для bitbang-реализации). Конечно, можно поставить специализированный контроллер шины 1-Wire с подключением через I2C DS28E17 или использовать UART, но… Все-таки использовать linux для приложений реального времени не лучшая идея. Пусть контроллер на нем занимается высокоуровневой логикой, а весь реалтайм можно вынести на отдельный процессор. Тем более, что задач для этого отдельного процессора в моем проекте более чем достаточно.
Читать полностью »