Примеры из библиотеки Arduino
- Войдите на сайт для отправки комментариев
Сб, 04/05/2013 - 07:13
Сталкнулся с проблемой. Ни один пример запускаться не хочет.
import processing.serial.*;
import cc.arduino.*;
Serial port;
Arduino arduino;
void setup() {
size(512, 200);
arduino = new Arduino(this, "COM3", 9600);
}
void draw() {
background(constrain(mouseX / 2, 0, 255));
arduino.analogWrite(9, constrain(mouseX / 2, 0, 255));
arduino.analogWrite(11, constrain(255 - mouseX / 2, 0, 255));
}
Ошибка:
Exception in thread "Animation Thread" java.lang.IllegalAccessError: tried to access class processing.core.PApplet$RegisteredMethods from class cc.arduino.Arduino$SerialProxy
at cc.arduino.Arduino$SerialProxy.<init>(Arduino.java:119)
at cc.arduino.Arduino.<init>(Arduino.java:168)
at arduino_pwm.setup(arduino_pwm.java:27)
at processing.core.PApplet.handleDraw(PApplet.java:2117)
at processing.core.PGraphicsJava2D.requestDraw(PGraphicsJava2D.java:193)
at processing.core.PApplet.run(PApplet.java:2020)
at java.lang.Thread.run(Thread.java:662)
Что не так?
Явно ошибки указывают на java, переустановите java, причем если не ошибаюсь, то с 7 версией может не работать, качайте именно 6 и не обновляйте.
Явно ошибки указывают на java, переустановите java, причем если не ошибаюсь, то с 7 версией может не работать, качайте именно 6 и не обновляйте.
хм. без библиотеки Arduino ошибок никаких нет, все работает.
Попробую старую яву.
установка явы 6 не принесла результата, ошибка та же.
У кого ни будь эти примеры запускаются без проблем?
тут ошибка:
String bufer; void setup() { } void draw() { print(bufer.length()); }а тут нет:
String bufer=""; void setup() { } void draw() { print(bufer.length()); }причём сообщение компилятора довольно схоже..
тут ошибка:
String bufer; void setup() { } void draw() { print(bufer.length()); }а тут нет:
String bufer=""; void setup() { } void draw() { print(bufer.length()); }причём сообщение компилятора довольно схоже..
Простите, не догнал немного.
В примере нет таких строк....
11String bufer;2voidsetup() {3}45voiddraw() {6print(bufer.length());7}тут ты вызываешь у неинициированной переменной buffet метод length
1String bufer="";2voidsetup() {3}45voiddraw() {6print(bufer.length());7}тут ты её инициировал пустой строкой и ошибки нет
нельзя работать с неинициированными классами
Найдено решение проблемы (на англоязычных форумах).
Для устранения ошибки необходима установка Стабильного релиза 1.5.1 (15 мая 2011) http://processing.googlecode.com/files/processing-1.5.1-windows.zip
Нужна помощь пользуюсь Arduino UNO не больше месяца
скачиваю стандартные библиотеки температурного датчика
DS18B20 - и при компилирование выдает вот такие ошибки
#include <OneWire.h> #include <DallasTemperature.h> // Провод данных подключен к порту 2 на Arduino #define ONE_WIRE_BUS 2 // Настройка-Wire экземпляр общаться с любым Wire для устройств (не только температуры микросхем Максим / Dallas) Wire для Wire для (ONE_WIRE_BUS); // Передача нашу ссылку-Wire в Даллас температуры. DallasTemperature датчики (& Wire для); // массивы для хранения адресов устройств DeviceAddress insideThermometer, outsideThermometer; недействительными установки (недействительными) { // Начинаем последовательный порт Serial.begin (9600); Serial.println ("Даллас температуры IC управления библиотекой Демо"); // Запуск библиотеки sensors.begin (); // Найти устройств на шине Serial.print ("Found"); Serial.print (sensors.getDeviceCount (), DEC); Serial.println ("устройств."); // Поиск устройств на шине и назначить на основе индекса. если Serial.println ("Не удалось найти адрес для устройства 0") (sensors.getAddress (insideThermometer, 0)!); если Serial.println ("Не удалось найти адрес для устройства 1") (sensors.getAddress (outsideThermometer, 1)!); // Показать адреса мы нашли на автобусе Serial.print ("Устройство 0 Адрес:"); printAddress (insideThermometer); Serial.println (); Serial.print ("Device 0 Сигнализация:"); printAlarms (insideThermometer); Serial.println (); Serial.print ("Device 1 Адрес:"); printAddress (outsideThermometer); Serial.println (); Serial.print ("Device 1 Сигнализация:"); printAlarms (outsideThermometer); Serial.println (); Serial.println ("Установка сигнализации временных секретарей ..."); // Тревоги при темп выше, чем 30 ° C sensors.setHighAlarmTemp (insideThermometer, 30); // Тревоги при темп ниже, чем -10 sensors.setLowAlarmTemp (insideThermometer, -10); // Тревоги при темп выше, чем 31C sensors.setHighAlarmTemp (outsideThermometer, 31); // Alarn, когда температура ниже, чем 27 ° C sensors.setLowAlarmTemp (outsideThermometer, 27); Serial.print ("New Device 0 Сигнализация:"); printAlarms (insideThermometer); Serial.println (); Serial.print ("New Device 1 Сигнализация:"); printAlarms (outsideThermometer); Serial.println (); } // Функция вывода адрес устройства недействительными printAddress (DeviceAddress deviceAddress) { для (uint8_t я = 0; я <8; я ++) { если (deviceAddress [I] <16) Serial.print ("0"); Serial.print (deviceAddress [я], HEX); } } // Функция вывода температуры для устройства недействительными printTemperature (DeviceAddress deviceAddress) { плавать tempC = sensors.getTempC (deviceAddress); Serial.print ("Temp C:"); Serial.print (tempC); Serial.print ("Temp F:"); Serial.print (DallasTemperature :: toFahrenheit (tempC)); } недействительными printAlarms (uint8_t deviceAddress []) { символ температуры; Температура = sensors.getHighAlarmTemp (deviceAddress); Serial.print ("High Alarm:"); Serial.print (температура, DEC); Serial.print ("C /"); Serial.print (DallasTemperature :: toFahrenheit (температура)); Serial.print ("F | Low Alarm:"); Температура = sensors.getLowAlarmTemp (deviceAddress); Serial.print (температура, DEC); Serial.print ("C /"); Serial.print (DallasTemperature :: toFahrenheit (температура)); Serial.print ("F"); } // Главная функция позволяет печатать об устройстве недействительными PrintData (DeviceAddress deviceAddress) { Serial.print ("Адрес устройства:"); printAddress (deviceAddress); Serial.print (""); printTemperature (deviceAddress); Serial.println (); } недействительными checkAlarm (DeviceAddress deviceAddress) { если (sensors.hasAlarm (deviceAddress)) { Serial.print ("ALARM:"); PrintData (deviceAddress); } } пустота петля (недействительными) { // Вызов sensors.requestTemperatures (), чтобы выдать глобальной температуры // Запрос для всех устройств на шине Serial.print ("Запрос температура ..."); sensors.requestTemperatures (); Serial.println ("DONE"); // Способ 1: // Проверяем каждый адрес отдельно для аварийном состоянии checkAlarm (insideThermometer); checkAlarm (outsideThermometer); / * // Альтернативный метод: // Поиск в автобус и перебрать адресов устройств с охранной сигнализацией // Пространство для адрес устройства сигнализации в DeviceAddress alarmAddr; Serial.println ("Поиск тревог ..."); // ResetAlarmSearch () должна быть вызвана перед вызовом alarmSearch () sensors.resetAlarmSearch (); // AlarmSearch () возвращает 0, если нет устройств с сигнализацией в то время как (sensors.alarmSearch (alarmAddr)) { Serial.print ("ALARM:"); PrintData (alarmAddr); } * / }И в остальных примерах похожая ситуация тоже выдает ошибки
и как скетч с частично русскими функциями, работает?