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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.04.2013, 11:07   #11
Admin
Administrator
 
Аватар для Admin
 
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,617
Вес репутации: 9822
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
По умолчанию

Код управления роботом с планшета Android и визуальная проверка оптических энкодеров
На планшете в плей маркете ищем и устанавливаем приложение "BlueCam"

Для этого понадобятся:
контроллер Arduino Nano V.7
материнская плата CyberBot , будут в продаже через 2 недели
драйвер двигателей(Motor Shield)
модуль Bluetooth

При использовании роутера TP-LINK TL WR703N и вебкамеры, Вы можете не только управлять роботом с любого Android, но и наблюдать окружающую обстановку вокруг робота

Для проверки энкодера возьмите робота в руки и запустите кнопку движение в лево(право), при этом светодиод D13 должен вспыхивать равномерно с одной частотой, без каких либо прерываний.

код для Arduino Nano
PHP код:
#include <CyberLib.h>
#include <SoftwareSerial.h>

#define motors_pins D4_Out; D5_Out; D6_Out; D7_Out
#define robot_go D4_Low; D5_High; D6_High; D7_Low
#define robot_back D4_High; D5_Low; D6_Low; D7_High
#define robot_left  D4_Low; D5_High; D6_Low; D7_Low
#define robot_right D4_Low; D5_Low; D6_High; D7_Low;
#define robot_stop D4_Low; D5_Low; D6_Low; D7_Low

SoftwareSerial mySerial(910); // RX, TX

void setup()  
{
  
motors_pins;
  
D13_Out//индикация энкодеров
  
  //Serial.begin(115200);
  
mySerial.begin(9600);
  
//mySerial.println("Hello, world!");
  
D2_InD3_InD2_HighD3_High//Подключить внутренние подтягивающие резисторы
  
attachInterrupt(0MotorARISING);  // настроить срабатывание прерывания interrupt0 pin 2 по перерпапду с низкого (Low) на высокий(HIGH)
  
attachInterrupt(1MotorBRISING);  // настроить срабатывание прерывания interrupt1 pin 3 по перерпапду с низкого (Low) на высокий(HIGH)
  
IntroSound(); //звуковое оповещение готовности робота
}

void loop()
{
  
Start
    
if (mySerial.available())
  {     
    switch (
mySerial.read()) 
    {
    case 
60robot_right
      break;
    case 
62robot_left
      break;
    case 
86robot_back;
      break;
    case 
94robot_go;
      break;      
    default: 
robot_stop;
    }
  }   
  
End;
}
//***************************************************
void  MotorA()  // обработка внешнего прерывания 0 правое колесо

  
D13_Inv;
  
//stepA++; 
  //course = stepA - stepB; // расхождение в оборотах колес
}  

void  MotorB()  // обработка внешнего прерывания 1 левое колесо
{
  
D13_Inv;
  
// stepB++; 


//*************************************************** 
void beep(byte durword frq)
{
  
dur=(1000/frq)*dur;  //расчет длительности бипа
  
for(byte i=0i<duri++)
  {
    
D11_High
    
delay_us(frq); 
    
D11_Low;
    
delay_us(frq);
  } 


//*************************************************** 
void  IntroSound()
{
  
beep(30,300); 
  
beep(30,400);
  
beep(50,300); 
  
beep(50,900);  
  
beep(50,850);  
  
beep(50,750);       
  
beep(30,600); 
  
beep(30,300);
  
beep(100,200); 

Admin вне форума   Ответить с цитированием
 

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


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

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

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

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


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


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