![]() |
|
|
#1 |
|
Junior Member
Регистрация: 07.07.2014
Сообщений: 20
Вес репутации: 0 ![]() |
Всем привет! Вот решил поделится своим проектом. В начале задумывался над ботом. Потом решил это дело бросить на время. Так как нужна надежная платформа. Которая бы работало долго и надежно.
Для начало решил поиграться с микроконтроллерами. Было куплено:
аккумуляторы были Руководствовался этой статьей http://cyber-place.ru/showthread.php?t=697 Вот что получилось. ![]() ![]() Плюсы собранного:
Минусы собранного:
|
|
|
|
|
|
#2 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
1- +100500
2- что именно плохо работает, по конкретней можно? 3- или трехколесный вариант робота 4- возможно что у Вас не установлены дополнительные конденсаторы по питанию 5- см. 4 6- для 4-х комнатной квартиры вполне хватает |
|
|
|
|
|
#3 |
|
Junior Member
Регистрация: 07.07.2014
Сообщений: 20
Вес репутации: 0 ![]() |
1 - =)
2 -Про неисправности точнее скажу через пару дней тестов. Погоняю на разных браузерах. Поменяю контроллер на nano3 и т.д. 3 - Для квартиры неплохой вариант. Я брал на 4 колесах... для улицы. 4 - с этим пунктом разобрался. было в самом деле проблема с питанием. если кому интересно. было: роутер +5 fundruino +5 TL-MR3020 +5 стало роутер +5 fundruino +7.5 TL-MR3020 + 8 (не знаю... можно ли больше... если 4 мотора ... сколько можно подать? аккумулятор выдает 14.5) теперь все без проблем.... 5 - вот тут грешу на браузер. после обновления страницы все норм. 6 - планирую впаять антенну в роутер. 7 - опять же для улицы... может кто посоветует уже проверенный вариант? если кому нужен скетч для Funduino ATMEGA 328P pin 11 10 9 6 in 1 2 3 4 Код:
#include <CyberLib.h>
#define motors_init {D11_Out; D10_Out; D6_Out; D9_Out;}
#define robot_go {D11_High; D10_Low; D6_High; D9_Low;}
#define robot_back {D11_Low; D10_High; D6_Low; D9_High;}
#define robot_stop {D11_Low; D10_Low; D6_Low; D9_Low;}
#define robot_rotation_left {D11_Low; D10_High; D6_High; D9_Low;}
#define robot_rotation_right {D11_High; D10_Low; D6_Low; D9_High;}
uint8_t inByte;
void setup()
{
motors_init; //инициализация выходов моторов
Serial.begin(57600);//инициализация порта для связи с роутером
wdt_enable (WDTO_500MS); //Сторожевая собака 0,5сек.
}
void loop()
{
if (Serial.available()) //если что то пришло
{
inByte = Serial.read();
switch (inByte) //смотрим какая команда пришла
{
case 'x': //стор
robot_stop;
break;
case 'W': //вперед
robot_go;
break;
case 'D': //лево
robot_rotation_left;
break;
case 'A': //право
robot_rotation_right;
break;
case 'S': //назад
robot_back;
break;
}
}
wdt_reset(); //покормить собаку
}
Последний раз редактировалось werm; 06.08.2014 в 18:59. |
|
|
|
|
|
#4 |
|
Junior Member
Регистрация: 07.07.2014
Сообщений: 20
Вес репутации: 0 ![]() |
вот выложил видео работы бота кстати подскажите в чем может быть проблема? я так понимаю функция остановки бота вложена в бот... реализация остановки происходит в браузере... то есть в скрипте прописано после отправки любой команды автоматом высылается команда x // но у меня она работает не стабильно... то есть в большинстве бот едет дальше ... даже после отпускания кнопки... приходится на клаве всегда заранее держать кнопку x может есть другие реализации управления? счас скачаю сниффер посмотрю что отправляет браузер... кстати а есть на openwrt какая не будь консольная прога для прослушивания порта? cat не пойдет |
|
|
|
|
|
#5 | ||
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
|
||
|
|
|
|
|
#6 |
|
Junior Member
Регистрация: 07.07.2014
Сообщений: 20
Вес репутации: 0 ![]() |
Решил припаять антенну к роутеру... что бы точно знать что сигнал устойчивый...
Может кто подскажет как узнать уровень сигнала роутера из консоли? Решил не использовать библиотеку cyberlib - не хотелось в ней разбираться... написал свой скетч для fundruino Код:
uint8_t inByte;
int pinLB=6; // левое назад
int pinLF=9; // левое вперед
int pinRB=10; // правое назад
int pinRF=11; // правое вперед
void setup()
{
pinMode(pinLB,OUTPUT); // pin 6 (PWM)
pinMode(pinLF,OUTPUT); // pin 9 (PWM)
pinMode(pinRB,OUTPUT); // pin 10 (PWM)
pinMode(pinRF,OUTPUT); // pin 11 (PWM)
Serial.begin(57600);//инициализация порта для связи с роутером
}
void loop()
{
if (Serial.available()) //если что то пришло
{
inByte = Serial.read();
switch (inByte) //смотрим какая команда пришла
{
case 'x': //стоп
digitalWrite(pinRB,HIGH);
digitalWrite(pinRF,HIGH);
digitalWrite(pinLB,HIGH);
digitalWrite(pinLF,HIGH);
break;
case 'W': //вперед
digitalWrite(pinRB,LOW);
digitalWrite(pinRF,HIGH);
digitalWrite(pinLB,HIGH);
digitalWrite(pinLF,LOW);
break;
case 'D': //лево
digitalWrite(pinRB,LOW);
digitalWrite(pinRF,HIGH);
digitalWrite(pinLB,LOW);
digitalWrite(pinLF,HIGH);
break;
case 'A': //право
digitalWrite(pinRB,HIGH);
digitalWrite(pinRF,LOW);
digitalWrite(pinLB,HIGH);
digitalWrite(pinLF,LOW);
break;
case 'S': //назад
digitalWrite(pinRB,HIGH);
digitalWrite(pinRF,LOW);
digitalWrite(pinLB,LOW);
digitalWrite(pinLF,HIGH);
break;
}
}
}
|
|
|
|
|
|
#7 | |
|
Senior Member
Регистрация: 02.04.2012
Адрес: Питер
Сообщений: 1,125
Вес репутации: 1312 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
|
|
|
|
|
|
|
#8 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
cat /dev/ttyUSB0
|
|
|
|
|
|
#9 |
|
Junior Member
Регистрация: 07.07.2014
Сообщений: 20
Вес репутации: 0 ![]() |
Первое и второе не работает... не знаю почему...
Последний раз редактировалось werm; 12.08.2014 в 18:19. |
|
|
|
|
|
#10 | |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
|
|
|
|
|
![]() |
| Здесь присутствуют: 5 (пользователей: 0 , гостей: 5) | |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|