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

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

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

Запрограммировать микропроцессор AVR можно кучей разный способов. Самым простым и доступным способом будет использование  USBasp за 2$. Но пока он дойдет, вполне можно воспользоваться имеющейся Arduino. Соответствующий скетч есть в стандартной поставке IDE в меню Файл — Образцы — ArduinoISP. Но для 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 в Амперметр и Вольтметр с использованием в качестве измерения тока датчика холла ASC712, а для напряжения — простого делителя напряжения на двух резисторах. Но вот незадача, большинство из них предполагает, что напряжение питания строго 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.


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.

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 в консоль, но перед этим нужно настроить скорость передачи порта на ту, что в нем используется.

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»

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

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