...

суббота, 13 сентября 2014 г.

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

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




Статья, к сожалению, сохранилась только локально, а оригинал не открывается. Благодарю автора — неизвестную Ambush. Текст немного скорректирован и переработан мной.


Электронно музыкальные синтезаторы можно разделить на 4 класса.


1. Аналоговые синтезаторы

2. Цифровые синтезаторы

3. Опто-электронные синтезаторы

4. Механические или пневматические синтезаторы.


Сегодня, дорогие друзья, мы поговорим с вами об аналоговых синтезаторах.

Аналоговые синтезаторы можно тоже разделить на 4 типа по способу формирования


Субтрактивный




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


Аддитивный (гармонический синтез)




Гармонический синтез являет собой наиболее точный и тонкий способ синтеза звука. Осуществляется это методом суммирования синусоидальных функций, где у каждой функции может произвольно изменяться амплитуда и частота. Для построения такого синтезатора необходимо N-ое количество генераторов таких функций (примерно от 40 и выше, в среднем где-то 256 генераторов).


FM-синтез




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


Всякие самобытные и оригинальные способы синтеза




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


Субтрактивный синтез




Субтрактивные синтезаторы тоже делятся на 2 класса. Это концертные синтезаторы и студийные синтезаторы. Но принцип их построения одинаков. Этот способ придумал в 1964 году Роберт Муг, хотя устройства подобного типа существовали задолго до его открытия. Эти устройства назывались аналоговые электронно-вычислительные машины. Роберт Муг всего лишь систематизировал и адаптировал этот тип аналоговых машин для музыкального применения. Аналоговые синтезаторы (сегодня мы будем рассматривать только студийный аналоговый синтезатор) также как и электронно-вычислительные машины состоят из модулей.

Клавиатуры, секвенсоры и джойстики…




1. Keyboard — это клавиатура: ) Она может быть как полифоническая, так и одноголосная. Клавиатура представляет собой источник калиброванного управляющего напряжения и управляющих импульсов («старт», «строб», по англ. GATE). Короткий управляющий импульс «старт» появляется в момент нажатия на клавишу. Управляющий импульс «строб» равен времени длительности нажатия на клавишу. Эти импульсы необходимы для синхронизации и запуска управляющих блоков в синтезаторе. Существуют клавиатуры, у которых есть дополнительное управляющее выходное напряжение, которое определяется силой нажатия на клавишу. Такие клавиатуры называются динамическими и стоят весьма дорого, но позволяют музыканту проявить все свое исполнительское мастерство.


2. Ribbon Controller — это полоска из специального материала, скольжением пальца по которой можно достичь плавного эффекта глиссандо



3. Sequencer — это секвенсор. Они бывают аналоговыми и цифровыми.


Аналоговые секвенсоры — это программные устройства, которые позволяют на выходе получать управляющее напряжение, мультиплексируемое аналоговым устройством с потенциометров. Положение угла поворота ручки потенциометра определяет управляющее напряжение. У секвенсоров может изменяться не только частота (скорость сканирования матриц потенциометров), но и скважность (соотношение паузы на длительность). Количество сканируемых потенциометров может быть произвольным. Количество каналов этих ячеек тоже. Все зависит только от свободного места на передней панели секвенсора, т.е. его размеров: ) Как правило емкость памяти таких секвенсоров не велика и обычно варьируется от 8 до 32 ячеек.



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



4. Joystick — это джойстик. Как правило это два потенциометра, находящиеся под углом 45 градусов, механически сконструированных таким образом, что позволяют одним рычажком свободно перемещаться по двум координатам — Х и Y, т.е. позволяют одним движением управлять сразу двумя параметрами. Существует еще колесико, которое называется Pitch Bend. Служит для того, чтобы получать «подтяжки».




Модули генераторов


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




2. Noise — это генератор шума. В студийных синтезаторах, как правило, используется генератор белого шума и генератор розового шума.



3. LFO — это низкочастотный генератор, предназначенный для управления блоками VCO, VCF и VCA. Как правило выходная функция такого генератора достаточно сложна и позволяет варьировать эти выходные функции в широких пределах, от синусоидальной функции до треугольной или прямоугольной, в большом диапазоне низких частот — 0,01-100 Герц. Эти устройства в свою очередь могут быть тоже управляемы напряжением и модулироваться таким же генератором, как и он сам. Но, как правило, запускается такой генератор сигналом «строб» или «старт», коррелирующими с функциями времени клавиатуры, секвенсора и других устройств. В качестве LFO иногда можно использовать ADSR, на котором можно заранее выстраивать необходимую функцию.



4. ADSR — это генератор огибающей функции.

A — (attack) — начальная фаза, подъем

D — (decay) — фаза перехода звука в установившееся состояние

S — (sustain) — фаза «поддержки»

R — (release) — послезвучание

Используется для управления блоками VCO, VCF, VCA, а так же LFO. Сущестуют блоки ADSR с большим количеством аппроксимирующих функцию элементов — от 4 до 8. Иногда эти модули выполняют с изменяемым от напряжения уровнем элементов, т.е. время атаки может задаваться напряжением от некоевого внешнего генератора функций времени, например, LFO или секвенсора. Так же интересно использовать для этой цели клавиатуру. В таком случае время атаки будет изменяться по всей длине звуко-высотного ряда клавиатуры. ADSR, как правило, запускается сигналом «строб» («gate») с клавиатуры или секвенсора. Также его можно запускать прямоугольным импульсом с LFO. Выходную функцию ADSR иногда интересно инвертировать.






5. Sample & Hold — генератор случайной выборки. Вместе с двумя генераторами Noise и LFO призван создавать случайную последовательность низкочастотных импульсов, которые используются для управления других функций синтезатора. Как правило имеет очень колоритное звучание. Иногда вместо генератора Noise можно использовать любой другой спектр — VCO, VCF, VCA, другой LFO. (не согласен, модуль по стробу запоминает сигнал со входа и держит его на выходе, а генератор случайной выборки получается из S&H именно при соединении noise и LFO, но могут быть и другие варианты применения)



Модули, управляемые напряжением


1. VCF — это фильтр, управляемый напряжением, служит для изменения спектрально-временных функций в зависимости от управляющего напряжения. Делятся, как правило, на 3 класса:


LPF — низкочастотный фильтр (ФНЧ).

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

HPF — высокочастотный фильтр (ФВЧ).

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

BPF — полосовой фильтр (образуется последовательным включением двух предыдущих фильтров) (полосовой фильтр).

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

Как правило в фильтрах студийных синтезаторов используются фильтры от 2 до 8 порядков. Один порядок равен 6 db/okt. Обычно используются фильтры 4 порядка, т.е. 24 децибела на октаву.



2. VCA — управляемый напряжением усилитель. Используется для управления функцией амплитудно-временных характеристик. Как правило работает вместе с генератором ADSR и LFO. Шумовые параметры такого усилителя очень важны. Компоненты, используемые для изготовления такого усилителя, должны быть очень высококлассные и иметь очень низкий коэффициент шума.



3. RM — балансный модулятор (обычно это простой 4 квадрантный перемножитель). Используется для придания звуку своеобразия и колоритности.



Вспомогательные модули


1. Mixer — это микшер. Необходим для смешивания N-го количества звуковых или управляющих сигналов. Как правило, это небольшие микшеры от 4 до 8 каналов. Существуют микшеры, которые выполняют функции суммирования и вычитания одновременно. В среднем положении потенциометра выходное напряжение канала равно 0. При повороте от 0 влево сигнал суммируется с другим каналом, а при повороте вправо вычитается из него, что дает больше разнообразия.



2. Signal Selector — это коммутатор. Выполняет функцию тройника: ) В том случае, если количество входов или выходов недостаточно, используют этот модуль.



3. FCV — преобразователь частоты в напряжение. Еще один занятный модуль, который можно использовать для преобразования частоты звука в напряжение, которое в свою очередь может использоваться для управления блоками синтезатора. Если подключить к его входу микрофонный усилитель, а выход этого устройства к VCO, то легко можно управлять звуко-высотным рядом синтезатора посредством голоса, флейты или какого-либо другого внешнего музыкального инструмента.



4. Lost modules — это могут быть какие угодно самые разнообразные модули, которых пока не существует в природе: ) Все зависит только от вашей творческой выдумки: ) Например, это может быть высокочувствительный энцефалограф, который позволяет снимать всевозможные альфа, вета, гамма с вашего мозга или биоэлектрическую активность с мышц тела и преобразовывать это в управляющее напряжение, что, на мой взгляд, даст интересные результаты при изучении обратной связи человек-машина, машина-человек. В конечном итоге даст возможность глубже интегрироваться в мир «силиконовых чудовищ»: ) Или, например, достаточно скудный по звучанию Терменвокс можно очень просто интегрировать в синтезатор, что позволит в свою очередь использовать дополнительные возможности для управления этим синтезатором. Ну и т.д. В сущности такой студийный синтезатор представляет собой электронно-акустическую лабораторию, в которой можно исследовать и использовать свои творческие задумки…



Теперь переходим к самому интересному — коммутации блоков между собой.






Чем больше степеней свободы в коммутации, тем больше свободы в практике звукоизвлечения мы имеем. Не нужно бояться коммутировать блоки между собой. Единственно, о чем нужно помнить, это не объединять два выхода между собой. Для коммутации в модулях на переднюю панель лучше всего выводить гнезда под микроджеки. Они более компактны. Кому не нравится «борода» из проводов, те могут сделать себе наборное поле. По оси X выводятся управляющие выходы, по оси Y управляемые входы, или же можно сделать электронный аналоговый коммутатор и клавиатурное поле N/M. В среднем примерно кнопочек так 40х40 в зависимости от сложности и количества модулей в аналоговом студийном синтезаторе. Вот поэтому я и говорю, что «борода» из проводов, наверное, будет все-таки лучше: ) Простенько и надежно.



Обычно в студийных аналоговых синтезаторах используется от 8 до 16-32 генераторов VCO, 4-16 VCF и столько же VCA. LFO я бы поставила на каждый управляемый модуль по одному, т.е. VCO+LFO, VCF+LFO, VCA+LFO. Чего там мелочиться: ) Тоже самое я бы проделала и с ADSR, т.е., проще говоря, на один управляемый блок приходится два управляющих блока. Все эти модули очень удобно размещать в каком-нибудь неглубоком ящичке, шкафчике в вертикальном положении стандарта Mini-Rack или, кто может, самостоятельно изготовить рековскую стойку, или приобрести ее и набить ее минирековскими модулями.



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

Конструктив студийного синтезатора может быть самым разнообразным. Главное придерживаться модульности конструкции. Это позволит наращивать устройство до бесконечности: )


by Ambush 16.04.2008


Ну и теперь лично от меня


Эмуляторы




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

VSTi Moog Modularhttp://ift.tt/1klAHBM

Эмуляторы реально существующих синтезаторов. Для изучения могут быть сложны. Структура жесткая (количество модулей не поменять).



Там же есть другие синты разной степени модульности


Arturia


ARP


SynthMaker http://ift.tt/15vTAJy

Среда для создания собственных синтезаторов и его интерфейса.


Эмулятор синтезатора, эмулирующего аналоговый синтез NordModular :)


VOID Modular Systemhttp://ift.tt/1tS62DA


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


И многие другие: http://ift.tt/WYPdIt


Ссылки по теме




diyfactory.ru — Сайт и форум наших самодельщиков.

ruskeys.net — Музей советских синтезаторов. Там же активный форум.

http://ift.tt/1tS62DE — Библиотека термен центра.

http://ift.tt/WYPc7C — Полнейшее из всех найденных описаний MIDI протокола на русском языке.

gieskes.nl/ — Огромное количество DIY звуковых прикольных устройств.

http://ift.tt/1tS62DK — Интересные конструкции, в т. ч. барабанной установки

www.sdiy.org/knas/ — Интересные проекты с аналоговыми синтезаторами

http://ift.tt/WYPdIH — Модульный синтезатор. Модули+схемы.

www.sdiy.org/ensign/ — Еще немного модулей.

http://ift.tt/WYPf3g — Еще один автор на sdiy.org

http://ift.tt/WYPdZ3 — Ссылки на другие проекты

http://ift.tt/1BBRTeR собрал денег на 3 проекта-модуля, стал производителем shop.hexinverter.net/

mutable-instruments.net/ — производители

http://ift.tt/1dXNRFm — Производители

http://ift.tt/WYPfjy — Производители

http://ift.tt/1tS612r — Производители

www.cyndustries.com — Производители

www.cgs.synth.net — Добрая кошка. Раздает схемы

yusynth.net — Добрый французский дядька. Раздает схемы.

http://ift.tt/1krETDQ — Добрые производители. Раздают схемы.

http://ift.tt/1zOSxVk — Чипофон. Вторая жизнь электрооргана.

http://ift.tt/1tS612v — Цифровая драммашина на базе семплов

www.fpga.synth.net/ — синтезаторы на базе ПЛИС и их же вики http://ift.tt/WYPefB

http://ift.tt/1tS612A — синтезаторы на FPGA

http://ift.tt/1tS612C — электромузыканты самодельщики

http://ift.tt/WYPefJ — интересные синтезаторы на базе ПЛИС с примерами звучания

http://ift.tt/WYPefL — моя библиотека, которую собираю в основном из советских материалов (Радио, МРБ, книги).

группы вконтакте:

vk.com/anysynth — обзоры, демо

vk.com/analog_sints — обзоры, демо

vk.com/synthandtits — синтез и сиськи (! осторожненько!)

Буду рад узнать о новых проектах в области Analog Synth DIY


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Голосовое управление Arduino средствами Processing и Google Speech API

Идея:




Пришла как-то идея сделать голосовое управление Arduino, но одного Arduino мало, т.к. для системы умного дома нужно еще и общение с компьютером и его системами.

Поиск решения:




BitVoicer



Натыкался на разного рода статьи с применением BitVoicer в связке с Arduino, но вся проблема в том, что BitVoicer работает только на Windows, а это не позволяет использовать систему на простых устройствах типа Rasberry Pi под управлением Unix.
Arduino Voice Recognition



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

Решение




Начал искать кросплатформенное решение, которое позволяло бы работать системе на множестве операционных систем. Нашлось такое: Speech to Text Library for Java/Processing . Комплекс реализован на базе языка Processing (Java) и Google Speach API о котом тут уже ранее писали. Данное решение позволяет отслеживать голос в реальном времени enableAutoRecord(), указывать лимит громкости enableAutoThreshold(), подключать внешние микрофоны getLineIn(), указывать язык распознавания setLanguage(String). Полный перечень возможностей и специфика есть на сайте разработчика: http://ift.tt/SrWJ6g. Для работы нам понадобиться Google Speech API Key. Как его получить описано тут: http://ift.tt/1gPGGdP. Единственный негативный момент в том, что Google Speech позволяет обрабатывать лишь 50 запросов в сутки, но на практике проходят больше 500 запросов.

image


Для того, чтобы в дальнейшем было проще ориентироваться по тексту, я прикладываю все исходники, в которых уже прописаны голосовые команды, подключение к плате Arduino, скетч для платы Arduino, голосовое подтверждение фраз и все остальное, что сейчас уже есть и работает: исходники. После скачивание папку GoogleTTS помещаем в библиотеки Processing'a. Скетч для Arduino лежит в папке GoogleTTS/ArduinoSerial. Все писалось на Processing 3.0a4, доступный в пре-релизе на официальном сайте.


Реализация («Слушай мою команду!»):



С распознаванием определились. Теперь нужно отлавливать нужные нам команды и по ним принимать решения. За это отвечает секция:

void commands()
{
if (result.equals("arduino")) { // Ищем соответствие
// Выполняющая команда при получении соответсвия
}
else if (result.equals("сколько время")) {
// Выполняющая команда при получении соответсвия
}

}


Голосовой ответ



Теперь нам нужен инструмент, который будет нам отвечать человеческим голосом в случае найденного соответствия. В качестве инструмента реализации был выбран Google Translate, а вернее модуль, который конвертирует текст в голос. Текст оправляется запросом на сервер Google, преобразуется в звуковой файл и отправляется нам обратно в формате mp3. За это отвечает секция:

void googleTTS(String txt, String language) { // преобразование текста в звук происходит командой googleTTS("текст", "язык")
String u = "http://ift.tt/1hNry3a";
u = u + language + "&q=" + txt;
u = u.replace(" ", "%20");
try {
URL url = new URL(u);
try {
URLConnection connection = url.openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; .NET CLR 1.2.30703)");
connection.connect();
InputStream is = connection.getInputStream();
File f = new File(sketchPath + "/" + txt + ".mp3");
OutputStream out = new FileOutputStream(f);
byte buf[] = new byte[1024];
int len;
while ((len = is.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.close();
is.close();
println("File created: " + txt + ".mp3");
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}


За обработку непосредственно текстовых фраз отвечает секция:



void voicer(String s) { // Выполняется командой voicer("текст")
println(s); // применяется для мониторинга текста
File f = new File(sketchPath + "/" + s + ".mp3"); // Проверка файла

// Если файл уже есть - проигрывть файл
if(f.exists()){
println("Файл уже есть! Проигрываю Файл!");
player = minim.loadFile(s + ".mp3");
player.play();
}

// Если файла еще нет - создаем его
else {
println("Файла еще нет! Создаю!");
googleTTS(s, "ru");
player = minim.loadFile(s + ".mp3");
player.play();
}
}


Пример реализации распознавания и голосового подтверждения:



void commands()
{
if (result.equals("компьютер")) { // Ищем соответствие
voicer("Слушаю"); // Получаем голосовое подтверждение
// Выполняющая команда при получении соответсвия
}
}




He is alive!

Processing + Arduino




Ну вот вроде и заработало, но чего-то не хватает. Теперь «подружим» это все с Arduino.

Инициализируем serial подключение в Processing для отправки данных на Arduino (для пользователей Mac и Unix):

String portName = Serial.list()[0];
myPort = new Serial(this, portName, 9600);
myPort.bufferUntil('\n');


Для Windows пользователей:



String myPort = new Serial(this, "Ваш COM-порт", 9600);
myPort.bufferUntil('\n');


И отправим туда команду при найденном голосовом соответствии:



void commands() {
if (result.equals("включи свет")) { // Если голосовая фраза распозналась как "включи свет", то выполняем запрос
myPort.write("High"); // Отправляет команду High в Serial подключение
voicer("Включаю свет"); // Голосовое подтверждение о выполнении команды
} else if (result.equals("выключи свет")) {
myPort.write("Low"); // Отправляет команду Low в Serial подключение
voicer("Выключаю свет"); // Подтверждение
// Выполняющая команда при получении соответсвия
}
}


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



int led = 13; // Пин светодиода на плате

void setup() {
Serial.begin(9600); // Инициализируем серийное подключение
pinMode(led, OUTPUT); // Пин светодиода передает данные
}

void loop() {
int i=0; // переменная для загона строки в буффер
char buffer[100]; // массив буфера для загона в него строки

if(Serial.available()){ // Ппроверяем серийный порт на наличие данных
delay(100);

//загоняем прочитанное в буфер
while( Serial.available() && i< 99) {
buffer[i++] = Serial.read();
}
//закрываем массив
buffer[i++]='\0';

String val = buffer;

if (val == "High") { // Если получили значение High
Serial.println("Led is On"); // Отправляем в Serial подтверждение получения
digitalWrite(led, HIGH); // Включаем светодиод
}
if (val == "Low") { // Если получили значение Low
Serial.println("Led is Off"); // Отправляем в Serial подтверждение получения
digitalWrite(led, LOW); // Выключаем светодиод
}
}
}




Все. Проверяем.

Проблемы и планы:




Т.к. я не занимался программирование до этого времени, я не до конца понимаю некоторые вещи в процессе отладки. Буду признателен, если кто-нибудь подскажет как решить проблемы из перечня ниже:

— Самая основная проблема — голосовая фраза не проговаривается целиком. Пропадают последние буквы. Хотя звуковой файл приходит с сервера Google в нормальном виде. Как я понимаю ситуацию: проблема аудио-плеера, но где именно пока не ясно.

— Уже писал, что у Google Speech API есть ограничение на 50 запросов в сутки, но по факту получается больше. В любом случае этого мало. Планирую прописать локальное распознавание главной команды и только после ее распознавания, остальной текст отправлять на обработку Google'у. Ищу решение.

— Думаю не помешает отправка команд на Ethernet-шилд Arduino, т.к. некоторые системы могут находиться на приличном расстоянии от главного компьютера и Serial подключение тут уже не подойдет. Займусь этим решение на днях, т.к. нет у меня в наличии роутера для подключения к нему Arduino с Ethernet-шилдом.


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


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Илья


сегодня в 15:07


Сегодня сооснователю Яндекса Илье Сегаловичу исполнилось бы 50 лет. Мы сняли небольшой фильм-воспоминание о нём. Вот его первая часть.




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


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Расширяем интеграцию Arduino в детский конструктор Знаток

Краткое содержание предыдущих серий:

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

Предыстория




Итак, после успешной интеграции Arduino в конструктор Знаток проходит короткое время, а ребенок требует: «Ещё!». Трех входов/выходов как-то маловато. (I2C чур не предлагать:). И отправился я в очередной раз в магазин покупать одежные кнопки. Но предварительно провел теоретические изыскания и выяснил, что для Знатока подходят кнопки Альфа (еще их называют омега — из-за формы прижимной пружины) диаметром 12.5мм. Кнопки состоят из четырех деталей, из которых мне нужна только одна. Деталь эта продается партиями по 1000шт за 20$, но продавцы с физиками не работают. Неожиданно, в магазине на четкие тактико-технические характеристики кнопки мне предлагают приемлемый ценник 1.6$ за 10шт (в полном комплекте) под торговой маркой Гамма. Беру!



Подключаем семисегментный индикатор




В комплект нашего конструктора Знаток входит семисегментый индикатор. Если суметь подключить его к Arduino, то можно будет собрать:


  • электронный кубик — жмешь кнопку — высвечивается число от 1 до 6.

  • счетчик нажатий.

  • секундомер (не забыть подавить дребезг)

  • игрушку змейка — змейка ползет по кругу. Мигает точка — яблоко. Когда голова змейки проползает рядом нажать кнопку. Змейка увеличится. Если нажать кнопку когда точка не горит — уменьшиться

  • игру узнай цифру. На индикаторе включаются сегменты случайным образом. Как только появляется цифра — нужно нажать кнопку. Учесть: перевернутые цифры -правильны, зеркальные — неправильны.


Берем провода, подпаиваем их к детали кнопки с пружинкой. Так как у меня нет обжимателя для кнопок, натянул сверху термоусадку (d=14мм). Так получилось, что на левую колонку контактов индикатора красную трубку, на правую — синюю. В усаженной трубке вырезаем отверстие для контакта.


Провода идущие к правой части индикатора должны быть длиннее на 5..6см. У меня получилось два четырехжильных кабеля на 20 и 25см.


Собрали схему. Ура! Заработало!



Бонус трек для тех, кто дочитал до конца, а также для тек у кого в состав конструктора Знаток не вошел семисегментный индикатор



Остались запчасти от кнопок. Куда бы их приспособить? Берем часть, которая фиксируется пружинкой и пару скрепок. (Вместо скрепок лучше взять прямые пины с квадратным сечением, но у меня их под рукой не нашлось.) Толщину скрепки лучше выбирать из спецификаций макетной платки (обычно 0.3..0.8мм).


Нарезаем скрепку на кусочки по 1см и запаиваем их вертикально в кнопку. Получились этакие грибочки — gender-race ченджеры.


У меня, к сожалению, не нашлось семисегментного индикатора, зато нашелся 36-ти точечный. Примерная схема на фотографии.


И да прибудет с вами фантазия!


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Анонс онлайн-курса «Программирование робота вместе с ROS»


сегодня в 12:09



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

Сегодня в рамках конкурса на образовательной платформе Stepic мы анонсируем онлайн-курс «Программирование робота вместе с ROS». Наш курс будет интересен людям, неравнодушным к программированию и робототехнике, и готовым получить новые знания и навыки по разработке ПО для роботов, конечно же, приложив при этом необходимые усилия. Получить представление о содержимом курса вы можете из небольшого интро-видео.



Курс будет состоять из 7 недельных модулей, а предполагаемая нагрузка составит 6-7 часов в неделю. В качестве учебных материалов планируется использовать лекции в формате видео-слайдов, демонстрационные записи с экрана, различные виды «квизов» и задачи на программирование на языке Python. Студенты также получат возможность работать в симуляторе с данными реальных сенсоров.

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

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




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


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Sega создала интерактивную песочницу для торговых центров и игровых залов


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


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


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


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


Кроме всего прочего, в песочнице происходит и смена времен года, можно наблюдать все четыре сезона: лето, осень, зиму и весну.



Что касается виртуальных животных, которые населяют созданный ребенком мир, то с ними тоже можно взаимодействовать. Животные реагируют на прикосновение или действие игрока в непосредственной близости с таким «организмом».



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


Via nikkeibp


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.


Марсоход Curiosity: интересное только начинается

Пару недель назад чиновники NASA продлили финансирование экспедиции Curiosity, но при этом высказали претензии, что марсоход слишком много ездит и мало изучает. Позавчера научная команда ответила: «а мы уже приехали!». Правда многие журналисты поняли их буквально: мол все, приехали, цель достигнута, но реально марсоход только приступает к своей основной научной программе, ради которой его и посылали.





Больше года Curiosity двигался вдоль горы Шарпа, объезжая черные песчаные завалы у подножья, и подбираясь к более перспективной, с точки зрения науки, местности. В качестве ориентира выбрали условную Точку Входа, от которой планировалось двинуться на штурм горы. Неожиданно пересеченная местность и твердые камни по пути привели к повышенному износу колес, поэтому марсоходу приходилось двигаться медленнее, тщательно выбирая маршрут, объезжая опасные россыпи.


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



Марсоход ринулся на покорение оврага Hidden Walley, но и песок подкинул сюрпризов. Те дюны, которые встречались ранее на пути, и которые устилают дно оврагов, состоят фактически не из песка, а из более тонкой фракции, которую американские геологи называют silt, а наши «алеврит» — переходная форма между песком и пылью. По механическим свойствам марсианский алеврит больше всего похож на цемент или какао-порошок. Марсоход испытывали в пустыне, но на обычном песке, поэтому поведение на такой поверхности на Марсе было неустойчивым.


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



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



Попутно было снято очередное марсианское солнечное затмение:



Curiosity изготовился к бурению. Проверил устойчивость своего положения, приложился к камню буром.




Обратите внимание на толчок, который происходит после касания грунта двумя упорами. Это марсоход имитирует нагрузку, которая необходима дрели.


Следующая проба была на вибрацию.



Результат теста показал, что порода слишком рыхлая и место для скважины выбрано неудачно. От этой затеи пришлось отказаться и покинуть Hidden Walley. В то же время Bonanza King не разочаровал. Анализ спектрометром ChemCam показал повышенное содержание кремния, причем в такой концентрации какой практически не встречалось за время всего исследования Марса.




На снимке можно увидеть результат работы сразу двух инструментов: отметины справа от лазера ChemCam, и след от щетки DRT слева.


Больше кремния нашел только Spirit, когда раскопал отложение чистейшего диоксида кремния, в виде белого песка.


Bonanza King пришлось оставить. Обойдя стороной, и как следует осмотревшись Curiosity выбрал новую цель в оврагах, и снова бесстрашно двинулся вперед. На этот раз ложбину назвали Amargosa Walley. Она гораздо просторнее и не вся перегорожена дюнами, поэтому пройти можно.



А тут 360-градусная сферическая панорама входа в Amargosa Walley, собранная и обработанная фотоходожником Андреем Бодровым (скрин кликабелен, открывать лучше в новой вкладке):



Цель для исследования назвали Pahrump Hills. Она представляет из себя выход пласта светлой породы. Ожидается, что там будет обнаружено еще больше кремния.



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


После Pahrump Hills ученые NASA решили изменить маршрут, забыть о ранее намеченной Точке Входа, и двинуться сразу к горе. Буквально несколько дней назад подумалось: «вот бы ученые не выгоняли Curiosity снова на берег, а двинулись уже оврагами к горе...» И пожалуйста: мечты сбываются. Заодно километр сэкономили.



Впереди ожидается много интересного:

шестиметровые столовые горы Murray Buttes;



древнейшая поверхность Murray Formation, которая ещё помнит удар астероида, породившего кратер Гейла, и другие удары времен тяжелой метеоритной бомбардировки;



гипнотические, в своей черноте, песчаные дюны, долгое время не пускавшие марсоход к горе;



Гематитовый хребет, который может оказаться остатками древней реки, в которой обитали (возможно) хемолитотрофные бактерии;



глинистые отложения, которые могли сохранить органику;



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



и, наконец, отложения boxwork, на высоте 800 метров от подножия, которые могут оказаться пересохшим и окаменевшим дном морского залива, когда-то заполнявшим кратер Гейла.



Сейчас этот boxwork считается финишной точкой маршрута Curiosity, но сможет ли он туда добраться, и останется ли там навсегда, сейчас нельзя сказать. Посмотрим.


Смотреть еще можно через Twitter официальный или zelenyikotовый.


This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at http://ift.tt/jcXqJW.