Pull to refresh

Простое удалённое управление с компьютера роботом

Reading time5 min
Views52K
Предисловие или зачем извращаться?

Здравствуй, Хабрахабр! Я сидел вечером 11 июня, смотрел фильм. Неожиданно для себя я обнаружил, что мне написала незнакомая мне ранее женщина с предложением сделать робота для их нового квеста. Суть заключается в том, что нужно разгадывать головоломки, исследовать тайники, правильно применять подсказки, использовать доступные вещи и в итоге добывать ключи и открывать двери… От меня требовалось сделать робота, управляемого с компьютера с помощью отдельной программы. У мебя были сомнения по поводу некоторых проблем, например: успею ли я и как именно сделать беспроводную передачу данных (беспроводной передачей данных я занимался до этого только на NXT)? Взвесив все за и против я согласился. После этого я стал думать над передачей данных. Поскольку требовалось сделать робота быстро, то вспоминать и доосваивать, например, Delphi не было времени, поэтому возникла идея сделать модуль который будет заниматься отправкой команд. От компьютера требуется просто посылать данные в СОМ-порт. Этот способ странный, но наиболее быстрый. Его я и хочу описать здесь. Так же я приложу 3 программы которые помогут сделать радиоуправляемую машинку.
Читать дальше →
Total votes 31: ↑28 and ↓3+25
Comments4

Команда разработчиков графического языка Processing представила официальную JavaScript-библиотеку p5.js

Reading time3 min
Views24K
Язык Processing, основанный на Java, был написан в 2001 году для создания графики и анимаций. Для использования этого языка в интернете в 2008 году Джон Резиг написал библиотеку Processing.js. Библиотека быстро завоевала популярность и активно развивалась в течение нескольких лет после релиза. Часы на кривых Безье, о которых на Хабре писали несколько дней назад, были созданы именно с помощью Processing.js.

В прошлом году команда разработчиков Processing объявила о планах создать собственную JavaScript-библиотеку. В августе бета-версия p5.js была представлена широкой публике. Библиотека p5.js сильно отличается от Processing.js по архитектуре. Главные отличия — отсутствие необходимости изучать язык Processing и более тесная интеграция с HTML. Processing.js — это транслятор Processing в JavaScript. Основное назначение этой библиотеки — рендеринг файлов PDE с исходным кодом Processing. При использовании этой библиотеки программист может вообще не знать JavaScript. Возможно, в 2008 году это была весьма удачная идея, но сейчас, после нескольких лет бурного развития JavaScript и появления множества графических библиотек сформировалось поколение программистов и дизайнеров, для которых JavaScript намного «роднее» и понятнее Java-подобного Processing.


Пример анимации, созданной с помощью языка Processing
Читать дальше →
Total votes 46: ↑46 and ↓0+46
Comments3

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

Reading time5 min
Views69K

Идея:


Пришла как-то идея сделать голосовое управление Arduino, но одного Arduino мало, т.к. для системы умного дома нужно еще и общение с компьютером и его системами.
Читать дальше →
Total votes 24: ↑20 and ↓4+16
Comments13

Общение между компьютером и Android-устройством через Processing

Reading time7 min
Views13K
Есть определённая категория людей, которая хотела бы писать программы, но боится серьёзных языков программирования. К ним можно отнести детей, гуманитариев, любителей мастерить, людей старшего поколения и т.д. Кто-то пробует использовать «детские» языки типа Scratch или другие упрощённые конструкторы.

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

Processing — это простенькая среда разработки с языком Java с ограниченным числом классов. Здесь есть переменные, циклы, объекты. В первую очередь Processing расчитан на работу с графикой, анимацией, вычислениями. То, что так нравится детям. Всё наглядно и красиво.
Если у пользователя появится желание перейти на новый уровень и начать использовать полноценный язык Java, то все наработки не пропадут даром. Большая часть кода не потребует переработки и можно свободно копировать больше участки кода.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments3

Кейси Риас: софт как искусство

Reading time7 min
Views5.3K

Интервью с Кейси Риасом о процедуральных искусстве и дизайне, развитии цифровых инструментов и о том, как софт стал стал новым выразительным средством для художников. Риас — один из создателей Processing, профессор UCLA, медиахудожник, автор трёх книг о программировании и визуальных медиа. Его работы выставлялись в San Francisco Museum of Modern Art, Art Institute of Chicago, Whitney Museum of American Art.


image


© Casey Reas, reas.com

Total votes 7: ↑6 and ↓1+5
Comments0

Universal C# Code for NET and JavaScript

Reading time18 min
Views6.4K

In 2013, while working at GFRANQ photo service, I participated in the development of an eponymous web service for publishing and processing photos. Filters and transformations were defined in the file with parameters, and all processing was carried out on the server. During service development, there was a need to support these transformations on the client side for the preview. According to Larry Wall, one of the virtues of a programmer is laziness. Therefore, as truly lazy programmers, we thought about the possibility of using the same code on both the server and client sides. The entire development was conducted in C#. After researching the libraries and a couple of attempts, we proudly concluded that this was possible and began to write the universal code.



Why is this article needed? Indeed, 6 years have passed since 2013, and many technologies have lost their relevance, for example, Script#. On the other hand, new ones have appeared. For example, Bridge.NET or Blazor based on the fancy WebAssembly.


Nevertheless, some ideas can still be used. In this article I tried to describe them as detailed as possible. I hope that the mention of Silverlight and Flash will cause a smile with a hint of nostalgia, and not a desire to criticize the old solutions. Anyway, they have contributed to the development of the web industry.

Read more →
Total votes 12: ↑11 and ↓1+10
Comments1

Arduino и Processing. Как управлять микроконтроллером по COM порту. Двустороннее общение

Reading time8 min
Views38K
Всем привет! В интернете бытует заблуждение, что для управления компьютером при помощи самодельной электроники нужны только специальные платы, которые могут распознаваться как USB HID устройства. А касаемо Arduino все только и говорят о Arduino Leanardo. Такие популярные библиотеки как Keyboard и Mouse, которые позволяют создавать эмуляцию работы мыши или клавиатуры посредством микроконтроллера предназначены только для пары плат Arduino, Leonardo в их числе.

Я расскажу о том, как наладить связь любого микроконтроллера Arduino (для примера взята Arduino Uno) и своей программы на Processing. Добавив ко всему прочему знания о Java, на котором основывается Processing, можно будет дописать проект под управление всем компьютером, а не только собственным приложением. Тема управления компьютером программой на Java не есть чем то секретным, погуглите и все найдете, уверяю вас.
Читать дальше →
Total votes 24: ↑16 and ↓8+8
Comments34

Как воссоздать эффект муарового узора в библиотеке p5.js для новичка (быстрый гайд)

Reading time3 min
Views3.6K
image

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

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

image

Этот эффект можно часто наблюдать в самых разных сферах — от фотографии до радиологии и мореходства.

Чтобы добиться возникновения этого эффекта, а заодно попрактиковаться в p5.js, я решил написать простой код, который его воссоздает.

p5.js — это библиотека для Javascript, созданная в 2014 году. Ее основная цель — стать окном в мир программирования для дизайнеров, художников, учителей и прочих представителей творческих профессий. Он поддерживает и анимацию, и схемы, легко переводится в веб-формат.
Читать дальше →
Total votes 5: ↑5 and ↓0+5
Comments1

Наложение 2d-текстуры на 3d-объект с использованием p5.js (часть 1 — создание паттерна)

Reading time3 min
Views3.2K
image

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

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

Проще всего начать с создания нового проекта в онлайн редакторе editor.p5js.org
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments4

Наложение 2d-текстуры на 3d-объект с использованием p5.js (часть 2 — наложение паттерна на куб)

Reading time4 min
Views2.5K
image

Это вторая часть проекта, в которой мы накладываем динамический 2d-паттерн на 3d-объект. Вы можете начать с первой части (Часть 1) или просто скопировать итоговый код несколькими абзацами ниже.

Некоторое время назад я создал паттерн, который генерировался при помощи нескольких строк кода в библиотеке p5.js.
p5.js — это библиотека для Javascript, созданная в 2014 году. Ее основная цель — стать окном в мир программирования для дизайнеров, художников, учителей и прочих представителей творческих профессий. Он поддерживает и анимацию, и схемы, легко переводится в веб-формат.

Сейчас я расскажу, как сделать финальную часть — наложить паттерн на 3d-объект (в данном случае — куб).
Читать дальше →
Total votes 1: ↑1 and ↓0+1
Comments0

Создание эффекта быстрого полета сквозь космос (или падающего снега) за 10 минут на p5.js

Reading time6 min
Views6K
image

Недавно под вдохновением от канала The Coding Train я решил поучаствовать в одном из 10-минутных челленджей, в котором нужно было создать иллюзию полета сквозь космос с большой скоростью.

Для реализации проекта я выбрал уже хорошо знакомый мне p5.js — библиотеку для JavaScript, предназначенную для создания арта алгоритмическим способом. Почему нельзя было для этого использовать стандартные графические пакеты от Adobe?

Во-первых, делать такое кодом — это красиво.

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

Ну и в-третьих, этот код потом легко интегрировать в любой веб-проект в виде скрипта на JS.

Ну что же, в бесконечность и далее…
Читать дальше →
Total votes 8: ↑7 and ↓1+6
Comments18

Чему я научился за (почти) 30 дней Codevemberа — 30 скетчей на p5.js

Reading time4 min
Views3.5K
image

Что такое #codevember и зачем он нужен? В последние пару лет каждый ноябрь я натыкался в соцсетях на интересные произведения искусства, созданные ИИ, отмеченные этим хэштегом. Согласно информации с codevember.xyz:

Codevember – это челлендж для разработчиков, созданный для того, чтобы отточить их креативность и улучшить навыки. Цель – каждый день ноября создавать креативный фрагмент кода. Мы будем давать вам рекомендации для вдохновения каждый день, но вы можете создавать свои скетчи.

В этом году я решил попробовать поучаствовать и в ноябре изучить Processing (p5.js) и побаловаться созданием графики, которая создана не для какой-то определённой задачи.
Осторожно, много картинок
Total votes 3: ↑3 and ↓0+3
Comments1

Умные пайетки (часть 3)

Reading time9 min
Views9.7K

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

Читать далее
Total votes 32: ↑32 and ↓0+32
Comments30

Как создавать в играх бесконечные миры при помощи процедурной генерации

Reading time11 min
Views26K

Привет, Хабр! Обратите внимание, Распродажа «Чёрная Пятница» от издательства «Питер» скоро закончится.

Поговорим о том, как в известных играх, например, Minecraft и Terraria, из ничего генерируются бесконечные и разнообразные миры. Пост снабжен подробными примерами кода.  

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

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

Читать далее
Total votes 21: ↑19 and ↓2+17
Comments4

Базовые подходы к парсингу

Reading time4 min
Views31K

Вступление

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

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

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

Можем ли мы спарсить?

Да, к сожалению (или счастью) веб - он не однообразен, и каждый ресурс может быть уникален по своему, но в нашем деле, ключевым моментом будет то, есть ли на этом ресурсе Server-Side Rendering (SSR), или там Client-Side Rendering и важная для нас информация подтягивается позже с помощью JS.

К примеру, нативные апки на React или тот же Angular by default есть CSR. И что бы прикрутить там SSR нужно порой очень сильно попотеть.Тем не менее, большинство сайтов с топ серч результатов любой поисковой системы будут поддерживать именно SSR, потому что таков мир SEO-оптимизаций.

Читать далее
Total votes 26: ↑17 and ↓9+8
Comments32

Сигналы глобальных навигационных систем

Reading time7 min
Views27K

Алгоритмы обработки навигационных сигналов определяются математической моделью навигационного сигнала. И на этом шаге современные глобальные спутниковые навигационные системы преподносят нам сюрприз. Оказывается, что разные системы используют разные сигналы. Более того, каждый спутник не ограничивается одним типом сигнала, а излучает целый набор. Так на новых спутниках ГЛОНАСС можно выделить до 14 разных сигнальных компонент! А в совокупности по всем системам типов сигналов больше 50.

Попробуем разобраться с этим многообразием.

Читать далее
Total votes 46: ↑45 and ↓1+44
Comments45

Платье на 3D принтере (из НЕумных пайеток)

Reading time8 min
Views8.9K

Всем привет! Мы разрабатываем «умные пайетки» - электромеханические цветовоспроизводящие устройства для дизайнерской одежды.

Сегодня расскажу о том, как мы напечатали наше первое платье на 3D принтере!

Читать далее
Total votes 24: ↑24 and ↓0+24
Comments11

Умные пайетки на микроконтроллерах Padauk и Миландр

Reading time13 min
Views12K

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

Читать далее
Total votes 55: ↑55 and ↓0+55
Comments49

Kinect — продвинутый датчик для роботов

Reading time1 min
Views7K


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

Уже работает сайт openkinect.org и теперь Kinect можно попробовать использовать для различных инстралляций или в качестве продвинутого сенсора робота.
Читать дальше →
Total votes 57: ↑51 and ↓6+45
Comments35