Рубрика «Электроника для начинающих» - 109

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

Итак, по порядку. Когда моя любовь к часам и точному времени достигла терминальной стадии, было решено воплотить мечту в жизнь. Начался поиск доступных плат для разработки с Ethernet на борту. Rapsberry с линуксом показались “пушкой по воробьям”, поэтому кинул вопрос на форум Netduino, ибо сейчас крепко сижу на C# и было интересно запустить байткод на микроконтроллере. Но увы, единственный модератор форума, видимо, уехал на отдых, и ему потребовалось несколько недель, чтобы одобрить и опубликовать мое первое сообщение. Not good, not good… На aliexpress была заказана плата Arch Pro и прочий недостающий обвес. Тогда это было самое доступное решение. На самой плате установлен микроконтроллер LPC1768 от NXP (ядро Cortex-M3), плюс LPC11U35 (Cortex-M0) для облегчения коммуникации с их софтом. Сам производитель предоставляет online IDE, компиляция тоже на их сервере, прошивка скачивается и закидывается на плату как файл на флешку, дебаггера нет, поэтому разработку проекта начал в Keil uVision, пробной версии, конечно же. Для прошивки и отладки микроконтроллера требуется только кабель micro-USB.

В качестве часов реального времени была выбрана ИС DS3231, которая приехала ко мне в виде готового модуля, общающегося по I2C:

RTC
Читать полностью »

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

1. Устройства вывода

Итак, у нас есть некая платформа (Arduino, Raspberry, PIC/AVR/STM-контроллер, etc), и стоит задача подключить к нему некую индикацию. Есть множество вариантов, которые мы и рассмотрим.

Сегментная индикация

Тут все просто. Сегментный индикатор состоит из обычных светодиодов, которые банально подключаются к микроконтроллеру через гасящие резисторы.
Самодельные электронные часы, элементная база — часть 2 - 1

Осторожно, траффик!
Читать полностью »

В продолжение предыдущей статьи.

Сборка

Собрал трекер из следующих комплектующих:
— датчика GY-85 (3 гироскопа, 3 акселерометра, 3 магнитометра);
— платы Arduino Nano V3.0 (микроконтроллер ATmega328P, порт CH340G)
Читать полностью »

Работа WiFi-модулей «Мастер Кит» в системе управления домашней автоматизацией OpenHAB. Часть 1: Подключение и настройка - 1

В ассортименте компании «Мастер Кит» появилось заметное количество беспроводных устройств для домашней автоматизации, но вот собрать их в какую-то оптимальную систему управления домом часто бывает трудно из-за отсутствия необходимого, а главное удобного программного обеспечения. Для решения этой проблемы попробуем воспользоваться уже существующими популярными системами домашней автоматизации. Это реально! Например, система домашней автоматизации OpenHAB – это открытый проект, про который написано уже достаточно много даже в русскоязычной части Интернета.
Читать полностью »

Немного теории

Тактирование микроконтроллеров Atmel SAMD20-21 - 1
Согласно документации на микроконтроллеры Atmel серии SAMD20/21 система тактирования состоит из следующих блоков:

  • блок источников сигнала (управляется SYSCTRL)
    • Clock source – это базовая частота в системе. Это может быть, например, внутренний осциллятор 8 МГц (OSC8M), внешний осциллятор (XOSC), блок цифровой фазовой автоподстройки частоты (DFLL48M);
  • базовый контроллер тактовой частоты (GLCK-generic clock controller), который управляет системой распределения тактовых сигналов и состоит из:
    • базовых генераторов частоты (Generic Clock Generator) — это программируемый предделитель, к которому может быть подключен любой источник сигнала. С выхода генератора 0 (GCLKGEN[0], GCLK_MAIN) сигнал идет на блок управления питанием (Power manager), который генерирует главный тактовый сигнал;
    • базовые тактовые сигналы (Generic Clocks) – обычно это сигналы, которые тактируют периферию. Базовые тактовые сигналы, с помощью базовых мультиплексоров сигнала могут использовать любой из доступных в системе тактовых сигналов. Разные периферийные блоки могут использовать разные тактовые сигналы. Выход мультиплексора 0 используется как источник опорного сигнала для блока цифровой фазовой автоподстройки частоты. Обратите внимание, что в таком случае выход с DFLL не должен использоваться как опорный сигнал для генератора, выход которого используется как опорный для мультиплексора 0.
  • блок управления питанием (PM – Power manager)
    • блок управления питанием управляет синхронным тактированием системы. Это включает в себя CPU, шины (APB, AHB) и синхронную (с точки зрения CPU) периферию. Он содержит маски тактирования, с помощью которых можно включать и выключать пользовательский интерфейс периферии, а также делители для тактовых сигналов CPU, шин.

Читать полностью »

Долгое время игрался с Arduino-подобными платами, но всё время хотелось «меньше, дешевле и ближе к железу!», и вот — первый опыт программирования чистого ATtiny. В статье не будет какой-то особо эффективной схемы металлоискателя. Это всего лишь демонстрация того, на что способен микроконтроллер за 47 центов + путь чайника в этом, как выяснилось, совсем не сложном деле перехода от Arduino на уровень ниже.
Читать полностью »

1-Wire slave на МК. Часть 1: Железо - 1
Для одного из проектов по автоматизации потребовалось сделать устройство, которое является подчинённым 1-Wire устройством, принимает команды от мастера и выставляет на своих выходах значение аналогового сигнала в диапазоне от 0 до 10В.
Проанализировав линейку стандартных микросхем 1-Wire от Maxim, стало ясно, что нет микросхемы, которая позволит реализовать подобный функционал.
Потому было принято решение реализовывать 1-Wire slave на микроконтроллере. Надеюсь, данный материал будет интересен и полезен людям, которые делают «умный дом» своими руками, т.к. 1-Wire достаточно популярная шина в подобных проектах. В качестве камня был выбран МК Cortex M0+ ATSAMD20G16 от Atmel, но о реализации в коде расскажем во второй части. Забегая немного вперед, скажу что в третьей части цикла пойдет речь о реализации собственного семейства устройств для линуксовой библиотеки OWFS (One Wire File System). А сегодня расскажем о некоторых аппаратных решениях, к которым мы пришли в процессе разработки.
Читать полностью »

Продолжаем рассказывать о системе управления отоплением дома с применением таймера-термостата NM8036 (начало здесь, продолжение здесь).

Автоматика управления отоплением дома своими руками. Часть 3 - 1

Программные строки и программа для NM8036.
Таймер-термостат NM8036, конечно, вещь неплохая, но без человека это все равно всего лишь «железка». Я говорю о том, что для нормального управления отоплением в частном доме нужна программа, составленная в соответствии с тем оборудованием, которое применяется. С чего начать?
Читать полностью »

С нами продолжают делиться решениями на основе модулей Мастер Кит:
«В качестве эксперимента решил я тут попробовать сделать некий прототип “умного дома” на скорую руку и с минимальными затратами. “Хотелок” оказалось много: и свет, и вентиляция, и окна, и вода, и ИК-управление электроприборами. На первых порах решил ограничиться минимумом задач: вентиляция и освещение в комнате.

“Умный дом” на скорую руку - 1
Читать полностью »

Немного теории

Atmel® Software Framework (ASF) — программная библиотека для микроконтроллеров, которая содержит широкий набор встраиваемого кода для микроконтроллеров Atmel из всех семейств: megaAVR, AVR XMEGA, AVR UC3 и SAM.
Основные преимущества:

  • упрощается использование и освоение микроконтроллеров, так как библиотека написана на высоком и среднем уровнях абстракции;
  • ASF разработана для использования на любой стадии проектирования;
  • ASF интегрирована в Atmel Studio (которая пришла на смену AVR Studio и поддерживает все семейства мк Atmel) с графическим пользовательским интерфейсом, но также может использоваться с компиляторами IAR и GCC;
  • ASF бесплатна.

Atmel Software Framework (ASF): как это работает? - 1
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js