Коллекционерам спичечных этикеток хорошо известно начало фразы, вынесенной в заголовок этой публикации. Это предупреждение в разных видах часто наносилось на этикетки маленьких коробочек во времена СССР. Можно возмущенно спросить: «А причем здесь, «Здоровье Гика» и тот же Минздрав?». – Отвечу: «Так, сначала же рассказывают присказку, а сказка будет впереди…»
Tolkachev Konstantin @kasperos
ИТ: администрирование, рем., диагн., и т.д. и т.п.
Щелкаем реле правильно: коммутация мощных нагрузок
3 min
253KПривет, Geektimes!
Управление мощными нагрузками — достаточно популярная тема среди людей, так или иначе касающихся автоматизации дома, причём в общем-то независимо от платформы: будь то Arduino, Rapsberry Pi, Unwired One или иная платформа, включать-выключать ей какой-нибудь обогреватель, котёл или канальный вентилятор рано или поздно приходится.
Традиционная дилемма здесь — чем, собственно, коммутировать. Как убедились многие на своём печальном опыте, китайские реле не обладают должной надёжностью — при коммутации мощной индуктивной нагрузки контакты сильно искрят, и в один прекрасный момент могут попросту залипнуть. Приходится ставить два реле — второе для подстраховки на размыкание.
Вместо реле можно поставить симистор или твердотельное реле (по сути, тот же тиристор или полевик со схемой управления логическим сигналом и опторазвязкой в одном корпусе), но у них другой минус — они греются. Соответственно, нужен радиатор, что увеличивает габариты конструкции.

Я же хочу рассказать про простую и довольно очевидную, но при этом редко встречающуюся схему, умеющую вот такое:
Но сначала — чуть-чуть иллюстраций. Во всех случаях использовались реле TTI серий TRJ и TRIL, а в качестве нагрузки — пылесос мощностью 650 Вт.
Управление мощными нагрузками — достаточно популярная тема среди людей, так или иначе касающихся автоматизации дома, причём в общем-то независимо от платформы: будь то Arduino, Rapsberry Pi, Unwired One или иная платформа, включать-выключать ей какой-нибудь обогреватель, котёл или канальный вентилятор рано или поздно приходится.
Традиционная дилемма здесь — чем, собственно, коммутировать. Как убедились многие на своём печальном опыте, китайские реле не обладают должной надёжностью — при коммутации мощной индуктивной нагрузки контакты сильно искрят, и в один прекрасный момент могут попросту залипнуть. Приходится ставить два реле — второе для подстраховки на размыкание.
Вместо реле можно поставить симистор или твердотельное реле (по сути, тот же тиристор или полевик со схемой управления логическим сигналом и опторазвязкой в одном корпусе), но у них другой минус — они греются. Соответственно, нужен радиатор, что увеличивает габариты конструкции.

Я же хочу рассказать про простую и довольно очевидную, но при этом редко встречающуюся схему, умеющую вот такое:
- Гальваническая развязка входа и нагрузки
- Коммутация индуктивных нагрузок без выбросов тока и напряжения
- Отсутствие значимого тепловыделения даже на максимальной мощности
Но сначала — чуть-чуть иллюстраций. Во всех случаях использовались реле TTI серий TRJ и TRIL, а в качестве нагрузки — пылесос мощностью 650 Вт.
+72
Управление бесколлекторным двигателем по сигналам обратной ЭДС – понимание процесса
13 min
124KКогда я начал разрабатывать блок управления бесколлекторным двигателем (мотор-колесом), было много вопросов о том, как сопоставить реальный двигатель с абстрактной схемой из трех обмоток и магнитов, на которой, как правило, все объясняют принцип управления бесколлекторными двигателями.
Когда я реализовал управление по датчикам Холла я еще не очень понимал, что происходит в двигателе дальше абстрактных трех обмоток и двух полюсов: почему 120 градусов и почему алгоритм управления именно такой.
Все встало на место, когда я начал разбираться в идее бездатчикового управления бесколлекторным двигателем — понимание процесса, происходящего в реальной железке, помогло разработать аппаратную часть и понять алгоритм управления.
Ниже я постараюсь расписать свой путь к пониманию принципа управления бесколлекторным двигателем постоянного тока.

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

+19
Анонсирована ARM64 плата для разработчиков (и фана) за 40$ Odroid-C2 на Amlogic S905
5 min
23KДобрый день, уважаемые читатели!
Странно, что пока еще не появилось короткой новости об этом, поэтому возьмусь написать. На прошлой неделе компания Hardkernel, знакомая в основном производством dev-плат на базе процессоров arm разных производителей (в основном Samsung Exynos и Amlogic, но была у них и плата полный аналог RPi более маленького формата, которой им крепко прижали выпуск), анонсировала выход новой платы Odroid-C2 на базе 64-битного процессора ARM S905 от Amlogic.

Не смотря на то, что на официальном сайте про новую плату пока еще ничего не сказано, вся информация о ней уже доступна. Да и то, что плата разработана и отлажена, и находится в полшаге от производства совершенно очевидно. Как и то, что предзаказы открытые на начало марта через месяц уже начнут доставляться. Поэтому без промедления
+20
Обзор и сравнительное тестирование ПЭВМ «Эльбрус 401‑PC». Часть третья — средства разработки
12 min
36KПродолжаем обзор нового отечественного компьютера. После краткого знакомства с особенностями архитектуры «Эльбрус», рассмотрим предлагаемые нам средства разработки программного обеспечения.




+48
В России заработал реестр отечественного ПО
1 min
17KСайт реестра отечественного ПО заработал ещё в середине января, но сам реестр был пуст. 29 января в реестре появились первые записи.
reestr.minsvyaz.ru/reestr

Определённый интерес представляет включение в реестр СУБД «Ред база данных». Дело в том, что это продукт, основанный на open source проекте Firebird. Но с блек-джеком и сертификатом ФСТЭК. При этом на сайте разработчика перечислен внушительный список федеральных министерств в качестве заказчиков.
Совсем недавно в интернете обсуждали волгоградский опыт обоснования закупки зарубежного ПО в виду отсутствия записей в реестре отечественного ПО.
reestr.minsvyaz.ru/reestr

Определённый интерес представляет включение в реестр СУБД «Ред база данных». Дело в том, что это продукт, основанный на open source проекте Firebird. Но с блек-джеком и сертификатом ФСТЭК. При этом на сайте разработчика перечислен внушительный список федеральных министерств в качестве заказчиков.
Совсем недавно в интернете обсуждали волгоградский опыт обоснования закупки зарубежного ПО в виду отсутствия записей в реестре отечественного ПО.
+11
+10
Хабра-граф, -сообщества и куда же делась вся карма
7 min
29KВступление
Cегодня мы вместе с анализом графов, data mining, subgroup discovery и всеми веселыми штуками взглянем на Хабр. Весь код и данные прилагаются — каждый может взглянуть на них самостоятельно, легко повторить рассчеты из статьи и найти что-то интересное самостоятельно.

(это не просто картинка для привлечения внимания, а — граф связей ~45000 пользователей Хабра по тому, кто на кого подписан; размер вершины пропорционален числу подписчиков; все картинки кликабельны; подробности далее)
Обсуждаемые проблемы возникли, конечно же, далеко не вчера, но некоторые их аспекты кажутся мне достаточно новыми и поэтому достойными дискуссии, основанной на непредвзятых и репрезентативных данных. Например в комментариях этой статьи, увидел интересное утверждение:
Тут проблема в том, что на всем хабре за сегодня не насчитать больше 50-80 человек, которые вообще могут голосовать. У 90% пользователей карма просто ниже 5. Как итог оценивают комментарии и статьи только избранные. Это как жюри выходит такое.
И решил, что стоить его сформулировать в виде гипотезы и проверить:
Q1: Правда ли, что Хабр превратился в жюри-based сообщество, где два с половиной человека голосуют за статьи?
Вот в этой статье к нам вернулись "железные" Хабы и стало интересно, а как вообще представлены разные сообщества внутри Хабра? Формулируем в виде гипотезы:
Q2: Как сегментировано сообщество, или проще говоря сколько у нас здесь групп по интересам и соотвествуют ли они имеющимся хабам?
Последнее, но не менее интересное наблюдение, что активность на Хабре упала (по данным Хабра-пульса и моим субъективным наблюдениям), что даже решили ввести аккаунты "read & comment". Поэтому решил оценить активность сообщества и продумать, как информация о структуре сообщества может нам помочь:
Q3: Насколько активно сообщество и как нам может помочь структура внутренних групп?
За подробностями добро пожаловать под кат.
Структура статьи
+160
#Маленькая приятная новость
1 min
33KВсем привет! На наших проектах (Habrahabr, Geektimes и Мегамозг) появилось то, чего вы так долго ждали.


+237
Что на самом деле может виртуальная память
7 min
34K
Мы в 1cloud стараемся рассказывать о различных технологиях — например, контейнерах, SSL или флеш-памяти.
Сегодня мы продолжим тему памяти. Разработчик Роберт Элдер (Robert Elder) в своем блоге опубликовал материал с описанием возможностей виртуальной памяти, которые известны не всем инженерам. Мы представляем вашему вниманию основные мысли этой заметки.
+17
Все погодные аномалии 2015 года за 8 минут
1 min
18K
Привет читатели и почитатели Хабра!
На днях Европейская организация по эксплуатации метеорологических спутников (EUMETSAT) совместно с коллегами из метеорологических агентств Японии и США опубликовала видео, которое вобрало все данные наблюдений за погодой в течение ушедшего 2015 год.
Два полушария, 12 месяцев и 8 минут отличной визуализации данных ждут Вас под катом!
+11
Процесс эволюции видеоадаптеров из 80-х в 2000-е
12 min
38KТакой важный и незаменимый компонент системы, как видеокарта, прошел долгий путь развития. На протяжении десятилетий ускорители графики совершенствовались и менялись в соответствии с прогрессирующими технологиями.
Обе модели были выпущены компанией IBM в 1981 году. MDA изначально ориентировался на деловую сферу и создавался под работу с текстом. Работая с нестандартными вертикальными и горизонтальными частотами, этот адаптер обеспечивал четкость изображения символов. В то же время CGA поддерживал только стандартные частоты и уступал в качестве выводимого на экран текста. Кстати в IBM PC можно было использовать одновременно оба адаптера.

Видеоадаптеры MDA и CGA
Обе модели были выпущены компанией IBM в 1981 году. MDA изначально ориентировался на деловую сферу и создавался под работу с текстом. Работая с нестандартными вертикальными и горизонтальными частотами, этот адаптер обеспечивал четкость изображения символов. В то же время CGA поддерживал только стандартные частоты и уступал в качестве выводимого на экран текста. Кстати в IBM PC можно было использовать одновременно оба адаптера.

+35
ПК Эльбрус. Мифы и реальность
6 min
177KВокруг Эльбруса ходит много мифов. Вы можете встретить их в комментариях к любому посту или статье про Эльбрус. Основные категории мифов можно свести к трем вопросам:
1. Является ли Эльбрус отечественным? Отечественный значит безопасный?
2. Какова производительность? Насколько «современен» компьютер на базе Эльбрус.
3. Сколько он стоит?
1. Является ли Эльбрус отечественным? Отечественный значит безопасный?
2. Какова производительность? Насколько «современен» компьютер на базе Эльбрус.
3. Сколько он стоит?
+40
Принципы, изложенные в трактатах Сунь Цзы лягут в основу концепции безопасности в новой ОС “Chameleon”
3 min
9.3KПриветствуем наших читателей на страницах блога iCover! Все мы заинтересованы в том, чтобы наши персональные компьютеры и ноутбуки работали производительно, стабильно и предсказуемо. Но что, если ключ к победе над вредоносным ПО, нарушающего привычный ритм нашего общения с системой, лежит в целенаправленном создании “дозированного и контролируемого хаоса” по инициативе самой ОС? Именно такую нестандартную логику предложили взять на вооружение разработчики новой операционной системы Chameleon (не ОС Xameleon), обратившись к классическим канонам об искусстве ведения войны Сунь Цзы и Юлия Цезаря.


+4
Механизмы и принципы работы памяти головного мозга человека
6 min
123K
Поводом написания данной статьи послужила публикация материала американских неврологов на тему измерения емкости памяти головного мозга человека, и представленная на GeekTimes днем ранее.
В подготовленном материале постараюсь объяснить механизмы, особенности, функциональность, структурные взаимодействия и особенности в работе памяти. Так же, почему нельзя проводить аналогии с компьютерами в работе мозга и вести исчисления в единицах измерения машинного языка. В статье используются материалы взятые из трудов людей, посвятившим жизнь не легкому труду в изучении цитоархитектоники и морфогенетике, подтвержденный на практике и имеющие результаты в доказательной медицине. В частности используются данные Савельева С.В. учёного, эволюциониста, палеоневролога, доктора биологических наук, профессора, заведующего лабораторией развития нервной системы Института морфологии человека РАН.
+18
Официальный ответ Tesla Motors на статью о самодельном автопилоте Джорджа Хоца
3 min
39K
Всего за два месяца обучения автопилот освоил езду по шоссе, в том числе с плохо различимой дорожной разметкой, а также ряд специфических манёвров.
+29
Мифы об SSD, которые необходимо развеять
4 min
151KПривет, Geektimes! Мифы Древней Греции отдыхают по сравнению с тем, в какое заблуждение введены покупатели современных твердотельных накопителей. То, что было актуально еще во время появления SSD на рынке и развития данной технологии, многие продолжают переносить и на современные продукты. Давайте вместе разберемся с этими многочисленными обсуждениями и попробуем поставить точку в вопросах, касающихся SSD.

Откуда вообще появились эти мифы? Одни полагают, что это связано с особенностью мышления потребителей, которые страдают от нехватки актуальной информации по данному вопросу. Другие считают, что в этом есть определенный элемент консерватизма — мол, компьютер на HDD работает, ну и хорошо. Такие пользователи по непонятным причинам в последнюю очередь думают о замене накопителя при апгрейде своего компьютера. В общем, как бы то ни было, мифов по поводу SSD за несколько лет накопилось очень много. Поэтому их необходимо развеять, что мы и попытаемся сделать.

Откуда вообще появились эти мифы? Одни полагают, что это связано с особенностью мышления потребителей, которые страдают от нехватки актуальной информации по данному вопросу. Другие считают, что в этом есть определенный элемент консерватизма — мол, компьютер на HDD работает, ну и хорошо. Такие пользователи по непонятным причинам в последнюю очередь думают о замене накопителя при апгрейде своего компьютера. В общем, как бы то ни было, мифов по поводу SSD за несколько лет накопилось очень много. Поэтому их необходимо развеять, что мы и попытаемся сделать.
+4
Покрытие графов в тестировании ПО, часть 2
4 min
8.5KTranslation

В первой части: определения, покрытие вершин, ребер, путей, цикломатическая сложность.
+7
Источники выделения энергии на кристалле ИМС
7 min
6.8KВся современная микроэлектроника базируется на полупроводниках. На кристалле создаются зоны различной проводимости, которые объединяются в некоторую логику. Кристаллы работают, потребляя электрическую энергию и преобразуя её в тепло. Эта статья описывает основные процессы, на которые расходуется энергия при работе ИМС.
Источником выделения тепла на кристалле ИМС являются три основных процесса: динамическая мощность, короткое замыкание и токи утечки. Обзор этих процессов будет проводиться на примере n-МОП технологии (хотя все описанное будет справедливо и для р -МОП)
Источником выделения тепла на кристалле ИМС являются три основных процесса: динамическая мощность, короткое замыкание и токи утечки. Обзор этих процессов будет проводиться на примере n-МОП технологии (хотя все описанное будет справедливо и для р -МОП)
+11
Полвека «универсальным машинным языкам» (1966—2016): прошлое, настоящее, будущее
27 min
19K
Прошлое
Повествование можно начать с 1962 г., когда в Кембриджском университете началась работа над CPL («Cambridge Programming Language») — «усовершенствованным вариантом» ALGOL-60. К работе над языком подключился аспирант Мартин Ричардс; главной сложностью в реализации нового ЯП ему показалась необходимость ручного портирования компилятора для разных компьютерных платформ. В частности, когда кембриджский EDSAC-2 заменили на Atlas-2, разработчики CPL потратили много времени на портирование своего компилятора для новой платформы.
Диссертация Мартина была посвящена «само-компилирующемуся» CPL: разработанный Мартином компилятор был написан на сильно упрощённом варианте CPL, компилятор которого несложно было написать на тогдашнем макроассемблере. Перенос CPL на новую платформу теперь можно было выполнить в два шага:
- Вручную пишем компилятор «упрощённого CPL»;
- Компилируем им компилятор «полного CPL».
На этом Мартин не остановился, и разработал BCPL — систему для разработки переносимых компиляторов. Компилятор BCPL генерировал псевдокод, названный Мартином «OCODE».
OCODE выглядел примерно так:
(Для экономии места, последовательности команд записаны в одну строчку. Мартин в своём руководстве по BCPL поступает точно так же.)
Исходный код на BCPL:
Среди «универсальных машинных языков» OCODE уникален тем, что метки в нём определяются специальными инструкциями — т.е. для интерпретации программы её нужно сначала всю загрузить в память, и найти в ней метки.
— а отдельная программа, кодогенератор, превращала файл с таким псевдокодом в исполнимую программу для конечного процессора. OCODE сохранялся в виде текстового файла из десятичных чисел, разделённых пробелами и переводами строк: в то время, когда OCODE разрабатывался, привязка формата файла к конкретному размеру байта ограничивала бы переносимость такого файла.OCODE | «расшифровка» («procode») | |
---|---|---|
94 5 L1 83 73 69 86 69 95 4 42 0 42 0 40 2 14 83 42 0 42 1 40 2 14 83 42 2 40 3 42 1 15 92 85 L5 90 L6 42 1 40 4 40 2 14 83 40 4 42 1 14 80 4 90 5 40 4 40 5 88 L6 91 4 42 2 40 3 42 1 15 92 85 L7 90 L8 40 4 40 2 14 8 87 L9 40 4 42 2 11 92 85 L11 90 L10 42 0 40 6 40 2 14 83 40 4 40 6 14 80 6 90 L11 40 6 40 3 22 86 L10 91 6 90 L9 40 4 42 1 14 80 4 90 L7 40 4 40 5 88 L8 91 4 97 103 0 |
ENTRY 5 L1 'S' 'I' 'E' 'V' 'E' SAVE 4 LN 0 LN 0 LP 2 PLUS STIND LN 0 LN 1 LP 2 PLUS STIND LN 2 LP 3 LN 1 MINUS STORE JUMP L5 LAB L6 LN 1 LP 4 LP 2 PLUS STIND LP 4 LN 1 PLUS SP 4 LAB L5 LP 4 LP 5 ENDFOR L6 STACK 4 LN 2 LP 3 LN 1 MINUS STORE JUMP L7 LAB L8 LP 4 LP 2 PLUS RV JF L9 LP 4 LN 2 MULT STORE JUMP L11 LAB L10 LN 0 LP 6 LP 2 PLUS STIND LP 4 LP 6 PLUS SP 6 LAB L11 LP 6 LP 3 LS JT L10 STACK 6 LAB L9 LP 4 LN 1 PLUS SP 4 LAB L7 LP 4 LP 5 ENDFOR L8 STACK 4 RTRN ENDPROC 0 |
; стековый кадр (два параметра и две локальные переменные) ; поместить на стек число 0 ; поместить ещё один 0, прибавить к нему 2-ой элемент стека ; записать в массив на вершине стека значение под ним ; всё то же самое для 1-ого элемента массива ; поместить на стек число 2 ; вычесть единицу из значения 3-его элемента стека ; записать результат в локальную переменную ; перейти к метке L5 ; объявление метки L6 ; взять 4-ый элемент стека, записать в массив по этому индексу 1 ; прибавить к 4-ому элементу стека 1, записать результат обратно ; L5: перейти к метке L6, если 4-ый элемент стека <= 5-ому ; объявление, что на стеке сейчас четыре элемента ; вычесть единицу из значения 3-его элемента стека ; перейти к метке L7 ; L8: сложить 4-ый и 2-ой элементы стека ; прочитать значение по этому адресу; если это 0, перейти к L9 ; умножить 4-ый элемент на два ; перейти к метке L11 ; объявление метки L10 ; взять 6-ой элемент стека, записать в массив по этому индексу 0 ; прибавить к 6-ому элементу стека 4-ый, записать рез-т обратно ; объявление метки L11 ; перейти к метке L10, если 7-ой элемент стека меньше 4-ого ; на стеке сейчас шесть элементов; объявление метки L9 ; прибавить к 4-ому элементу стека 1, записать результат обратно ; L10: перейти к L8, если 4-ый элемент стека <= 5-ому ; на стеке четыре элемента; окончание процедуры |
Исходный код на BCPL:
В более новых версиях OCODE добавилась поддержка чисел с плавающей точкой (соответственно, набор поддерживаемых опкодов почти удвоился), а также удалили опкодLET sieve(workvec, vecsize) BE { workvec!0 := 0 workvec!1 := 0 FOR i = 2 TO vecsize-1 DO workvec!i := 1 FOR i = 2 TO vecsize-1 DO IF workvec!i DO { LET j = 2 * i WHILE j < vecsize DO { workvec!j := 0 j := j + i } } }
ENDFOR
— вместо него генерируется пара LE JT
.Среди «универсальных машинных языков» OCODE уникален тем, что метки в нём определяются специальными инструкциями — т.е. для интерпретации программы её нужно сначала всю загрузить в память, и найти в ней метки.

- Вручную написать интерпретатор псевдокода(2) (на любом языке, хоть на Бейсике);
- Адаптировать кодогенератор,(3) написанный на BCPL, для своей платформы;
- Запустить под интерпретатором (2) компилятор BCPL (1), скормить ему кодогенератор (3), и получить на выходе исполнимый файл кодогенератора(4);
- Интерпретатор (2) нам с этого момента больше не нужен.
- Прогнать через кодогенератор (4) псевдокод компилятора (1), и получить на выходе исполнимый файл компилятора.
Такой подход означал, что для переноса компилятора на новую платформу требуется лишь самый минимум низкоуровневого программирования; и действительно, реализация BCPL была завершена к 1967 г. — раньше, чем была завершена реализация CPL, начатая на несколько лет раньше!
Достоинства BCPL применительно к системному программированию вдохновили Кена Томпсона на создание языка Би, а тот — коллегу Кена, Денниса Ритчи, на создание Си. Именно из BCPL пошла традиция обозначать
{
фигурными скобками}
блоки программы, и именно на BCPL была написана первая программа «Hello, World!».Более важная нам причина, по которой BCPL вошёл в историю: OCODE — первая универсальная «архитектура набора команд» (ISA), т.е. «виртуальная машина», не привязанная ни к какой конкретной аппаратной платформе с её особенностями. BCPL, таким образом — первый язык программирования, соответствующий парадигме «Write once, run anywhere» (WORA): программу на BCPL можно распространять в скомпилированном виде, и её можно будет запустить на любой платформе, для которой существует OCODE-кодогенератор.GET "libhdr" LET start() = VALOF { writef("Hello*n") RESULTIS 0 }
+49
Information
- Rating
- Does not participate
- Location
- Екатеринбург, Свердловская обл., Россия
- Registered
- Activity