Функционал довольно прост. Нажимает кнопку, включается механизм насыпа корма, например на 30 секунд (придумаю механику). Камера нужна чтобы: 1. Видеть пусто ли в миске. 2. Видеть что очередная доза корма точно подана, а если что-то подзависло, чтобы не пытаться еще раз нажать кнопку. Перекормить нельзя, у кошки курдюк уже вырос. ) Раз в минуту кидать фото можно, но это вед какой-то мини комп уже нужен, чтобы обрабатывать фото и выкладывать кудато. Добавлено: Mon Aug 30, 2021 4:30 pm |
ip камеры умеют сами фото слать на фтп\почту. по крайней мере многие Добавлено: Mon Aug 30, 2021 4:43 pm |
Ну, какие-то вычислительные мощности нужны будут полюбому - хоть vpn держать, хоть upnp анонсировать... Я бы написал какую-нибудь админку на белом адресе, отдающую клиенту команду на кормление или начало видео трансляции. Клиент бы поднимал порт, скидывал его в админку и мапил бы его на камеру в локальной сети... Добавлено: Mon Aug 30, 2021 4:52 pm |
поменяй роутер. всяко быстрее и дешевле чем пытаться яйца чесать пяткой. кормить кошака через впн и промежуточный сервер.... проще заказчику (бабе) сказать что без белого ip или нового роутера не получится. и все. выбор за ней. если кошка не стоит 100руб в мес за белый ip или 2тр единовремннно за бу роутер - так мож пусть жрет из большого ведра бесконечного )) рабочее время и силы на настройку извратов выдут дороже роутера.... Добавлено: Mon Aug 30, 2021 4:59 pm |
Николай писал(а): рабочее время и силы на настройку извратов выдут дороже роутера.... Согласен. Предложу другой роутер. Всем спасибо! Либо ESP8266+Blynk, но без видео. Вот еще придумал: Эта связка ведь умеет и считывать с GPIO и передавать в смартфон? - Можно же сделать датчик потока корма и передавать в смартфон - если после кормежки сработал датчик, значит жрать реально подано. Добавлено: Mon Aug 30, 2021 6:12 pm |
В Blynk есть видеостриминг, но сам не пробовал. Добавлено: Mon Aug 30, 2021 10:17 pm |
abap писал(а): Есть идея сделать кошкокормилку для сестры супруги с визуальным контролем. 1. У меня были дома (достались от старых жильцов) обычные дешманские камеры по 1000р., цеплялись к регистратору 3-4 т. рублей. Регистратор был доступен из любой точки мира через свое приложение. Без, white IP, VPN и прочего. Думаю и IP камер таких навалом. Облако ни облако, не знаю, просто работало. 2. Сейчас когда надо посмотреть за собаками, я просто использую teamviewer на моноблоке, камера встроена. Более того, такое можно и на смартфон поставить. 3. Есть уже и домашние сигнализации с камерами, аякс кажется, там и исполнительные устройства есть. И каких только камер не делают в китае, даже в форме обычной лед лампы. 4. Очень неплохие вайфай реле сонофф, недорого и работает. Тоже из любой точки и по расписанию. Тут самое главное это механизмы исполнительные, а ведь еще и вода нужна, и туалет. Кажется просто, но даже подачу корма надо хорошо придумать, реализовать и испытать. И лучше оно само по таймеру пусть делает, а снаружи только контроль. Опять же пожаробезопасность надо обеспечить. И что бы при отключении света все само запускалось обратно адекватно. Время на реализацию и испытания тоже нужно прилично. И кошка это живое, ей общение тоже нужно. И контроль. Инженерная задача хороша, но для теплицы или цветов. А кошку надо друзьям, знакомым, родным, соседям. Или пусть приходит кто то. Есть и гостиницы для них. Есть даже кафе приют. Думаю можно договориться. Да и с собой можно взять. Добавлено: Mon Aug 30, 2021 11:01 pm |
abap писал(а): Можно же сделать датчик потока корма и передавать в смартфон - Купи тензодатчик с ацпхой на алике, в виде шилда к ардуйне. Обнулил показания, сыпанул корма, посмотрел чтобы насыпалась норма - профит Добавлено: Tue Aug 31, 2021 8:43 am |
У меня такое для зверья. по принципу поилки для птиц.ничего лишнего. Добавлено: Tue Aug 31, 2021 9:21 am
|
Народ, где нарыть русскоязычную документацию по опциям gcc? Вот я расковыриваю сорцы а там ARCH_CFLAGS = \ -ffixed-r8 \ -marm \ -march=armv5t \ -mno-thumb-interwork \ -mabi=aapcs-linux \ -msoft-float \ -fno-stack-protector Часть из них впервые вижу. Вот -ffixed-r8 что это? Что делается с регистром R8? -march=armv5t архитектура ARM v5. Что означает буква t? -mno-thumb-interwork а это что? -mabi=aapcs-linux чё за херь и при чём тут линух? -fno-stack-protector совсем не понял - нет защиты переполнения стека или что-то ещё? Добавлено: Tue Aug 31, 2021 12:35 pm |
А ПЛК типа сименс лого никто не эксплуатирует здесь? Есть лифты. Есть даже специальные лифтовые блоки, для связи с ними. Умеют и подключится по CAN или другим (зависит от лифта) шине к плате управления лифтом и шлют на сервер информацию по UDP. Вполне серьезное решение. А душа хочет что то свое попроще и дешевле. Но не ардуино или еще какой самодел, а что то на дин рейку уже готовое. Что бы могло считывать хотя бы логические входы или лучше CAN и другие шины и слать емейл, пакеты UDP на сервер или СМС. Вроде как сименс лого новый с езернет, стоит терпимо, логические входы есть и даже веб морда. Но отчего то что бы послать смс или емэйл ему надо блок расширения стоимостью как два самих главных модуля... Добавлено: Sat Sep 11, 2021 1:31 am |
Шнайдер программируемые реле на =24В только не ставь. Схемотехника говно - на входах атмеги резисторные делители вместо оптронов. Сименс лого на (=24В?) тоже оказывается без опторазвязки входов, вот это новость! https://cs-cs.net/logicheskie-rele-siemens-logo-ustoistvo Овен ПР200 по докам имеет гальваническую развязку - но на фото нижней стороны основной платы нет https://cs-cs.net/owen-pr100-pr102-pr200-pt1-ustroistvo-vozmojnosti Мой самодельный ПЛК и то безопасней программируемых реле шнайдера и сименса - у меня стоит опторазвязка входов и выходов и изолированное питание микроконтроллера - но компилятор любительский, аудита кода никто не делал и в лифты его ставить нельзя... Добавлено: Sat Sep 11, 2021 7:10 am |
Написал под миландрокортекс тестовую прошивку. Ядро ARM Cortex-M3, библиотека CMSIS стандартная. Таймер и прерывания от него. Компилятор GCC. Но мне непонятно, ядро работает на 80 МГцж. программа простейшая Обработка прерывания:
циклически перебирает байты из 160 байтового массива
основной цикл:
В начале и конце процедуры идёт установка двух пинов, а в основном цикле их сброс. Вот осциллограмма: Жёлтый канал - первый пин, в начале процедуры, синий сигнал - второй пин в конце процедуры. Но 1,3 мкс на полтора декремента со сравнением?! При 80 МГц??? А ЧЁ ТАК МЕДЛЕННО? Я как на пики вернулся... Добавлено: Mon Oct 11, 2021 5:53 pm
|
А что означают в языке С записи типа "point <159>KR" и "point <120>CCR2"? Этот только в GCC (не знаком) или везде такое есть? Добавлено: Mon Oct 11, 2021 11:25 pm |
Электромонтёр писал(а): А ЧЁ ТАК МЕДЛЕННО? дизасм этого куска посмотри жеж. в какую простыню это компилится Добавлено: Mon Oct 11, 2021 11:38 pm |
Доктор Зло писал(а): А что означают в языке С записи типа "point <159>KR" и "point <120>CCR2"? Этот только в GCC (не знаком) или везде такое есть? Блин, это движок форума так отобразил код, чёт просмотрел? надо было отрубить хтмл теги
Николай писал(а): дизасм этого куска посмотри жеж. в какую простыню это компилится Ну, начало функции 0х080000Е4 выход 0х0800011А. 12+16+10=38 байт или около 20 команд. 100 тактов??? Кстати, пробежался отладкой - реально оптимизатор работает (на этапе инициализации переменных это заметно), может из-за чтения двух значений из 160-байтового массива? Обновлено! Отказался нахер от центрированной ШИМ, которая нужна была для минимизации фазовых искажений после фильтрации... Переделал в оконную ШИМ (от и до) с двумя регистрами, соответственно синусная таблица вдвое похудела в объёме, прерывания только при переходе через ноль... Работает так же как центрированная, но дальнейшего алгоритмического гемору меньше. Один хер 1,5 мкс процедура жрёт.
Добавлено: Tue Oct 12, 2021 6:32 am |
Так это, к МК есть документация, там и ассемблерные команды и сколько они тактов выполняются. Конечно писать на нем долго и трудно, но можно больше утолкать. Хотя и на СИ специалисты пишут учитывая как это будет обработано компилятором. Добавлено: Tue Oct 12, 2021 10:25 am |
стесняюсь спросить, а таблица синуса где находится? на флеше? или в оперативе? или в progmem (или где-там у кортексов память программ находится) флеш вещь медленная. я все быстрое неизменяемое пихаю в прогмем. все изменяемое сначала в оперативку выкачиваю. не пишу под кортексы, но что-то подсказывает что флеш там тоже не супер скоростная около 20 команд вааще ни о чем не говорит - из нее прыгает в функции чтения всякие например. 20 инструкций может выполняться 10 минут ))) Spiriter88 писал(а): Хотя и на СИ специалисты пишут учитывая как это будет обработано компилятором. только так под контроллеры и надо писать. и никак иначе. иначе ардуино получается. помнится тут был конкурс - асм vs си vs ардуна. мигалка секундная софтовая. я на си победил )) Добавлено: Tue Oct 12, 2021 11:16 am |
Флешь там четыре сектора с чередованием. Доступ к флеши - 25 МГц всего, но за счёт чередования при последовательном чтении удаётся повысить эффективную скорость до 100 МГц, но ветвления портят эту идиллию. Загнал убрал объявление const - массив теперь в оперативке. Ну где-то 100-150 нс выиграл. Хотя если почитать доташит, то оперативка, флешь, пдп и системный таймер подключены к ядру через AMBA AHB арбитр, какбэ северный мост, а вся периферия, порты, таймеры, ацп подключены не к ядру, а к AMBA AHB арбитру через дополнительный AHB APB арбитр, какбе южному мосту. ХЗ, с каким быстродействием работает южный мост на самом деле. Добавлено! В общем увеличением массива на 90 градусов, для сокращения вычислний с объявлением массива как переменной удалось ужать выполнение тела функции в 1,2 мкс, + по 0,4 мкс на вызов и возврат - итого 2 мкс при периоде 6 мкс. Ладно, хрен с ним, оставлю пока как есть. Ну ни финды себе! НАШОЛ!!!1111 В общем, мой массив был объявлен unsigned char то есть беззнаковыми байтами. А ARM Cortex-M3 из-за системы команд Tnumb в качестве загружаемых операндов обычно полуслова жрёт. Объявил массив unsigned short - и время выполнения тела процедуры сократилось до 1 мкс, то есть на 20%. Вот не ожидал! В общем в век кортексов грех жопиться на память для переменных - минимум должно быть 16 бит. И как ни странно сократилось время возврата в главную процедуру! Итоговое время вызов-функция-возврат в чистом виде составляет около 1,5 мкс! Увеличение размерности переменных до 32-битныx unsigned int несколько снижает быстродействие - четыре байта грузятся в ядро за два присеста. Вердикт - для миландрокортексов лучше 16-битные переменные юзать, если это не идёт вразрез целевой задаче. Думаю, и к стмкам это имеет отношение! Добавлено: Tue Oct 12, 2021 12:53 pm |
Электромонтёр а какой ключ оптимизации стоит при коппозиции? Попробуй добавить -Ofast. Может ещё удастся сократить время. Добавлено: Wed Oct 13, 2021 6:10 am |
-Ofast в кокосе нет. Имеющиеся -О2, -О3 и -Оs были в моём коде не давали разницы производительности. Только переход от байтовых переменных к двухбайтовым. Это вполне согласуется с набором команд Thumb Добавлено Есть ещё такая вещь, как задержка реакции на прерывание. Проц ведь должен заныкать пять регистров в стек, сохранить адрес возврата и перейти к подпрограмме? Для разных армовых архитектур есть такая таблица:
Миландрокортекс ВЕ92 на ядре М3, поэтому 12 тактов или 150 нс на 80 МГц. Выходит, что более 100 кГц частота прерываний на 80 МГц сделать можно очень немного. В общем, в период лучше закладывать не меньше тысячи тактов. Для стмок те же яйца. Увы... DMA пока не предлагать - у Миландра он какой-то зело перемудёный. Добавлено: Wed Oct 13, 2021 8:00 am |
Ешкин кот, как я заебался с Arduino. Возникла необходимость собрать синтезатор частоты, и для интереса транзистор тестер. Год назад устанавливал , работало , прошивалось. Переустановил систему, все пиздец. Arduino IDE установилось, а драйвер нет. При подключении к ноуту ( dell e 6530, система win 10 / 64), отображается "неопознанное устройство" . Может быть граната не той системы, подумал я , пробовал на других устройствах, но бестолку. Драйвер никак не устанавливается , то не найден, то без объяснения причин "instal failure" Собственно вот Как бороться с этим ? Добавлено: Fri Oct 15, 2021 9:02 pm
|
Надо искать устаревший драйвер. Сам сталкивался с подобным для СР210х еле нашёл устаревшую версию. Добавлено: Fri Oct 15, 2021 9:43 pm |
Evan писал(а): Как бороться с этим ? Отключить обязательную проверку цифровой подписи драйверов. Добавлено: Fri Oct 15, 2021 11:16 pm |
Как силами gcc запретить использования некоторых регистров? Вот наример, функция func () {/* в ней нельзя пользоваться регистрами R4-R11*/} Можно ли кск-то обозначить запрет только для отдельно взятой функции? Добавлено: Sun Oct 17, 2021 9:07 am |
Лицензионное соглашение (c)Flyback.org.ru Российское общество любителей высоких напряжений. Использование материалов с данного сайта и форума возможно только с разрешения администрации. |