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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.01.2015, 16:49   #101
elik745i
Senior Member
 
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0
elik745i is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-2"

Вот что получилось:
скетч:
PHP код:
/* 
Sketch based on Cyberlib library from 
cyber-place.ru, however due to some hangups 
desition were taken to get rid of this library 
and use arduino standard libraries 
and Adafrruit libraries. LCD module used 
just for debuging and is optional, however 
many useful information can be hooked to it.

Wiring:
1.8''LCD is just insertewd to MEGA pins 8 -> AREF
2 servos (yaw and pitch) hooked to digital pins 2 
and 3 (configurable, just like LCD pins)
Servos powered by 5 volt regulator from external 
power supply (this is important not to fry arduino 
or your modem)
For video demonstration please visit my youtube:
http://youtu.be/HcA-f-SeI6g
Any references/updates please visit my blog: 
www.voltrans.az
*/

//#include <CyberLib.h>  // Подключаем библиотеку  
#include <Servo.h> // Подключаем библиотеку сервоприводов  
#include <Adafruit_GFX.h>    // Core graphics library
#include <Adafruit_ST7735.h> // Hardware-specific library
#include <SPI.h>

Servo myservo1;  
Servo myservo2;  

//long previousMillis; // Нужно для таймера  
//uint8_t LedStep = 0; // Счетчик 
int val1 0;
int val2 0;
//int servoSpeed = 20;
int servoAngle 20;
int minAngle 0;
int maxAngle 180;


//int i;
int q=2;
int w=114;

boolean light_stat
uint8_t inByte;  
uint8_t speed=255//максимальная скорость по умолчанию 

//#define init {D4_Out; D5_Out; D6_Out; D7_Out; D8_Out; D11_Out; D12_Out;}   
#define TFT_CS     13
#define TFT_RST    12  // you can also connect this to the Arduino reset
                      // in which case, set this #define pin to 0!
#define TFT_DC     11
#define TFT_SCLK 9   // set these to be whatever pins you like!
#define TFT_MOSI 10   // set these to be whatever pins you like!
Adafruit_ST7735 tft Adafruit_ST7735(TFT_CSTFT_DCTFT_MOSITFT_SCLKTFT_RST);
const 
int ledPin =  8
const 
int irlight 46;
const 
int blastLed 47;
int backlit 100;     //backlit


void setup()    


  
noTone(49);
  
pinMode(ledPinOUTPUT);
  
pinMode(irlightOUTPUT);
  
pinMode(blastLedOUTPUT);
  
analogWrite(ledPinbacklit);  
  
tft.initR(INITR_BLACKTAB);   // ST7735-Chip initialisieren  
  
tft.fillScreen(ST7735_BLACK);
  
tft.drawRoundRect(0,0,128,160,6,ST7735_WHITE);
  
tft.drawRect(0,100,128,12,ST7735_WHITE);
  
tft.drawTriangle(64543358635ST7735_WHITE);
  
tft.drawTriangle(649543658665ST7735_WHITE);
  
tft.drawTriangle(55040354065ST7735_WHITE);
  
tft.drawTriangle(1235089358965ST7735_WHITE);
  
  
  
tft.setTextColor(ST7735_WHITE);
  
tft.setCursor(4642);
  
tft.print("WEBCAM");
  
tft.setCursor(4652);
  
tft.print("CONTROL");
  
  
tft.setCursor(10102);
  
tft.setTextColor(ST7735_WHITE);
  
tft.setTextWrap(true);
  
tft.print("Serial Monitor:");
  
myservo1.attach(24); // Подключение сервоприводов к порту  
  
myservo2.attach(26); // Подключение сервоприводов к порту  
  
myservo1.write(val1);
  
myservo2.write(val2);
  
delay(500);
  
myservo1.detach();
  
myservo2.detach();
  
init;  // Инициализация портов     
  
horn(); //звуковое оповещение готовности робота   
  
Serial.begin(57600);// Инициализация порта для связи с роутером    
  //wdt_enable (WDTO_500MS);
  
tft.setCursor(7290);
  
tft.setTextColor(ST7735_RED);
  
tft.print("BLAST OFF");
  
tft.setCursor(890);
  
tft.setTextColor(ST7735_RED);
  
tft.print("IR OFF");
}    

void loop()    
{   
  
/*
    unsigned long currentMillis = millis(); // Обновление таймера  
      if (LedStep == 0 && currentMillis - previousMillis > 500){ // Задержка 0,5 сек.   
      previousMillis = currentMillis; // обновление таймер  
      LedStep = 1; // Счетчик шагов  
    }  

    if (LedStep == 1 && currentMillis - previousMillis > 500){ // Задержка 0,5 сек.  
      previousMillis = currentMillis; // обновление таймер  
      LedStep = 2; // Счетчик шагов  
    }  

    if (LedStep == 2 && currentMillis - previousMillis > 500){ // Задержка 0,5 сек.  
      LedStep = 0; // Счетчик шагов  
    } 
*/
    
   
if (Serial.available()) //Еесли что то пришло  
        

    
    
byte inByte Serial.read();
    
tft.setTextColor(ST7735_WHITE);
    
tft.setCursor(qw);
    
tft.print(inByte);
    
tft.print(", ");
    
q=q+24;
    if(
q>=120){
      
w=w+10;
      
q=2;
    }
    if(
w>=150){
     
tft.fillRect(1,111,126,46,ST7735_BLACK);
    
q=2;
   
w=114;
    }
    
    switch (
inByte)  // Смотрим какая команда пришла  
    
{      
       case 
'U'// Серво поднимается
                       
if(val1<maxAngle){
                         
up();
                         
myservo1.attach(24);               // attaches the servo on pin 2
                         
for(int i=0;i<servoAngle;i++){
                         
myservo1.write(val1+i);           // sets the servo position according to the scaled value 
                         
delay(servoAngle);
                         }
                         
val1=val1+servoAngle;
                         
myservo1.detach();                // detaches the servo on pin 2
                         
}
         
//up();
         // myservo1.write(i -= 10);      
        
break;   
          
        case 
'J'// Серво опускается
                        
if(val1>minAngle){
                         
dn();
                         
myservo1.attach(24);               // attaches the servo on pin 2
                         
for(int i=0;i<servoAngle;i++){
                         
myservo1.write(val1-i);           // sets the servo position according to the scaled value 
                         
delay(servoAngle);
                         }
                         
val1=val1-servoAngle;
                         
myservo1.detach();                // detaches the servo on pin 2
                         
}
        
//dn();
          //myservo1.write(i += 10);       
        
break; 
               
        case 
'H'// Серво поворачивается влево
                        
if(val2<maxAngle){
                         
lt();
                         
myservo2.attach(26);               // attaches the servo on pin 2
                         
for(int i=0;i<servoAngle;i++){
                         
myservo2.write(val2+i);           // sets the servo position according to the scaled value 
                         
delay(servoAngle);
                         }
                         
val2=val2+servoAngle;
                         
myservo2.detach();                // detaches the servo on pin 2
                         
}
        
//lt();
          //myservo2.write(i += 10);      
        
break;   
          
        case 
'K'// Серво поворачивается вправо 
                        
if(val2>minAngle){
                         
rt();
                         
myservo2.attach(26);               // attaches the servo on pin 2
                         
for(int i=0;i<servoAngle;i++){
                         
myservo2.write(val2-i);           // sets the servo position according to the scaled value 
                         
delay(servoAngle);
                         }
                         
val2=val2-servoAngle;
                         
myservo2.detach();                // detaches the servo on pin 2
                         
}
        
//rt();
          //myservo2.write(i -= 10);
        
break;    
          
         case 
'B'//  Бластер  
         
if(light_stat
        { 
         
digitalWrite(blastLedLOW); 
         
bIRoff();
         
light_stat=false
        } else  
              { 
               
digitalWrite(blastLedHIGH);
              
bIRon(); 
               
light_stat=true
              } 
        break;  
         
        case 
'C'// Клаксон  
         
horn();  
        break;  
          
        case 
'V'// Включить/Выключить фары  
        
if(light_stat
        { 
         
digitalWrite(irlightLOW); 
         
IRoff();
         
light_stat=false
        } else  
              { 
               
digitalWrite(irlightHIGH);
              
IRon(); 
               
light_stat=true
              } 
        break;  
    }   
     if(
inByte>47 && inByte<58speed=(inByte-47)*25+5;//принимает команду и преобразуем в скорость          
  
}   
// wdt_reset();  

 
void up(){
   
tft.fillTriangle(64644348534ST7735_GREEN);
   
tft.fillTriangle(64644348534ST7735_BLACK);
 }
 
void dn(){
   
tft.fillTriangle(649246678367ST7735_GREEN);
   
tft.fillTriangle(649246678367ST7735_BLACK);  
 }
void lt(void){
      
tft.fillTriangle(65039363964ST7735_GREEN);
      
tft.fillTriangle(65039363964ST7735_BLACK);
      }
      
void rt(void){
      
tft.fillTriangle(1225090369064ST7735_GREEN);
      
tft.fillTriangle(1225090369064ST7735_BLACK);    
      }

void horn() 

  
noTone(49);
  
tone(49440150);    
  
delay(250);
  
tone(49440700);


void bIRon(){
  
tft.setCursor(7290);
  
tft.setTextColor(ST7735_BLACK);
  
tft.print("BLAST OFF");
  
tft.setCursor(7290);
  
tft.setTextColor(ST7735_GREEN);
  
tft.print("BLAST ON");  
}

void bIRoff(){
  
tft.setCursor(7290);
  
tft.setTextColor(ST7735_BLACK);
  
tft.print("BLAST ON");
  
tft.setCursor(7290);
  
tft.setTextColor(ST7735_RED);
  
tft.print("BLAST OFF");
  
}

void IRon(){
  
tft.setCursor(890);
  
tft.setTextColor(ST7735_BLACK);
  
tft.print("IR OFF");
  
tft.setCursor(890);
  
tft.setTextColor(ST7735_GREEN);
  
tft.print("IR ON");  
}

void IRoff(){
  
tft.setCursor(890);
  
tft.setTextColor(ST7735_BLACK);
  
tft.print("IR ON");
  
tft.setCursor(890);
  
tft.setTextColor(ST7735_RED);
  
tft.print("IR OFF");
  

видео в работе:



Единственное, кто нить может подсказать как подключить ардуино pro mini минуя USB порт, что то читал через RX TX, но без подробностей, если кто знает опишите...если получится подключить минуя USB порт, то я могу его использовать для камеры минуя хаб (нет у нас тут полноценного хаба на усб 2, все, что нашел только усб 1.0 (остальное китайское все равно усб 1.1, хотя любят наврать что усб 2.0)
и тогда все запляшет на полном разрешении, без артефактов....
elik745i вне форума   Ответить с цитированием
Старый 18.01.2015, 18:43   #102
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: Модуль "CyberBot-2"

Подключаете Arduino mini к RX и TX роутера и устанавливаете модуль "Free UART"
Admin вне форума   Ответить с цитированием
Старый 18.01.2015, 19:07   #103
elik745i
Senior Member
 
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0
elik745i is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-2"

Цитата:
Сообщение от Admin Посмотреть сообщение
Подключаете Arduino mini к RX и TX роутера и устанавливаете модуль "Free UART"
а где в роутере RХ и ТХ?
elik745i вне форума   Ответить с цитированием
Старый 18.01.2015, 19:23   #104
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: Модуль "CyberBot-2"

Здесь
Admin вне форума   Ответить с цитированием
Старый 19.01.2015, 22:14   #105
elik745i
Senior Member
 
Регистрация: 07.01.2015
Адрес: Baku
Сообщений: 225
Вес репутации: 0
elik745i is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-2"

Ура, сделал, припаивался очень осторожно, там буквально контакты точечьки с размером с волосик, далее, как припаялся сразу залил жидким паяльным клеем, что бы не дай бог не оторвалось с текстолита.....Самое главное работает на полном разрешении!
elik745i вне форума   Ответить с цитированием
Старый 24.01.2015, 11:44   #106
soviet
Member
 
Регистрация: 17.12.2013
Сообщений: 68
Вес репутации: 0
soviet is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-2"

Возникла проблема, через 20 сек работы зависает картинка, после обновления станицы, команды не выполняются. В чем беда?
soviet вне форума   Ответить с цитированием
Старый 24.01.2015, 18:13   #107
uni
Senior Member
 
Аватар для uni
 
Регистрация: 29.10.2013
Адрес: Екатеринбург, Нижневартовск, Энергодар
Возраст: 43
Сообщений: 573
Вес репутации: 599
uni has a spectacular aura aboutuni has a spectacular aura about
Отправить сообщение для uni с помощью ICQ
По умолчанию Re: Модуль "CyberBot-2"

Admin, можешь приложить полный список деталек для сборки нового робота? Мне нужно спецификацию подготовить для покупки двух-трёх наборов таких роботов, чтобы школьникам показать (покупать на duino.ru ).

Ищу-ищу, не могу найти в разбросанных сообщениях что-же заказывать. Мне нужно сделать робота с использованием TL-MR3020 и вебкамерой C270. Магнитные датчики и пр. акселерометры пока не нужны, но ультразвуковой можно оставить. Непонятно с оптическим датчиком вращения колёс, он в комплекте или как? Если в комплекте, то с чем?

В общем, получил такой список:

- набор-конструктор робота;
- драйвер электродвигателя;
- ультразвуковой дальномер;
- сервопривод SG90;
- Arduino Nano 7;
- плата контроллера робота;
- батарейный отсек;
- аккумуляторы (4 шт);
- роутер TL-MR3020;
- web-камера Logitech C270;
- беспроводное зарядное устройство;

Что я забыл для полного счастья? К плате детальки идут в комплекте или их докупать надо?

Много ли времени занимает сборка, если детали робота уже подготовлены (распаяны)?
__________________
Россия навсегда!
uni вне форума   Ответить с цитированием
Старый 27.01.2015, 11:57   #108
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: Модуль "CyberBot-2"

Цитата:
Admin, можешь приложить полный список деталек для сборки нового робота?
Постараюсь сегодня написать

Цитата:
Непонятно с оптическим датчиком вращения колёс, он в комплекте или как?
Что я забыл для полного счастья? К плате детальки идут в комплекте или их докупать надо?
Деталей нет в комплекте

Цитата:
Много ли времени занимает сборка, если детали робота уже подготовлены (распаяны)?
Если плата распаяна то 10-20 мин.
Admin вне форума   Ответить с цитированием
Старый 28.01.2015, 07:24   #109
Under
Member
 
Регистрация: 28.01.2015
Сообщений: 34
Вес репутации: 0
Under is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-2"

Подскажите, где можно заказать фары для робота? А то функция в модуле есть, грех не пользоваться, но самому выдергивать LED-части из фонариков и колхозить особо не хочется. Я таскаю детали для робота с ТаоБао (живу во Владивостоке, поэтому оттуда удобнее и дешевле), и вот заметил шикарные фонари на одном из роботов, но отдельно их нагуглить не смог. Может кто поделится ссылками/идеями?
Under вне форума   Ответить с цитированием
Старый 03.02.2015, 11:46   #110
soviet
Member
 
Регистрация: 17.12.2013
Сообщений: 68
Вес репутации: 0
soviet is an unknown quantity at this point
По умолчанию Re: Модуль "CyberBot-2"

Кто нибудь пробовал: Роутер принимает в виде команд символы и цифры?
soviet вне форума   Ответить с цитированием
Ответ


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

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

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

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


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


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