воскресенье, 22 мая 2016 г.

Mathpix — мобильное приложение, которое решает написанные от руки уравнения и строит по ним графики

by @marks

 Это ПО — настоящий подарок для прилежных и нерадивых учащихся



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

Теперь появилось приложение, которое это время экономит. Встречаем
Mathpix, которое сам разработчик называет «первой программой, которая может решать написанные от руки уравнения». Работает все очень просто: запускаем приложение, активируется камера телефона. Приложение фотографирует формулы, написанные на бумаге, и данные отправляются на сервер, где анализируются (на все про все уходят считанные секунды, судя по демонстрационному видео). После анализа на экран выводятся инструменты для работы с уравнением — например, построение графика.



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

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

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

Быстрые движения под высоким напряжением, или почти вся правда об управлении шаговым мотором

by @melchermax

Доброго вам времени суток, уважаемые гики и сочувствующие!

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

Что же такое этот самый шаговый электродвигатель? В принципе, в плане функциональности этот мотор можно представить как обычный электромотор, каждый оборот вала которого разбит на множество одинаковых, точно фиксированных шагов. Перемещением на определённое количество шагов мы можем позиционировать вал шагового мотора с высокой точностью и хорошей повторяемостью. Каждый шаг можно разбить на множество ступенек (так называемый микростеппинг), что увеличивает плавность хода мотора, способствует подавлению резонансов, а также увеличивает угловое разрешение. Различия между полношаговым режимом (слева), 1/2 микростеппингом (в центре) и 1/16 микростеппингом (справа) видны невооружённым глазом:

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

Из этой картинки видно, что шаговый мотор в электрическом плане представляет собой два или более электромагнита, которые необходимо переключать в определённой последовательности для приведения ротора в движение.
Лирическое отступление: На настоящий момент существуют два основных типа шаговых моторов: униполярный и биполярный. Поскольку униполярные моторы имеют меньший крутящий момент и худшие скоростные характеристики, в данной публикации они рассматриваться не будут.
Итак, вернёмся к управлению биполярным мотором. Как это ни парадоксально звучит, но зачастую проще обсуждать общие принципы на конкретных примерах. В качестве примера мы возьмём шаговый мотор ST4118L1804-A производителя Nanotec. Почему именно этот мотор и производитель? Причина проста: по основным характеристикам это типичный представитель моторов типоразмера NEMA 17, широко применяющихся в радиолюбительской практике, и имеет к тому же довольно подробную техдокументацию (которая начисто отсутствует у китайских noname-моторов).

Основные характеристики данного мотора:
Рабочее напряжение 3,15 В
Рабочий ток 1,8 А
Активное сопротивление обмотки 1,75 Ом
Индуктивность обмотки 3,3 мГн
Момент удержания 0,5 Нм
Угловой размер шага 1,8° (200 шагов на один оборот ротора)

В данном случае самое главное — это правильная интерпретация данных. Применив закон Ома, выясняем, что производитель указал рабочий ток и напряжение для постоянного тока, протекающего через обмотки двигателя, без учёта индуктивности.
Проверка: I = U/R, или 1,8 А = 3,15 В/1,75 Ом. Всё сходится.
Какой же будет мощность рассеяния при питании обмоток постоянным током?
Всё просто: P=I x U, или 1,8 А х 3,15 В = 5,67 Вт. В полушаговом режиме возможна ситуация, когда ток течёт через обе обмотки мотора, соответственно рассеиваемую мощность нужно удвоить: 5,67 Вт х 2 = 11,34 Вт. Это достаточно много, и может привести к перегреву мотора. Эта же величина является минимальной мощностью блока питания для этого мотора. Обыкновенный 3D принтер имеет пять подобных моторов, соответственно для питания драйверов необходим источник питания с минимальной мощностью 11,34 Вт х 5 = 56,7 Вт. К этой цифре необходимо добавить электрическую мощность, превращённую мотором в кинетическую или потенциальную энергию при работе принтера. Точный расчёт этой мощности — дело достаточно сложное, на практике проще всего добавить 75% к рассчитанной тепловой мощности и на том завершить расчёты. Почему именно 75%? Дело в том, что обычный шаговый мотор способен совершить полезную работу на величину примерно 2/3 от максимальной тепловой мощности. В данном случае для создания какого-либо узла или устройства сначала подбирается подходящий мотор (например, по крутящему моменту), а после этого рассчитывается мощность блока питания.
Итоговая мощность блока питания для пяти шаговых моторов: 56,7 Вт х 1,75 = 99,225 Вт.
Конечно, на практике ни в одном любительском устройстве не используются моторы под максимальной нагрузкой, и реальная мощность потребления будет, скорее всего, намного ниже расчётной. Я же, как человек ленивый и скаредный, крайне не люблю делать одно и то же два раза, поэтому беру блок питания всегда с некоторым запасом (то есть, согласно вышеприведённым расчётам).
Теперь пришла пора приступить к определению минимально необходимого напряжения блока питания. К сожалению, этому параметру уделяется незаслуженно маленькое внимание в тематических публикациях. Почему этот параметр так важен? Дело в том, что при вращении ротора шагового мотора через катушки течёт переменный ток, ограниченный не только активным, но также и индуктивным сопротивлением обмоток.
Рассмотрим предоставленный производителем график зависимости крутящего момента нашего мотора от частоты вращения:

На графике присутствуют две линии, показывающие зависимость крутящего момента от частоты вращения для напряжения питания 24 В (красная линия) и 48 В (зелёная линия). Нетрудно заметить, что спад крутящего момента начинается примерно с 300 об/мин для 24 В и примерно с 600-700 об/мин для напряжения 48 В. При этом необходимо упомянуть, что производитель использует недоступные любителям дорогостоящие промышленные драйверы. Почему же так важно напряжение питания драйвера, если оно даже в случае питания от 12 В заведомо выше паспортной величины напряжения питания шагового мотора (3,15 В)? Дело в том, что шаговый мотор управляется током, а не напряжением, и именно источниками тока являются все современные драйверы. В идеальном случае драйвер обеспечивает заданный ток в обмотках двигателя вне зависимости от частоты вращения ротора, нагрузки, изменения температуры и других параметров. Это организовано за счёт работы ШИМ-регулятора, управляемого зачастую довольно сложными алгоритмами. Из технической документации нашего мотора видно, что для полного оборота ротору необходимо совершить 200 шагов, при 300 об/мин это составит 60 000 шагов в минуту, или 1000 шагов в секунду. Это, проще говоря, соответствует переменному току частотой 1 кГц. На этой частоте индуктивное сопротивление обмотки составит (R(L)=2π×F×L): 2π х 1 кГц х 3,3 мГн = 20,73 Ом. Какое же напряжение необходимо для обеспеченияя тока в 1,8 А при этом сопротивлении? Закон Ома не дремлет (U=IR): 1,8 А х 20,73 Ом = 37,31 В. Неудивительно, что выше частоты вращения 300 об/мин наблюдается спад крутящего момента: драйверу банально не хватает напряжения питания. Почему же при таком вопиющем недостатке питания (37 — 24 =13 В) спад не наступает при более низкой частоте вращения? Дело в том, что в современных драйверах используется мостовая схема выходных каскадов, что позволяет «удваивать» напряжение, прикладываемое к обмоткам мотора. То есть, теоретически драйвер способен приложить «виртуальные» 48 В к обмоткам при напряжении питания 24 В, что создаёт теоретический запас по напряжению 48 — 37 = 11 В. На практике же этот запас будет нивелирован потерями в драйвере, сопутствующих цепях и активным сопротивлением обмоток мотора (активное сопротивление обмоток присутствует постоянно, и даже несколько возрастает при нагреве мотора). При увеличении частоты вращения ротора свыше 300 об/мин пропорционально растёт частота импульсов и, соответственно, увеличивается индуктивное сопротивление обмотки. При питании от 24 В драйверу перестаёт хватать напряжения питания для поддержания тока в обмотках, и крутящий момент неуклонно снижается. То же самое происходит при питании драйвера от 48 В, но уже гораздо значительно позже, при частоте вращения 600-700 об/мин.
Итак, с мощностью и величиной напряжения блока питания всё ясно, теперь необходимо переходить к практической реализации универсального драйвера, способного как к филигранной работе при помощи крохотных NEMA 11, так и к сотрясению основ мира в паре с могучими NEMA 23. Какими же основными качествами должен иметь драйвер моей мечты?

1. Высокое напряжение питания. Поскольку в техдокументации к моторам крайне редко указано максимальное напряжение питания, лучше будет ограничиться напряжением 48 В.
2. Важнейший параметр: высокий выходной ток. NEMA 23 имеют рабочие токи вплоть до 3,5 А, драйвер должен обеспечивать этот ток с запасом 30%. Путём нехитрых расчётов получаем максимальный рабочий ток около 4,5 А.
3. Простая и оперативная подстройка силы выходного тока.
4. Наличие микростеппинга, как минимум 1/8 шага
5. Наличие защиты от КЗ, перегрева, и т.д.
6. Небольшой размер, возможность крепления произвольного радиатора.
7. Исполнeние в виде интегральной схемы. XXI век на дворе!
8. Простая схема включения с минимальным количеством дискретных компонентов.
9. Низкая цена.

После множества бессонных ночей пятиминутного копания в Google выяснилось, что единственной доступной микросхемой драйвера с подходящими параметрами является TB6600HG. Покупка готового китайского драйвера на eBay показала, что не всё ладно в датском королевстве, далеко не всё. В частности, китайский драйвер отказался напрямую работать с выходами Arduino Due, и «завёлся» только через буферный преобразователь уровней. При работе с трёхамперной нагрузкой драйвер грелся и терял шаги десятками. Вскрытие пациента показало, что в нём не только была установлена микросхема предыдущего поколения (TB6560), а даже и термопаста не смогла найти себе места в списке компонентов. К тому же размерами и весом китайский драйвер наводил меня на мысли о моей молодости… о прошлом веке, если быть совсем точным. Ну нафиг, сказал во мне интеллигент в третьем поколении, мы сделаем свой драйвер, с преферансом и поэтессами. Если бы разработчики KiCAD видели, как я обращаюсь с их детищем, я разорился бы на одних только адвокатах:


С целью минимизации размеров была спроектирована четырёхслойная печатная плата. Этот факт, к сожалению, исключает её изготовление в домашних условиях. Посему на берлинской фирме LeitOn были заказаны 36 таких плат, каждая из которых обошлась в итоге около пяти евро. Часть этих плат были впоследствии выкуплены у меня собратьями по увлечению, и в итоге изготовление плат вышло не слишком накладным предприятием. Микросхемы TBB6600HG были заказаны на Aliexpress по 4 евро за штуку, остальные компоненты были заказаны на eBay, в пересчёте на один драйвер цена дискретных компонентов составила 2 евро. В качестве радиаторов были взяты пятисантиметровые отрезки П-образного алюминиевого профиля, пластиковые каркасы были отпечатаны на 3D принтере. Итого цена одного драйвера составила около 12 евро. Это справедливая цена за драйвер со следующими характеристиками:

Напряжение питания от 8 до 42 Вольт
Максимальный долговременный рабочий ток 4,5 Ампер, устанавливается потенциометром
Микростеппинг вплоть до 1/16 шага
Защита: КЗ, перегрев, низкое напряжение питания
Компактные размеры и низкий вес
Работа с уровнями входных сигналов от 3,3 до 5,5 вольт
Простая установка микростеппинга с помошью микропереключателей — к чёрту перемычки!

Готовые печатные платы:

Собранные и недособранные драйверы.

Видео работы драйвера в моём старом 3D принтере. Здесь трёхамперный NEMA 17 бодро гоняет подогреваемую рабочую площадку принтера размером 45 х 25 см через шестнадцатимиллиметровый шпиндель длиной 60 см:

Финальное фото: самодельные драйвера на своём рабочем месте в моём новом 3D принтере.

Публикуется под лицензией WTFPL

вторник, 10 мая 2016 г.

Все уроки по ардуино

by @malyazin_2010 5 апреля в 02:40



Однажды появилась необходимость собрать все уроки, обучающие материалы (tutorials) с habrahabr и geektimes в одном месте и немного их систематизировать. В этом сборнике обучаек представлены более 100 статей на тему ардуино с пометкой «tutorial», либо содержащие несложные для новичков проекты на ардуино, а также немного видеоуроков по смежным темам. Статьи разделены на 10 тематик по сферам применения собранных устройств. Также хочется напомнить, что весь обучающий материал, опубликованный на habrahabr и geektimes является интерактивным: в любой момент можно задать вопрос автору в комментариях к статье. Как правило авторы на них отвечают. Этот сборник будет дополняться новыми обучайками (tutorials) по мере их публикации.
1. Знакомство, драйвера, среда разработки.(кликните, чтобы развернуть)

2. Роботы, радиоуправляемые машинки, лодки, танки.

3. Умный дом. Автоматизация в быту.
DIY управление телевидением Дом.ru с планшета при помощи ардуино
Датчик движения для переключения радиостанций — часть I
Ethernet-лампа для Continuous Integration и не только
Умный дом (Самое начало) — ч.1
Робот-пылесос на ардуино
«Умный Дом» и система MySensors: Часть 0
“Умный дом” на скорую руку
Универсальный пульт на Arduino
От домашней автоматизации и умных домов в общем к конкретному примеру
Домашний мини-климат-контроль своими руками
Модули Laurent и Умный дом (часть 2). Arduino и AMS
Моя реализация системы домашней автоматизации
Делаем включение ПК по хлопку за вечер
Управляем розеткой по SMS
Радиоуправляемый выключатель своими руками. Часть 3 — Софт выключателя
Мой интернет вещей: Гостевой замок
Автоматизация проветривания комнаты через окно и что из этого вышло
Кодовый замок на Arduino за 20 минут
Беспроводное оборудование nooLite и Умный дом (часть 1). Arduino
Управление освещением в ванной на основе счетчика посетителей
Система автоматического управления аквариумом на Arduino
«Почти умный» тёплый пол на Arduino
Автоматизация снятия показаний со счетчиков воды
Автоматическая подсветка лестницы с помощью Arduino

4. Ардуино в автомобиле.

5. Окружающая среда. Климат. Дача. Теплицы.
Ещё одна метеостанция, пошаговая видеоинструкция
Метеостанция на прокачку. Добавим к Ардуине SD карту
DIY термометр для «Инстаграм» на arduino nano
Измеритель радиоактивности (радиометр) с Глонасс приемником и передачей данных по Wi-Fi
Ещё один способ определения качества воздуха на Arduino — с передачей данных в сеть
Белый Куб на страже чистоты воздуха, часть 1
Отопление загородного дома на arduino с передачей данных в internet
Arduino&Oregon или погодная станция своими руками
Делаем автополив комнатного цветка на Arduino за 15 минут
Контроль температуры воды в газ. колонке
Простое устройство мониторинга энергопотребления
Экономим электричество или таймер времени для ночного тарифа в электросетях
Замкнутая экосистема по-русски
Робот-газонокосилка. От чермета до прототипа
Двухосевой солнечный трекер на Arduino
DIY: Робот-подводная лодка для исследования акватории Москвы-реки. Часть 1
Тепло наших домов
Сказ о том как MT8060 c Arduino подружились
Система управления микроклиматом теплицы
Bluetooth-метеостанция на Arduino для начинающих
Как я сделал снегоуборщик 3.0 с управлением по Bluetooth с Android смартфона
Дешёвый солнечный концентратор и парообразователь на Arduino. Зеркала и пар с температурой до 250°C
Зимовка кактусов с онлайн контролем температуры
Непрерывный мониторинг радиационного фона в Москве
Ethernet термометр на основе Arduino
Контроль температуры в серверных шкафах с помощью Ардуино
Контроллер управления влажностью на Atmega328

6. Велопроекты.

7. Бесполезные поделки, развлечения.
Простая игровая тв-приставка на Arduino
Рисуем на экране осциллографа
Умный квест в реальности: демоны и проводки
Как мы собирали Робоголову
И снова про ушки
Пиксельная подсветка просто и быстро
Делаем еще один джойстик (геймпад) на Arduino
Mouse Track — виртуальность становится реальнее
Алкогольный орга́н Геллегера
MIDI Wavy: делаем управляемую цветомузыку с помощью Arduino и MIDI
Виноградный мультитач
Светомузыка Processing + Arduino + RGB
Бегущая строка на Arduino + управление со смартфона
Подключение светового пистолета через Arduino
Лазерная связь между двумя Arduino кодом Морзе
Лампа-радуга своими руками
Подключаем джойстики от Dendy к PC через Arduino
«Бегущая строка» — динамическая индикация на примере светодиодной матрицы RL-M2388 и Arduino Mega
Механический дисплей из лего и Arduino
Блок термоконтроля для электронной сигареты на Arduino
Arduino DIY Watch — самодельные часы на Arduino
RGB-ночник на базе Arduino
LED-куб + змейка
Электронный тортик в кармане: дневник разработки
Arduino UNO играет в 2048 с размером поля 8х8
Роботизированный бас на Atmel ATMega328 и Arduino IDE
Уведомление о непрочитанном входящем письме с помощью Arduino
Простой синтезатор на Arduino
Мучения с LED cube 4x4x4 (Arduino+74HC595)

8. Реверс-инжиниринг и безопасность.

9. Автоматизация производства.

10. Здоровье. Медицина. Спорт.

 

Чтобы быть здоровым к пенсии, нужно постоянно заниматься спортом

by @ivansychev 3 апреля в 22:50

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

image

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

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

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

В 2010 году в университетах Канады и Великобритании провели исследование, в котором приняли участие профессиональные бегуны в возрасте 65 лет, обычные 65-летние пенсионеры и молодые люди в возрасте 25 лет. Тогда выяснили, что у пожилых спортсменов в ногах гораздо больше мышечных волокон, подсоединённых к нервной системе.

Для проведения нового исследования канадского Университета МакГилла учёные пригласили 29 легкоатлетов мирового класса в возрасте 80 лет. В контрольную группу попали менее активные люди того же возраста. В лаборатории все участники давили ногой на платформу изо всех сил, и во время этого процесса учёные с помощью сенсоров отслеживали электрическую активность внутри мышц ноги.

Учёные определили, что спортсмены в среднем на 25% сильнее способны давить на платформу, и у них на 14% больше мышечной массы, чем у людей из контрольной группы.

Но самое важное — у атлетов было на 30% больше волокон, соединённых с нервной системой. У контрольной группы часто наблюдались сигналы, которые просто не доходили до волокна. Такие сигналы бывают, когда двигательный нейрон уже почти не работает. У атлетов мышцы ног были здоровее на клеточном уровне.

Джоффри Пауэр, автор исследования, отметил, что у пожилых атлетов мышцы лучше, чем у людей, которые младше на десятки лет.

Данное исследование из-за небольшой выборки не может считаться абсолютно истинным доказательством того, что любой человек, занимающийся какими-то упражнениями, будет стареть позже других. Эти атлеты в свои 80 лет занимаются несколько часов в неделю. К счастью, некоторые из них открыли для себя спорт после 50 лет — так что шанс у нас есть.