Сообщество - Arduino & Pi
Arduino & Pi
477 постов 11 731 подписчик
567

Проект GSM/GPRS сигнализации на Arduino ч.2

Проект GSM/GPRS сигнализации на Arduino ч.2 Сигнализация, Arduino, Sim800l, GSM, Gprs, Sms-Информирование, Длиннопост

Приветствую моих читателей. В первой части https://pikabu.ru/story/proekt_gsmgprs_signalizatsii_na_ardu... я рассказал вам, как сделать простую GPRS сигнализацию на Ардуино. Проект продолжает развиваться. Сигнализация эксплуатируется около месяца, и уже можно подводить некоторые итоги. За это время не было ни одного случая отказа или зависания, как модуля SIM800L, так и самой Ардуины. Напомню, в моём проекте микроконтроллер питается напрямую от аккумулятора пониженным напряжением 4 В. К каким-то отказам, как опасались многие читатели, это не приводит. Мною был проведён эксперимент, чтобы узнать, как поведёт себя сигнализация при постепенном разряде батареи.

Так как Ардуина разряжала аккумуляторы очень медленно, я подключил её вместе с модемом к лабораторному источнику питания, выставил ограничение по току 2А, и проверил работу на различных значениях напряжения.

Что удалось выяснить. При 3,5 В и выше SIM800L работает штатно. С питанием 3,4 В иногда начинаются перезагрузки при входящих звонках. При снижении напряжения ниже 3,4 В отваливается сеть, могут начаться перезагрузки, но на AT команды модуль продолжает отвечать. Так он работает в плоть до 3В, после чего выключается.

Ардуина работает даже при напряжении 2,7 В, ниже которых отключается. Никаких сбоев отмечено не было.

Но этого нам не достаточно. Нужно было проверить работу при длительной разрядке аккумулятора. Так сказать в условиях, близких к боевым. Я отключил режим сна Ардуины, подключил дополнительную нагрузку к аккумулятору, включил Serial монитор, и отслеживал поведение сигнализации, периодически проверяя её работоспособность. Эксперимент продолжался более суток. Аккумулятор разрядился до 3,6 В. Сбоев замечено не было. Схема полностью работоспособна.  Ставьте ёмкий аккумулятор и не о чём не думайте.

Для справки. Номинальное напряжение питания чипа зависит от частоты его работы. Если программно понизить частоту до 10МГц или ниже, то питание напряжением от 2,7 до 5,5В для Atmega328p будет стандартным. Если кого-то не убедили результаты эксперимента, то они могут  поиграться с настройками частоты.


С этим разобрались, теперь поговорим о доработках проекта.


За прошедшие две недели проект претерпел некоторые изменения. Геркон теперь подтянут через резистор не к +5В, а к +4,2В батареи (см. фото). Что позволит сохранить на пине высокий уровень при отключении внешнего питания без программной подтяжки. Мне кажется это более надёжным решением. Резисторы можно использовать любого номинала, начиная с 2,2 кОм и выше.


Остальные доработки касаются программной части. Файл настроек settings.h получил новые опции. https://github.com/wisenheimer/Arduino/blob/master/libraries...


По рекомендации читателей, в проект был добавлен watchdog (WTD), который перезагрузит Ардуину в случае её зависания. Включен по умолчанию следующим дефайном:

Проект GSM/GPRS сигнализации на Arduino ч.2 Сигнализация, Arduino, Sim800l, GSM, Gprs, Sms-Информирование, Длиннопост

Т. к. стандартный загрузчик Ардуино Нано не поддерживает watchdog, и в случае его срабатывания уходит в бесконечную перезагрузку, для его работы нужно либо сменить загрузчик на другой, либо поступить проще. Прошить Ардуину через программатор. В этом случае на Ардуине больше не будет загрузчика. И watchdog будет работать. Но вы уже не сможете прошивать Ардуину по USB. Если вас это не устраивает, не используйте watchdog.


В качестве программатора я применил Ардуино УНО с прошивкой ArduinoISP из примеров.


Следующее изменение касается способа доставки отчётов. Теперь сигнализация поддерживает SMS отправку сообщений. Ранее мы отправляли ответы сигнализации на e-mail при помощи GPRS. Теперь можно выбирать способ отправки. Для этого добавлен следующий дефайн:

Проект GSM/GPRS сигнализации на Arduino ч.2 Сигнализация, Arduino, Sim800l, GSM, Gprs, Sms-Информирование, Длиннопост

По умолчанию включены оба варианта.


SET_FLAG_ONE(GPRS_ENABLE) разрешает отправку e-mail по GPRS.

SET_FLAG_ONE(SMS_ENABLE) разрешает отправку отчётов по SMS.


GPRS имеет более высокий приоритет. Если сигнализации не удалось установить GPRS соединение, и SMS режим разрешён, то сообщения будут отправлены по SMS, флаг GPRS_ENABLE  выключен, и в дальнейшем будет задействована только SMS отправка. Включить или выключить оба режима можно так же в ручную DTMF командой.

Если мы хотим всегда использовать один режим, то дефайн нужно отредактировать, удалив лишнее.


Следующим нововведением стало изменение списка DTMF команд:

Проект GSM/GPRS сигнализации на Arduino ч.2 Сигнализация, Arduino, Sim800l, GSM, Gprs, Sms-Информирование, Длиннопост

Команды, не вошедшие в список, будут подставлены в USSD запрос и отправлены сотовому оператору. Так что можете в режиме DTMF напирать любые USSD команды. Например запрос баланса. В случае успеха ответ оператора вернётся в виде отчёта.


Админ так же может управлять модемом SIM800L при помощи АТ команд из его даташита http://www.mt-system.ru/sites/default/files/documents/sim800... .


Например, добавлять и удалять номера из телефонной книги. Для этого достаточно с телефона Админа отправить сигнализации SMS с текстом АТ команды.


Дальше хочу подробно рассказать, как добавлять в проект датчики.


Для начала необходимо определиться с количеством пинов, требуемых для ваших датчиков. Датчики у нас подключаются, начиная с 4 пина. Первым желательно выбрать геркон, т.к. он будет будить Ардуину, если она войдёт в режим энергосбережения при отключении внешнего питания.

Проект GSM/GPRS сигнализации на Arduino ч.2 Сигнализация, Arduino, Sim800l, GSM, Gprs, Sms-Информирование, Длиннопост

В файле https://github.com/wisenheimer/Arduino/blob/master/libraries... описан класс Sensor и следующие типы датчиков:

Проект GSM/GPRS сигнализации на Arduino ч.2 Сигнализация, Arduino, Sim800l, GSM, Gprs, Sms-Информирование, Длиннопост

DIGITAL_SENSOR - любой датчик с одним цифровым выходом, на котором может быть только два состояния, 0 или 1.

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

ANALOG_SENSOR - любой датчик с аналоговым выходом. Например датчик газа MQ-2.

DHT11, DHT21, DHT22 - датчики температуры и влажности.


Конструктор класса имеет следующий вид:

Проект GSM/GPRS сигнализации на Arduino ч.2 Сигнализация, Arduino, Sim800l, GSM, Gprs, Sms-Информирование, Длиннопост

В нашем файле настроек имеется целый массив таких классов для каждого датчика:

Проект GSM/GPRS сигнализации на Arduino ч.2 Сигнализация, Arduino, Sim800l, GSM, Gprs, Sms-Информирование, Длиннопост

Очень важно указать точный размер массива, иначе проект не соберётся. В данном случае у меня имеется 6 датчиков, конструктор для каждого описан отдельно.


Например:

Sensor(DOOR_PIN, DIGITAL_SENSOR, "DOOR", HIGH, 0)

означает, что для датчика двери (геркона) задействован пин Ардуино DOOR_PIN (задан в том же в файле), тип датчика DIGITAL_SENSOR, название датчика, которое будет выводиться в отчётах - "DOOR" (можно заменить на любое другое слово), обычное состояние пина  HIGH (DOOR_PIN у нас подтянут к 4,2В), время подготовки датчика при включении питания в секундах, через которое он начнёт показывать правильные значения - 0 секунд.


Для аналогового датчика газа MQ-2:

Sensor(A0, ANALOG_SENSOR, "GAS", LOW, 120)

пин A0, тип датчика ANALOG_SENSOR, имя  "GAS", значение на пине LOW, на прогрев датчика и выход на номинальный режим работы отводится 120 секунд. До истечения этого времени после включения датчик не опрашивается, что бы не получать неверные значения.


Для датчика температуры DHT11

Sensor(DHT_PIN, DHT11, "DHT", LOW, 10, 35)

в конце появилась цифра 35, которая означает уровень в градусах, при превышении которого считается, что датчик сработал. В помещении стало слишком жарко.


Внимательный читатель уже заметил, что для разных датчиков описано разное количество параметров. Дело в том, что в языке С++ можно не писать все параметры функции, если в заголовке функции указаны их значения по умолчанию. Мы пишем только то, что не имеет значения по умолчанию, или мы хотим задать другое значение. Однако никто не запрещает указать все параметры конструктора класса.


Вы можете подключать к сигнализации любые датчики, не требующие отдельной библиотеки, лишь заполнив конструктор класса, и добавив его в массив Sensor sensors[]. И это будет работать. Если для датчика требуется отдельная библиотека, то её можно добавить точно так же, как в проект была добавлена библиотека stDHT.h для датчика DHT11, который имеет свой протокол для обмена данными. Или напишите мне, я добавлю.


На этом всё, спасибо за внимание.


Скачать проект можно как всегда по ссылке: https://github.com/wisenheimer/Arduino

Показать полностью 7
20

Нужна помощь с Raspberry Pi 3b v1.2

Доброго времени суток, уважаемые члены сообщества. У меня возникла проблема с малинкой и хочу услышать ваше мнение.
Суть проблемы:
У меня есть 2 устройства: малинка и pic-процессор. От pic-процессора на малинку передаю прямоугольный сигнал с частотой 16 kHz на 19 ножку (согласно j8 header). Малинка с помощью программы, написанной на Си, обрабатывает этот сигнал. Для написания программы использовал библиотеку bcm2835 версии 1.58. Суть программы в том, что она фиксирует переход от 0 к 1 (Rising edge event согласно документации на библиотеку bcm2835). Далее сама проблема: после запуска программы фиксируется некоторое количество таких переходов и малинка намертво зависает. Статично горят зелёный и красный светодиоды.

Нужна помощь с Raspberry Pi 3b v1.2 Raspberry pi, Технические проблемы, Raspberry Pi 3

Не могу понять в чём дело.

Пробовал разные sd карты, пробовал запитывать от блока питания. Ничего не помогло.

P.S. Сильно не ругайте, это мой первый пост.

18

Авторский опыт: голосовой помощник с платой расширения Matrix Voice

Плата для разработки Matrix Voice - это дополнение к Raspberry Pi, которое может быть использовано для создания голосового помощника. Я получил образец для обзора, чтобы узнать: может ли “не программист” что-то из этого сделать.


У некоторых людей есть склонность к программированию и разработке, но я не из них. Я ранее писал о DIY-проектах c Alexa, но мне никогда не доводилось делать собственный. На первый взгляд это казалось невероятно сложным, однако, каким-то образом мне удалось сделать это. В немалой степени благодаря отличным учебникам и документации, доступным на сайте Hackster.io.


Плата выглядит не особо впечатляюще, но на ней есть всё необходимое. С ней вы получаете восемь выделенных микрофонов и FPGA для для работы всех алгоритмов и обработки звука.

Авторский опыт: голосовой помощник с платой расширения Matrix Voice Matrix Voice, Raspberry pi, Raspbian, Робот, Робототехника, Видео, Длиннопост

Я ожидал, что быстро распакую Voice, подключу Raspberry Pi, монитор, динамик, а затем скопирую туда код. Всё оказалось немного сложнее, но удивительно, что тормозом стал не искусственный интеллект или программирование, это был Amazon.


Туториалы, которые я использовал, обещали, что я потрачу час на Creator или Voice, но оба заняли около двух часов. Это неплохо, учитывая, что я абсолютный новичок, который ничего не программировал уже более десяти лет. Но прежде чем я смог потратить эти часы, погрузившись в создание своего собственного устройства с искусственным интеллектом, мне пришлось создать учетную запись и профиль безопасности в Amazon.


Несмотря на сложный процесс регистрации на Amazon, чувство удовлетворения, которое пришло от объединения всего вместе и постановки работы, было огромным. Я определенно рекомендую обе платы для тех, кто интересуется разработкой ИИ.


Пример управления платой голосом:

Цель моего проекта была проста, но эти платы способны на гораздо большее. С функциональностью Voice, можно создавать виртуальные помощники, а Creator может управлять роботами и интеллектуальными домашними устройствами.


Весь проект с Alexa, который я попробовал сделать, обошелся мне примерно в $100 + цена обычного динамика и SD-карты. Базовый вариант Voice стоит $55, за $65 расширенный с Bluetooth и WiFi, Creator стоит $99. Цена Raspberry Pi $35.


Было бы дешевле купить Amazon Echo или Google Home Mini, но ни один из них не может быть разобран и использован для другого проекта - по крайней мере, это не так просто.


proARM - чат про одноплатные компьютеры на ARM в Телеграм


Источник: ampproject.org
Перевод: Ximen (@snovgorodov)

Показать полностью 1
40

Авторский опыт: карманный рабочий стол Pi Zero с экраном e-Paper

Рамин Ассадоллахи использует свой Raspberry Pi Zero W в качестве автономного мобильного рабочего стола, подключаясь к нему через VNC с другого компьютера, когда он хочет поработать над новым проектом. Но он часто ловил себя на мысли, что хотел бы иметь удобный способ отображения на устройстве необходимой информации, например, IP-адрес полученный Pi Zero. Он нашел плату расширения для Pi Zero c 2.13 экраном e-Paper(технология эл.чернил) от Waveshare и всё встало на свои места.

Окончательное устройство, которое он называет StickPi, сочетает в себе Pi Zero W, e-Paper экран и макетную плату с несколькими кнопками, все внутри 3D-печатного корпуса. Чтобы максимально задействовать внутренний объем корпуса, Рамин припаял штыри разъёма к Pi Zero посередине, что позволило ему создать компактный "сэндвич" из всех компонентов.

Авторский опыт: карманный рабочий стол Pi Zero с экраном e-Paper Raspberry pi, Raspberry Pi Zero, StickPi, Видео

C e-Paper экраном у Рамина появилась возможность узнавать информацию об устройстве, не подключаясь к нему по сети. Но благодаря кнопкам на задней панели, подключенным к GPIO Pi Zero, у него также есть шесть программируемых кнопок, которые могут выполнять любые функции.

В самом простом варианте каждая кнопка выполняет команду или скрипт на Pi. Но Рамин хочет что-то более продвинутое. На видео он рассказывает, что его следующим шагом будет создание настоящего пользовательского интерфейса (GUI) для экрана Pi, используя кнопки на задней панели в стиле геймпада. Страничный интерфейс с возможностью прокрутки позволит пользователю быстро и легко выполнять всевозможные функции, c нетерпением ждем, что он придумает.


Мы уже не в первый раз видим, как кто-то пытается сделать Pi Zero более мобильной платформой, и данный способ напоминает уменьшенную версию Zero Phone.


ARMLab - канал про одноплатные компьютеры на ARM в Телеграм

Показать полностью
133

Журнал «Amperkot.ru». Выпуск №2(12/2018)

Журнал «Amperkot.ru». Выпуск №2(12/2018) Журнал, Arduino, Raspberry pi, Эксклюзив, Робот, Технологии, Электроника, Длиннопост

Вышел декабрьский номер электронного и печатного журнала «Amperkot.ru». В этом выпуске вас ждет эксклюзивное интервью Эбена Аптона – создателя самого известного в мире одноплатного мини-компьютера Raspberry Pi. Статья также подкреплена видеоверсией.


Технологии дарят нам возможности! Попробуем создать свой прототип элемента умного дома с голосовым управлением на базе аппаратной платформы Arduino.


Узнаем как овощи и фрукты могут превратиться в батарейки! Удивительный мир робототехники приоткроет нам интересное направление – BEAM. А подборка фильмов «Гении технологий» поможет разнообразить ваш досуг и прожить вместе с героями их взлеты и падения.


Помимо этого, вас ждет ответ технического специалиста Amperkot.ru на вездесущий вопрос про 3.3 и 5


Приятного чтения!


https://amperkot.ru/static/3236/uploads/magazine/amperkot_ru...

Журнал «Amperkot.ru». Выпуск №2(12/2018) Журнал, Arduino, Raspberry pi, Эксклюзив, Робот, Технологии, Электроника, Длиннопост
Журнал «Amperkot.ru». Выпуск №2(12/2018) Журнал, Arduino, Raspberry pi, Эксклюзив, Робот, Технологии, Электроника, Длиннопост
Журнал «Amperkot.ru». Выпуск №2(12/2018) Журнал, Arduino, Raspberry pi, Эксклюзив, Робот, Технологии, Электроника, Длиннопост
Показать полностью 3
6843

18 подробнейших уроков по программированию Arduino

Друзья, наконец-то я закончил съёмку этого курса уроков! Думаю многие про него уже знали, и ждали окончания. В общем, спасибо за поддержку и приятного просмотра!

Ну вот, теперь оставлю после себя что-то реально полезное =)

Показать полностью 15
2675

Как я делал удаленное управление теплом в гараже.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Для обогрева своего гаража, я использую 2 "конвектора". Один конвектор включен постоянно на +5 градусов, для поддержания плюсовой температуры, второй "конвектор" включается по необходимости.


Раньше приходилось бегать, включать его, уходить домой, ждать час-два пока температура поднимется до комфортных +20, но это быстро надоело, одолела лень и я решил применить максимально бюджетный вариант удаленного включения на Arduino.


Что необходимо было купить:

Arduino nano: https://ru.aliexpress.com/item/Freeshipping-1PCS-Nano-3-0-co...

146 руб

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Модуль ENC28J60: https://ru.aliexpress.com/item/2PCS-ENC28J60-Ethernet-LAN-Ne...

165 руб

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Датчик температуры DHT22: https://ru.aliexpress.com/item/1pcs-DHT22-digital-temperatur...

151руб

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Реле: https://ru.aliexpress.com/item/5PCS-LOY-1-Channel-5V-Relay-M...

40руб

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Коротко о подключении всего этого барахла.


Модуль ENC28J60:

VCC к 5V

GND к GND

SCK к Pin 13

SO к Pin 12

ST к Pin 11

CS к Pin 10


Реле:

S к Pin 2

Vcc к 5V

GND к GND


Датчик температуры DHT22:

Vcc к 3.3V

GND к GND

DATA к Pin4

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Здесь все понятно без схем, если не понятно, в интернете есть масса материала о том, как подключать эти модули. А вот готового скетча, я не нашел, да и искать было лень… Проще было найти скетч управления реле и скетч вывода данных с датчика, скрестить их и набросать страницу, чтоб ей было удобно управлять с телефона и обычного ПК.


Что из этого вышло:


#include "DHT.h"

#include <EEPROM.h>

#define DHTPIN 4

#define DHTTYPE DHT22

DHT dht(DHTPIN, DHTTYPE);

#include <EtherCard.h>

static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 }; // MAC Address должен быть уникальным в локальной сети

static byte myip[] = { 192,168,1,222 }; // Постоянный IP адресс нашей страницы

byte Ethernet::buffer[1000];

BufferFiller bfill;

// Начальные данные

int LedPins[] = {

2,3,5,6,7,8,9};

int t=0;

int h=0;

boolean PinStatus[7];

const char http_OK[] PROGMEM =

"HTTP/1.0 200 OK\r\n"

"Content-Type: text/html\r\n"

"Pragma: no-cache\r\n\r\n"

"\r\n"

"<meta charset='UTF-8'>"

"<meta name='viewport' content='width=device-width, initial-scale=1.0'>"

"<meta http-equiv='refresh' content='10'/>";

const char http_Found[] PROGMEM =

"HTTP/1.0 302 Found\r\n"

"Location: /\r\n\r\n";

const char http_Unauthorized[] PROGMEM =

"HTTP/1.0 401 Unauthorized\r\n"

"Content-Type: text/html\r\n\r\n"

"<h1>401 Unauthorized</h1>";

// Подключаем Ethernet порт HR911105A и датчик DHT22

void setup () {

if (ether.begin(sizeof Ethernet::buffer, mymac, 10) == 0)

Serial.println( "Failed to access Ethernet controller");

ether.staticSetup(myip);

for(int i = 0; i <= 7; i++)

{

pinMode(LedPins[i],OUTPUT);

PinStatus[i]=EEPROM.read(i);

digitalWrite(LedPins[i],PinStatus[i]);

}

dht.begin();

}

// Получаем данные от DHT22

static void ReadDHT22()

{

h = dht.readHumidity();

t = dht.readTemperature();

}

// Оформление Web страницы

static word homePage() {

bfill = ether.tcpOffset();

bfill.emit_p(PSTR("$F"

"<title>Гараж</title>"

"<p style=\"text-align: center;\"><br />Конвектор: <br> <span style=\"font-size: 4em;\"><a href=\"?ArduinoPIN2=$F\">$F</a></span>"),

http_OK,

PinStatus[0]?PSTR("off"):PSTR("on"),

PinStatus[0]?PSTR("<font color=\"green\"><b>ON</b></font>"):PSTR("<font color=\"red\">OFF</font>"));

bfill.emit_p(PSTR(

"<br><br>Температура: <br> <span style=\"font-size: 4em;\">$D C</span> <br /><br />Влажность:<br> <span style=\"font-size: 4em;\"> $D %</span></p>"),t, h);

return bfill.position();

}

void loop () {

delay(1); // Задержка

word len = ether.packetReceive();

word pos = ether.packetLoop(len);

if (pos) // check if valid tcp data is received

{

ReadDHT22();

bfill = ether.tcpOffset();

char *data = (char *) Ethernet::buffer + pos;

if (strncmp("GET /", data, 5) != 0) {

bfill.emit_p(http_Unauthorized);

}

else {

data += 5;

if (data[0] == ' ') {

homePage();

}

else if (strncmp("?ArduinoPIN2=on ", data, 16) == 0) {

PinStatus[0] = true;

digitalWrite(LedPins[0],PinStatus[0]);

EEPROM.write(0,PinStatus[0]); // записываем в ячейку EEPROM №0, текущее состояние LedPins[0].

bfill.emit_p(http_Found);

}

else if (strncmp("?ArduinoPIN2=off ", data, 17) == 0) {

PinStatus[0] = false;

digitalWrite(LedPins[0],PinStatus[0]);

EEPROM.write(0,PinStatus[0]);

bfill.emit_p(http_Found);

}

else {

// Page not found

bfill.emit_p(http_Unauthorized);

}

}

ether.httpServerReply(bfill.position()); // send http response

}

}


Коротко о данном скетче:

В память ардуины (EEPROM) сохраняется информация о последнем положении кнопки реле, перебои со светом нам не страшны, положение кнопки всегда отражает реальное состояние реле, не будет такого, что на странице выводится OFF а на самом деле ON.


Далее подключаю сборку к локалке, для питания использую старую зарядку от мобильного телефона.


Вызываю страницу по IP адресу, который мы задали в начале скетча: http://192.168.1.222


Получаю страницу с данными:

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Всё открывается, данные с датчика верные, реле на нажатие кнопки реагирует, положение запоминает.


Далее нужен корпус. Можно заколхозить из какого-нибудь пластикового контейнера, или заказать на али типовой пластиковый корпус для подобного барахла, или купить распределительную коробку в электротоварах, но мне лень выходить из дома, поэтому, я по-быстрому накидал в солиде уродца и распечатал его на 3D принтере.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост
Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост
Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Собрал все в корпус, закрепил модули термоклеем.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Установил крышку, держится и без шурупов, можно было и не предусматривать отверстия под них.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Притащил все в гараж, подключил, проверил. Вывел двойную розетку т.к. одинарной под руками не было.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

Вывел датчик DHT22 примерно на среднюю высоту стены, т.к. конвекторы сильно греют потолок, а пол помещения долго остается прохладным.


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

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

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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


Теперь гараж с домом у нас в одной сети и самое время настроить виртуальный сервер на домашнем роутере.


Прописываем порт который мы открываем например 7777, прописываем IP нашей системы 192.168.1.222, прописываем порт по которому будет доступна наша страница, для доступа из браузера порт 80.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

При наличии статического IP адреса от провайдера, наша система теперь доступна откуда угодно по адресу http://нашip:порт


Если провайдер не предоставляет статический IP, можно сделать и другими способами, но для этого потребуется всегда включенный ПК в доме.


У меня есть статика и зарегистрированный домен, к поддомену которого, я привязал свою систему и мне нет необходимости помнить свой IP для доступа к управлению.

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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

Как я делал удаленное управление теплом в гараже. Гараж, Мастерская, Arduino, Удаленный доступ, Скетч, Длиннопост

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


Спасибо за внимание. Если есть вопросы, готов ответить )

Показать полностью 17
947

Сircuits от Autodesk — бесплатный online-конструктор

Очень давно я слышал про Arduino, что есть такая заморская вещица, что можно с её помощью делать всякие-интересные электронные штуковины типа подсветки, «волшебные» фонарики, самоходные машинки и прочее. Но как-то не интересовало меня всё это… Пару-тройку недель назад на Пикабу я увидел пост, о том, как сделать Ambilight-подсветку для монитора своими руками на базе Arduino и тут меня зацепило! Я не мог ни есть, ни пить, ни спать, все думал о Arduino и о том, что можно сделать с ним. Начал читать форумы, искать сайты с обучающими материалами и наткнулся на Progmk.ru. Стал смотреть основы Ардуино для начинающих. В четвертом выпуске Виктор сказал, что пора приобретать устройство, послушавшись его я приобрел на всем известном сайте у братского народа Arduino и детали к нему. Тут меня постигли грустные мысли… Видео смотрю, книги про микроконтроллеры листаю…


Но что делать пока Arduino идет в посылке ко мне?


Посмотрел на форумах о программном обеспечении, наткнулся на Fritzing. Программа хороша, и макетку можно рядом с Arduino положить, и проводами контакты соединить, и код прописать… Но плоды своего труда не посмотреть… Нет эмуляции. Пришлось копать интернет дальше. На одном из форумов шло обсуждение VBB, что мол может она эмулировать, но платная. В комментариях предложили воспользоваться бесплатным online- конструктором circuits.io от Autodesk. Для меня это было открытием!


Circuits.io – электроника от новичка до профессионала!


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

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

В правом верхнем углу жму + New и выбираю New Elecronic Labs, открывается страница ради которой все и писалось! :) Перед собой я вижу макетную плату!

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

Добавив Arduino Uno R3 с помощью кнопки Components +,

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

я перешел в редактор кода, скрытый под кнопкой Code Editor. После ввода кода для мигания встроенным светодиодом, жму Upload & Run и наслаждаюсь магией! СВЕТОДИОД МИГАЕТ! ЭМУЛЯЦИЯ РАБОТАЕТ!

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

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

- Резистор

- Кнопка

- Соединительные провода

Добавив все компоненты, соединив все проводами и переписав код, я получил вторую магию: кнопка жмется, светодиод светится! :)

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

Также cirquit.io позволяет строить схему и печатную плату, но для меня это пока не нужно.

Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост
Сircuits от Autodesk — бесплатный online-конструктор Arduino, Электроника, Начинающий, Circuits, Программа, Длиннопост

Итог: Приложение добротное, внимания заслуживает, думаю, будет интересно всем, от начинающих и ожидающих посылку (как я :) ), до профессионалов. Построить макет, запустить, посмотреть на свои труды (хоть и виртуальные).


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


Спасибо всем, кто дочитал до конца! :)

Показать полностью 6
1389

PiHole - Блокируем рекламу на всех устройствах

Всем доброго дня, у меня недавно появился самый первый CubieBoard на процессоре A10. И я решил его куда-нибудь пристроить. Наткнулся на проект Pi-Hole и решил, почему бы и нет.

PiHole - Блокируем рекламу на всех устройствах Adblock, Cubieboard, Реклама, Блокировка, Своими руками, Видео, Длиннопост

Что же из себя представляет Pi-Hole?

"Network-wide ad blocking via your own Linux hardware" - т.е мы блокируем рекламу на ВСЕХ устройствах в локальной сети, используя нашу Linux машинку.


Реклама блокируется на вашем компьютере, на компьютере брата, на ноутбуке мамы, на всех сотовых телефонах, и на вашем холодильнике.


Изначально Pi-Hole затачивался под raspberry, но сейчас его можно поставить на любой linux дистрибутив.


На моей CubieBoard стоит Cubian - это переписанный Debian под эту плату.

PiHole - Блокируем рекламу на всех устройствах Adblock, Cubieboard, Реклама, Блокировка, Своими руками, Видео, Длиннопост

Для того чтобы поставит PiHole , вам нужно ввести всего одну команду:

curl -sSL https://install.pi-hole.net | bash


Ну или две

wget -O basic-install.sh https://install.pi-hole.net
bash basic-install.sh

p.s На cubian слетел доступ по https, поэтому используйте просто http://


Отлично, после распаковки всех файлов, там откроется простая установка. Вы можете смело отвечать на все пункты - "Next".

После установки, вам нужно будет перейти в Web-админку, в неё можно попасть по адресу: http://192.168.1.XXX/admin/ - где XXX концовка IP вашего устройства.

PiHole - Блокируем рекламу на всех устройствах Adblock, Cubieboard, Реклама, Блокировка, Своими руками, Видео, Длиннопост

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

Всё обновляется в режиме реального времени и выглядит довольно круто. Подумываю вывести её на отдельный экран, пускай висит :D


НО Перед админкой, вам нужно будет настроить ваш роутер.

Заходите в настройки вашего роутера, в раздел LAN (не WAN!), и настраиваете DNS адрес, в который пишите адрес вашего устройства. Теперь все устройства в вашей сети будут получать этот DNS адрес. Подробнее - тут.

PiHole - Блокируем рекламу на всех устройствах Adblock, Cubieboard, Реклама, Блокировка, Своими руками, Видео, Длиннопост

В админке также можно настроить White-лист и Black-лист доменов. Отключить adblock на время или насовсем. Также там можно обновить "Листы". Листы представляют из себя hosts файлы.

Примеры:

https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts

https://hosts-file.net/ad_servers.txt

Также можно вручную добавлять свои листы.


Проблемы которые возникли при установке:

Проблемы скорей всего из-за специфики Cubian, но всё же.


1. После установки не работает Web админка - пишет 404 Not Found.

Помогло:

sudo lighttpd-enable-mod fastcgi-php
sudo service lighttpd force-reload

2. Не запускался FTL

Помогло:

sudo pihole-FTL start

3. В хроме всё равно показывалась реклама.

Помогло:

Сброс DNS'a - chrome://net-internals/#dns

Ну вроде и все проблемы которые были.


Тесты:

1. Все банеры гугла исчезли в мобильных приложениях.

2. На сайтах, где раньше писало отключить AdBlock, перестало так писать. (не уверен, что на всех, но всё же)


Больше я не смог придумать тестов, если у вас есть вопросы, или вы хотите, чтобы я что-то проверил. Смело пишите в комментариях.

В конце дня постараюсь скинуть скриншот статистики.


Мои прошлые посты похожей тематики:

1. Raspberry Pi 3 Mediacenter + Hyperion Ambilight

2. Arduino: Как я делал "запоминалку" слов

Показать полностью 2 1
2173

Контроллер для авиасимуляторов своими руками

Контроллер для авиасимуляторов своими руками Arduino, 3d печать, Робототехника, Своими руками, Авиасимулятор, Инерционный трекер, Длиннопост, War Thunder

Добрый день, уважаемые Пикабушники! Выношу на Ваш суд разработку контроллера для авиасимуляторов, спроектированную и собранную мной и двумя моими товарищами.

Контроллер авиасимов на Arduino Micro + инерционный трекер на Arduino Nano с акселерометром GY-85 + VR-Box. Пока что первая, сырая, но, тем не менее, уже эффектная версия. Многое еще подлежит переделке, но впечатлений и эмоций очень много.

Узел Педали+РУС начерчен и изготовлен из стали при помощи плазменной резки, всё на подшипниках и газ-лифтах. Оси на датчиках Холла. РУД временно собран из Lego и потенциометра на 10КОм. Рукоятка РУС начерчена и распечатана на 3д принтере.

В WarThunder показания приборов тянутся из игры и выводятся в WEB-интерфейс.

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

Как сделать трекер, хорошо описано во многих статьях в рунете, в том числе и на Пикабу, а в софтвенной части контроллера нам очень помог проект MMJOY2.

Вот, получился такой небольшой сумбур, первопост всё-таки.

Как только рейтинг позволит, выложу видео.

Показать полностью 1
1113

"Станок с ЧПУ из говна и палок за 5k"

Авторское описание:
"В этом видео ты увидишь станок с ЧПУ стоимость которого не превышает 2.5 степендий, один из дорогих компонентов заменен на мебельные направляющие, а корпус выполнен из фанеры низшего качества..."
За видео благодарим товарища "Andrey Prygun":
https://www.youtube.com/channel/UCZdlCcnyY43PqLT7OAS5RiQ

2807

Делаем гирлянду-дисплей. Такого нет даже у китайцев =)

В видео показан процесс сборки, настройки и монтажа гирлянды-дисплея на окно, а также все её возможности: вывод бегущего текста с разными эффектами, просто эффекты (снег, звездопад, радуга и т.д), и конечно же на ней можно поиграть в змейку, тетрис, лабиринт, и в будущем в другие игры =) Спасибо всем за поддержку, на данный момент это мой самый крупный с точки зрения кода Ардуино проект!

Делаем гирлянду-дисплей. Такого нет даже у китайцев =) Arduino, Самоделки, Своими руками, Новый Год, Гирлянда, Электроника, Видео, Гифка
2413

Миоэлектрический протез руки терминатора

Хочу представить вам свою разработку миоэлектрического протеза. На разработку этой системы у меня ушло 2 месяца работы. В основе проекта лежит Adruino Uno, а стоимость разработки не превышает 3 т.р. с учётом стоимости самой Arduino.

340

Проект GSM/GPRS сигнализации на Arduino

Предлагаю вашему вниманию проект охранно-пожарной GSM/GPRS сигнализации на ардуино с резервным питанием от батареи. Мною ставилась цель создать простую в изготовлении сигнализацию для дома, состоящую из недорогих ардуиновских модулей и датчиков, управляемую с телефона. При этом затраты на обслуживание должны быть минимальными. А лучше чтобы их вообще не было! И мне удалось этого добиться.

Для вожделенной халявы пришлось отказаться от традиционных смс оповещений, и освоить отправку писем на электронную почту. При правильно подобранном тарифе, сигнализация не тратит денег с баланса. При этом мы получаем по e-mail всю информацию о работе сигнализации, сработавших датчиках, действиях пользователей. Такой роскоши не добиться с помощью платных смс. Управление сигнализацией реализовано на основе DTMF команд. Если у вас один оператор связи на основном телефоне и на сигнализации, с бесплатными звонками внутри сети, или имеется пакет бесплатных минут, то управление сигнализацией тоже будет бесплатным. В противном случае всегда можно отправить команду в течении первых 3-х секунд. И так же не платить. Заинтриговал? Тогда прошу под кат.

Первым делом составим техническое задание:

1) Оповещение звонком Админа при срабатывании датчика.

2) Отправка e-mail с подробностями.

3) Отправка e-mail о действиях пользователей.

3) Наличие резервного питания на случай отключения основного.

4) Управление сигнализацией при помощи DTMF команд и смс.


Для этого нам понадобится плата ардуино и недорогой, но функциональный GSM-модем SIM800L. Любой литиевый аккумулятор с модулем заряда. Датчики по вкусу.

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

В данном реализации были применены следующие сенсоры и модули:

1. Геркон NC типа, как датчик открытия двери.

2. Пироэлектрический инфракрасный датчик движения HC-SR501.

3. Датчик газа и дыма MQ-2.

4. Микроволновый датчик движения RCWL-0516. Видит сквозь препятствия и стены. Хорош для охраны дачи или частного дома. В квартире будут частые ложные срабатывания на соседей за стенкой или бегающих собачек и котиков.

5. Датчик пламени.

6. Датчик температуры и влажности DHT11.

7. Для подачи звуковых сигналов при выполнении команд использована пищалка (зуммер). В готовом изделии не обязателен.

8. Плата контроля заряда-разряда лития на основе микросхемы TP4056 с защитой от перезаряда и разряда.

9. Ардуино Nano V3. Можно заменить 5 вольтовой Ардуино pro mini.

10. В качестве GPRS GSM модема выбран недорогой, но хороший модуль SIM800L. Он имеет небольшие размеры. Умеет работать с DTMF командами, звонить, отправлять смс и e-mail. Смс дороги, а вот электронные письма можно слать практически бесплатно. Чем мы в дальнейшем и воспользуемся!


Датчиком открытия двери (окна) у нас служит нормально закрытый (NC тип) геркон. В случае отсутствия электричества наша ардуина будет отправлена в сон, и разбудить её смогут три вещи: сработавший геркон, появление внешнего питания (сеть), или сигнал RING с модема в случае звонка. Но это мы уже забежали вперёд.


Схема соединения.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост
Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост
Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

Допустим мы всё собрали как надо. Чтобы сигнализация заработала, первым делом надо заполнить файл настроек, находящийся по следующему пути libraries/main_type/settings.h


В строке

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

за место 115200 необходимо указать скорость, на которой работает ваш модем. Как определить скорость работы модема, можно найти в интернете. Не буду на этом заострять внимание.


Далее перечисляются используемые датчики. Вам нужно оставить только те, которые вы используете. Остальные строчки сделать комментариями при помощи двойного слеша //

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

Можно оставить всё как есть. Не подключенные датчики на работу не повлияют.

Далее перечисляются пины, на которых висят наши модули. Первым у нас будет пин RING модема. Он соответствует пину 2 ардуино. Т.к. это обычное перечисление, номер следующего пина будет на один больше предыдущего, т. е. 2, 3, 4 и т. д. Если вы закомментировали какие-то модули выше, то их пины не будут учитываться в перечислении.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

При сборке схемы модули подключаются начиная со 2-го пина друг за другом в том порядке, что указан в перечислении.

Далее нам надо настроить отправку e-mail.

Первым делом задаём SMTP сервер почты, к которой будет подключаться наш модуль SIM800L. Он прекрасно работает с яндекс почтой, с другими не тестировал. Советую завести там почтовый ящик, и слать через него. В этом случае настройки изменять не нужно.

Для яндекса у нас такие параметры сервера и порта:

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

Далее за место слов login и password впишите логин и пароль от вашей почты

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

Затем укажите полное название вашей почты и имя отправителя. В данном случае у нас указан отправитель SIM800L. Можете написать что-то своё.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

Теперь впишите название почты получателя и его имя. На этот ящик будут приходить письма. Для отправки и получения можно указать один и тот же ящик. Тоже будет работать.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

Если вы хотите отправлять письма сразу на два или три ящика , раскомментируйте вот эти дефайны, и впишите имя почты

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

Поздравляю! На этом настройки закончены. Можно прошивать ардуину.


Как работает сигнализация.

Внимание! Сигнализация управляется только с номеров, записанных в телефонную книгу симкарты.

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

Администратор — единственный пользователь, который может отправлять DTMF и смс команды.

Для удалённого добавления пользователя в телефонную книгу Администратор должен отправить смс вида

AT+CPBW=,"+xxxxxxxxxxx",145,"USER"
где +xxxxxxxxxxx - номер телефона
USER - имя абонента

Модем настроен на поднятие трубки при звонке с номера Админа. Это сделано для возможности использовать DTMF команды. Звонки с других номеров будут сбрасываться.

Администратор может отправлять DTMF команды из списка ниже. Если команда принята, сигнализация сбросит звонок. Отчёт о выполнении команды придёт на почту. Любая команда представляет собой цифру и знак #, который означает завершение ввода. После этого модем завершит звонок и выполнит полученную команду.

Проект GSM/GPRS сигнализации на Arduino Сигнализация, Arduino, Sim800l, GSM, Gprs, Длиннопост

Команды, не вошедшие в список, считаются USSD запросами. Например, мы хотим узнать баланс телефона. USSD запрос баланса нашего оператора *xxx#

где xxx — цифры.

Отправляем DTMF команду xxx#. Она будет подставлена в USSD запрос. Ответ оператора будет переслан на почту.


Порядок включения.

Подать питание на сигнализацию.

Дождаться прихода e-mail. Сигнализация загрузилась.

По умолчанию режим охраны выключен. При звонке любого зарегистрированного номера (кроме админа) сигнализация будет ставить/снимать с охраны и отправлять отчёт на почту. Звонок будет сброшен. При звонке с номера Администратора модем поднимает трубку и ждёт DTMF команду. Админ может поставить/снять с охраны сигнализацию командой 1# и 2# соответственно. После ввода команды звонок завершится сам.


Режимы работы:

Тревога.

При срабатывании одного из датчиков включится режим тревоги. На телефон Админа поступит звонок. Его надо сбросить. На почту будут отправлены показания сработавшего датчика. Продолжительность режима тревоги задана в файле настроек дефайном ALARM_MAX_TIME. По умолчанию 60 секунд. В течение этого времени идёт сбор статистики о сработавших датчиках. Когда время истечёт, информация будет отправлена на почту, а счётчики срабатываний обнулятся. Если датчики снова сработают, всё повторится.


Выключение сетевого питания. Режим низкого энергопотребления.

При пропадании электричества на 3 пине ардуины появится низкий уровень. Сигнализация переключится на питание от батареи. На почту придёт сообщение, что свет пропал Svet OFF. После этого, для экономии энергии батареи, ардуина уйдёт в сон, модем будет переведён в режим низкого энергопотребления.

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

При появлении электричества ардуина проснётся, переведёт модем в обычный режим работы, и отправит сообщение на почту Svet ON.


Поддерживаемые операторы.

Прошивка поддерживает основных российских операторов:

МТС, Билайн, Мегафон, Теле2. Если у вас другой оператор, и не отправляется e-mail, пишите в комментариях. Будем добавлять.


На этом всё. Скачать прошивку можно здесь https://github.com/wisenheimer/Arduino

Вопросы пишите в комментариях :)

Показать полностью 12
1208

Как я разработал робота для сбора мячей для гольфа.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Меня зовут Слава. Я из Молдовы. Это невероятная история моей жизни и о том, как я сделал робота для сбора мячей для гольфа.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Молдова одна из беднейших стран в СНГ и в восточной Европе. У нас нет гольфа, дорогих машин, роботов и богатых людей.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Мои дедушка и бабушка бизнесмены. У них своя точка на базаре, их все знают.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Мой дядя работал раньше в Германии, потом пригласил меня.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

В Германии мы работали в гольф клубе, там я впервые попробовал гольф. Я был восхищен!

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

По возвращению в Молдову я весь в мыслях был лишь о гольфе.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Хотя на тот момент только президент страны и его друзья пробовали гольф.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Я вернулся на работу в Германию. Большинство времени в Германии мы собирали мячи для гольфа.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

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

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

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

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

С нами работал Рашид из Афганистана. Он рассказал, что в Кабуле мячи собирают роботы.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост
Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Так я решил сделать своего робота.



Планируется несколько основных преимуществ относительно существующего коммерческого решения.


Отсутствие необходимости закапывать слаботочный кабель по периметру.

Возможность внедрения в уже существующую инфраструктуру.

Более низкая стоимость и совокупная стоимость владения.


Корпус и механическая часть


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

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост
Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Собрал все детали. С самого начала была идея сделать корпус скругленным, но решил остановится строго на MVP. Все, что не влияет на работоспособность пока умышленно исключаю из todo-листа.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Механизм захвата мячей в процессе эволюции данных приспособлений показал свою эффективность, поэтому другие варианты не рассматривались.

По двигателю 12V 30 Н/м. на каждое колесо. Такой же двигатель крутит вал с дисками захвата, так как они подняты над поверхностью для облечения поворотов и повышения маневренности.

Изначально двигатели были noname китайские. В описании не было момента, поэтому риск был велик. Момента явно не хватало, что не скажешь о двигателей от стеклоподъемников.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

После смены двигателей пришлось напечатать другие шестерни.


Электроника


Так как ровер должен работать без электромагнитного кабеля по контуру поля ему как-то необходимо ориентироваться и искать базу для сброса шаров и подзарядки.


Принял решение использовать Orangepi lite и arduino для более удобной работы с 5v без зоопарка конверторов уровней для каждого датчика и драйвера двигателей.

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

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

Как я разработал робота для сбора мячей для гольфа. Робот, Гольф, Разработка робота, Arduino, Видео, Длиннопост

Схема состоит из 11 план, 11 Карл!

— Orange Pi Lite

— Arduino nano

— GPS модуль GY-NEO6MV2

— 2 драйвера двигателя VNH2SP30

— Bluetoth Hc-06

— 2 ультразвуковых модуля J34

— Конвертер логических уровней

— Модуль 3-х осевого гироскопа и акселерометра GY-521 MPU-6050

— Блок из двух реле


Конечно это было сделано для быстрой сборки, монтажа и замены модулей.

Уже сейчас ровер собирает 95-100% мячей на своем пути. Строит маршрут внутри полигона по GPS-координатам. В планах:


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

Сервопривод сброса мячей.

Датчик переполненности отсека с шарами.

WEB-интерфейс для визуального указания точек на карте, построения зон для сбора мячей с разной периодичностью.

Корпус.

Размещение робота в гольф-клубе в Москве для теста в боевых условиях.

Я открыт для диалога, советов, помощи, предложений.

Показать полностью 17 2
658

Когда у тебя есть датчик радиации и время

Как обещал в комменте к предыдущему посту, расскажу про наблюдения за радиационным фоном в течение года.

В общем сразу после начала работы датчика, стал наблюдать редкие всплески радиационного фона в 1,5 - 5 раз выше обычных 10мкЗв/ч. Сначала списал на какие-нибудь космические лучи или солнечную радиацию (в чем совсем не смыслю, потому допускаю возможность :) ), но через пару-тройку месяцев заметил некоторые закономерности. Субъективно всплески были в основном в четверг и в районе 14 часов дня. Ну что ж, база данных со значениями за год есть, надо как-то выяснять в чем дело.

Для анализа выбрал значения показаний датчика от 17  мкЗв/ч (в 1,7 раза выше фона) и выше за год, получилось 100 значений. Выгрузил значения в Excel и сделал графики:

График суммарных значений всплесков по времени суток

Когда у тебя есть датчик радиации и время Raspberry pi, Arduino, Радиационный фон, Радиация, Правильные ь в глаголах, Длиннопост

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

График суммарных значений по дням недели

Когда у тебя есть датчик радиации и время Raspberry pi, Arduino, Радиационный фон, Радиация, Правильные ь в глаголах, Длиннопост

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

- радиоактивный пенсионер-сосед выходит в течение дня покурить на соседний балкон;

- передвижная рентген-установка катается по улице;

- э/м наводки на схему датчика;

- скачки напряжения в сети;

Но и тут не все гладко: с февраля всплесков больше не было :). Сомневаюсь, что кончились наводки или скачки напряжения.

И бонус: пузырьковая диаграмма. Размер круга - сила всплеска, по горизонтали время, по вертикали день недели.

Когда у тебя есть датчик радиации и время Raspberry pi, Arduino, Радиационный фон, Радиация, Правильные ь в глаголах, Длиннопост

Кто разгадает причину всплесков - тому плюсик!


ПС: Попытался выложить статью на geektimes, оказалось она не достаточно интересна.() Как-нибудь через годик-другой еще раз попробую.

Показать полностью 2
1090

Fritzing - электроника доступна для всем!

Всем привет!

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

Побродив по просторам интернета я случайно наткнулся на программу Fritzing. Причем "старички" постят скриншоты из нее и не признаются как они их сделали)))


Итак коротко о Fritzing

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

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

После первого запуска Fritzing сразу бросаются в глаза 5 главных рабочих закладок: Welcome, Макетная плата, Принципиальная схема, Печатная плата и Code. Изначально активна первая закладка Welcome, на ней просто представлены совет дня (Tip of the Day), ссылка на блог разработчиков (где представлены статьи, реклама новых стартер-китов и прочее), ссылка на фабрику печатных плат и на магазин, и справа браузер готовых компонентов и инспектор их свойств.

Fritzing - электроника доступна для всем! Arduino, Начинающий, Электроника, Программа, Схема, Длиннопост, Текст
390

Raspberry Pi 3 Model A+ — новый одноплатный компьютер за $25

Компания Raspberry Pi Foundation представила новый одноплатный ПК под названием Raspberry Pi 3 Model A+. Новинка похожа на последнюю версию Model B+, хотя и лишена некоторых возможностей.

Raspberry Pi 3 Model A+ — новый одноплатный компьютер за $25 Raspberry pi, Raspberry, Raspbian, Rpi, Компьютер

В основе ПК лежит такой же чип, что и в модели B+, SoC Broadcom BCM2837B0 с четырьмя ядрами Cortex-A53. Также тут имеется 512 МБ оперативной памяти и слот microSD для установки накопителя. В активе устройства имеются модули 802.11.b/g/n/ac Wi-Fi, Bluetooth 4.2, 40-контактный разъём GPIO, порты HDMI и USB 2.0, разъём CSI для подключения камеры и DSI — для подключения дисплея.

Raspberry Pi 3 Model A+ — новый одноплатный компьютер за $25 Raspberry pi, Raspberry, Raspbian, Rpi, Компьютер

Впрочем, не обошлось и без урезания функций, которое позволило обеспечить снижение цены на $10. Под нож пошли порт Ethernet (впрочем, его необходимость на фоне наличия Wi-Fi уже не так важна), размер оперативной памяти (512 МБ вместо 1 ГБ у старшей модели) и всего один разъем USB 2.0 вместо четырех у Model B+.

792

Делаем будильник с плавным рассветом своими руками

А давайте сделаем максимально дешёвый аналог будильника PHILIPS "рассвет" – часов, которые за указанное время до будильника заливают вас светом с плавно нарастающей яркостью, то есть имитируют рассвет. Ваш маленький комнатный рассвет, который позволит проснуться бодрым и отдохнувшим за счёт естественных механизмов организма.

В видеоролике содержится подробная инструкция как сделать сие из дешёвых китайских компонентов, настроить и пользоваться!

6 геймерских кресел, в которых лишний час за компьютером пролетит незаметно

Хорошие компьютеры, клавиатуры, мыши, гарнитуры – конечно, залог успешной работы и стриминга. Но для максимальной эффективности не хватает чуть ли не самого важного – правильного кресла. Такого, чтобы ваши мышцы и спина потом не отомстили за пару лишних часов перед компьютером. Вот несколько классных кресел, которые можно купить со скидкой 25% по промокоду XMAS до 25 декабря.

6 геймерских кресел, в которых лишний час за компьютером пролетит незаметно Длиннопост

1. THUNDERX3 UC5

Если вы не особо геймер, но при этом с утра до вечера торчите в офисе за компьютером, игровое кресло – ваше спасение. Точнее, спасение вашей спины, шеи, копчика и других немаловажных частей тела. У кресла ThunderX3 UC5 можно не только приподнимать и опускать сиденье, двигать спинку влево-вправо, изменять угол наклона до 180 градусов, но и включать режим «топ ган». Не знаем, о чем вы сейчас подумали, но так называется режим качания, когда уже нет сил пялиться в монитор и хочется наконец расслабиться. Еще у UC5 подвижные 3D-подлокотники и приятная экокожа с цветными вставками «морская лагуна».

6 геймерских кресел, в которых лишний час за компьютером пролетит незаметно Длиннопост

2. TESORO ZONE EVOLUTION F730

Одно из опасений, которое может останавливать от покупки геймерского кресла, – оно занимает ужасно много места и испортит любой интерьер. Глупости! Модель от американского бренда Tesoro — кресло Zone Evolution впишется в любой интерьер квартиры или офиса. Но это не единственное преимущество: у кресла регулируется, кажется, все: высота сиденья, наклон спинки, поясничный упор, подлокотники, подголовник. При желании в Tesoro можно даже лечь – почему бы не подремать между прохождениями миссий. Кстати, подушки под шею и поясницу с эффектом памяти – это значит, что они идеально повторяют ваше тело и подстроятся под любую удобную позу. Так что отныне усталость будете снимать не у массажиста, а суперкреслом.

6 геймерских кресел, в которых лишний час за компьютером пролетит незаметно Длиннопост

3. THUNDERX3 BC5

Кресла ThunderX3 в последнее время особенно полюбили блогеры и стримеры. Если забить в YouTube бренд – получите пару десятков отборных обзоров на разные модели. А ведь не все блогеры – геймеры! Просто правда удобно. Так удобно, что ваш любимый старенький диван, скорее всего, проиграет баттл игровому креслу. Удобные подушки для шеи и поясницы, регулируемые подлокотники, настраиваемая высота сиденья и возможность разложить его в горизонтальное положение. А чтобы кресло точно вписалось в интерьер, выберите один из трех подходящих цветов: черный с красным, черный с бирюзой и черная классика.

6 геймерских кресел, в которых лишний час за компьютером пролетит незаметно Длиннопост

4. COUGAR ARMOR TITAN

Если бы у трона в «Игре престолов» была геймерская версия, то он бы выглядел примерно как кресло немецкой компании Cougar Armor Titan. Широкое мягкое сиденье, стальная рама, 4D-подлокотники, механизм качания с функцией блокировки, две подушки и все это в черно-оранжевом гамме (и не только). Это самое большое кресло в линейке, которое спокойно выдерживает до 160 кг. Возможно, вы и не заметите, как проведете в кресле день. А может, и несколько дней.

6 геймерских кресел, в которых лишний час за компьютером пролетит незаметно Длиннопост

5. THUNDERX3 BC1

Для тех, кого достали все эти цветастые расцветки и подсветки. Новинка от ThunderX3 – кресло в строгом камуфляжном цвете, которое по комфорту не уступает кресле-качалке. Все благодаря сочетанию мягкого сиденья и твердой спинки, механизму топ ган и технологии AIR tech – дышащей поверхностью, с которой зимой не будет холодно, а летом жарко. Выносливость BC1 – мощные 150 кг. То есть вы плюс пара упитанных котиков на коленях.

6 геймерских кресел, в которых лишний час за компьютером пролетит незаметно Длиннопост

6. GAMDIAS HERCULES M1

Кресло размера XXL, в которое поместится игрок любой формы (даже если она временно отсутствует). А главное, ему будет удобно! Помимо внушительного размера, кресло отличается особой выносливостью: в него смело может сесть человек весом до 200 кг. Недаром же его зовут «Геркулесом» – это стабильное качество и одни из самых доступных цен на рынке геймерских кресел. Помимо этого, в наборе RGB-подсветка, стальной каркас и ортопедическая спинка. Закажите такое в офис и смотрите, как производительность повышается на глазах. Серьезно: даже работа станет приятнее, когда у вас ничего не затекает и как минимум удобно сидеть. И все это по классной цене (даже без учета скидки).

6 геймерских кресел, в которых лишний час за компьютером пролетит незаметно Длиннопост
Показать полностью 5
Отличная работа, все прочитано!