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

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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.10.2014, 20:39   #11
mrjinatan
Junior Member
 
Регистрация: 11.10.2014
Сообщений: 2
Вес репутации: 0
mrjinatan is an unknown quantity at this point
По умолчанию Re: CyberWrt модуль "Робот"

Использовал в качестве драйвера стандартную плату машинки Там практически везде стоит realtek rx2 Распиновка такая
6 пин realtek к 3 пину arduino
7 пин realtek к 4 пину arduino
11 пин realtek к 5 пину arduino
10 пин realtek к 10 пину arduino
Плюс данного метода что мы не теряем радио управление машинки
Про подключение светодиодов думаю ясно
В скетче много мусора Потом почищу и вылажу уже с возможностью посигналить
PHP код:
/*
 Скетч для роботы cyber robot с платой машинки вместо драйвера
 Для основы взят скетч MobotBTCar
 Автор mrjinatan
 Фары включаются автоматически при движении
*/


int forward 5;     // Pin 5 - Вперед
int reverse 6;    // Pin 6 - Назад
int left 4;        // Pin 4 - Влево
int right 3;        // Pin 3  - Вправо
int turbo 8;        // Pin 8  - Не используеться
int short_lights 8;    // Pin 8  - Передние Фары
int long_lights 11;    // Pin 11  - Правый Поворотник
int back_lights 12;    // Pin 12  - Левый поворотник
int reverse_lights 9;    // Pin 9  - Задние Фары

char val;  // Variable to receive data from the serial port

void setup() {

  
// initialize the digital pins as output
  
pinMode(forwardOUTPUT);
  
pinMode(reverseOUTPUT);
  
pinMode(leftOUTPUT);
  
pinMode(rightOUTPUT);
  
pinMode(turboOUTPUT);
  
pinMode(short_lightsOUTPUT);
  
pinMode(long_lightsOUTPUT);
  
pinMode(back_lightsOUTPUT);
  
pinMode(reverse_lightsOUTPUT);

  
Serial.begin(9600);     // Start serial communication at 9600bps
}


// Fordward action
void go_forward() {
  
digitalWrite(forwardHIGH);
  
digitalWrite(short_lightsHIGH);
  
digitalWrite(reverseLOW);
  
digitalWrite(reverse_lightsLOW);
}

// Stop Forward action
void stop_go_forward() {
  
digitalWrite(forwardLOW);
}

// Reverse action
void go_reverse() {
  
digitalWrite(reverseHIGH);
  
digitalWrite(forwardLOW);
  
digitalWrite(short_lightsLOW);
  
digitalWrite(reverse_lightsHIGH);
}

// Stop Reverse action
void stop_go_reverse() {
  
digitalWrite(reverseLOW);
  
digitalWrite(reverse_lightsLOW);
}

// Turbo action
void go_turbo() {
  
digitalWrite(turboHIGH);
  
digitalWrite(forwardLOW);
  
digitalWrite(reverseLOW);
}

// Stop Turbo action
void stop_go_turbo() {
  
digitalWrite(turboLOW);
}

// Left action
void go_left() {
  
digitalWrite(leftHIGH);
  
digitalWrite(rightLOW);
  
digitalWrite(back_lightsHIGH);   // turn the LED on (HIGH is the voltage level)
      
}

// Right action
void go_right() {
  
digitalWrite(rightHIGH);
  
digitalWrite(leftLOW);
  
digitalWrite(long_lightsHIGH);   // turn the LED on (HIGH is the voltage level)
}

// Stop turn action
void stop_turn() {
  
digitalWrite(rightLOW);
  
digitalWrite(leftLOW);
}

// Stop car
void stop_car() {
  
digitalWrite(forwardLOW);
  
digitalWrite(reverseLOW);
  
digitalWrite(turboLOW);
  
digitalWrite(rightLOW);
  
digitalWrite(leftLOW);
  
digitalWrite(reverse_lightsLOW);
  
digitalWrite(long_lightsLOW);
  
digitalWrite(back_lightsLOW);
}

// Short Lights ON
void lights_on() {
  
digitalWrite(short_lightsHIGH);
  
digitalWrite(back_lightsHIGH);
}

// Short Lights OFF
void lights_off() {
  
digitalWrite(short_lightsLOW);
  
digitalWrite(back_lightsLOW);
}

// Long Lights ON
void long_lights_on() {
  
digitalWrite(long_lightsHIGH);
}

// Long Lights OFF
void long_lights_off() {
  
digitalWrite(long_lightsLOW);
}

// Reverse Lights ON
void back_lights_on() {
  
digitalWrite(reverse_lightsHIGH);
}

// Reverse Lights OFF
void back_lights_off() {
  
digitalWrite(reverse_lightsLOW);
}
  
// Read serial port and perform command
void performCommand() {
  if (
Serial.available()) {
    
val Serial.read();
  }
    if (
val == 'W') { // Forward
      
go_forward();
    } else if (
val == 'k') { // Stop Forward
      
stop_go_forward();
    } else if (
val == 'S') { // Backward
      
go_reverse();
    } else if (
val == 'k') { // Stop Backward
      
stop_go_reverse();
    } else if (
val == 't') { // Turbo
      
go_turbo();
    } else if (
val == 'k') { // Stop Turbo
      
stop_go_turbo();
    } else if (
val == 'D') { // Right
      
go_right();
    } else if (
val == 'A') { // Left
      
go_left();
    } else if (
val == 'k') { // Stop Turn
      
stop_turn();
    } else if (
val == 'x') { // Stop
      
stop_car();
    } else if (
val == 'k') { // Short Lights
      
lights_on();
    } else if (
val == 'h') { // Stop Short Lights
      
lights_off();
    } else if (
val == 'h') { // Long Lights
      
long_lights_on();
    } else if (
val == 'g') { // Stop Long Lights
      
long_lights_off();
    }
  
}


void loop() {
  
performCommand();

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


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

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

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

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


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


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