Создать аккаунт
Войти





13.8 MB

Twitter Facebook Google Livejournal Pinterest

Книга java netbeans скачать


Описание: Книга java netbeans скачать
Имя файла: kniga-java-netbeans

Processing является языком программирования для создания визуализаций с помощью платформы Java Virtual Machine и позволяет быстро создавать интерактивные программы отображения изображений и анимации.
Processing использовался для создания некоторых реклам, клипов, инсталляций, а также входит в учебные курсы некоторых вузов США.
официальный сайт:
версию IDE для Windows (версия (65 Mb) )
Итак, Processing:
— простой язык программирования для создания интерактивных визуальных эффектов.
— базируется на графических возможностях языка и использует его упрощённый синтаксис.
— лёгкий и быстрый инструментарий для людей, которые хотят программировать изображения, анимацию и интерфейсы.
— используется студентами, художниками, дизайнерами, исследователями и любителями, для изучения, прототипирования и производства.
— создан для изучения основ компьютерного программирования в визуальном контексте.
— это открытый проект, он абсолютно бесплатен, а исходный код доступен для всех желающих.
Если скачать и запустить PDE (Processing Development Evironment), то сразу обнаружится абсолютное сходство с Arduino IDE. В это нет ничего удивительного, так как именно от IDE Processing-а была унаследована .
Processing IDE
Программы Processing-а, так же называются скетчами. Однократно выполняемая часть оформляется в функции setup(), повторяемая циклически — в функции draw() (аналог ).
Меню Sketch -> Run запускает компиляцию скетча в полноценное Java-приложение и его запуск в отдельном окне.
После окончательной отладки можно нажать Export (соответствует пиктограмме Upload для ArduinoIDE) — и тогда создается html-код страницы с java-апплетом, который можно разместить на своём сайте (согласитесь — очень удобно).
Быстро ознакомиться с различиями Processing и можно здесь:
Фактически, всё сводится к отличиям C++ от Java.
А теперь самое интересное:
из Processing-а можно общаться с , при помощи протокола !
Замечательная возможность! Используя Arduino/, как шлюз во внешний мир, ваш Processing-й скетч может стать по-настоящему интерактивным!
Что для этого потребуется:
потребуется скачать для Processing-а и распаковать её в папку libraries/arduino в каталоге для скетчей Processing (при необходимости, каталоги нужно создать);
запустите Arduino IDE, откройте скетч из Examples -> Firmata -> StandardFirmata, откомпилируйте и загрузите его в свой контроллер Arduino/CraftDuino;
запустите Processing, откройте пример из папки libraries/arduino/examples/arduio_output через меню File -> Open;
запустите скетч на выполнение.
Результатом работы скетча является окно состояния цифровых выходов ардуины:

Каждый квадратик обозначает один цифровой выход от 13 до 0. Щелкая по нему, мы переключаем состояние межу HIGH и LOW.
Как , на плате Arduino/CraftDuino уже есть сигнальный светодиод L, подключённый к 13 порту — так что для того чтобы посмотреть работу данного примера дополнительные светодиоды необязательны.
Вот как это выглядит внутри скетча Processing:
import processing.serial.; import cc.arduino.; Arduino arduino; color off = color(4, 79, 111); color on = color(84, 145, 158); int[] values = { Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW, Arduino.LOW }; void setup() { size(470, 200); println(Arduino.list()); arduino = new Arduino(this, Arduino.list()[0], 57600); for (int i = 0; i <= 13; i++) arduino.pinMode(i, Arduino.OUTPUT); } void draw() { background(off); stroke(on); for (int i = 0; i <= 13; i++) { if (values[i] == Arduino.HIGH) fill(on); else fill(off); rect(420 - i 30, 30, 20, 20); } } void mousePressed() { int pin = (450 - mouseX) / 30; if (values[pin] == Arduino.LOW) { arduino.digitalWrite(pin, Arduino.HIGH); values[pin] = Arduino.HIGH; } else { arduino.digitalWrite(pin, Arduino.LOW); values[pin] = Arduino.LOW; } }
Как и в -е, сначала выполняется функция setup(), в которой создаётся объект Arduino:
arduino = new Arduino(this, Arduino.list()[0], 57600);
Первым аргументом в списке параметров конструктора идет this.
Вторым аргументом указывается порт, к которому подключен Arduino. Для его получения существует функция Arduino.list() — статическая (можно использовать без привязки к экземпляру объекта), возвращающая список портов. В данном примере, скетч будет подключаться к первому порту из этого списка (номер 0).
Последний — третий аргумент — скорость порта; скорость должна совпадать со скоростью установленной в скетче StandardFirmata, которая составляет 57600.
Далее, объект Arduino позволяет вызывать знакомые по Wiring-у методы.
Пример — перевод всех цифровых пинов в режим вывода:
for (int i = 0; i <= 13; i++) arduino.pinMode(i, Arduino.OUTPUT);
Как уже упоминалось выше, Processing вместо знакомой функции loop(), для циклической работы использует функцию draw().
В данном примере, draw() выполняет перерисовку квадратиков по текущему состоянию значений выходов ардуины, которые хранятся в массиве values (массив инициализируется вверху скетча, значениями константы Arduino.LOW).
Функция mousePressed() — это обработчик событий от мыши. В ней, по координатам клика, вычисляется нужный квадрат, и инвертируется значение соответсвующей ячейки массива values, а затем вызывается метод digitalWrite(), чтобы изменить состояние выхода подключённого контроллера Arduino.
Лично для меня, единственным минусом Processing-а является программирование на Java. С/С++ для меня ближе, поэтому я смотрю в сторону
Ссылки:
Руководства по изучению:
Различные примеры скетчей Processing-а:
Книга про Proсessing от издательства O'Relly
— обратите внимание, как она похожа на "" ;)
Прямо и хочется сказать: «Proсessing и Arduino — близнецы-братья...» :)
Полный список книг про Proсessing на сайте processing.org:
Статья Ильи Данилова:
Про Processing мы уже упоминали в статьях:
Нельзя обойти вниманием факт, что для Processing-а существует библиотека для интеграции :
По теме:

Cсылка для сайта (HTML):

Cсылка для форума (BBCode):