1. Мир пытается оставить тебя тупым. Начиная от банковских платежей и процентов и заканчивая чудо-диетами — из необразованных людей легче вытрясти деньги и ими проще управлять. Занимайтесь самообразованием столько, сколько можете — для того, чтобы быть богатым, независимым и счастливым.
Слава @KoteSoft
User
Автоматический определитель электронных компонентов
3 min
164K![](https://habrastorage.org/files/06f/743/68e/06f74368e6654999908971913c598e55.jpg)
Очень интересное и несложное устройство, которое позволит измерить сопротивление, ёмкость и индуктивность любого элемента за несколько секунд.
Для этого потребуется совсем немного деталей, которые обычно есть у каждого начинающего ардуинщика: микроконтроллер ATMEGA, двухстрочный дисплей и несколько резисторов.
+58
Быстрое возведение чисел от 1 до 100 в квадрат
3 min
142KTutorial
Вдохновленный этой статьей, решил поделиться с вами способом быстрого возведения в квадрат. Возведение в квадрат более редкая операция, нежели умножение чисел, но под нее существуют довольно интересные правила.
![](https://habrastorage.org/storage2/4be/df3/0c2/4bedf30c2410ab76334d86f35aaf689c.png)
*квадраты до сотни
Для того, чтобы бездумно не возводить в квадрат по формуле все числа, нужно максимально упростить себе задачу следующими правилами.
![](https://habrastorage.org/storage2/4be/df3/0c2/4bedf30c2410ab76334d86f35aaf689c.png)
*квадраты до сотни
Для того, чтобы бездумно не возводить в квадрат по формуле все числа, нужно максимально упростить себе задачу следующими правилами.
+48
Задача об определении принадлежности точки многоугольнику
5 min
11KЗдравствуйте, уважаемые хабравчане!
В процессе разработки приложения под Android, которое предполагает взаимодействие пользователя с графическими примитивами (точками, линиями, эллипсами, прямоугольниками и т.д.), возникла довольно неприятная ситуация: пользователь может задать произвольный многоугольник и сделать его неактивным, однако чтобы в будущем была возможность активировать данный многоугольник и продолжить с ним работь (например, переместить в другое место или добавить/удалить вершины) необходимо для неактивного объекта определить, коснулся ли пользователь данного объекта, т.е. потребовалось решить вопрос о принадлежности точки многоугольнику.
Данная задача широко известна в вычислительной геометриии и я предлагаю вашему вниманию результаты моего исследования данной темы.
В процессе разработки приложения под Android, которое предполагает взаимодействие пользователя с графическими примитивами (точками, линиями, эллипсами, прямоугольниками и т.д.), возникла довольно неприятная ситуация: пользователь может задать произвольный многоугольник и сделать его неактивным, однако чтобы в будущем была возможность активировать данный многоугольник и продолжить с ним работь (например, переместить в другое место или добавить/удалить вершины) необходимо для неактивного объекта определить, коснулся ли пользователь данного объекта, т.е. потребовалось решить вопрос о принадлежности точки многоугольнику.
Данная задача широко известна в вычислительной геометриии и я предлагаю вашему вниманию результаты моего исследования данной темы.
+28
100 ватт по USB или как работает Power Delivery
9 min
170KПочитав вот этот пост и сопутствующую ему дискуссию, я решил попробовать внести ясность в то, что такое USB Power Delivery и как это работает на самом деле. К сожалению у меня сложилось впечатление, что большинство участников дискуссии воспринимают 100 ватт по USB слишком буквально, и не до конца понимают что за этим стоит на уровне схематики и протоколов.
Итак, кратко – основные пункты:
Под катом — детали.
Итак, кратко – основные пункты:
- USB PD определяет 5 стандартных профилей по электропитанию – до 5V@2А, до 12V@1.5А, до 12V@3А, до 12-20V@3А и до 12-20V@4.75-5А
- Кабели и порты для Power Delivery сертифицируются и имеют дополнительные пины в разьеме
- Тип кабеля и его соответствие профилю определяются автоматически через дополнительные пины и определение типа USB коннектора (микро, стандарт, A, B и т.д.)
- Обычные USB кабели (не Power Delivery) сертифицируются только по первому профилю до 5V@2A
- При подключении распределяются роли, между тем кто дает ток (Source / Источник ) и кто потребляет (Sink / Приемник)
- Источник и Приемник обмениваются сообщениями по специальному протоколу, который работает параллельно традиционному USB
- В качестве физического носителя протокол использует пару – VBus / GND. Именно поэтому Power Delivery не зависит от основного USB протокола и обратно совместим с USB 2.0 и 3.0
- Используя сообщения, источник и приемник могут в любой момент времени меняться ролями, изменять силу тока и/или напряжение, уходить в спячку или просыпаться, и т.д.
- По желанию устройства могут поддерживать управление PD через традиционные USB запросы, дескрипторы и т.д.
Под катом — детали.
+75
Жизнь разработчика (в картинках)
1 min
66KВзято отсюда специально для хабра. Возможно, в некоторых из ситуаций вы узнаете себя.
Когда я показываю босу, что окончательно пофиксил баг
![](https://habrastorage.org/storage2/97e/7f3/a2c/97e7f3a2c626d1734d5242bc13174839.gif)
Когда проджект-менеджер входит в офис
![](https://habrastorage.org/storage2/217/7f4/52e/2177f452e2078fe80a3d2bbd924c91e9.gif)
Когда я показываю босу, что окончательно пофиксил баг
![](https://habrastorage.org/storage2/97e/7f3/a2c/97e7f3a2c626d1734d5242bc13174839.gif)
Когда проджект-менеджер входит в офис
![](https://habrastorage.org/storage2/217/7f4/52e/2177f452e2078fe80a3d2bbd924c91e9.gif)
+516
Автономный SDR приёмник на ПЛИС
8 min
112K![image](https://habrastorage.org/getpro/habr/post_images/45f/17c/7e9/45f17c7e996242bbf8edb85d86ba8f26.jpg)
Ранее я уже писал про самодельный SDR приемник, сделанный на базе отладочной платы DE0-nano. Как и большинство других SDR приемников, он не был способен работать без подключения к компьютеру. При этом в использованной ПЛИС оставалось еще большое количество неиспользованных ресурсов, так что я решил сделать приемник полностью автономным.
О том, как же работает весь SDR приемник целиком, и как его реализовать — далее.
+64
Создание модели электронного компонента для Proteus на Lua
10 min
35KЕсть у меня несколько проектов-долгостроев, один из которых — создание компьютера на базе CDP1802. Основную плату моделировал на бумаге и в Proteus.
Довольно скоро встал ребром вопрос: как быть с элементами, которые отсутствуют в Proteus?
На многих ресурсах подробно описано, как создать свою модель на С++ в Visual Studio.
К сожалению, при сборке под линуксом этот вариант не очень удобен. Да и как быть, если не знаешь С++ или нужно редактировать модель на лету для отладки?
Да и просто хочется сосредоточиться на моделировании, максимально упростив все остальное.
Так появилась идея делать симуляторные модели с помощью скриптов — на Lua.
Заинтересовавшихся прошу под кат (гифки на 2Мб).
![](https://habrastorage.org/files/691/fd5/6b9/691fd56b988743d4bd342bd5983ee323.jpg)
Довольно скоро встал ребром вопрос: как быть с элементами, которые отсутствуют в Proteus?
На многих ресурсах подробно описано, как создать свою модель на С++ в Visual Studio.
К сожалению, при сборке под линуксом этот вариант не очень удобен. Да и как быть, если не знаешь С++ или нужно редактировать модель на лету для отладки?
Да и просто хочется сосредоточиться на моделировании, максимально упростив все остальное.
Так появилась идея делать симуляторные модели с помощью скриптов — на Lua.
Заинтересовавшихся прошу под кат (гифки на 2Мб).
![](https://habrastorage.org/files/691/fd5/6b9/691fd56b988743d4bd342bd5983ee323.jpg)
+28
Модульные аналоговые синтезаторы
11 min
119KПеребирая старые документы, нашел статью, с которой у меня началась страсть к аналоговому модульному синтезу звука. Хочу вдохновить и вас.
![](https://habrastorage.org/files/889/c47/305/889c47305bd042b286da389fb14068e5.jpg)
![](https://habrastorage.org/files/889/c47/305/889c47305bd042b286da389fb14068e5.jpg)
+62
Итоги пяти лет жизни электронщика в стиле фриланс. Последняя осень?
16 min
122KВ прошлой статье, посвящённой выбору комфортной среды обитания такому редкому в наших краях зверю, как фрилансеру электронщику, я обещал освятить основные вопросы своей деятельности — рассказать о том как искать клиентов, где они живут, и наконец, как с ними общаться. Не весь мой опыт положительный, за весьма удачным стартом последовал спад, но анализ ошибок порой бывает важнее, чем чтение истории успеха. Умные предпочитают учиться на чужих ошибках.
![image](https://habrastorage.org/files/ad0/122/405/ad0122405ae145219016d40af5b81beb.JPG)
Последняя осень?
Признаться, я долго колебался как поступить — иллюстрировать свои рекомендации и советы примерами из личного опыта, либо ограничиться их перечислением с короткими комментариями. Так и не сделав выбор, решил сразу написать две статьи и выложить их одну за другой, с разницей в день. Эта рассказывает о моём опыте на примерах, которые я сопровождаю комментариями. Если у вас мало времени и вам более интересны краткие содержательные выводы и конкретные рекомендации, просьба не тратить время на мой сегодняшний опус, а прочитать мою следующую статью, которую я специально публикую одновременно с этой.
Конечно, можно было бы просто составить сухую выжимку из полезных рекомендаций, но, думаю, что легче они будут восприниматься, если будут подкреплены рассказом о моём личном личном опыте. Реальные события воспринимаются проще, чем на сухие строчки.
В этом посте я попробовал в качестве эксперимента выровнять фотографии по ширине текста. Надеюсь, этот эксперимент не вызовет отторжения в хабрасообществе.
Последняя осень?
Признаться, я долго колебался как поступить — иллюстрировать свои рекомендации и советы примерами из личного опыта, либо ограничиться их перечислением с короткими комментариями. Так и не сделав выбор, решил сразу написать две статьи и выложить их одну за другой, с разницей в день. Эта рассказывает о моём опыте на примерах, которые я сопровождаю комментариями. Если у вас мало времени и вам более интересны краткие содержательные выводы и конкретные рекомендации, просьба не тратить время на мой сегодняшний опус, а прочитать мою следующую статью, которую я специально публикую одновременно с этой.
Конечно, можно было бы просто составить сухую выжимку из полезных рекомендаций, но, думаю, что легче они будут восприниматься, если будут подкреплены рассказом о моём личном личном опыте. Реальные события воспринимаются проще, чем на сухие строчки.
В этом посте я попробовал в качестве эксперимента выровнять фотографии по ширине текста. Надеюсь, этот эксперимент не вызовет отторжения в хабрасообществе.
+170
15 малоизвестных команд Linux
3 min
316KTranslation
Каждому разработчику в определенной степени следует овладеть навыками работы в терминале. Физически находиться у компьютера не всегда возможно, поэтому приходится подключаться удаленно. И действительно, GUI-программы вполне могут с этим с правиться, но зачастую они работают медленнее, чем получение доступа через тот же терминал (в конце концов, это лишь обмен текстом).
+215
Получение снимков с цифровой зеркальной камеры (Nikon) из программного кода на c#
2 min
11KЗдравствуйте.
Столкнулся я с задачей получения фотографий с фотокамеры в моей программе на c#, причем надо было так, чтобы пользователь нажал кнопку в программе, или случилось какое-то программное событие, и мы ррррраз и получили снимок с камеры в программу и дальше его как-нибудь обработали/сохранили/отправили, в общем сделали с ним что-нибудь программным же образом.
Как оказалось, у производителей цифровых зеркальных фотокамер есть специальный SDK, через который можно программным путем к этой самой камере обратиться и поуправлять ею. У меня камера Nikon D5200, хотя для Sony и Canon вроде бы тоже видел подобный SDK.
Цель статьи рассказать о возможности и показать короткий пример. Как известно, если вы знаете что что-то можно сделать, то узнать, как это сделать – пара пустяков.
Столкнулся я с задачей получения фотографий с фотокамеры в моей программе на c#, причем надо было так, чтобы пользователь нажал кнопку в программе, или случилось какое-то программное событие, и мы ррррраз и получили снимок с камеры в программу и дальше его как-нибудь обработали/сохранили/отправили, в общем сделали с ним что-нибудь программным же образом.
Как оказалось, у производителей цифровых зеркальных фотокамер есть специальный SDK, через который можно программным путем к этой самой камере обратиться и поуправлять ею. У меня камера Nikon D5200, хотя для Sony и Canon вроде бы тоже видел подобный SDK.
Цель статьи рассказать о возможности и показать короткий пример. Как известно, если вы знаете что что-то можно сделать, то узнать, как это сделать – пара пустяков.
-5
Использование MongoDB в Java EE 6
4 min
27K![](https://habrastorage.org/storage1/3bd958b6/3da424e5/b87d8b55/0bb0e484.png)
MongoDB — документо-ориентированная NoSQL СУБД, не требующая описания схемы таблиц. Больше о ней можно узнать на оф. сайте, а в данной статье я опишу пример использования MongoDB в Java EE 6 приложении.
+30
+23
LED подсветка монитора своими руками
10 min
445K![](https://habrastorage.org/getpro/habr/post_images/299/406/94c/29940694cf18860d0b9821eb09d24fb2.jpg)
Время незаметно идет и казалось бы недавно купленная техника уже выходит из строя. Так, отработав свои 10000 часов, приказали долго жить лампы моего монитора (AOC 2216Sa). Вначале подсветка стала включаться не с первого раза (после включения монитора подсветка выключалась через несколько секунд), что решалось повторным включением/выключением монитора, со временем монитор приходилось выключать/выключать уже 3 раза, потом 5, потом 10 и в какой-то момент он не мог включить подсветку уже вне зависимости от числа попыток включения. Извлеченные на свет божий лампы оказались с почерневшими краями и законно отправились в утиль. Попытка поставить лампы на замену (были куплены новые лампы подходящего размера) успехом не увенчалась (несколько раз монитор смог включить подсветку, но быстро опять ушел в режим включился-выключился) и выяснение причин в чем может быть проблема уже в электронике монитора привели меня к мысли о том что проще будет собрать собственную подсветку монитора на светодиодах чем ремонтировать имеющуюся схему инвертора для CCFL ламп, тем более в сети уже попадались статьи показывающие принципиальную возможность такой замены.
+85
Основы Scala. 5 часов поедания мозгов
3 min
63KTutorial
Добрый день, уважаемое хабрасообщество!![image](https://habrastorage.org/getpro/habr/post_images/25c/d05/455/25cd054557efb7d21efd9a4f127f95f9.png)
В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».
Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
![image](https://habrastorage.org/getpro/habr/post_images/25c/d05/455/25cd054557efb7d21efd9a4f127f95f9.png)
В конце ноября 2013 года мы с коллегой устроили встречу, на которой провели сеанс «интенсивного введения Scala в мозг добровольцев».
Выкладываю на суд общественности наше творчество и краткое описание «эксперимента».
+50
Определение местоположения отключенного телефона: миф?
3 min
222KЧитая недавно опубликованный топик «Как Facebook защищал тунисские аккаунты», в самом конце статьи обратил внимание на случай с Минском. Читая комментарии по ссылке, наткнулся на утверждение, что можно прослушать отключенный телефон и разные советы, в том числе вынимание аккумулятора.
По поводу отслеживания включенного аппарата, — сомнений нету, — есть LBS, и его не стоит путать с A-GPS. Да и сам МТС в 2009-м году анонсировал услугу определения местонахождения.
По поводу отслеживания включенного аппарата, — сомнений нету, — есть LBS, и его не стоит путать с A-GPS. Да и сам МТС в 2009-м году анонсировал услугу определения местонахождения.
+285
Длинная арифметика от Microsoft
9 min
117KВведение
Известно, что компьютер может оперировать числами, количество бит которых ограниченно. Как правило, мы привыкли работать с 32-х и 64-х разрядными целыми числами, которым на платформе .NET соответствуют типы Int32 (int) и Int64 (long) соответственно.
А что делать, если надо представить число, такое как, например, 29! = 8841761993739701954543616000000? Такое число не поместится ни в 64-х разрядный, ни тем более 32-х разрядный тип данных. Именно для работы с такими большими числами существует длинная арифметика.
Длинная арифметика — в вычислительной технике операции (сложение, умножение, вычитание, деление, возведение в степень и т.д.) над числами, разрядность которых превышает длину машинного слова данной вычислительной машины. Эти операции реализуются не аппаратно, а программно, используя базовые аппаратные средства работы с числами меньших порядков.
+53
STM32 и USB-HID — это просто
14 min
374KTutorial
На дворе 2014 год, а для связи микроконтроллеров с ПК самым популярным средством является обычный последовательный порт. С ним легко начать работать, он до примитивности прост в понимании — просто поток байт.
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?
![](https://habrastorage.org/getpro/habr/post_images/6b1/512/75d/6b151275d8392a0eefe1c90524bebded.jpg)
Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.
У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее
![](https://habrastorage.org/getpro/habr/post_images/ee0/b51/3ab/ee0b513ab61780097991d4b56e1f48a8.jpg)
Однако все современные стандарты исключили COM порт из состава ПК и приходится использовать USB-UART переходники, чтобы получить доступ к своему проекту на МК. Не всегда он есть под рукой. Не всегда такой переходник работает стабильно из-за проблем с драйверами. Есть и другие недостатки.
Но каждый раз, когда заходит разговор о том, применять USB или последовательный порт, находится множество поклонников логической простоты UART. И у них есть на то основания. Однако, хорошо ведь иметь альтернативу?
![](https://habrastorage.org/getpro/habr/post_images/6b1/512/75d/6b151275d8392a0eefe1c90524bebded.jpg)
Меня давно просили рассказать как организовать пакетный обмен данными между ПК и МК на примере STM32F103. Я дам готовый рабочий проект и расскажу как его адаптировать для своих нужд. А уж вы сами решите — нужно оно вам или нет.
У нас есть плата с современным недорогим микроконтроллером STM32F103C8 со встроенной аппаратной поддержкой USB, я рассказывал о ней ранее
![](https://habrastorage.org/getpro/habr/post_images/ee0/b51/3ab/ee0b513ab61780097991d4b56e1f48a8.jpg)
+99
Асинхронность: назад в будущее
22 min
113K![](https://habrastorage.org/getpro/habr/post_images/397/9e6/382/3979e63829a5f92aff5605016ff37596.jpg)
Асинхронность… Услышав это слово, у программистов начинают блестеть глаза, дыхание становится поверхностным, руки начинают трястись, голос — заикаться, мозг начинает рисовать многочисленные уровни абстракции… У менеджеров округляются глаза, звуки становятся нечленораздельными, руки сжимаются в кулаки, а голос переходит на обертона… Единственное, что их объединяет — это учащенный пульс. Только причины этого различны: программисты рвутся в бой, а менеджеры пытаются заглянуть в хрустальный шар и осознать риски, начинают судорожно придумывать причины увеличения сроков в разы… И уже потом, когда большая часть кода написана, программисты начинают осознавать и познавать всю горечь асинхронности, проводя бесконечные ночи в дебаггере, отчаянно пытаясь понять, что же все-таки происходит…
Именно такую картину рисует мое воспаленное воображение при слове “асинхронность”. Конечно, все это слишком эмоционально и не всегда правда. Ведь так?.. Возможны варианты. Некоторые скажут, что “при правильном подходе все будет работать хорошо”. Однако это можно сказать всегда и везде при всяком удобном и не удобном случае. Но лучше от этого не становится, баги не исправляются, а бессонница не проходит.
Так что же такое асинхронность? Почему она так привлекательна? А главное: что с ней не так?
+118
Information
- Rating
- Does not participate
- Location
- Киев, Киевская обл., Украина
- Registered
- Activity