Примеры из библиотеки Arduino

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Сталкнулся с проблемой. Ни один пример запускаться не хочет.

 

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)
 
Что не так?
maksim
Offline
Зарегистрирован: 12.02.2012

Явно ошибки указывают на java, переустановите java, причем если не ошибаюсь, то с 7 версией может не работать, качайте именно 6 и не обновляйте.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

maksim пишет:

Явно ошибки указывают на java, переустановите java, причем если не ошибаюсь, то с 7 версией может не работать, качайте именно 6 и не обновляйте.

 

хм. без библиотеки Arduino ошибок никаких нет, все работает.

 

Попробую старую яву.

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

установка явы 6 не принесла результата, ошибка та же.

 

У кого ни будь эти примеры запускаются без проблем?

ourlive
Offline
Зарегистрирован: 26.05.2012

тут ошибка:



String bufer;
void setup() {
}

void draw() { 
 print(bufer.length());
} 

 

а тут нет:

String bufer="";
void setup() {
}

void draw() { 
 print(bufer.length());
} 

причём сообщение компилятора довольно схоже..

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

ourlive пишет:

тут ошибка:



String bufer;
void setup() {
}

void draw() { 
 print(bufer.length());
} 

 

а тут нет:

String bufer="";
void setup() {
}

void draw() { 
 print(bufer.length());
} 

причём сообщение компилятора довольно схоже..

 

Простите, не догнал немного.

 

В примере нет таких строк....

Geronimo
Offline
Зарегистрирован: 06.05.2013

 

1  
1 String bufer;
2 void setup() {
3 }
4  
5 void draw() {
6  print(bufer.length());
7 }

тут ты вызываешь у неинициированной переменной buffet метод length

 

 

1 String bufer="";
2 void setup() {
3 }
4  
5 void draw() {
6  print(bufer.length());
7

}

 

тут ты её инициировал пустой строкой и ошибки нет

 

нельзя работать с неинициированными классами

ingener.solovyev
Offline
Зарегистрирован: 12.02.2013

Найдено решение проблемы (на англоязычных форумах). 

Для устранения ошибки необходима установка Стабильного релиза 1.5.1 (15 мая 2011)  http://processing.googlecode.com/files/processing-1.5.1-windows.zip

NIK2000
Offline
Зарегистрирован: 13.02.2015

Нужна помощь пользуюсь Arduino UNO не больше месяца

скачиваю стандартные библиотеки температурного датчика 

 DS18B20   - и при компилирование выдает вот такие ошибки  

Будильник: 10: ошибка: переменная или поле "printAddress" признаны недействительными
Будильник: 10: ошибка: 'DeviceAddress "не был объявлен в этой области
Будильник: 11: ошибка: переменная или поле "printTemperature" признаны недействительными
Будильник: 11: ошибка: 'DeviceAddress "не был объявлен в этой области
Будильник: 13: ошибка: переменная или поле "PrintData" признаны недействительными
Будильник: 13: ошибка: 'DeviceAddress "не был объявлен в этой области
Будильник: 14: ошибка: переменная или поле "checkAlarm" признаны недействительными
Будильник: 14: ошибка: 'DeviceAddress "не был объявлен в этой области
Тревога: 8: ошибка: 'Wire для' не назвать тип
Будильник: 11: ошибка: 'DallasTemperature "не называет тип
Будильник: 14: ошибка: 'DeviceAddress "не называет тип
Alarm.pde: В функции 'пустот установки ()':
Будильник: 23: ошибка: 'датчики' не был объявлен в этой области
Будильник: 31: ошибка: 'insideThermometer "не был объявлен в этой области
Будильник: 32: ошибка: 'outsideThermometer "не был объявлен в этой области
Будильник: 36: ошибка: 'insideThermometer "не был объявлен в этой области
Будильник: 36: ошибка: 'printAddress "не был объявлен в этой области
Будильник: 44: ошибка: 'outsideThermometer "не был объявлен в этой области
Alarm.pde: В глобальном масштабе:
Будильник: 75: ошибка: переменная или поле "printAddress" признаны недействительными
Будильник: 75: ошибка: 'DeviceAddress "не был объявлен в этой области
#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);
  }
* /

}

 

И в остальных примерах похожая ситуация тоже выдает ошибки

ourlive
Offline
Зарегистрирован: 26.05.2012

и как скетч с частично русскими функциями, работает?