Форум обсуждения систем  

Вернуться   Форум обсуждения систем "Умный дом", проектов Ардуино, OpenWRT и других DIY устройств > Форум умного дома > Сделай сам

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 16.02.2014, 22:04   #1
viktor
Junior Member
 
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 45
Сообщений: 9
Вес репутации: 0
viktor is an unknown quantity at this point
По умолчанию Arduino Uno and HC-SR04. Ошибки в скетче

Доброго времени суток.
Подскажите по скетчу.
Делаю проверку сонара
Пример нашел тут:
http://arduinokit.ru/?p=272
при компиляции скетча получаю ошибки:
Цитата:

sketch_feb16a.ino: In function 'void loop()':
sketch_feb16a:27: error: 'class Ultrasonic' has no member named 'timing'
sketch_feb16a:29: error: 'class Ultrasonic' has no member named 'convert'
sketch_feb16a:29: error: expected unqualified-id before numeric constant
sketch_feb16a:30: error: 'class Ultrasonic' has no member named 'convert'
sketch_feb16a:30: error: 'IN' is not a member of 'Ultrasonic'
библиотеку скачал и выложил в каталог
Цитата:
Содержимое папки C:\Program Files (x86)\Arduino

16.02.2014 20:35 <DIR> .
16.02.2014 20:35 <DIR> ..
18.05.2013 00:26 860*160 arduino.exe
18.05.2013 00:24 969*728 cygiconv-2.dll
18.05.2013 00:24 1*872*821 cygwin1.dll
19.12.2013 01:25 <DIR> drivers
19.12.2013 01:25 <DIR> examples
19.12.2013 01:25 <DIR> hardware
19.12.2013 01:25 <DIR> java
19.12.2013 01:25 <DIR> lib
16.02.2014 20:37 <DIR> libraries
18.05.2013 00:24 43*520 libusb0.dll
19.12.2013 01:25 <DIR> reference
18.05.2013 00:24 37*903 revisions.txt
18.05.2013 00:24 77*759 rxtxSerial.dll
19.12.2013 01:25 <DIR> tools
16.02.2014 20:35 1*655 Ultrasonic.rar
19.12.2013 01:25 411*322 uninstall.exe
8 файлов 4*274*868 байт
10 папок 914*586*918*912 байт свободно

C:\Program Files (x86)\Arduino>cd librares
Системе не удается найти указанный путь.

C:\Program Files (x86)\Arduino>cd libraries

C:\Program Files (x86)\Arduino\libraries>dir /w
Том в устройстве C не имеет метки.
Серийный номер тома: E654-C5AF

Содержимое папки C:\Program Files (x86)\Arduino\libraries

[.] [..] [EEPROM] [Esplora]
[Ethernet] [Firmata] [FrequencyTimer2] [GSM]
[LiquidCrystal] [Robot_Control] [Robot_Motor] [SD]
[Servo] [SoftwareSerial] [SPI] [Stepper]
[TFT] [Ultrasonic] [WiFi] [Wire]
0 файлов 0 байт
20 папок 914*586*877*952 байт свободно

C:\Program Files (x86)\Arduino\libraries>cd ultrasonic

C:\Program Files (x86)\Arduino\libraries\Ultrasonic>dir /w
Том в устройстве C не имеет метки.
Серийный номер тома: E654-C5AF

Содержимое папки C:\Program Files (x86)\Arduino\libraries\Ultrasonic

[.] [..] [examples]
keywords.txt Ultrasonic.cpp Ultrasonic.h
UltrasonicDemo1.ino
4 файлов 1*513 байт
3 папок 914*586*877*952 байт свободно

C:\Program Files (x86)\Arduino\libraries\Ultrasonic>
как заставить оболочку считать библиотеку?
посмотрел демку сонара
разница в объявлении библиотеки:
демка:
Цитата:
#include "Ultrasonic.h"
скетч
Цитата:
#include <Ultrasonic.h>
заменил.
код демки
Код:
#include "Ultrasonic.h"

Ultrasonic ultrasonic(12,13);

void setup() {
Serial.begin(9600);
}

void loop()
{
  
  Serial.print(ultrasonic.Ranging(CM));
  Serial.println(" cm");
    delay(1000);
}
работает
Цитата:
3 cm
3 cm
4 cm
17 cm
6 cm
8 cm
9 cm
7 cm
18 cm
3508 cm
код сонара с диодами:
Код:
#include "Ultrasonic.h"

#define TRIGGER_PIN  12
#define ECHO_PIN     13

Ultrasonic ultrasonic(TRIGGER_PIN, ECHO_PIN);

void setup()
  {
  Serial.begin(9600);
   pinMode(2, OUTPUT);
   pinMode(3, OUTPUT);
   pinMode(4, OUTPUT);
   pinMode(5, OUTPUT);
   pinMode(6, OUTPUT);
   pinMode(7, OUTPUT);
   pinMode(8, OUTPUT);
   pinMode(9, OUTPUT);
   pinMode(10, OUTPUT);
   pinMode(11, OUTPUT);
  }

void loop()
  {
  float cmMsec, inMsec;
  long microsec = ultrasonic.timing();

  cmMsec = ultrasonic.convert(microsec, Ultrasonic::CM);
  inMsec = ultrasonic.convert(microsec, Ultrasonic::IN);
  Serial.print("MS: ");
  Serial.print(microsec);
  Serial.print(", CM: ");
  Serial.print(cmMsec);
  Serial.print(", IN: ");
  Serial.println(inMsec);
  
  if ((cmMsec) < 10)  { digitalWrite(11, HIGH); }
  if ((cmMsec) > 10)  { digitalWrite(11, LOW);  }
  if ((cmMsec) < 20)  { digitalWrite(10, HIGH); }
  if ((cmMsec) > 20)  { digitalWrite(10, LOW);  }
  if ((cmMsec) < 30)  { digitalWrite(9, HIGH);  }
  if ((cmMsec) > 30)  { digitalWrite(9, LOW);   }
  if ((cmMsec) < 40)  { digitalWrite(8, HIGH);  }
  if ((cmMsec) > 40)  { digitalWrite(8, LOW);   }
  if ((cmMsec) < 50)  { digitalWrite(7, HIGH);  }
  if ((cmMsec) > 50)  { digitalWrite(7, LOW);   }
  if ((cmMsec) < 60)  { digitalWrite(6, HIGH);  }
  if ((cmMsec) > 60)  { digitalWrite(6, LOW);   }
  if ((cmMsec) < 70)  { digitalWrite(5, HIGH);  }
  if ((cmMsec) > 70)  { digitalWrite(5, LOW);   }
  if ((cmMsec) < 80)  { digitalWrite(4, HIGH);  }
  if ((cmMsec) > 80)  { digitalWrite(4, LOW);   }
  if ((cmMsec) < 90)  { digitalWrite(3, HIGH);  }
  if ((cmMsec) > 90)  { digitalWrite(3, LOW);   }
  if ((cmMsec) < 100) { digitalWrite(2, HIGH);  }
  if ((cmMsec) > 100) { digitalWrite(2, LOW);   }
  
  
  delay(100);
  }
сыпет ошибками
Цитата:
sketch_feb16a.ino: In function 'void loop()':
sketch_feb16a:27: error: 'class Ultrasonic' has no member named 'timing'
sketch_feb16a:29: error: 'class Ultrasonic' has no member named 'convert'
sketch_feb16a:29: error: expected unqualified-id before numeric constant
sketch_feb16a:30: error: 'class Ultrasonic' has no member named 'convert'
sketch_feb16a:30: error: 'IN' is not a member of 'Ultrasonic'
не понимаю - в чем разница.
вразумите
библиотека
Код:
/*
  Ultrasonic.h - Library for HR-SC04 Ultrasonic Ranging Module.
  Created by ITead studio. Alex, Apr 20, 2010.
  iteadstudio.com
*/


#ifndef Ultrasonic_h
#define Ultrasonic_h


#define CM 1
#define INC 0

class Ultrasonic
{
  public:
    Ultrasonic(int TP, int EP);
    long Timing();
    long Ranging(int sys);

    private:
    int Trig_pin;
    int Echo_pin;
    long  duration,distacne_cm,distance_inc;
    
};

#endif

Последний раз редактировалось viktor; 16.02.2014 в 22:24.
viktor вне форума   Ответить с цитированием
Старый 16.02.2014, 22:15   #2
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Arduino Uno and HC-SR04. Ошибки в скетче

Читать датчик можно без библиотек

Код:
  digitalWrite(Trig_pin, HIGH);
  delayMicroseconds(10);
  digitalWrite(Trig_pin, LOW);
  duration = pulseIn(Echo_pin, HIGH);
  duration = duration / 58;
Admin вне форума   Ответить с цитированием
Старый 16.02.2014, 22:28   #3
viktor
Junior Member
 
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 45
Сообщений: 9
Вес репутации: 0
viktor is an unknown quantity at this point
По умолчанию Re: Arduino Uno and HC-SR04. Ошибки в скетче

Это понятно, хочется разобраться в найденном примере.
Первую ошибку убрал - заменив timing на Timing
дальше уперся в convert.
viktor вне форума   Ответить с цитированием
Старый 16.02.2014, 22:31   #4
viktor
Junior Member
 
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 45
Сообщений: 9
Вес репутации: 0
viktor is an unknown quantity at this point
По умолчанию Re: Arduino Uno and HC-SR04. Ошибки в скетче

все - понял. в том примере - код библиотеки доработан
Цитата:
/*
* Ultrasonic.h - Library for HC-SR04 Ultrasonic Sensing Module.
*
* With ideas from:
* Created by ITead studio. Alex, Apr 20, 2010.
* iteadstudio.com
*
* SVN Keywords
* ----------------------------------
* $Author: cnobile $
* $Date: 2011-12-07 21:49:14 -0500 (Wed, 07 Dec 2011) $
* $Revision: 38 $
* ----------------------------------
*
* Thank you to Rowan Simms for pointing out the change in header name with
* Arduino version 1.0 and up.
*
*/

#ifndef ULTRASONIC_H
#define ULTRASONIC_H

#include <stddef.h>

#if defined(ARDUINO) && ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif

// Undefine COMPILE_STD_DEV if you don't want Standard Deviation.
#define COMPILE_STD_DEV


typedef struct bufferCtl
{
float *pBegin;
float *pIndex;
size_t length;
bool filled;
} BufCtl;

class Ultrasonic
{
public:
Ultrasonic(int tp, int ep);
long timing();
float convert(long microsec, int metric);
void setDivisor(float value, int metric);
static const int IN = 0;
static const int CM = 1;

#ifdef COMPILE_STD_DEV
bool sampleCreate(size_t size, ...);
void sampleClear();
float unbiasedStdDev(float value, size_t bufNum);
#endif // COMPILE_STD_DEV

private:
int _trigPin;
int _echoPin;
float _cmDivisor;
float _inDivisor;

#ifdef COMPILE_STD_DEV
size_t _numBufs;
BufCtl *_pBuffers;
void _sampleUpdate(BufCtl *buf, float msec);
void _freeBuffers();
#endif // COMPILE_STD_DEV
};

#endif // ULTRASONIC_H
viktor вне форума   Ответить с цитированием
Старый 16.02.2014, 22:33   #5
viktor
Junior Member
 
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 45
Сообщений: 9
Вес репутации: 0
viktor is an unknown quantity at this point
По умолчанию Re: Arduino Uno and HC-SR04. Ошибки в скетче

заработало дети довольны
viktor вне форума   Ответить с цитированием
Старый 17.02.2014, 00:06   #6
age0811
Member
 
Регистрация: 06.01.2014
Сообщений: 42
Вес репутации: 0
age0811 is an unknown quantity at this point
По умолчанию Re: Arduino Uno and HC-SR04. Ошибки в скетче

Куда планируешь прилепить датчик?
age0811 вне форума   Ответить с цитированием
Старый 17.02.2014, 00:50   #7
viktor
Junior Member
 
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 45
Сообщений: 9
Вес репутации: 0
viktor is an unknown quantity at this point
По умолчанию Re: Arduino Uno and HC-SR04. Ошибки в скетче

Думаю - сделать аналог машины робота.
Только в качестве шасси взять корпус от р/у танка ( масштаб 1:16).
Детям покупали т-34 и тигра, у 34 сломано крепление башни, тигр более "живой", его за башню брать не удобно .
В перспективе - доработку камерой и подъемной площадкой - что-то вроде ножничного подъемника- например - подъехал - поднял камеру - посмотрел.
Ттакже есть мысль пользовать робота как диагноста для осмотра автомобиля снизу - без подъемника.

Последний раз редактировалось viktor; 17.02.2014 в 00:52.
viktor вне форума   Ответить с цитированием
Старый 17.02.2014, 00:53   #8
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9820
Admin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant futureAdmin has a brilliant future
По умолчанию Re: Arduino Uno and HC-SR04. Ошибки в скетче

Посмотри в разделе "Робототехника", там есть готовое решение
Допилишь под себя
Admin вне форума   Ответить с цитированием
Старый 17.02.2014, 00:55   #9
viktor
Junior Member
 
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 45
Сообщений: 9
Вес репутации: 0
viktor is an unknown quantity at this point
По умолчанию Re: Arduino Uno and HC-SR04. Ошибки в скетче

В данном случае - проверял работу сонара, после покупки датчика обнаружил что один конденсатор обломлен. Впаял замену на 0.1мкф.
Работает
Цитата:
Сообщение от Admin Посмотреть сообщение
Посмотри в разделе "Робототехника", там есть готовое решение
Допилишь под себя
Видел - я ваш форум давно читаю - ждал прибытия ардуино-кита, теперь будем собирать (надеюсь что мои башибузуки заинтересуются)

Последний раз редактировалось viktor; 17.02.2014 в 00:59.
viktor вне форума   Ответить с цитированием
Старый 17.02.2014, 01:05   #10
viktor
Junior Member
 
Регистрация: 16.02.2014
Адрес: moscow
Возраст: 45
Сообщений: 9
Вес репутации: 0
viktor is an unknown quantity at this point
По умолчанию Re: Arduino Uno and HC-SR04. Ошибки в скетче

Такое бы вот чудо собрать.
Но дома - такое точно не сдлеать, а хочется..
Если только... хм.. а ить мысль. из картона попробовать собрать, на базе того-же танка
viktor вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:18. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Яндекс.Метрика