Pull to refresh
16
0
Send message

3D MC3 Мастер v1.1 или как я собрал свой первый 3D принтер

Reading time3 min
Views60K
Так случилось, что свободное время совпало с большим желанием что-то сделать своими руками с нуля. Некоторое знакомство с контроллерами Arduino, автоматизацией процессов и окончание ремонта в доме натолкнули на мысль о создании робота-пылесоса. Все могло закончиться покупкой какого-нибудь готового изделия, но хотелось сделать все самому и с самого начала. Более того, даже спроектировать и изготовить все детали для него захотелось самостоятельно.

3D принтеры, для большинства, являются хобби или игрушкой, и лишь для небольшого процента людей — инструментом в достижении конечной цели. В моем случае такой принтер станет инструментом реализации вполне конкретной задачи: сделать всю механику, крепеж и корпус конечного устройства. Ну а чтобы не было скучно — принтер было решено собрать почти с нуля, то есть из KIT-комплекта. Выбор пал на новый принтер компании «Мастер Кит» 3D MC3 Мастер v1.1. Заехав к производителю, я получил на руки синий чемоданчик и отправился домой, для выполнения первого шага на пути к цели.


Читать дальше →
Total votes 22: ↑17 and ↓5+12
Comments32

Пилю, строгаю, собираю 3d принтер из хлама и палок

Reading time5 min
Views50K
Мне давно хотелось иметь 3d принтер. Года полтора — точно, может, даже больше. Я даже слегка научился моделировать в DesignSpark Mechanical и изредка рисовал в нем всякие полезные и не очень штуки, например, переделал кнопки на своем руле Logitech G27, чтобы было удобнее нажимать в перчатках: G27 Button Plates. Полет фантазии в изготовлении всякого разного ограничивало только отсутствие своего принтера, ведь печать где-то еще — это долго, неудобно и не слишком дешево. Останавливало только одно — на свой принтер нужны были деньги, а их почему то всегда хронически не хватает. После долгих раздумий я решил собрать принтер сам, причем, учитывая озвученное выше обстоятельство, по максимуму использовать всякий валяющийся на работе хлам.
Итак, процесс пошел...
Total votes 33: ↑32 and ↓1+31
Comments56

Робот на RaspberryPi, Arduino и RaspiCam + OpenCV. Часть 1 Обзорная

Reading time5 min
Views125K
Очень часто на хабре появляются статьи о том как использовать Raspberry Pi как медиацентр, передвижную видеокамеру, удаленную web камеру и… собственно все. Очень странно, что в такой большой IT тусовке — довольно мало информации о том — как его программировать и использовать одноплатный компьютер там, где он действительно довольно полезен — во всяких встраиваемых системах, где есть ограничения по размеру и стоимости, но также есть потребность в производительности. В нескольких статьях постараюсь описать на примере создания мобильного колесного робота с компьютерным зрением — как можно использовать малинку для создания роботов(штук с интеллектом на борту, а не управляемых с андроида машинок с веб камерой).
image
Читать дальше →
Total votes 47: ↑46 and ↓1+45
Comments25

Deep learning и Caffe на новогодних праздниках

Reading time9 min
Views55K

Мотивация


В данной статье вы познакомитесь c применением deep learning на практике. Будет использован фреймворк Caffe на датасете SVHN.

Deep Learning. Этот buzz word уже давно звенит в ушах, но попробовать его на практике никак не удавалось. Подвернулся удобный случай это исправить! На новогодние праздники был назначен контест на kaggle по распознаванию номеров домов в рамках курса по анализу изображений.
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments11

Профилирование python приложений

Reading time2 min
Views16K
Краткая заметка с линками и примерами о профайлинге:
  1. производительности: hotshot или python profile/cProfile + визуализатор логов kcachegrind (есть порт под windows, аналог WinCacheGrind)
  2. использование памяти: dowser с web-интерфейсом

Читать дальше →
Total votes 39: ↑35 and ↓4+31
Comments22

Профилирование и отладка Python, инструменты

Reading time14 min
Views107K
В предыдущей статье мы на практике разобрались, где и в каких случаях можно использовать ручное профилирование, а так же познакомились со статистическими профайлерами.

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

Приступим!
Total votes 72: ↑69 and ↓3+66
Comments9

C++ в 2015-м году

Reading time3 min
Views38K
Год только начинается, так что давайте посмотрим, что язык С++ ожидает в 2015-м, как мы уже делали это в 2013-м и 2014-м.

Прошлый год принёс много изменений, главным из которых, безусловно, является стандарт С++14. Что важно, С++14 сегодня существует не только в виде стандарта, но и частично поддерживается GCC и Clang. Visual Studio также поддерживает некоторые (хотя и далеко не все) возможности С++14 и почти все (хотя опять таки не 100%) возможности С++11. Компилятор от Intel стал совместим с С++11 полностью. Таким образом, современные стандарты С++ доступны под все платформы — было бы только желание их использовать!
Читать дальше →
Total votes 60: ↑54 and ↓6+48
Comments15

Устранение утечек памяти в приложении на Питоне

Reading time7 min
Views37K
imageНедавно мне довелось разобраться и устранить несколько утечек памяти в популярном фреймворке Торнадо. Не беда, если вы никогда его не использовали, потому что описанное будет мало связано с ним. Рассказать я хочу о методах, которые я использовал для поиска и устранения утечек.

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

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

Формально, циклические ссылки нельзя назвать утечками: сборка мусора рано или поздно уничтожит такие объекты. Беда только в том, что Питон не может сам определить, когда еще рано, а когда уже поздно. В моем случае система просто прибивала процесс с Питоном, если сборка мусора не начиналась вовремя.
Читать дальше →
Total votes 98: ↑95 and ↓3+92
Comments8

Функции для решения квадратичных сравнений. Реализация в MATLAB

Reading time17 min
Views13K

Введение


Для решения криптографических задач необходимо уметь решать квадратичные сравнения по заданному модулю. Алгоритм решения квадратичного сравнения достаточно прост и не вызывает сложностей в решении при небольших значениях модуля и свободного члена, однако в связи с применением достаточно больших чисел в криптографии, решение квадратичных сравнений вручную является весьма кропотливым и длительным процессом. Конечно, для решения квадратичных сравнений можно воспользоваться онлайн-сервисом. Но так как решение криптографической задачи не заканчивается на решении квадратичного сравнения, то человеку, занимающемуся криптографией, будет удобно иметь функцию, способную решать квадратичные сравнения и свободно взаимодействовать с другими функциями, которые используются ним. Именно поэтому было решено написать функцию для решения квадратичных сравнений вида x^2 ≡ a ( mod p ), где a и p — взаимно простые числа, в MATLAB.


Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments10

Регулярные выражения, пособие для новичков. Часть 2

Reading time18 min
Views257K
В первой половине этого пособия мы раскрыли лишь малую часть возможностей регулярных выражений. Во второй, большей, половине мы рассмотрим некоторые новые метасимволы, то, как использовать группы для получения частей совпавшего текста, разбивать строки, находить и замещать части текста. В конце немного поговорим о распространенных ошибках.
Читать дальше →
Total votes 67: ↑66 and ↓1+65
Comments20

NumPy, пособие для новичков. Часть 1

Reading time19 min
Views241K
NumPyLogoNumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами.

Первая часть учебника рассказывает об основах работы с NumPy: создании массивов, их атрибутах, базовых операциях, поэлементном применении функций, индексах, срезах, итерировании. Рассматриваются различные манипуляции с преобразованием формы массива, объединение массивов из нескольких и наоборот — разбиение одного на несколько более мелких. В конце мы обсудим поверхностное и глубокое копирование.
Читать дальше →
Total votes 69: ↑65 and ↓4+61
Comments39

Регулярные выражения, пособие для новичков. Часть 1

Reading time14 min
Views911K
Регулярные выражения (РВ) это, по существу, крошечный язык программирования, встроенный в Python и доступный при помощи модуля re. Используя его, вы указывается правила для множества возможных строк, которые вы хотите проверить; это множество может содержать английские фразы, или адреса электронной почты, или TeX команды, или все что угодно. С помощью РВ вы можете задавать вопросы, такие как «Соответствует ли эта строка шаблону?», или «Совпадает ли шаблон где-нибудь с этой строкой?». Вы можете также использовать регулярные выражения, чтобы изменить строку или разбить ее на части различными способами.
Читать дальше →
Total votes 105: ↑99 and ↓6+93
Comments32

Information

Rating
Does not participate
Location
Брест, Брестская обл., Беларусь
Registered
Activity