Самодельный датчик импульсов газового или водяного счетчика

Идея основана на использовании датчика Холла из любого компьютерного вентилятора для улавливания поля магнита, прикрепленного к младшему разряду многих счетчиков расхода газов и жидкостей.
Датчик, традиционно подключаю к Arduino. Ниже представлен скетч для него. Код написан с прицелом на дальнейшую модернизацию с отказом от проводов и питание от батарейки. По результатам мониторинга выяснилось, что датчик Холла за полный круг младшего разряда счетчика (у меня это около 30 сек) меняет свое состояние 3 раза: низкий, высокий и снова низкий уровень на выходе. Поэтому не обязательно все время держать его включенным (датчик потребляет 5 мА). Можно просыпаться раз в 2-4 сек, подавать питание на датчик, проверять состояние, передавать данные если состояние изменилось и снова засыпать. В простейшем случае можно подключить SD карту и просто сохранять туда данные, а можно по радио-каналу передавать на сервер для централизованной сборки и обработки данных. Читать далее «Самодельный датчик импульсов газового или водяного счетчика»

Программатор из Arduino Leonardo

Запрограммировать микропроцессор AVR можно кучей разный способов. Самым простым и доступным способом будет использование  USBasp за 2$. Но пока он дойдет, вполне можно воспользоваться имеющейся Arduino. Соответствующий скетч есть в стандартной поставке IDE в меню Файл — Образцы — ArduinoISP. Но для Arduino Leonardo и других на чипе MEGA32U4 со встроенным портом COM есть особенности. Подключать внешний контроллер нужно не к выводам 11,12,13, а напрямую к разъему ISP. Ниже показано как прошить микропроцессор ATMEGA328P на плате OpenLRS RX, имеющей питание 3.3 В. Для пятивольтовых процессоров 4-ю ногу разъема ISP можно соединять напрямую. Читать далее «Программатор из Arduino Leonardo»

Измерение параметров ВМГ

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

Винто-моторная группа (ВМГ) у моего гексакоптера представлена китайским Noname мотором 5010/14 с 750 kV и карбоновыми пропеллерами 12″ с шагом 5.5. Вот на них и потренируемся. Цель — понять реальные возможности моей ВМГ и ответить на пару вопросов:

  1. какие винты для моего мотора подойдут лучше при заданном полетном весе;
  2. аккумуляторы какого напряжения использовать для максимального времени полета — 3S или 4S.

Конечно, есть калькуляторы: ecalc, rc-calc и другие, но достоверных данных по моему мотору нет, поэтому — эксперимент.

Читать далее «Измерение параметров ВМГ»

Измерение постоянного тока и напряжения на Arduino

Проблема

В сети есть много примеров превращения Arduino в Амперметр и Вольтметр с использованием в качестве измерения тока датчика холла ACS712, а для напряжения — простого делителя напряжения на двух резисторах. Но вот незадача, большинство из них предполагает, что напряжение питания строго 5В. Однако, у меня USB порт дает всего 4.6В. По-умолчанию, АЦП Arduino в качестве опорного использует напряжение питания, поэтому большинство примеров в моем случае дают ошибку более 10%. Вроде есть способ использовать внутренний стабилизированный источник напряжения 1.1В, но на поверку оказывается, что и его показания плавают +-10% и к тому же, диапазон уменьшается в 5 раз. Для датчика тока все еще хуже. У моего датчика тока предел +-20А и чувствительность получается 0,1В/А. Т.е. чтобы померить 1А надо измерить напряжение хотябы с точностью 0.05В, что на порядок точнее чем дают примеры.
Читать далее «Измерение постоянного тока и напряжения на Arduino»

Принимаем данные из Arduino в NAS Synology

Привет, друзья.
Продолжаю строить умный дом под свое оборудование. После того, как мне удалось подключить Arduino к NAS Synology, нужно научить их общаться. Для начала попробуем читать из Arduino и записывать в БД. Сделаем это на примере проекта Погодной станции. К Arduino цепляю датчики из тех что сейчас есть. Это гигрометр и термометр DHT-21/AM2301, у него в отличие от DHT-11 хороший рабочий температурный диапазон до -40 градусов. Вторым подключаю датчик давления BMP180 (BMP085), он же второй источник температуры. Таким образом, можно установить барометр дома, а гигрометр DHT-21 установить за окном. Получим температуру снаружи и внутри, влажность и давление. Схем подключения их в интернете миллион, поэтому сразу показываю результат.
Читать далее «Принимаем данные из Arduino в NAS Synology»

Подключение Arduino к NAS Synology

Привет, Друзья.
Недавно подключал arduino к своему файловому хранилищу для того, чтобы в последствии записывать туда данные. Как оказалось, есть проблемы. У меня стоит последняя DSM 5.2. При подключении Leonardo, linux опознает ее и даже монтирует на одну секунду после чего отключает. Что-то не так с драйвером cdc_acm.

su
dsgena> dmesg|grep usb [194308.850000] input: Arduino LLC Arduino Leonardo as /devices/platform/orion-ehci.0/usb1/1-1/1-1.2/1-1.2:1.2/input/input1 [194308.860000] generic-usb 0003:2341:8036.0002: input: USB HID v1.01 Mouse [Arduino LLC Arduino Leonardo] on usb-orion-ehci.0-1.2/input2 [194309.440000] usbcore: deregistering interface driver cdc_acm

Танцы с бубном не помогли. Решение подсмотрел у ребят из проекта OpenRemote. Проще всего установить пакет SunoZwave от компании Z-wave. В его составе идут драйвера, которые подходят и к Leonardo и к брелкам USB-UART типа CP210x. После установки пакет оставить выключенным и желательно перезагрузить NAS.

su
dsgena> dmesg|grep usb [196044.700000] hub 1-1:1.0: port 2, status 0101, change 0001, 12 Mb/s [196044.950000] usb 1-1.2: new full speed USB device using orion-ehci and address 12 [196045.060000] usb 1-1.2: configuration #1 chosen from 1 choice [196045.070000] cp210x 1-1.2:1.0: cp210x converter detected [196045.070000] usb 1-1.2: lock for hub EH [196045.160000] usb 1-1.2: reset full speed USB device using orion-ehci and address 12 [196045.270000] usb 1-1.2: unlock for hub EH [196045.270000] usb 1-1.2: cp210x converter now attached to ttyUSB0

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

su

dsgena> stty -F /dev/ttyUSB0 115200
dsgena> cat /dev/ttyUSB0
DATA DHT21_H 29.6
DATA DHT21_T 23.9
DATA BM180_T 22.20
DATA BM180_P 740.38

Ультразвуковой анемометр на двух HC-SR04

Ранее был сделан прототип анемометра из одного ультразвукового дальномера HC-SR04. Он умел рассчитывать проекцию скорости ветра на линию между приемником и передатчиком. Для получения вектора скорости ветра на плоскости (2D) требуется вторая координата, которую мы получим, если добавим второй датчик перпендикулярно первому. В этом случае можно закрепить анемометр стационарно — отпадает необходимость использовать флюгер и как-то организовывать подвижные контакты.

Первая версия

Сказано — сделано, причем основательно.полипропилен

Из обрезков полипропиленовых труб сварил крестовину. Все датчики отпаял и удлинил проводами, которые проложил внутри труб. Расстояние между датчиками получилось 70 см.  Читать далее «Ультразвуковой анемометр на двух HC-SR04»

Ультразвуковой анемометр на одной паре датчиков

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

Читать далее «Ультразвуковой анемометр на одной паре датчиков»