• Где посмотреть ошибки при невозможности загрузки ядра?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Решения не знаю, только направление - наконфигурять вывод консоли в последовательный порт, прицепиться к нему терминалом и смотреть
    Ответ написан
    4 комментария
  • Защита от бесконтрольного создания картинок?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Идентифицировать пользователя и вводить ограничение на количество конвертаций.

    Для разных категорий - разная степень жесткости ограничений - например, если залогинен по верифицированному акку на госуслугах - мало ограничений (10k запросов в сутки), если это куча запросов с ip, находящегося в списке выходных нод TOR - 1 запрос в сутки, дальше - капча.
    Ответ написан
    1 комментарий
  • Какой конденсатор подходит для снятия статического заряда с тела?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Никакой. Для этого нужен антистатик - аэрозоль, продается в магазинах бытовой химии.

    Браслет с заземлением - это профессиональное оборудование, он требует дополнительных и очень дорогих мер для безопасной эксплуатации - наличие правильного заземления, наличие ограничительного резистора, наличие ВДТ, наличие системы уравнивания потенциалов.
    Ответ написан
    1 комментарий
  • Как сделать "постамат", работающий по запросам с сайта?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Для того, чтобы отдать команду замку на открытие дверки, не обязательно использовать связку из ардуины и rpi. Достаточно мелкого контроллера типа ESP8266. У него уже хватит мозгов поддерживать связь с сервером и открывать замок.

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

    Более продуктивна декомпозиция "из каких этапов будет состоять разработка вундервафли".

    Она разбивается на три части:
    1) Железо: ящик с замком, электроника, питание
    2) Серверная инфраструктура - хостинг, домен, SSL, безопасность
    3) Софт, который все собирает в кучу.

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

    Смотрим, что для этой задачи понадобится в плане железа. Это esp-01 - миниатюрный модуль, который способен выйти в интернет. На GPIO2 у него есть светодиод, так что достаточно подать на модуль питание по схеме и закинуть на него простую прошивку на ардуино. (Да, Arduino-ide их поддерживает).

    Итого, нужны esp-01, блок питания на 3.3 вольта (можно две батарейки AA), адаптер USB-UART для прошивки, макетная плата и провода, чтобы собрать все в кучу.

    Пишете прошивку, которая цепляется к wifi, дергает по HTTPS скрипт на сайте и в зависимости от того, что выдал скрипт, включает или выключает GPIO. Таким образом, вы сразу обеспечиваете и минимальный уровень ИБ - никто не сможет подменить ваш сайт и командовать девайсом, для этого нужно будет подделать сертификат HTTPS.

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

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

    Личный опыт - дома через телеграм-бот управляю бытовой техникой. Все самописаное-самопайное.
    Ответ написан
    7 комментариев
  • Можно ли использовать адаптер беспроводной мыши по другому (передавать фото с устройства на ноутбук например )?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Если это обычный адаптер на 2.4 GHz - то с определенными плясками, уровня "я гуру цифровой электроники и написания своих драйверов"
    Если это обычный bluetooth -он может делать все, что может делать bluetooth - передавать файлы, звук, создавать сетевое устройство и так далее. Уровень сложности - уверенный пользователь.

    Bluetooth несут на себе логотип:
    503px-Bluetooth.svg.png
    Ответ написан
    Комментировать
  • Самая быстрая реализация алгоритма Дейкстры на javascript?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Написать на С/С++ и откомпилировать при помощи wasm. С большой долей вероятности, скорость будет не хуже нативного запуска программы на С/C++
    Ответ написан
    Комментировать
  • Как понизить напряжени на куллере от (raspberry pi) с 9В до 5В?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Для этого надо знать рабочий ток куллера - он на нем написан.
    Чтобы все происходило автоматически, вместо резистора надо использовать микросхему 7805
    Ответ написан
    3 комментария
  • ESP8266 (ESP-01) не слушается Arduino. Что делать?

    gbg
    @gbg Куратор тега Arduino
    Любые ответы на любые вопросы
    Скорости, и разрядности/четности должны совпадать на обоих устройствах.

    И надо учесть, что у ардуины IO работают на 5 вольт, а у ESP - на 3.3, нужно согласование.
    Ответ написан
  • Какую версию флеша поставить, чтобы работала в 2021?

    gbg
    @gbg Куратор тега Системное администрирование
    Любые ответы на любые вопросы
    Никакую. Переписывайте ваше добро на HTML5+CSS и так далее. Флеш официально умер.
    Ответ написан
    3 комментария
  • Проблема с AT прошивкой ESP8266 01. Как решить?

    gbg
    @gbg Куратор тега Arduino
    Любые ответы на любые вопросы
    На ESP01 размер флэша - метр, а у вас стоит 4
    Ответ написан
    1 комментарий
  • Каков алгоритм перехода от Ардуино-поделки к серии?

    gbg
    @gbg Куратор тега Arduino
    Любые ответы на любые вопросы
    По первому вопросу - да, это крайне желательно. Плюсом также идет возможность вписать плату в нужный габарит и конфигурацию корпуса, возможность выкинуть лишние детальки (вот вам нужен конвертер USB-Serial? А линейный источник питания? А разъем USB.?) и так далее. Зато нужна пачка фильтров по питанию (это же автомобиль), защита входов и выходов.

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

    Можно дальше развивать тему, отметив, что в условиях жестко ограниченных ресурсов (сколько там RAM? 8 килобайт?) язык с ручным управлением ресурсами (C, C++) гораздо более предсказуем, нежели вся такая автоматическая и удобная жаба.

    Ну и еще - я за всю свою радиогубительскую практику (более 15 лет) ни разу не покупал ардуину - я сразу проектировал прототип и делал плату (сначала ЛУТом, потом заказывал на производстве, так как это качественней и не намного дольше + на производстве изготовят сразу десяток плат, которые не страшно запороть в процессе отладки) - это
    на порядки надежнее ковыряний в клубке проводов. Ну и некоторые девайсы с аналоговым трактом (анализатор спектра, анализатор миоактивности) в виде клубка просто не работают.
    Ответ написан
    2 комментария
  • Как подключить SPI Display 240x240 (ST7789) к RaspberryPi Zero W (Python)?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Вот пост на англоязычном ресурсе, там все есть - и библиотеки питоновские на rPI, и распиновки.

    Технически, проблем с дисплеем не должно быть абсолютно никаких - он хорошо документирован. Из этого следует, что при особом желании, можно написать все с нуля.
    Ответ написан
  • Можно ли запитать устройство 5v 3a от повербанка через USB Type-C без PD триггера?

    gbg
    @gbg Куратор тега Электроника
    Любые ответы на любые вопросы
    Все зависит от доброты китайца, проектировавшего банк. Если китаец злой и следует стандартам, больше 500mA он вам без умного контроллера не отдаст.

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

    Далее, хвосты USB-C -> barell jack 5, 9, 12, 20V торгуются на том же Али буквально по цене борща в столовке - нет никаких помех, чтобы на устройстве поставить стандартную дырку под barell jack и обзавестись таким проводом с али - микросхема у него внутри разъема сидит - к вам придут 2 провода сразу с нужным напряжением.
    AMCVS200621kRcF8.jpg

    По второму вопросу (распайка) - все опять же зависит от доброты китайца. По стандарту, без комбинации резисторов на пинах (то есть, вы распаяли просто + и просто -), он вам больше 500mA 5V не отдаст.

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

    Да и пайка разъема usb-c на плату или на кабель - то еще удовольствие - без хорошего инструмента и прямых рук - вы будете портить платы и детали до приобретения инструмента и навыка пайки.
    Ответ написан
    3 комментария
  • Отличие медного и алюминиевого радиаторов?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Медь почти в два раза лучше проводит тепло чем алюминий.
    teploprovodnost_metallov.jpg
    Да и вообще, она в этом списке почти топ, лучше только серебро.
    Ответ написан
    Комментировать
  • Есть ли нативный способ написать GUI на html/css для С++ программ?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Если у вас Qt считается "тяжеленной" то увы, способа нет. Браузерный движок тянет примерно мегабайт на 50-100, Qt, Со всеми наворотами, занимает столько же, однако;

    Qt входит в дистрибутив практически всех современных линуксов, а слинкованная с ней программа занимает пару сотен килобайт. Вам не нужно таскать Qt вместе с вашей программой.
    Ответ написан
  • Как получить битовое представление типа double в C++?

    gbg
    @gbg Куратор тега C++
    Любые ответы на любые вопросы
    Идея в том, что в double 64 бита. Так что если мы воспользуемся type punning и наложим сверху дабла uint64_t, в котором тоже 64 бита, мы получим 64 битное целое число, содержащее в себе биты исходного дабла.

    *reinterpret_cast(&a)

    Далее, мы используем стандартный трюк с std::bitset для перевода числа в строку, содержащую его двоичное представление

    И потом пара полезных фактов:
    - мы выводим число и его же, но со знаком минус. Можно видеть, что знак хранится в первом бите.
    - аналогично, можем посмотреть, в каких битах хранится экспонента, посмотрев на a, 2*a, 4*a
    #include <iostream>
    #include <bitset>
    using namespace std;
    
    void printBits(const double a)
    {
    	cout << bitset<64>(*reinterpret_cast<const uint64_t*>(&a)) << endl;
    }
    
    int main() 
    {
        const double a = 3.14;
        printBits(a);
        printBits(-a);
        printBits(a*2);
        printBits(a*4);
        return 0;
    }
    0100000000001001000111101011100001010001111010111000010100011111
    1100000000001001000111101011100001010001111010111000010100011111
    0100000000011001000111101011100001010001111010111000010100011111
    0100000000101001000111101011100001010001111010111000010100011111

    Ideone
    Ответ написан
    1 комментарий
  • Законно ли писать книгу по фреймворку?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Есть официальный гайд, в котором есть раздел 2.8 (@bacon, спасибо за уточнение), который прямо запрещает использовать лого на обложке книги без прямого письменного разрешения
    Ответ написан
  • Подключить сервер через коммутатор?

    gbg
    @gbg
    Любые ответы на любые вопросы
    между коммутаторами настраиваете транк (switchport mode trunk)
    далее толкаете нужные порты в нужные vlan (switchport mode access ; switchport access vlan XXX)
    поздравляю, вы великолепны
    Ответ написан
  • Высокочастотный писк в блоках питания, как убрать?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Купить качественный блок питания, в котором не сэкономлено на фильтрах
    Ответ написан
    Комментировать
  • Как настроить сетевой сокет в linux?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Почитать учебник Снейдера по TCP/IP.
    В частности, то место, где написано, что read (write) может считать меньше байт, чем у нее указано в качестве параметра.
    Ответ написан
    9 комментариев