Pull to refresh
-27
0
Send message

Трехмерный движок на формулах Excel для чайников

Reading time9 min
Views70K


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

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

Также я сделал небольшое веб-приложение, где можно потренироваться в создании формул для произвольных фигур и сгенерировать свой файл Excel.

Осторожно: 19 картинок и 3 анимации под катом.
Читать дальше →
Total votes 211: ↑209 and ↓2+207
Comments54

Тёмная сторона MH-Z19

Reading time13 min
Views102K
Что, опять? Сколько ж можно?

Да, сегодня мы снова поговорим о всеми нами любимом датчике углекислого газа Winsen MH-Z19. Нет, повторов не будет*.



* почти

Как вы могли заметить, на страницах настоящего ресурса регулярно появляются страшилки статьи об опасностях высокой концентрации СО2 в помещении. И хотя утверждения, что концентрации выше 1000 ppm несут ад и погибель, слегка преувеличены (википедия говорит, что хоть какие-то эффекты начинаются с 1%, то бишь 10 000 ppm, тогда как у датчика весь диапазон — 5000 ppm) — СО2 может служить индикатором присутствия других нехороших вещей в силу недостаточности вентиляции. Потому я тоже решил приобщиться к увлекательному миру СО2-метрии и разжился упомянутым датчиком.

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

Но пока я копипастил, в душу закрался червь сомнения — а отчего это датчик выдаёт девять байт, а на СО2 из них приходится всего два байта? Может быть, он хочет сказать мне что-то ещё?
Поговорим с датчиком по душам
Total votes 72: ↑72 and ↓0+72
Comments66

Полный цикл разработки IoT устройства управления подогревом бассейна на ESP8266 в среде Arduino

Reading time17 min
Views39K

В данной публикации я поделюсь опытом о создании IoT устройства с ноля: от появления идеи и воплощении ее в «железе» до создания микропрограммы для контроллера и web-интерфейса для управления созданным устройством через сеть интернет.


До создания этого устройства я:


  • Почти не разбирался схемотехнике. Только на уровне принципов работы
    резистора/транзистора… Я не имел никакого опыта в создании сколь-нибудь сложных схем.
  • Никогда не проектировал печатных плат.
  • Никогда не паял SMD компонент. Уровень владения паяльником был на уровне припаивания проводов и какого-нибудь реле.
  • Никогда не писал таких сложных программ для микроконтроллера. Весь опыт был на уровне «зажги светодиод в Arduino», а контроллер ESP8266 я встретил впервые.
  • Совсем немного писал на C++ для «большого брата», но это было более десятка лет назад и все давно забылось.

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

Читать дальше →
Total votes 55: ↑52 and ↓3+49
Comments115

3D лазерный сканер на Android телефоне

Reading time6 min
Views44K

Представляю вниманию DIY сканер на базе Android смартфона.

При проектировании и создании сканера, в первую очередь, интересовало сканирование крупных объектов. Минимум – фигура человека в полный рост с точность – хотя бы 1-2 мм.

Данные критерии успешно достигнуты. Успешно сканируются объекты при естественном освещении (без прямого солнечного света). Поле сканирования определяется углом захвата камеры смартфона и расстоянием, на котором лазерный луч сохраняет достаточную для детектирования яркость (днем в помещении). Это фигура человека в полный рост (1.8 метров) с шириной захвата в 1.2 метров.

Сканер был сделан из соображений «а не сделать ли что ни будь более или менее полезное и интересное, когда заняться нечем». Все иллюстрации – на примере «тестового» объекта (выкладывать сканы людей не корректно).

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

Цель статьи – рассказать о тупиковых ветках и проблемах, собранных на пути к созданию окончательной рабочей версии.
Total votes 79: ↑78 and ↓1+77
Comments55

Как выучить английский, занимаясь UX: история бразильского дизайнера

Reading time5 min
Views11K


От переводчика: этот текст написан UX-дизайнером из Бразилии. В процессе освоения новой для него профессии автору удалось выучить английский язык практически с нуля. Собственно, сам пост — отличный пример если не нового метода обучения, то способа совмещать работу и учебу.

Немного обо мне: я родился и вырос в Сан-Паулу, Бразилия, где прожил больше 20 лет. В Бразилии мы говорим на португальском, каждый день, в любом месте. Меньше 3% бразильцев бегло говорят на английском.

Уроки английского языка обязательны для всех учеников средней школы, но по ряду причин, включая не лучшую систему образования и отсутствие возможности общаться на английском регулярно, у нас не получается выучить его достаточно хорошо. Мы думаем, что учим, но это не совсем так. Стандарты образования настолько низкие, что даже успешный ученик школы с углубленным изучением языка, попадая в англоязычную среду, быстро понимает, что не знает практически ничего.
Читать дальше →
Total votes 21: ↑18 and ↓3+15
Comments0

«Яндекс.Касса», «Робокасса», и др. агрегаторы платежей: куда идти стартапу или малому бизнесу, чтобы работать легально?

Reading time14 min
Views61K
Всем привет! Три года назад, когда у меня был свой небольшой интернет-магазин необычных подарков, не существовало таких маркетплейсов и продвижения, как сейчас, и все свои «велосипеды» приходилось изобретать самому. Но, с другой стороны, не было никаких онлайн-касс и жёсткого контроля со стороны государства. Можно было торговать чем угодно через паблик в ВК в любом формате: с чеком, без чека, за нал и безнал — всё, что душеньке угодно. Потом кольцо «государственного контроля» начало сжиматься. Сначала взялись за крупный бизнес, потом за банки. Потом всех торговцев алкоголем, включая палатки у дома, «посадили» на ЕГАИС. Потом «посчитали» дальнобойщиков, дважды или трижды раздев их системой учёта «Платон».
Год назад руки государства добрались и до такой мелюзги, как малый и микробизнес. Многие думали, что до этого не дойдёт, но — дошло. Началась «жесть» — я имею в виду смену правил торговли по закону 54-ФЗ. Одни кричали, что эти онлайн-кассы дорогие и убьют торговлю. Другие, наоборот, уверяли, что управлять процессом станет проще и прозрачней. Третьи (особенно — гики, фанаты Джека Ма, основателя Alibaba и апологеты технологий) предрекали, что неизбежно появятся новые сервисы, которые изменят бизнес-процессы, и это хорошо.

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


Читать дальше →
Total votes 19: ↑17 and ↓2+15
Comments114

Генерация Галактики и обучение начальным знаниям астрономии

Reading time6 min
Views6.1K

Введение


Некоторое время назад я дома решил посмотреть, что нового появилось на тему космоса за последнее время. За этим делом меня застал мой 7 летний сын, проявив большой интерес к этой тематике. Пока я ломал голову, как просто и доходчиво, а также в каком именно объеме дать ребенку информацию по космосу, я наткнулся на статью, где написано, что принято решение вернуть в российские школы предмет «Астрономия» в 2017-2018 учебном году, но только с 11 класса. Это и стало тем событием, которое подвигло меня написать эту статью, чтобы помочь ознакомить с азами астрономии детей до 11 класса.

По сути 7 летний ребенок является представителем определенной выборки пользователей, которая либо интересуется астрономией уже сейчас, либо заинтересуется ей в будущем. Именно для них, а также для тех, кто будет давать знания о звездах я предлагаю попробовать приведенных ниже способ. Основной идей является генерация Галактики с использованием реальных данных (эту часть я беру на себя), и последующее использование результата генерации либо в играх, либо в качестве учебного пособия теми, кто хотел бы сделать изучение астрономии более интересным…


Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments5

ДНК глазами программиста

Reading time15 min
Views90K
От переводчика: Так как я не являюсь биологом, возможны неточности в переводе терминов (и не только :). Оригинал находится здесь.

Если ты – молоток, то во всём увидишь гвоздь


Это всего лишь размышления программиста о ДНК. Я не являюсь молекулярным генетиком.

Исходный код


Находится здесь. Это не шутка. Исходники можно просмотреть с использованием замечательного набора скриптов Perl под названием "Ensembl". Геном человека занимает приблизительно 3 гигабайта, которые можно сократить до 750 мегабайт, если отбросить шелуху. Немного печалит, что это всего лишь 2.8 браузеров Mozilla Firefox.

ДНК похожа скорее не на исходники на языке C, а на байт-код для виртуальной машины под названием «ядро клетки». Крайне сомнительно, что существуют исходники, которые можно скомпилировать в этот байт-код: то, что мы видим, – это всё, что у нас есть.
Читать дальше →
Total votes 115: ↑114 and ↓1+113
Comments309

Получаем изображение с оптического сенсора комьютерной мыши с помощью Arduino

Reading time3 min
Views234K
КПДВ, 111.3 KB

Для решения одной из задач мне потребовалось программно получать и обрабатывать изображения небольшого участка поверхности бумаги с очень близкого расстояния. Не получив достойного качества при использовании обычной USB камеры и уже на пол пути в магазин за электронным микроскопом, я вспомнил одну из лекций, на которой нам рассказывали как устроены различные девайсы, в том числе и компьютерная мышка.
Читать дальше →
Total votes 379: ↑377 and ↓2+375
Comments116

Как работает Эфириум (Ethereum)?

Reading time35 min
Views186K

Введение


Наверняка некоторые из вас знают, что такое блокчейн Эфириум (с англ. Ethereum), другие, напротив, не имеют даже малейшего представления о нем. Так или иначе, и первые и вторые что-нибудь да слышали о данной платформе. В последнее время этой теме было посвящено множество статей в различных крупных журналах, однако для тех людей, кто мало что слышал об Эфириуме, все статьи на эту тему представляются чем-то мистическим и совершенно непонятным. Тогда, что же собой представляет данная платформа? Если вкратце: Эфириум – это общедоступная база данных с возможностью хранения цифровых транзакций в течение неограниченного времени. Важно также отметить, что для обслуживания и защиты такой базы данных не требуется каких-либо систем управления ключами. Вместо этого данная платформа работает как «беззащитная» транзакционная система – фреймворк, в котором физические лица могут совершать одноранговые транзакции, при этом ни одна из сторон не несет перед другой или третьей сторонами каких-либо обязательств.
Читать дальше →
Total votes 39: ↑36 and ↓3+33
Comments21

Перспективные матрицы в графическом API или дьявол прячется в деталях

Reading time10 min
Views61K
В определённый момент у любого разработчика в области компьютерной графики возникает вопрос: как же работают эти перспективные матрицы? Подчас ответ найти очень непросто и, как это обычно бывает, основная масса разработчиков бросает это занятие на полпути.

Это не решение проблемы! Давайте разбираться вместе!
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments17

Фантастика и фентези за два с половиной года, почти сто хороших книг

Reading time22 min
Views245K
На этот пост меня подтолкнула публикация «Почему я ворую книги, бедные авторы, и как это исправить», а именно — скепсис и возражения на мой комментарий о том, что я не читаю плохие книги. Мне предложили рассказать, как я выбираю книги для чтения и что именно читаю. Ну я и повелся.
Оформить список было сравнительно просто, FBReader любезно хранил на GoogleDrive все скачанные книги с того момента, как там появилась эта услуга. Предлагаю вашему вниманию список прочитанного мной за 2,5 года из жанров фентези и фантастики.
Читать дальше →
Total votes 70: ↑66 and ↓4+62
Comments553

Как я перешёл из системного администрирования в Android-разработку

Reading time8 min
Views73K


Несколько лет назад, я, как и другие начинающие Android-разработчики, решил найти работу в этой области. Если вы начинающий специалист, и не знаете, с чего начать изучение Android, или если вы уже обладаете определёнными знаниями в этой теме и планируете в скором времени устраиваться на работу, то этот материал для вас. По задумке, к данной статье вы будете возвращаться по мере накопления опыта: смотреть на каком этапе в данный момент находитесь и что изучать дальше.
Читать дальше →
Total votes 44: ↑39 and ↓5+34
Comments42

Нейросеть генерирует движения персонажа видеоигры в реальном времени

Reading time4 min
Views37K
image

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

Частично это связано с тем, что к контроллеру персонажей предъявляется масса требований, и только при соответствии им всем он может быть полезным. Контроллер должен уметь учиться на больших объемах данных, но при этом не требовать большого количества ручной предварительной обработки данных, а также должны максимально быстро работать и не требовать больших объемов памяти.

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

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

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

Исследователи из Эдинбургского университета разработали новую систему обучения, называемую фазово-функциональной нейронной сетью (PFNN), которая использует машинное обучение для анимации персонажей в видеоиграх и других приложениях.
Total votes 48: ↑44 and ↓4+40
Comments94

Как я изобрел «Kids Animation Desk» – рабочее место профессионального аниматора»

Reading time7 min
Views14K
В данной статье я расскажу о том, как я придумал анимационный стол, который после назвал «Kids Animation Desk» – рабочее место профессионального аниматора», он успешно применяется на уроках Lego анимации в одном из государственных центров дополнительного образования города Воронежа.
image
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments33

Электробайк. Контроллер двигателя своими руками

Reading time10 min
Views213K

image


Как вы уже знаете из прошлых постов, у нас в компании есть DIY-движение. В свободное от работы время коллеги занимаются фрезеровкой печатных плат в домашних условиях, делают тепловизор на FLIR Lepton, а также решают семейные разногласия с помощью 4 контроллеров и 2 умных часов. Продолжим серию увлекательный историй! Сегодня я расскажу, как сделать контроллер к трехфазному двигателю электровелосипеда своими руками. Целью создания такого контроллера было:


  1. Изучение работы трехфазного мотора под управлением контроллера.
  2. Большинство контроллеров для электровелосипедов, представленных на рынке, — китайские. Они хоть и относительно дешевые (около 2.000 руб в зависимости от мощности), но являются неведомой коробкой, в которой неизвестно что происходит. И сразу к ней возникает очень много вопросов — экономично ли она потребляет и распределяет ток, какой у нее запас мощности, почему так сильно перегревается, преждевременно срабатывает защита по току и т.д.

В тоже время на рынке представлены европейские качественные контроллеры для электробайков. Они оснащаются расширенными функциями, работают на разных напряжениях и токах и их можно программировать. Устанавливаются они на сверхмощные электровелосипеды. Но цена у них кусается — 10-20 тыс. рублей.


В итоге я решил пойти своим путем: разобраться в устройстве контроллера, сделать его прототип, а затем попытаться сделать контроллер качественнее китайского контроллера. На текущий момент проект у меня в разработке только и на уровне прототипа, готового варианта пока нет. Буду рад услышать ваши комментарии и советы.

Total votes 45: ↑42 and ↓3+39
Comments89

Музыкальная теория для гиков

Reading time17 min
Views122K
imageКто-то считает музыку уделом избранных талантов, кто-то — набором физических закономерностей. Автор материала делает попытку объяснить знакомые каждому музыкальные термины, такие как тон, интервал, амплитуда, нота, октава, партитура, аккорд и так далее с помощью расчетов и технических обоснований. Ниже перевод оригинального текста.

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

Все остальные правила для меня выглядят совершенно, ну просто абсолютно произвольно. Почему у нас есть 12 нот, но для их обозначения применяются только 7 букв? Откуда взялись знаки при ключе? Почему ни одну статью по музыке в Википедии просто невозможно понять, не прочитав сперва все остальные?
Читать дальше →
Total votes 107: ↑104 and ↓3+101
Comments99

Построение нейронных сетей в php используя FANN, пример реализации

Reading time5 min
Views82K
Передо мной предстала задача анализа большого количества информации и выявления закономерностей. И первое, что пришло в голову — построить математическую модель с помощью нейронной сети.

Поскольку данные для анализа формируются в php и мне этот язык сейчас ближе всего, то искалась библиотека с интерфейсом для php. В связи с этим мне порекомендовали FANN (Fast Artificial Neural Network) — открытое программное обеспечение для построения сетей. У этого решения есть апи для 15 языков, так что почти каждый сможет выбрать что-то для себя.

Пример. Распознавание языка текста на странице

Для примера возьмем задачу легкую, но недалекую от нашей реальности и от серьезных задач. Допустим есть 1000 документов, на 3-х разных языках. Пусть это будут французский, английский и польский. Наша задача научить нейронную сеть распознавать язык документа. Для этого мы используем самый простой частотный механизм. Но тем не менее его результаты неплохи. Его суть в том, что у каждого языка с разной частотой в тексте встречаются одни и те же символы. Мы подготавливаем 3 больших куска текста для каждого из языков (английский, французкий, польский), посчитаем для каждого символа частоты. Эти данные мы передадим в нейронную сеть, с указанием какой набор частот принадлежит каждому из языков. Дальше нейронная сеть все сделает сама.
Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments19

Программный захват с вебкамеры

Reading time4 min
Views128K
Недавно мне потребовалось получать данные с вебкамеры для автоматической их обработки. Перебрав несколько программок, обнаружил, что ни одна из них не позволяет рулить камерой программно — только формы да кнопки, в лучшем случае есть планировщик записи, но для этого приходится постоянно держать программу запущенной. Плюс не кросплатформенно, привязка к конкретному ПО в проекте. Решение — задействовать любимый язык программирования.
Читать дальше →
Total votes 43: ↑41 and ↓2+39
Comments32

Распознавание штрих и QR кодов в приложениях UWP

Reading time5 min
Views26K

Я не открою Америку, если скажу, что самой популярной библиотекой для распознавания штрихкода является ZXing («Zebra Crossing»). Список поддерживаемых форматов довольно внушителен и включает в себя: EAN-8 и EAN-13, QR Code, UPC-A и UPC-E, Code 39, Code 93, Code 128 и другие.

Есть порт и для WinRT, а значит, библиотеку можно использовать и с универсальной платформой Windows.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments4

Information

Rating
Does not participate
Location
Камызяк, Астраханская обл., Россия
Date of birth
Registered
Activity