Как стать автором
Обновить
124
0

Пользователь

Отправить сообщение

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

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

Вы вообще о чем, какое "око за око"? Какая кровавая баня? Кажется, вы отвечаете на что-то свое, о чем я не говорил.

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

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

При этом судей в стране около 40 тысяч. А людей, работающих в силовых ведомствах, в сумме около 2.6 млн. Это люди с оружием, у которых работа защищать население. Которые получают ежемесячно за это зарплату. Нельзя такое количество людей считать паталогическими маньяками с отклонениями в психике, которые могут безразлично смотреть на несправедливость с вами. Но молча смотрят... Почему?

В этом смысле государство _уже напало_ на граждан. Применило к ним насилие. Причем сделала это небольшая группка бандитов, а не все 2.6 млн силовиков. Противодействие этой группе преступников, в том числе с применением насилия, это не насилие и не "око за око". Это самооборона. Становление гражданского общества, способного себя защитить. Вот о чем речь. Как я бы представлял нормальное общество, в котором хотел бы жить? Речь про уже запущенные условия, в которых нормальные государственные институты, вроде выборов, уже не работают. Первое предупреждение: массовый мирный митинг, чтобы показать власти число недовольных. Второе предупреждение: национальная забастовка на неделю-две. И только после этого вооруженное восстание, с насильным отстранением от власти верхушки мвд и фсб (т.е. служб, не справившихся со своими функциями), а также изоляцией от общества судей, выносивших несправедливые решения, и полицейских, участвовавших в репрессиях.

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

Ну, я видел как в Москве полицейские избивали дубинками обычных граждан, вышедших на мирный митинг. Слышал (в видеозаписи) крики боли с Окрестино, где полицейские пытали в отделении обычных граждан, в том числе несовершеннолетних и девушек. У вас от этого не болит?

Насилие уже есть. Со стороны государства по отношению к гражданам.

Как-то не сильно афишируется в таких новостях, что CRISPR просто разрезает ДНК в месте, совпадающем с ее шаблоном. Причем очень коротким шаблоном, из-за чего им нельзя вырезать произвольные длинные куски, которые нужны для редактирования. Да и процент ошибок порядка 20% тоже не позволяет применить CRISPR ко всем клеткам, иначе это будет конец организму. А редактирование заключается в том, чтобы таскать за собой нужную последовательность нуклеотидов, чтобы собственные системы репарации (починки) ДНК в клетке случайно вклеили этот кусок в место разрыва. Который они могут вклеить, а могут и нет. Не говоря о том, что сама система починки разрезанной ДНК далеко не совершенна...


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

Или у них будет ещё хуже и им будет не до анализа наших времен… Как показывает опыт Беларуси и сейчас России, чем больше хороших добрых граждан в стране, тем они бессильнее. Маленькая группа вооруженных бандитов может творить любые бесчеловечные преступления, а все будут смотреть на это и ничего не делать. Просто нет никого, кто готов взять в руки оружие и перестрелять этих ублюдков. Зато теперь стало ясно, как в Германии фашисты пришли к власти.


С другой стороны (альтернативная точка зрения, чтобы не быть однобоким), всегда есть прекрасная возможность сопротивления даже у безоружных хороших людей — всеобщая забастовка. Просто не выйти на работу и ничего не делать. В Беларуси, кстати, была такая попытка. Объявили общую забастовку… Но на следующий день рабочие вышли на заводы, как и большая часть населения. Какие отсюда выводы? Грустные, вот какие.

Да… Идей там можно придумать много) Мне, например, очень нравится идея с визуальной одометрей (ORB SLAM 2), с синхронизацией по редким ARUCO маркерам, стоящим по углам газона. Как это сделано в UcoSLAM. Так газонокосилка сможет ездить между кустами, а маркеры будут синхронизировать с глобальной картой и давать реальный масштаб.

Мне переделка бензиновой обошлась в 2000 руб за б/у гироскутер и ещё два самоцентрирующихся колёсика спреди, кажется по 200 руб за штуку. И управление через ESP8266. Я просто на штатные оси косилки закрепил деревянный брусок 40х40 мм, а к нему прикрутил мотор-колеса родными зажимами, снятыми с корпуса гироскутера. Получилось очень просто и бюджетно. Я наверно напишу статью через пару недель, надо только наделать фотографий и причесать код.

Да, если не поднимать wifi и http/websocket сервер, то наверно почти не будет отличаться от микроконтроллеров arduino (atmega) или stm32. Я так понял, именно wifi и его tcp стек много жрут, что аж аппаратный таймер и прерывания могут перебивать (но не всегда, видимо какое-то стечение обстоятельств, вроде слабого уровня сигнала на пределе дальности, и связанные с этим ошибки. Или большая нагрузка от частых запросов (у меня они были каждые 20-30 мс)). За информацию что нормально работает с шаговыми двигателями спасибо, буду иметь ввиду.

По самодельной RC газонокосилке пока особо нечего сказать, так как она не до конца сделана (может позже напишу статью) - обычная бензиновая, к которой приделаны колеса от б/у гироскутера с его родной, но перепрошитой платой . Управление моторами по UART, поэтому ESP32 хорошо вписалась, так как на ней можно параллельно запустить кучу своей логики и сложный HTML интерфейс на телефоне/планшете (что особенно важно на этапе отладки с обратной связью). Я пытаюсь заставить ее определять высоту травы с помощью нескольких ультразвуковых HC-SR04 и лазерных VL53l0X дальномеров и следовать по границе скошенной травы, как делают автоматизированные сельскохозяйственные комбайны. Идея в том, чтобы вручную по радиоуправлению проехать по контуру, а внутри она сама по спирали все скосит сама. Но пока нормально работает только ручное радиоуправление. В будущем хотелось бы прикрутить сегментацию скошенной/не скошенной травы и всех препятствий нейросетью, чтобы сделать полностью автоматической. Я даже обучил пару тестовых нейросеток - на первый взгляд, работает довольно неплохо. Нейросеть успешно различает скошенные и не скошенные участки. Но пока не удалось избавиться от вибраций камеры, это планы на следующий сезон. В этом смысле ESP32 как базовый контроллер очень хорош, потому что к нему одновременно по wifi может подключиться пульт ручного управления (телефон или вторая ESP32 с джойстиком) и внешний компьютер с нейросетью и автопилотом, работающий по камере. От первоначального варианта с Aruco маркерами и определения своих координат на карте относительно них пришлось отказаться, потому что в реальности они камерой телефона определяются всего с 4-5 м, и оказываются часто загорожены листвой/кустами/деревьями.

В следующей версии будет распознавание не только лиц, но и эмоций. На эскалаторе будет громогласно транслироваться: "ПУТИН!", и всех кто скривит недовольное лицо, система автоматически будет бить током )


А если серьезно, то хорошая штука, но только в гражданском обществе. Где она не будет использоваться ни для чего другого, например для отслеживания перемещений на протестные митинги. Или для персональной рекламы. И биометрическая идентификация всегда должна быть добровольной, то есть кто хочет оставаться невидим для системы, имеет такое право. Причем реально о нем не должно оставаться никаких следов, а не просто "мы отслеживаем, но не используем". Собственно, все это очевидные права человека в нормальном гражданском обществе.

Вот насчет этого не знаю. Я сам думал, что wifi и tcp стек в них аппаратные, по аналогии как реализованы другие аппаратные протоколы, вроде uart/i2c. То есть, это отдельный аппаратный блок, общение с которым делается записью байтов в некоторый участок памяти или в регистры. Из которых он сам потом читает и делает свою работу независимо от центрального процессора. Но оказалось, что довольно значительные ресурсы основного процессора как раз заняты обработкой wifi. А наш пользовательский код — только пассажир на этом поезде).


С отключенным wifi я не пробовал. В документации, кстати, пишут что работа в качестве точки доступа более нестабильна и потребляет больше ресурсов, чем в режиме станции (собственно, на esp8266 максимум подключенных клиентов по умолчанию только 4, что тоже говорит об ограниченности ресурсов). Кстати, если кому потребуется именно стабильная работа wifi блока на ESP, то я в итоге пришел к такой схеме: посылать HTTP запросы GET к ESP не по таймеру setInterval(), а последовательно. То есть, обязательно дождаться ответа (какой-нибудь OK со стороны микроконтроллера), а после делать новый GET запрос. Потому что, похоже, накладывающиеся запросы тоже ее сильно нагружают. И дополнительно использовать таймаут в запросах (для fetch() а javascript есть механизм через signal). Иначе пропавшие пакеты или неудачный запрос могут повесить связь на десятки секунд, вплоть до перезагрузки модуля, а со своим таймаутом у вас будет фиксированная задержка не более 500 мс или секунды, сколько поставите. С таким подходом радиоуправление ESP через wifi в реальном времени работает более менее нормально (я его сейчас использую для RC газонокосилки, получается вполне приемлемо, сравнимо с авиамодельными пультами).

Возможно, вы правы, и дело было в конкретном проекте или не очень качественных модулях. В коде ничего необычного - два датчика холла в качестве двухстороннего энкодера, авиамодельный ESC от мультикоптера с быстрой реакцией (т.е. почти без внутренних фильтров) и стандартная библиотека Servo.h (хотя пытался написать и свою). Это была электролебедка, которая могла включаться на 200-300 мс с несколькими десятками оборотов двигателя через редуктор за это время. Поэтому нужно было точное управление, так как даже одиночные пропуски прерываний были нежелательны. Нюанс в том, что в цикле использовался человек, поэтому были повышенные требования к надежности, иначе это могло привести к травмам. И отсюда же было тщательное и долгое тестирование. К сожалению, на обоих ESP8266 и ESP32 на нескольких экземплярах, купленных у разных производителей, так и не удалось достичь надежной работы без сбоев. Либо раз в несколько секунд начинались пропуски прерываний от датчиков холла, либо появлялись случайные задержки в тайминге PWM сигнала более 0.1 мс, что в моем случае означало либо блокировку мотора во время работы, либо снятие с тормоза, когда он в режиме торможения. А на голом Arduino Nano ни разу ошибок не было. Все варианты конверторов логического уровня, разных библиотек, пинов и всего что только можно было придумать, разумеется были перепробованы. Поведение было одинаковым на всех трех Arduino Core, Espruino и Micropython, что и послужило последней точкой, что проблема аппаратная, раз не зависит от разных языков. Я находил по форумам аналогичные проблемы у людей, кто пытался работать на ESP с точным таймингом (например, с PWM управлять напрямую мосфетами). В итоге мы сдались и остались на Arduino Nano V3 (для прототипирования, я имею ввиду). Однако на более простых задачах, быстродействия ESP должно хватать. Поэтому ни в коем случае не говорю, что они принципиально не годятся для управления моторами или сервоприводами по радиоуправлению. Но с осторожностью... У нас не получилось.

Использует. По крайней мере, Arduino Core и Espruino последних версий (про Micropython не знаю). Но это не очень помогало, т.к. у wifi все равно более высокий приоритет. Но вообще, может я слишком категорично заявлял насчет серво и PWM, возможно это была специфика моего проекта или конкретно моих модулей. Я встречал аналогичные проблемы по форумам, когда разбирался в чем дело. Но в интернете также полно статей, где никакие проблемы с серво у ESP не упоминаются. Наверно надо просто пробовать и все.

Вот поэтому вместо NRF24L01 (хотя у меня они с припаянными 10uF конденсаторами, RF24_250KBPS и RF24_PA_LOW нормально работают, запитываясь от штатного 3.3V пина с Arduino Nano) я уже давно использую ESP8266. При сравнимой стоимости (100 руб против 60 руб), тот же диапазон 2.4ГГц и сравнимая дальность. Если нужно радиоуправление только в одну сторону, то достаточно по UART напрямую соединять ESP8266 с Rx пином у Arduino Nano, так как ардуинка на чтение прекрасно работает с 3.3V, а обратно 5V от ардуинки на ESP не попадает. Хотя саму ESP8266 приходится питать от 5V пина ардуино через AMS1117, т.к. 3.3V пин от ардуино не потянет нужные ей 300-400 мА в пике, а пин 5V выдает не менее 500 мА.

А если нужна обратная/двухсторонняя связь, то есть прикольный трюк с I2C: в штатной библиотеке Wire.h в Arduino можно закомментировать включение подтягивающих встроенных резисторов до 5V, и использовать ESP8266 как мастер со своими встроенными подтягивающими резисторами. Тогда обе линии SDA и SCL будут 3.3V от ESP8266. И поэтому ESP8266 и Arduino можно напрямую соединять двумя проводами, вообще без конвертора уровней (и плюс общая GND, конечно). I2C устроена так, что оба устройства просто закорачивают в 0 линии, когда хотят что-то передать. Поэтому 5V от ардуинки на ESP8266 тоже никак не попадает. НО! Штатная библиотека Wire.h включает подтягивающие резисторы, делающие на SDA и SCL пинах 5V, даже если arduino работает как slave. Поэтому приходится это комментировать и/или сохранять ее как альтернативную библиотеку. Бонусом, на ESP8266 удобно вести отладку с телефона, да и просто использовать телефон как пульт управления, вместо второй пары arduino+NRF24L01.

Я сейчас вижу, что как-то слишком многословно и непонятно описал. Если коротко, процессор ESP занят своей основной работой - поддержкой Wi-Fi. То что мы пишем для него программы - это внедряем свой дополнительный код к тому коду, который на нем уже работает. Причем обработка Wi-Fi для чипа остается основным приоритетом. Поэтому нельзя своим кодом задерживать непрерывно процессор дольше, чем на несколько миллисекунд. Иначе он по watchdog упадет. И обработка сами чипом Wi-FI вносит непредсказуемые задержки, так как у него более высокий приоритет. Это основное отличие ESP32 и ESP8266 от обычных микроконтроллеров, вроде чипов Atmel в Arduino.

У обычных такие аппаратные штуки действительно аппаратные: например, для реализации UART есть буфер, куда ваша программа записывает строку, а дальше микроконтроллер эту строку отсылает аппаратно в течении некоторого времени, не задерживая вашу программу (она продолжает выполняться, как обычно). Но у ESP нет по-настоящему аппаратного Wi-FI. Они обрабатывают его софтверно самим же процессором, на котором крутится и ваша программа. При этом у ESP есть и типичные аппаратные решения, вроде аппаратного UART с его буфером. Таймеры там всякие, регистры и прочие характерные для обычных микроконтроллеров вещи. Что позволяет относиться к ESP и программировать их как обычные микроконтроллеры. Точнее, это и есть обычный микроконтроллер. У которого единственное предназначение - обработка Wi-Fi. Просто из-за избыточной производительности, мы можем внедрять в него свой код и получать доступ к некоторым аппаратным частям, например тому же аппаратному UART, пинам, таймерам, прерываниям и т.д. Но не ко всем. Часть с Wi-Fi разработчиком закрыта и поэтому для ESP невозможно написать полноценную прошивку, превращающую ее в обычный микроконтроллер с полным контролем над его аппаратными ресурсами. Впрочем, для большинства задач это и не нужно.

Мда, коротко опять не получилось, простите). Я просто большой поклонник этих чипов, жаль только в нескольких нужных мне проектах с точным таймингом столкнулся с проблемами из-за этих ограничений. Но главным их достоинством (помимо дешевизны), имхо является возможность запускать на них javascript (через Espruino) и python (через Micropython). На этих языках программирование ESP превращается в сплошное удовольствие, по сравнению с Си. Так как проекты на ESP из-за поднятого HTTP сервера с html интерфейсом обычно получаются более сложные, чем типичные для ардуинок. Поэтому синтаксический сахар этих языков приходится очень кстати.

Это из-за того, что ESP32 и ESP8266 работают не так, как обычные микроконтроллеры. В обычных разработчик чипа предоставляет полное аппаратное описание чипа, и пользовательская прошивка - это единственный код, который работает в микроконтроллере. Программа пользователя только записывает и считывает биты в регистры. А дальше микроконтроллер делает всю работу аппаратно. Это позволяет точно знать число тактов, сколько занимает каждая команда. И, например, задавать точные временные интервалы при генерации ШИМ сигнала. А также вовремя реагировать на прерывания. А у ESP часть архитектуры закрыта, а доступ к аппаратным функциям делается через софтверный API. То есть, параллельно с вашей прошивкой, внутри ESP крутится какой-то код от производителя чипа. Он жрет много ресурсов и приводит к непредсказуемым задержкам. Поэтому ESP не могут выдерживать точные временные интервалы. Это приводит к куче проблем с управлением электродвигателями и сервоприводами (даже с использованием внешних аппаратных драйверов). Моторы могут дергаться, врубаться неожиданно на полный газ и все такое. По этой же причине на ESP возникают проблемы у софтверных реализаций протоколов UART/I2C/OneWire и при обработке прерываний.

В общем, для очень многих точных аппаратных задач esp НЕ МОГУТ заменить ардуино или stm. И это очень жаль, потому что ESP действительно классные и дешевые чипы. Было бы круто все делать чисто на них. Хотя благодаря большой частоте 80/160/240 МГц, эта проблема сглаживается, конечно. Если подключить обычную серву, то она на первый взгляд, даже заработает. Но может непредсказуемо дергаться и глючить. Аналогично с попыткой собрать на базе ESP энкодер на датчиках холла для определения скорости вращения быстрых моторов, с этим совсем беда. Оно то работает, то пропускает прерывания.

Но для простых задач - вроде обработать нажатия кнопок и обеспечивать web интерфейс, ESP прекрасно подходят. Да и пауза между постоянно пересылаемыми GET запросами там на практике всего около 30 мс, что очень круто. Можно на базе ESP делать радиоуправление в почти реальном времени. Но надо быть готовым к тому, что в любой момент ESP может зависнуть на 300-1500 мс. При этом, если вы своим кодом задержите ESP то ли на 1 мс, то ли на 10 мс, то она молча упадет. Вот такая несправедливость =). Через websocket, который держит соединение постоянно открытым и имеет меньше накладных расходов, пауза между пакетами чуть меньше 20 мс (но сами библиотеки weboscket жрут довольно много памяти, если ее не хватает, проще делать на обычных GET запросах, разница невелика).

P.S. В ESP32 двухядерный процессор, вроде можно один выделить чисто под свой код, на который внутренний код от производителя не будет влиять, но это сложно и требует нестандартных процедур при программировании.

На ESP32, как и на ESP8266, прекрасно ставятся как Espruino, так и Micropython. Чтобы такие небольшие проекты писать на javascript или python, кому что привычнее. По быстродействию они примерно одинаковы. Espruino удобнее из-за встроенной IDE для заливки. Точное выдерживание PWM сигнала для ESC контроллеров для мощных двигателей или гарантированную обработку прерываний, например от датчиков холла, обе версии ESP не тянут по своим внутренним причинам, независимо от языка. Поэтому писать в ардуино среде на голом С для них нет особого смысла, это не поможет. И так как на этих микроконтроллерах обычно поднимается http или websocket сервер со встроенной html страничкой, то писать скрипт для ESP удобнее сразу в одном стеке, т.е. сразу на javascript (Espruino). Кстати, для радиоуправления даже нет необходимости использовать постоянное websocket соединение, отдельные http запросы обе ESP тянут с частотой в 20-30 мс, что сравнимо с классическими RC пультами. И для управления машинкой в html интерфейсе на телефоне удобно использовать слайдеры, а не кнопки.

Нет. Просто сравните время прохождения пули по стволу с характерным временем реакции организма.

Я подозревал это, спасибо. Просто слышал от человека, хорошо знакомого со стелковым оружием. Хотя он говорил ещё что-то про позу, мол, перед осознанным выстрелом человек группируется. Но это тоже сомнительно, какая разница как группируется, если первый выстрел пуля работает с массой самой винтовки. Отдача — это уже потом. Ну и комментарий выше про лучшие выстрелы в расслабленном состоянии тоже звучит правдоподобно. Чтобы своими мышечными усилиями человек не отклонил ствол в последний момент.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность