Необходимо войти или зарегистрироваться

Авторизация

Введите логин, email или номер телефона, начинающийся с символа «+»
Забыли пароль? Регистрация

Новый пароль

Авторизация

Восстановление пароля

Авторизация

Регистрация

Выберите, пожалуйста, ник на пикабу
Номер будет виден только вам.
Отправка смс бесплатна
У меня уже есть аккаунт с ником Отменить привязку?

Регистрация

Номер будет виден только вам.
Отправка смс бесплатна
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
Авторизация

Сообщество

Сообщество

564 поста 13 016 подписчиков
Полная информация
Правила сообщества

Спасибо AlexGyver, что прокачал мою...

Raitmaus в Arduino & Pi

Ну почему???

Почему,  когда мне было 10 лет в радио-магазинах продавались лампочки для фонариков и  только красные светодиоды?


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


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


Речь собственно  о colormusic и беседке для посиделок и шашлыкинга

Желаю тебе успехов и обязательно монетизирую свои слова благодарности.

Делаем "открытую" сборку ПК с Arduino и эффектами

AlexGyver в Arduino & Pi

Хочу поделиться историей о том, как я спроектировал и сделал себе стильный модный пылесборник корпус для ПК открытого типа, в который интегрирована Ардуина со светодиодными кольцами. На светодиодных кольцах выводится информация о загрузке и температуре железа ПК.

Универсальный контроллер для теплиц, гроубоксов, инкубаторов...

AlexGyver в Arduino & Pi

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

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

Робот на вайфай управлении

Raisel в Arduino & Pi

Руки дотянулись только сейчас.Привет читатель,сегодня ты узнаешь историю создания робота.Зделан он был на ардуинке из фанеры.Весит плюс минус 2кг.Начинал с корпуса.Вырезал на резаке корпус,нанес рисунки лазерным резаком(или как он называется)Делал кстати с другом

Робот на вайфай управлении Робот, Самоделки, Arduino, Гифка, Длиннопост

Дальше я установил дешевые китайские моторчики,это к слову сказалось на скорости.И начал кодить на ардуинке.

вот моторчики

Робот на вайфай управлении Робот, Самоделки, Arduino, Гифка, Длиннопост

Установил моторчики и "ногу"на которых расположились гвозди.Внутри пока пусто

Код написан,откладываем в долгий ящик.Вот пришел контролер моторчиков.Устанавливаем модуль и паяем!
Дальше поворотники из светодиодов.Светодиоды паяем на небольшой плате.Всего 4пары
светодиодов.Паяем через резисторы,так как напряжение 5v.Минусы спаиваем в одну кучу и выводим пин(минусовый).Пока оставим плату

Робот на вайфай управлении Робот, Самоделки, Arduino, Гифка, Длиннопост
Робот на вайфай управлении Робот, Самоделки, Arduino, Гифка, Длиннопост

Вот и пришел вайфай модуль.Минус подключаем к G (земля) на модуле,а провода светодиодов подключаем к пинам на модуле.Потом зажимаем в зажимы на плате пины (контроллер моторчиков) и подключаем к вайфай модулю.

Робот на вайфай управлении Робот, Самоделки, Arduino, Гифка, Длиннопост

Зеленый провод который торчит это земля.
Ставим на колеса и крепим черный файфай модуль

Робот на вайфай управлении Робот, Самоделки, Arduino, Гифка, Длиннопост

Пол дела сделано!Теперь ко дну прикручиваем аккамуляторы, и выводим минус на вайфай модуль.5v на контроллер моторчиков.Припаиваем кнопку.

Робот на вайфай управлении Робот, Самоделки, Arduino, Гифка, Длиннопост

Иии... готово! скручиваем корпус,регаемся в Blynk,получаем код доступа на почту к проэкту,вставляем то что прислали в код, и заливаем его в бота через USB.Немного настроек и он ездит!

Сорян за плохое качество,записывал на Ардуино!
Это был мой первый пост на пикабу,поэтому пишите о косяках рад буду выслушать.Если нужны пруфы то вот моя инста о создании этого бота @Hukolas_robotics

Управляется со смартфона,чукча не писатель,Мир вам

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

CusDeb: кастомизация Debian Buster для Orange Pi Zero

cusdeb в Arduino & Pi

Всем привет! Линейка одноплатных компьютеров Orange Pi расширяется в CusDeb и следующим устройством стал Orange Pi Zero. Теперь CusDeb позволяет кастомизировать Debian 10 «Buster» для этой модели одноплатника.

CusDeb: кастомизация Debian Buster для Orange Pi Zero Cusdeb, Orange pi, Armbian, Debian, Kali linux, Raspberry pi

А можете напомнить, что такое Orange Pi Zero?

Конечно. Orange Pi Zero – это китайский одноплатный компьютер, который был анонсирован в ноябре 2016-го, но до сих пор остается популярным среди разработчиков за счет того, что является достаточно мощным и при этом дешевым устройством.

Может показаться, что производитель одноплатников выпустил модель под названием Zero, чтобы составить конкуренцию Raspberry Pi Zero, но устройство оказалось совершенно другим и, как следствие, предназначенным для решения других задач. К примеру, в отличие от Raspberry Pi Zero у Orange Pi Zero нет HDMI, но есть Ethernet.

Стоит искать подвох в его дешевизне?

Определенно. Главным недостатком любых моделей Orange Pi на протяжении долгого времени оставалась хреновая поддержка производителем. К примеру, подобного рода устройства выпускаются на рынок, как правило, в сопровождении «эталонной» Linux-подобной операционной системы, которая поддерживает все заявленные фичи устройства. Затем проходит немного времени и устройство начинает морально устаревать, т.к. производитель забивает на продукт, не обновляет операционную систему и, вероятно, фокусируется на чем-то другом.

Сложившуюся ситуацию с переменным успехом исправляют два проекта – Armbian и CusDeb. Armbian выпускает универсальные образы на базе Debian-подобных дистрибутивов, которые патчатся с целью предоставить пользователям наиболее полную поддержку того или иного устройства. Недостатки и достоинства здесь – две стороны одной медали.

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

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

CusDeb, в свою очередь, старается упростить установку на одноплатники «ванильных» версий Debian и производных от него дистрибутивов, что положительно сказывается на стабильности и безопасности полученного решения. Более того, CusDeb предлагает создавать т.н. проблемно-ориентированные образы операционных систем, т.е. те, которые содержат только необходимый набор компонентов для решения конкретной задачи. «Ванильный» путь CusDeb'а, очевидно, является его самым главным недостатком – не все компоненты устройства могут поддерживаться.

А что предлагает Debian Buster на Orange Pi Zero?

Debian, как всегда и везде, предлагает стабильность и большую пакетную базу, а также выпуск обновлений на протяжении 5 лет (3 года – стандартная поддержка + 2 года – расширенная). В Debian Buster входит ядро Linux 4.19.

Заметьте, что Buster сейчас находится на стадии заморозки и тестирования. Его выход запланирован на лето.

А есть что кроме Debian'а?

Да. Напомню, что в основе CusDeb'а лежит инструмент под названием Pieman, который является свободным и открытым программным обеспечением. Поддержка новых операционных систем и устройств сначала добавляются в Pieman, а только потом прокидываются в CusDeb, что, в свою очередь, иногда приводит к тому, что CusDeb слегка отстает по возможностям от Pieman'а. К примеру, сейчас у вас есть возможность подготовить образ операционной системы на основе Kali Linux для Orange Pi Zero и получить так называемое «leave behind» устройство – устройство, которое может скрыто и незаметно собирать данные, но если будет обнаружено то 1) вам его будет не жалко потерять из-за копеечной стоимости и 2) никто и никогда не поймет, чем оно там вообще занималось.

Могу ли я чем-то помочь?

Можете. Скажите, какие еще устройства вы бы хотели видеть в CusDeb и, самое главное, расскажите пожалуйста о проектах, в которых вы используете одноплатники.

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

Дребезг контактов, ложные срабатывания

AVS18 в Arduino & Pi

Добрый вечер, уважаемые.


Спаял на днях схему:

Дребезг контактов, ложные срабатывания Микроконтроллеры, Электроника, Программирование, Длиннопост

Использованы компоненты(названия кликабельны):

Транзисторы BC546 - 2 шт.

Реле NRP-02-C-05DH - 2 шт.

МК Attiny 13 - 1 шт.

Стабилизаторы напряжения:

L78L05 на 5 и L78L33 на 3.3 вольта - по 1 шт.

Диод 1N4007 - 1 шт.

Мотор какой то китайский с алишки

3 модуля датчика линии на LM393


Схема даже работает(сам охуел, не ожидал)

Алгоритм в МК простой: если LOW идет с датчика X, тогда мотор крутится в одну сторону, если с датчика Y, тогда тормозит, ждет секунду и в обратку. Если с датчика Й, тогда стоп, основан на if.


#define PIN_IN1 3

#define PIN_IN2 4

#define PIN_SENSOR_VERH 0

#define PIN_SENSOR_NIZ 1

#define PIN_SENSOR_PUSK 2

int state;

void setup()

{

pinMode(PIN_IN1, OUTPUT);

pinMode(PIN_IN2, OUTPUT);

pinMode(PIN_SENSOR_VERH, INPUT);

pinMode(PIN_SENSOR_NIZ, INPUT);

pinMode(PIN_SENSOR_PUSK, INPUT);

}

void loop()

{

int val1 = digitalRead(PIN_SENSOR_PUSK);

int val2 = digitalRead(PIN_SENSOR_NIZ);

int val3 = digitalRead(PIN_SENSOR_VERH);

{

if(val1==LOW)

{

digitalWrite(PIN_IN2, HIGH);

}

if(val2==LOW)

{

digitalWrite(PIN_IN2, LOW);

delay(1000);

digitalWrite(PIN_IN1, HIGH);

}

if(val3==LOW)

{

digitalWrite(PIN_IN1, LOW);

digitalWrite(PIN_IN2, LOW);

}

}

}


1. Подскажите, как можно оптимизировать код? Может через switch case?

2. Есть дребезг контактов(реле стучит как барабанная дробь). С датчика идет многократный сигнал и МК щелкает реле каждый раз, когда приходит сигнал(все это время перед датчиком продолжает находится препятствие-ладонь), а должен переключать лишь единожды, когда есть препятствие и далее больше сигнал не посылать. Как побороть это? Можно ли что то добавить в схему? Конденсатор, например? Подтягивающие резисторы? Гасящие? Куда, какой номинал?

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

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

Arduino ESP32: как сделать mp3 плеер через блютуз?

remote.admin в Arduino & Pi

Есть вот такой проект, работающий через Wi-Fi. А можно его как-то переделать, чтоб работал через блютуз?

У многих телефоны дома подключены через Wi-Fi роутер. К двум вайфаям же не подключишься.

Пост со ссылкой  на видео уже выкладывался, но там тихо как в библиотеке.

https://m.pikabu.ru/story/proigryivaem_mp3_posredstvom_odnoy...
Поэтому баянометр ругается, извините.

Умное зеркало

DNKuz в Arduino & Pi

Есть необходимость видеть с утра в ванной текущее время и температуру на улице.

Была идея сделать это всё в зеркале.

Итак погнали!

Чертим проект будущего зеркала.

Умное зеркало Arduino, Умный дом, Я у мамы инженер, Длиннопост, Компас 3D

И как говорится, приходит всё с аппетитом. В процессе проектирования на зеркало добавились кнопки управления дисплеем, вентиляцией, тёплым полом, автонабором ванны, освещением зеркала и подогревом зеркала.

Жду зеркало своё в фирме по изготовлению зеркал и через неделю примерно получаю его.

Начинаю монтировать RGB ленту

Умное зеркало Arduino, Умный дом, Я у мамы инженер, Длиннопост, Компас 3D

Монтирую сенсорные кнопки и дисплей к зеркалу с помощью горячего клея. И соединяю всё это добро.

Умное зеркало Arduino, Умный дом, Я у мамы инженер, Длиннопост, Компас 3D

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

Умное зеркало Arduino, Умный дом, Я у мамы инженер, Длиннопост, Компас 3D

Примеряю  в ванной (на дисплее 2 режим 49% влажности)

Умное зеркало Arduino, Умный дом, Я у мамы инженер, Длиннопост, Компас 3D

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

Как говорится, продолжение следует.... :)

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

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 2, прошивка.

nstorm в Arduino & Pi

Продолжение 1ой части.

Ссылку на прошивку уже давал, повторю: https://github.com/N-Storm/autolight

В README.md описание есть, код более-менее прокомментировал. Но всё ес-но на английском.

В разделе Releases лежат скомпилированные прошивки с настройками по-умолчанию.


Прошивка написана под ATTiny10, который вписывается в эту задачу. В общем-то никаких особых сложностей, чтобы адаптировать прошивку под другой AVR нет. Кроме GPIO (ногодрыга) используется только прерывание INT0, Watchdog для сброса МК при ошибке, да и вроде всё.

Все настройки работы датчика и порогов срабатывания задаются жестко в прошивке. Все настройки в общем-то в файле autolight.h. Разберу их:


#define PROX_TH 30 - это порог срабатывания датчика приближения. В условных попугаях, потому что зависит от настроек ниже. Больше - ближе. При текущих настройках полностью прикрытый датчик вплотную пальцем выдает тут 1023. При снижении дальности ниже этого значения, считается сработало открытие. Выше - закрытие.


#define LIGHT_TH 100 - это порог срабатывания датчика освещения. Опять же в условных попугаях, да еще я использую жесткое округление при расчете. Потому что ДШ датчика приводит сложную формулу с делениями на дробные числа, это для тиньки 10 будет слишком много. Больше - ярче.


#define DELAY 600 - задержка в мс между проверками на уровень освещения и закрытие в рабочем состоянии (т.е. когда подсветка горит). Для экономии батарейки не слишком часто считаем, 600 мс реакция на такое событие для человеческого глаза вполне норм.


// #define RECHECK_AL - если раскомментировать эту строчку, слегка поменяется поведение прошивки. В рабочем состоянии помимо проверки на закрытие, будет также выполнятся проверка на изменение освещенности. Т.е. если подсветка работает, но вдруг включили свет в комнате, тогда подсветка выключится.


#define WTIME_DEFAULT 0xB6 - время ожидания между проверками расстояния датчиком в автономном режиме. Значение из ДШ и соответствует 202 мс между проверками. Потребление тока при этом будет копеечное. Порядка 66 мкА в среднем. Т.е. датчик раз в 202 мс "выстреливает" пульсами из ИК-светодиода и проверяет расстояние.


#define PPULSE_DEFAULT 4 - соб-но количество пульсов 4.


#define PERS_CON 0b00110000 - это то, о чем я говорил в прошлой части, настройка PERS. В ДШ даны значения, в данном случае это 3 раза подряд (202 мс * 3 + время на обработку) значение дальности должно быть ниже PROX_TH. Соб-но поэтому 3 и поставил, потому что 202 * 3 = 606, примерно тот же 600 мс отклик, как и на закрытие.


#define ATIME_DEFAULT 0xED, #define PTIME_DEFAULT 0xFF - время на обработку АЦП значений, тут взяты рекомендованные из ДШ на датчик.


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


I2C в Attiny10 нет аппаратного, используется софтовая либа, которую я чуть допилил. В i2csoft.h можно поменять пины SDA и SCL.


В autolight.c основная логика работы. Первым делом из main() вызывается функция init(), где мы вырубаем Watchdog и устанавливаем параметры МК. Включаем тактирование от внутреннего источника и ставим предделитель, чтобы получить итоговую тактовую частоту 250 кГц. Да, нам этого с головой тут, зато тайминги I2C можно делать просто одной инструкцией NOP.

Дальше вырубается не используемая аналоговая периферия для снижения потребления.  Ну и соб-но настраивается прерывание INT0.

После init() "инициализируется" I2C через SoftI2CInit() и через функцию apds_init() отправляем в датчик все описанные ранее настройки из .h. В случае ошибки тут и любой ошибки на I2C дальше, вызывается функция reset(), которая через Watchdog сбрасывает МК через 15 мс. Т.е. если связь с датчиком пропадет (отвалится линия или еще что), МК будет пытаться перезагружаться.


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


Я думаю он должен быть достаточно понятен, для человека более-менее понимающего в программировании для МК. Но если есть какие-то вопросы - отвечу в комментариях.


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

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

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо".

nstorm в Arduino & Pi

Пост не совсем про Arduino, но про домашнюю поделку на микроконтроллере AVR. Об "умной" подсветке, которая включается только при открытии ящика и когда кругом темно.


Захотел я сделать в шкафу, да выдвижных ящиках комода себе подсветку. С утра собираюсь, в комнате темно, жена спит, дочь спит. Подсвечивать телефоном, чтобы найти шмотки задолбало. Тянуть провода для питания тоже не хотелось, надо было что-то на аккуме.
Взял LED модуль готовый. На Али такие COB LED называются, очень много разных вариантов, взял такой (83 рубля):

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

Взял повышающий DC-DC преобразователь на MT3608 ($0.40):

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

И из загашников у себя кнопку фиксируемую и акк Li-Ion на 500мАч. Всё прекрасно заработало и за пару месяцев редких включений акк просел чуть ниже половины заряда.
А дальше соб-но захотелось придать этому ума, чтобы не клацать кнопкой самому. Можно просто поставить геркон и свет будет включаться при открытии шкафа/выдвигании ящика. Но не охота, чтобы он включался, когда в комнате горит основной свет - батарею тратить почем зря. Поэтому берем датчик освещенности и расстояния (Proxmity & Ambient Light Sensor), такие, как стоят в телефонах. Недорогие и доступные на Али модули на базе APDS-9930, вот такие (60 рублей):

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

Датчик цифровой, работает по I2C. На датчике ИК-светодиод и 2 фотодиода - один измеряет ИК диапазон, другой ИК + видимый спектр света. С помощью них датчик умеет измерять расстояние до объекта, посылая ИК импульсы и замеряя их отражение. И уровень освещенности фотодиодами (вычитаем из общей освещенности вместе с ИК отдельные показания ИК фотодиода). Далее расстояние - PS (proximity sensor), освещенность - ALS (ambient light sensor).
И приятная штука - прерывания. Датчик можно настроить так, чтобы при выходе определенных параметров PS или ALS выше или ниже заданного нами значения он "дернет ножкой" INT. Тем самым МК настроив датчик может уйти в сон (режим пониженного энергопотребления). плюс есть настройка PERS, которая отвечает за то, сколько раз подряд считанное значение должно выйти за границы заданных значений, чтобы сработало прерывание, чтобы исключить ложные срабатывания.
На модуле есть сам датчик и минимальная обвязка для него, включая конденсатор для ИК-светодиода и подтяжки линий.
Беру из загашников мелкие букашки - контроллеры ATTiny10 (фото из инета):

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

Я покупал их под всякие мелкие задачи в довесок с заказом на DigiKey, но они есть и на Али. Я брал по $0.31 за штучку.
Контроллер может питаться от батарейки напрямую, но для APDS-9930 нужна напруга не выше 3.6В, поэтому берем стаб LDO на 2.7-3.3В. Я взял TPS78330, но можно что проще и дешевле достать, вроде XC6206P302MR. Контроллер и сенсор запитываем от LDO. LED модуль по прежнему от DC-DC модуля. Чтобы иметь возможность выключать свет, в разрыв входного минуса модуля ставим N-канальный MOSFET. Я взял IRLML6244TRPBF (пачка 100 шт на Али около $1). Минусовой выход DC-DC ес-но соединяется только с LED модулем, он общий с входным, мы его будем размыкать. Короче примерно такая схема:

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

На схеме U3 - LDO MCP1810T стоит, это я задел на плату поставил.
Далее я написал прошивку для ATTiny10, которая это всё контролирует: https://github.com/N-Storm/autolight

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

"Умное" освещение на базе сенсора освещенности и расстояния APDS-9930. Часть 1, "железо". Avr, Микроконтроллеры, Умный дом, Подсветка, Самоделки, Автоматизация, Длиннопост

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


Всё работает. Датчик отрабатывает как положено. При запуске он инициализирует сенсор и ждет. Сенсор заводится проверять расстояние каждые 202 мс. Как только расстояние увеличивается выше порога (3 раза подряд через PERS, чтобы не было ложных срабатываний) - значит дверца открыта. Проверяем уровень внешнего освещения. Если оно ниже порога - подаем высокий уровень уровень на PB3 (затвор мосфета), тем самым включая подсветку. Как только расстояние до препятствия сенсора опять станет ниже порога - значит дверца закрыта, свет выключается и снова МК уходит в сон, "заведя" датчик опять выстрелить прерыванием когда снова откроется дверца.

Есть один нюанс. МК всего 6 ног имеет, 2 из которых - питание, 2 мы используем под I2C, 1 под прерывание и еще 1 нужна для управления подсветкой. Т.е. задействованы все, включая ножку сброса. После прошивки FUSE битов, обычным образом прошить МК нельзя будет, т.к. сброс отключен. Но можно просто подать +12В на ножку RESET (не подключая это дело к программатору ес-но!) и он снова войдет в режим программирования.


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

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

Arduino. Первый опыт. Школьный звонок и недоwebserver.

YazonDinAlt74 в Arduino & Pi

Добрый день. Хочу поделиться с вами первым горьким (или не очень) опытом. Было решено изучить что-же такое arduino и как его практически можно было использовать. Естественно решил сделать замену школьному звонку, с возможностью управления по локальной сети без поднятия web сервера и с записью расписания звонков на microsd карту.
Что использовалось:

- arduino mega 2560;
- ethernet модуль enc28j60;
- модуль MicroSD Card Adapter на базе LVC125A;
- твердотельное реле на базе G3MB-202P;
- модуль часов реального времени DS3231M;
- макетная плата 70*90;
- кривые руки;
- нулевые знания в arduino и С++;
- боль и слезы.

Что в итоге вышло:

Arduino. Первый опыт. Школьный звонок и недоwebserver. Arduino, Arduino Mega, Длиннопост

Теперь по порядку.

Поскольку познания в C++ у меня были совершенно никакие, поэтому было решено брать arduino mega 2560, для того чтобы был запас памяти, ввиду работы со строками (массивами). Модули взял какие были в продаже, не изучив возможные проблемы работу с ними (первая ошибка). По отдельности все модули, кроме модуля реального времени работали нормально, RTC модуль потом пришлось заменить на DS3231. В целом с данным модулем проблем дальше не было, ибо он подключается к шине (интерфейсу I2C).

Этап слез и боли.

Когда уже где-то на горизонте замаячил финал и сладостное предвкушение от результата работы, жизнь вновь окунула меня в жесткие реалии. Ethernet модуль и microsd ну никак не хотели работать вместе. Данные модули подключаются к шине (интерфейсу) ICSP и вроде как все должно работать сразу и без проблем. Изучение теории интерфейса ICSP и поиск по форумам ничего не дал. Я грешил на модуль microsd, купил второй такой же, и ничего.....
Работа полностью встала, но решение все же нашлось, даже два: 1. купить модуль другого производителя на другом чипе; 2. исправить недоразумение инженерной мысли создателя сего модуля. Решение заключалось в том, что нужно было кинуть перемычку с 13 ноги LVC125A на резистор R1 и всё. Иначе данный модуль не давал возможность работать другим модулям на данном интерфейсе (это если утрировать).

Arduino. Первый опыт. Школьный звонок и недоwebserver. Arduino, Arduino Mega, Длиннопост

Вытираем слезы и радуемся, мы не настолько плохи.

Чтобы все это дело не паять к arduino было решено сделать шилд для выноса шины ICSP, I2C и кнопки ресет. Купил макетную плату, отпилил лишнее, припаял пины в местах выводов интерфейсов и кнопки ресет. Любителей качественной пайки и перфекционистов прошу не смотреть.

Arduino. Первый опыт. Школьный звонок и недоwebserver. Arduino, Arduino Mega, Длиннопост

Справа внизу подключен модуль RTC.

Еще подсказка для новичков, твердотельное реле нельзя проверить мультиметром и говоря русским языком твердотельное реле работает только под нагрузкой (я использовал обычную лампу накаливая). И еще, ногу DC+ реле я подключил через тумблер, для возможности отключения звонка.

Все это дело отлично вписалось в корпус роутера D-Link DIR-400.

На этом я аппаратной частью можно и закончить.

Программная часть.

Поскольку памяти у нас достаточно, я решил не экономить и использовать строки, вместе с глобальными переменными, да это плохо, но с моими скудными знаниями это было неплохое решение.
Используемые библиотеки:

- EtherCard.h;

- SD.h;

- DS3231.h;.

Почему именно они.

DS3231.h - может показывать в

ремя в unixtime и в виде hh:mm:ss в формате string. Также умеет работать с днями недели.

SD.h - ничего особенного, просто с ней получилось сразу подружиться.

EtherCard.h - выбор библиотеки для работы с сетью стал для меня камнем преткновения. Поскольку мне хотелось отсылать расписание по сети, получать ответ, синхронизацию по NTP и все это делать со своего сайта (или приложения), а также не хотелось поднимать web сервер (как многие рекомендуют), выбор пал на данную библиотеку. Суть решения свелась к тому, что я отсылаю запрос вида http://ip/?command=команда, arduino парсит запрос и ищет нужные вхождения в строке. После чего шлет http ответ, либо 200 OK, либо 404 not found, это в упрощенной версии. (этот момент более подробно описан в скетче). А в нормальной реализации arduino возвращает json строку и сайт обрабатывает её. В Json строке может быть получено текущее время на arduino, логи за определенный период, текущий урок и пр. информация. Данная реализация находится в стадии допиливания и поэтому пока её не выкладываю.

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

http://ip/?3bells=now - дает тройной звонок;

http://ip/?acttim=timenow - принудительная синхронизация с NTP сервером

http://ip/?nwrasp=08:00:00=08:45:00=... (макс. 20 звонков) - передаем новое расписание по сети и сохраняем его на карту.


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

Ссылка


p.s. какие проблемы выявлены:
1. иногда запрос не доходит до arduino и приходиться повторно отправлять команду.
2. при проблемах с локальной сетью, не всегда корректно загружается.


Отдельное спасибо @pangoleen.

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

Игра - Волк собирает яица на Arduino uno + OLED 128x64

ardublock в Arduino & Pi

Знаменитая игра, которая стала символом целой эпохи для всех школьников конца восьмидесятых – начала девяностых.


Идея предельно проста – Волк должен собирать яйца, катящиеся по специальным желобам, и не дать им упасть. При помощи четырех кнопок управления героя можно поворачивать к этим желобам, и нужно постараться сделать это в тот момент, когда яйца уже почти падают. По мере прохождения, яиц становится все больше, и они начинают катиться быстрее, так что для того, чтобы далеко продвинуться в этой игре, нужно быть очень внимательным и сосредоточенным. Хорошая реакция и чувство ритма – ключевые качества, к которым предъявляются требования в игре Волк Ловит Яйца. Уронить можно всего три яйца, и если это произойдет, игру придется начать сначала.


Соберите схему на макетной плате, загрузите прошивку с программой (игрой) и добро пожаловать в мир 90х игр. Удивите своих друзей, родителей и родственников своей новой самодельной мини приставкой.

Вертикальный Робот Рисовальщик на Arduino Uno + L293D / L298N

vintengels в Arduino & Pi

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

Металлический корпус для Raspberry Pi

armlab в Arduino & Pi

Компания SilverStone представила компактный корпус под названием PI01. Новинка интересна тем, что предназначена не для ПК, а для одноплатных компьютеров Raspberry Pi.


Корпус универсальным и подходит практически для всех моделей "малинового" компьютера. Заявлена совместимость с моделями Raspberry Pi 3B+, 3B, 2B и 1B+, у них одинаковые габариты и внешние порты расположены на одних и тех же местах.

Металлический корпус для Raspberry Pi Silverstone, Raspberry pi, Raspberry Pi 3, Длиннопост, Корпус ПК

ы

Металлический корпус для Raspberry Pi Silverstone, Raspberry pi, Raspberry Pi 3, Длиннопост, Корпус ПК
Металлический корпус для Raspberry Pi Silverstone, Raspberry pi, Raspberry Pi 3, Длиннопост, Корпус ПК

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

Металлический корпус для Raspberry Pi Silverstone, Raspberry pi, Raspberry Pi 3, Длиннопост, Корпус ПК

SilverStone PI01 выполнен в чёрном цвете. Его габариты 90 × 62 × 28 мм (объём 0,16 л) и весит 55 г. Имеются отверстия для крепления к стене или другой вертикальной поверхности.


Новинка поступит в продажу 25 апреля. Цена корпуса SilverStone PI01 для Raspberry Pi составит ~ $20.

Источник: 3dnews.ru

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

Мой первый урок по языку программирования XOD IDE.

VitaliySh в Arduino & Pi

Привет, друзья.


Представляю первый мой урок по визуальному языку XOD IDE для микроконтроллеров. Язык разрабатывается российской компанией Амперка.

Сайт языка программирования - https://xod.io/

GitHub - https://github.com/xodio/xod


Обещают летом включить в программу помощь на русском языке.


Программирование осуществляется с помощью блоков, это т.н. ноды. Также сами ноды можно создать из самих же нодов и на С++.


Как раз из нодов я  написал библиотеки для аналогового датчика температуры LM35 https://xod.io/libs/vitaliysh/lm35-thermometer/lm35-thermome... и датчика освещенности i2c

GY-302 BH175 https://xod.io/libs/vitaliysh/bh1750/bh1750/



В следующих уроках я планирую рассказать как писать эти ноды для новичков.


Не пинайте сильно. Это первый опыт. Сейчас подъезжает новый микрофон и звук будет лучше.

Отличная работа, все прочитано!