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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.03.2015, 22:58   #151
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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: Создаем робота своими руками

Но у меня же компилируется.
Admin вне форума   Ответить с цитированием
Старый 15.03.2015, 23:30   #152
Анастасия
Junior Member
 
Регистрация: 15.03.2015
Сообщений: 3
Вес репутации: 0
Анастасия is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

Я не знаю, в чем проблема, возможно это как раз из-за библиотеки
Просто понимаете, я ее скачала и вроде как разархивировала, и отправила, куда нужно, однако, что вполне вероятно, он ее не видит
А у вас нет других каналов, по которым с вами можно связаться?
Просто дело срочное, а мне очень нужна помощь

Последний раз редактировалось Анастасия; 15.03.2015 в 23:39.
Анастасия вне форума   Ответить с цитированием
Старый 16.03.2015, 00:38   #153
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Создаем робота своими руками

Цитата:
не компилиться предпоследняя строчка вашего кода,
dist = (find_similar(sensor, size_buff, 58))/58; ошибка:
sketch_nov23a.ino: In function 'uint16_t GetDistance()':
sketch_nov23a:64: error: 'find_similar' was not declared in this scope
Покажите код.
stD вне форума   Ответить с цитированием
Старый 16.03.2015, 01:01   #154
Анастасия
Junior Member
 
Регистрация: 15.03.2015
Сообщений: 3
Вес репутации: 0
Анастасия is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

#include <CyberLib.h>
#include <avr/vdt.h>

#define motors_init {D4_Out; D5_Out; D6_Out; D7_Out;}
#define robot_go {D4_Low; D5_High; D6_High; D7_Low;}
#define robot_stop {D4_Low; D5_Low; D6_Low; D7_Low;}
#define robot_rotation_left {D4_Low; D5_High; D6_Low; D7_High;}
#define robot_rotation_right {D4_High; D5_Low; D6_High; D7_Low;}

#define size_buff 5 //размер массива sensor
uint16_t sensor[size_buff]; //массив для хранения замеров дальномера
uint8_t stat=0;

void setup()
{
motors_init; //инициализация выходов моторов
D11_Out; //динамик
D14_Out; D14_Low; //пин trig ультразвукового сонара
D15_In; //пин echo ультразвукового сонара
for(uint8_t i=0; i<12; i++) beep(50, random(100, 1000)); //звуковое оповещение готовности робота
wdt_enable (WDTO_500MS); //Сторожевая собака 1сек.
}

void loop()
{Start
uint16_t dist=GetDistance(); //производим замер

if( dist < 10) {rotation(stat, 255);} else
if( dist < 20) {rotation(stat, 200);} else
if( dist < 40) {rotation(stat, 130);} else
{robot_go; stat=~stat;} //поехали!!!

wdt_reset(); //покормить собаку
End;}

//**************************************** ***********
void rotation(uint8_t arr, uint8_t dur)
{
switch (arr)
{
case 0: robot_rotation_right;
break;
case 255: robot_rotation_left;
break;
}
delay_ms(dur);
robot_stop;
}
//**************************************** ***********
uint16_t GetDistance()
{
uint16_t dist;
for (uint8_t i = 0; i < size_buff; ++i) //производим несколько замеров
{
D14_High; delay_us(10); D14_Low; //запустить измерение
dist = pulseIn(15, HIGH, 2400); //считываем длительность времени прохождения эха, ограничить время ожидания
if(dist==0) dist=2400;
sensor[i]=dist;
delay_ms(40); //задержка между посылками
wdt_reset(); //покормить собаку, что бы она не сбежала
}
dist=(find_similar(sensor, size_buff, 58))/58; // //фильтруем показания датчика и переводим в см
return dist;
}
//**************************************** ***********
void beep(uint8_t dur, uint16_t frq)
{
dur=(1000/frq)*dur; //расчет длительности бипа
for(byte i=0; i<dur; i++)
{
D11_High;
delay_us(frq);
D11_Low;
delay_us(frq);
}
}
Анастасия вне форума   Ответить с цитированием
Старый 16.03.2015, 10:32   #155
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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: Создаем робота своими руками

Цитата:
я ее скачала и вроде как разархивировала, и отправила, куда нужно
А поточней можно, куда отправили?
Admin вне форума   Ответить с цитированием
Старый 16.03.2015, 23:36   #156
stD
Senior Member
 
Аватар для stD
 
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1311
stD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant futurestD has a brilliant future
По умолчанию Re: Создаем робота своими руками

Код компилится.

Правда ругается на эту строчку:

void setup()
{
motors_init; //инициализация выходов моторов
D11_Out; //динамик
D14_Out; D14_Low; //пин trig ультразвукового сонара
D15_In; //пин echo ультразвукового сонара
for(uint8_t i=0; i<12; i++) beep(50, random(100, 1000)); //звуковое оповещение готовности робота
wdt_enable (WDTO_500MS); //Сторожевая собака 1сек.
}

Без неё всё окей.
Среда 1.5.5
stD вне форума   Ответить с цитированием
Старый 16.03.2015, 23:53   #157
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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: Создаем робота своими руками

Разобрался.
Проблема в том что в свежей версии CyberLib функция beep(); включена в библиотеку
Где Вы нашли этот устаревший скетч?

Правильный скетч
PHP код:
#include <CyberLib.h>
#include <avr/wdt.h>

#define motors_init {D4_Out; D5_Out; D6_Out; D7_Out;}
#define robot_go {D4_Low; D5_High; D6_High; D7_Low;}
#define robot_stop {D4_Low; D5_Low; D6_Low; D7_Low;}
#define robot_rotation_left {D4_Low; D5_High; D6_Low; D7_High;}
#define robot_rotation_right {D4_High; D5_Low; D6_High; D7_Low;}

#define size_buff 5 //размер массива sensor
uint16_t sensor[size_buff]; //массив для хранения замеров дальномера
uint8_t stat=0;

void setup() 
{
motors_init//инициализация выходов моторов
D11_Out//динамик
D14_OutD14_Low//пин trig ультразвукового сонара
D15_In//пин echo ультразвукового сонара
for(uint8_t i=0i<12i++) beep(50random(1001000)); //звуковое оповещение готовности робота
wdt_enable (WDTO_500MS); //Сторожевая собака 1сек.
}

void loop()
{
Start 
uint16_t dist
=GetDistance(); //производим замер 

if( dist 10) {rotation(stat255);} else 
if( 
dist 20) {rotation(stat200);} else 
if( 
dist 40) {rotation(stat130);} else
{
robot_gostat=~stat;} //поехали!!!

wdt_reset(); //покормить собаку
End;}

//**************************************** ***********
void rotation(uint8_t arruint8_t dur
{
switch (
arr
{
case 
0robot_rotation_right;
break;
case 
255robot_rotation_left
break; 

delay_ms(dur); 
robot_stop;
}
//**************************************** ***********
uint16_t GetDistance() 
{
uint16_t dist;
for (
uint8_t i 0size_buff; ++i//производим несколько замеров

D14_Highdelay_us(10); D14_Low//запустить измерение
dist pulseIn(15HIGH2400); //считываем длительность времени прохождения эха, ограничить время ожидания
if(dist==0dist=2400
sensor[i]=dist;
delay_ms(40); //задержка между посылками
wdt_reset(); //покормить собаку, что бы она не сбежала 
}
dist=(find_similar(sensorsize_buff58))/58// //фильтруем показания датчика и переводим в см
return dist;

Admin вне форума   Ответить с цитированием
Старый 14.04.2015, 13:25   #158
vova606
Member
 
Регистрация: 14.04.2015
Сообщений: 45
Вес репутации: 0
vova606 is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

Цитата:
Сообщение от Admin Посмотреть сообщение
Конденсаторы блокирующие от 0,1мкф и выше
Электролитический конденсатор от 100мкфх16в и выше
Резистор 150 ом
Спикер у меня установлен HC0905A, можно использовать любой с сопротивлением не менее 16 ом
Подскажите пожалуйста, я совсем новичок в этом деле, а у знакомого который будет паять вопрос:
куда расположить: резистор 150ом и конденсаторы блокирующие от 0,1мкф.
фото расположения смотрели но так и не понял
с оборотной стороны платы есть контактные площадки я правильно понимаю они замыкаются если подразумевается установка дополнительного датчика?
спасибо за ответ
vova606 вне форума   Ответить с цитированием
Старый 14.04.2015, 13:58   #159
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821
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: Создаем робота своими руками

По одному электролиту и блокируещему конденсатору для каждого установленного модуля
резистор токоограничивающий?
Admin вне форума   Ответить с цитированием
Старый 14.04.2015, 14:53   #160
vova606
Member
 
Регистрация: 14.04.2015
Сообщений: 45
Вес репутации: 0
vova606 is an unknown quantity at this point
По умолчанию Re: Создаем робота своими руками

Цитата:
Сообщение от Admin Посмотреть сообщение
По одному электролиту и блокируещему конденсатору для каждого установленного модуля
резистор токоограничивающий?
да резистор токоограничивающий, но изучив все фото нигде не показано в какой цепи/месте ставится резистор
vova606 вне форума   Ответить с цитированием
Ответ

Метки
сделать робота дома, робот, робота свими руками, robot, как сделать робота, платформа для робота


Здесь присутствуют: 6 (пользователей: 0 , гостей: 6)
 

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

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

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


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


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