Автор Тема: Irodino  (Прочетена 10198 пъти)

mitko29

  • Зомбиран Роботостроител
  • *****
  • Публикации: 210
    • Профил
Irodino
« -: Октомври 17, 2010, 07:37:24 pm »
Здравейте,искам да ви представя първият ми проект направен на Ардуино а имено Иродино(звучи малко страно :-D  )  това е робот който може да засича обекти от разстояние с помоща на is471f(тук благодаря на Симеон който ме снабди с 2 бройки от него.)
Също така благодаря на sv_shady който ме светна за някой работи около пиновете на микроконтролера.

Ето и малко снимки на самата машина слагам ги като линкове че като снимка излиза много голяма.
Снимка отгоре:
http://store.picbg.net/pubpic/B1/B3/525e9b3e7bfcb1b3.jpg
Снимка отпред:
http://store.picbg.net/pubpic/F6/46/9569379f41dff646.jpg - Тези черни хартиики който виждате пред ир диода са зада не минава светлина назад и да лъже сензора.
А черните зад сензора са за да може светлината да се съсредоточи в една точка,тъй като черното поглъща.

Видео:
http://dox.bg/files/dw?a=477574629d
Така на клипа се вижда как когато има препятствие син диод светва и следователно платформата завива обаче понеже е възложено на транзистор 2n3904 да движи моторите те вървят само напред и когато двата сензора видат едно и също нещо забиват на едно място скоро смятам да обновя като сложя l293 вместо транзисторите за да управлява моторите.
След слагането на 2 инфрачервен диод обхвата значително се увеличи. :)

И тъй като ардуино е open source проект нека да дам и кода:

int sharpPin = 2;
int sharpPin2 = 4;
const int ledPin =  13;
int motorPin1 = 11;
int motorPin2 = 10;

int sharpState = 0;  
int sharpState2 = 0;

void setup() {
  Serial.begin(9600);
  pinMode (motorPin1, OUTPUT);
  pinMode (motorPin2, OUTPUT);
  pinMode(ledPin, OUTPUT);      
  pinMode(sharpPin, INPUT);
  pinMode(sharpPin2, INPUT);  
}

void loop(){
  sharpState = digitalRead(sharpPin);
  sharpState2 = digitalRead(sharpPin2);

  if (sharpState == LOW) {
    analogWrite(motorPin2, LOW);    
    // turn LED on:    
    digitalWrite(ledPin, HIGH);  
   
  }
  else {
    delay(200);
    analogWrite(motorPin2, 100);
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
   if (sharpState2 == LOW) {
    digitalWrite (motorPin1, LOW);    
    // turn LED on:    
    digitalWrite(ledPin, HIGH);  
  }
  else {
    delay(200);
    analogWrite(motorPin1, 100);
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}


Дайте някоя препоръка или едно коментарче за работата ми от скромните 3 дни.
Димитър Иванов, гр. Бургас, 17г.
skype: eeeeee5612