» » Программирование микроконтроллеров

 

Умная автоматическая кормушка для питомца на базе Arduino – ШАГ 1

Автор: admin от 8-08-2017, 11:35, посмотрело: 81

В данном цикле статей я буду рассказывать о моем опыте сборки «умной» автоматической системы для кормления домашнего питомца, в моем случае – кота.



Хочу сразу отметить, что на первом шаге речь пойдет только об "автоматической" кормушке, а "умной" она станет на следующих этапах (если повезет, и все пойдет по плану).



Итак, начнем с концепции и целей:




  • Сделать систему, которая освободит меня от обязанности кормить кота сухим кормом (шаг 1)

  • Оснастить систему датчиком веса под миской и осуществлять кормежку в соответствии с показаниями весов: если миска пустая – подсыпать, иначе – ждать пока миска не станет пустой (шаг 2)

  • Добавить в систему вай-фай модуль и видеокамеру для передачи фотографий с любимым котом, а также обеспечить контроль кормежки удаленно. Кроме того, собирать данные о том сколько кот съел и строить аналитику (шаг 3)



  • На первом шаге не требуется большое количество датчиков и манипуляторов, достаточно одного серводвигателя (например, Micro Servo Towerpro SG90 9 г), поэтому все управление происходит с платы ArdruinoUno, которая идеально подходит для задач такого рода.

    ->

    Категория: Программирование

     

    CDC+MSC USB Composite Device на STM32 HAL

    Автор: admin от 7-08-2017, 01:35, посмотрело: 112

    CDC+MSC USB Composite Device на STM32 HAL



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




    • Mass Storage Device (он же Mass Storage Class — MSC). Я хочу, чтобы мой девайс прикидывался обычной флешкой и отдавал файлики с данными, которые лежат на SD карте.

    • Другая функция это виртуальный COM порт (он же в терминологии USB называется Communication Device Class — CDC). Через этот канал у меня идет всякий дебажный вывод, который удобно смотреть обычным терминалом.



    В большинстве примеров по работе с USB реализуется только один тип устройства — флешка, мышка, кастомное HID устройство или виртуальный COM порт. А вот найти вменяемое объяснение как реализовать хотя бы две функции одновременно оказалось не так просто. В своей статье я хотел бы восполнить этот пробел.



    Я буду описывать создание композитного USB устройства на базе микроконтроллера STM32, но сам подход будет также применим и для других микроконтроллеров. В статье я детально разберу каждый из классов по отдельности, так и принцип построения композитных устройств. Но обо все по порядку.



    Итак, поехали!
    ->

    Категория: Программирование, Системное администрирование

     

    Использование устройства на базе STM32 в системе полива для открытого грунта

    Автор: admin от 27-07-2017, 16:05, посмотрело: 67

    Предисловие

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


    ->

    Категория: Программирование, iOS

     

    Поднимаем Linux на MIPSfpga и ПЛИС Altera

    Автор: admin от 23-07-2017, 10:15, посмотрело: 83

    Поднимаем Linux на MIPSfpga и ПЛИС Altera



    Предоставленная Imagination Technologies документация на MIPSfpga очень хорошо и подробно описывает развертывание Linux. Но используемая при этом система на кристалле построена с помощью Xilinx-специфических периферийных модулей. Потому ее повторение на отладочной плате с ПЛИС Altera в исходном виде представляется невозможным. Решением является система на кристалле MIPSfpga-plus с ее платформонезависимой периферией. О том, как запустить на ней Linux, читайте в этой статье.

    ->

    Категория: Программирование, Системное администрирование

     

    Текущая активность вокруг MIPSfpga и не только

    Автор: admin от 20-07-2017, 10:20, посмотрело: 56

    Текущая активность вокруг MIPSfpga и не только



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




    • релиз MIPSfpga 2.0;

    • процессор schoolMIPS и Летняя школа юных программистов в Новосибирске;

    • школа-семинар по цифровому дизайну и компьютерной архитектуре в Томске;

    • запуск ванильного ядра Linux на MIPSfpga-plus;

    • поддержка АЦП Altera MAX10 в MIPSfpga-plus;

    • логотип MIPSfpga-plus.



    Если тематика MIPSfpga-plus вам не безразлична, то в конце есть небольшой опрос на тему чего мне писать (или не писать) следующую статью. Ваш выбор поможет мне сориентироваться и расставить приоритеты. Welcome!

    ->

    Категория: Программирование, Системное администрирование

     

    STM32 + PPP (GSM) + LwIP

    Автор: admin от 10-07-2017, 12:35, посмотрело: 53

    Большинство GSM модулей работают по интерфейсу UART, посредством AT-команд. Но для серьезных проектов, использование AT команд несет определенные трудности:

    • контроль и обработка ошибок
    • результат выполнения команды возвращается с длительной задержкой
    • необходимо разбирать входящие строки налету

    Нужно понимать, что с результатом выполнения команды, в буфер может попасть URC-код от входящего звонка, SMS, принятые данные и пр. Входной буфер с принятыми строками, приходится разбирать опираясь лишь на символы переносов и «эхо» команды, а сами команды зачастую сильно отличаются форматом. По этим причинам, использование AT вносит дополнительную задержку, алгоритмически ее устранить практически невозможно, ведь причина находится в самом модуле и несовершенстве его встроенного ПО

    В этом примере я использовал SIM800C. Посмотрев спецификацию и убедившись в поддержке PPP, стал изучать способы реализации. Для использования PPP, модуль переключается несколькими настроечными командами, после этого режим AT становится недоступным и фактически идет общение с вышкой оператора напрямую, минуя внутренний стек модуля, что позволяет значительно ускорить обмен данными.

    Пример PPP-пакета:

    STM32 + PPP (GSM) + LwIP

    Категория: Программирование, Веб-разработка

     

    ПЛК от производителей Овен, Segnetics и Schneider Electric для HVAC

    Автор: admin от 10-07-2017, 08:20, посмотрело: 65

    В этой статье краткий обзор программируемых контроллеров для HVAC (отопление, вентиляция и кондиционирование) от 3х производителей:




    • ОВЕН ПЛК63/73

    • Segnetics SMH2g и Pixel

    • Schneider Electric M171/172



    Исходя из личного опыта их использования.




    ->

    Категория: Программирование

     

    Цифровой датчик температуры TSic: адреса, пароли, явки

    Автор: admin от 3-07-2017, 13:00, посмотрело: 100

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



    Цифровой датчик температуры TSic: адреса, пароли, явкиГерой сегодняшней статьи, на первый взгляд, не представляет собой ничего особенного — мало ли мы видели цифровых датчиков температуры. Однако у серии TSic есть два необычных свойства: действительно высокая точность (до ±0.07°C у старшей модели) и малоизвестный однопроводной интерфейс ZACwire.



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

    Категория: Программирование, Веб-разработка

     

    Многоядерный DSP TMS320C6678. Организация памяти ядра

    Автор: admin от 30-06-2017, 18:35, посмотрело: 77

    Продолжаем серию статей, посвященных многоядерным цифровым сигнальным процессорам TMS320C6678. В данной статье будет рассмотрена подсистема памяти ядра. Архитектура памяти процессора — один из ключевых моментов, напрямую влияющих на его эффективность. Знание особенностей организации архитектуры памяти позволяет разработчику более рационально использовать ресурсы DSP. Современные процессоры имеют достаточно сложную архитектуру памяти, включающую несколько уровней и контроллеры кэш. При этом в случае DSP работа с памятью усложняется наличием свободы выбора объемов кэш-памяти на разных уровнях, а для многоядерных процессоров характерна проблема синхронизации кэш разных ядер.
    ->

    Категория: Программирование

     

    Губит людей не пиво

    Автор: admin от 30-06-2017, 11:25, посмотрело: 41

    Губит людей не пиво Как известно из популярной песенки Вячеслава Невинного губит людей не пиво — губит людей вода. Особенно когда вода заканчивается в самый неподходящий момент. С этим что-то надо делать, тем более, что в столе валяется не используемый микроконтроллер esp8266 и зеленый светодиод.


    ->

    Категория: Программирование, Веб-разработка

     
    Назад Вперед