Покажи участието

От тук може да видиш всички публикации на този потребител.


Теми - mivr

Страници: [1]
1
Робо-сумо / Panic Attack v2 от клуб по роботика СМГ
« -: Януари 25, 2014, 06:40:24 pm »
Panic Attack v2



Това е робот сглобен от шасито на предшественика си Panic Attack, с няколко промени в задвижването, нови двигатели, нови и повече сензори и леки промени в захранването.

Механика

При последните тестове на Panic Attack забелязахме че гумите често излитат настрани и така може да се обездвижи робота по време на битка. За това направихме нови джанти отново от дурал като разликата е два големи канала в профила. Разбира се, се наложи изливане на нови гуми от същият силикон като на предшественика си, в същите калъпи.


Освен това сменихме двигателите от: http://www.pololu.com/product/1572/specs на http://www.pololu.com/product/1570/. Тъй като захранването на двигателите е 7.4 волта максималните обороти са ~2800 а максималната тяга е 0.72 кг/см. С това подобрение, скоростта за засичане и стигане до противника е значително подобрена. Въпреки че въртящият момент е значително намален роботът отново "подскача" при сблъсък с непреодолим противник (стена). Надяваме се да намерим решение на проблема със следващите ни конструкции.

CAD файлът на джантите: https://www.dropbox.com/s/qzcmi7akqd7d8q0/gumiSumo.dwg

Електроника

Мозъкът на роботът не е променян (дори платката е същата), но за сметка на това променихме начина на захранване на мощните вериги, на сензорите и на процесора.

    Panic Attack имаше проблеми със сензорите които би трябвало да работят на 5 волта, а ние работихме с тях на стандартните за нашата система 3.3 волта, разбира се това е в позволените граници, но доведе до нестабилност и внесе шум в захранването на процесора. Заради това изнесохме захранването на сензорите на отделен модул с ИС LM2576T http://store.comet.bg/Catalogue/Product/669/, така шумове в захранването на процесора нямаше и сензорите не направиха нито една грешка за цялото състезание във Варна (последният ден от "Седмица на роботиката" в ТУ Варна). Разбира се разликата във нивата на сигналите създаде проблем. При тестовете се оказа, че ако кракът на които се поддава 5 волта вместо 3.3 е инициализиран като аналогов вход няма поражения по процесора, но когато го инициализираме като дигитален ядрото на процесора изгаря... Та един процесор по-късно имахме и резисторни делители на напрежение на 4-те крака които използвахме като аналогови входове.
    Сензорите отново са на SHARP но този път са по добре подбрани. Един от проблемите на Panic Attack беше че трябва да се върти с около 30% от максималната си скорост на въртене с цел да избегне сензорите да изпуснат противника. Този проблем идва от максималната честота на засичане а именно 10Hz за сензорите, разбира се заради лошото ни захранване се наложи честота да падне до 5Hz което доведе до въртене с почти спрели двигатели и бавно завъртане дори когато единият сензор засича противника. Този проблем решихме като си избрахме правилните сензори за целта. :) SHARP GP2Y0D340K (http://bg.farnell.com/sharp/gp20d340k/sensor-distance-dig-o-p-compact/dp/9707913), тези сензори могат да работят на около 100Hz и с правилното захранване не поддадоха нито един грешен сигнал, а високата скорост на отчитане позволи да използваме по-висока скорост на въртене и преследване.

Софтуер

Промените по програмата бяха последното в списъкът ни и като цяло кодът е леко променен в сравнение с този на Panic Attack. Единствената разлика е в алгоритъмът и е добавено изгасяне на роботът при засичане на обект от двете страни на робота (невъзможна ситуация по време на битка).

Архив на проекта в Atmel Studio: https://www.dropbox.com/s/gvr8jdg9v7pq08k/Sumo%20Robot%20Panic%20V2.zip

2
Робо-сумо / Panic Attack от клуб по роботика СМГ
« -: Ноември 14, 2013, 10:51:32 pm »
Panic Attack



Един проект на клуб по роботика СМГ с помоща на ТУ-София и спонсорство, от страна на платки, от Микрон20 http://www.micron20.com/.

След 4 седмици работа и над 6 месеца планиране можем да се похвалим с почти работещ както се очакваше, робот.

Механика
    За мотори се спряхме на 25-милиметровите редуктори на Pololu с редукция 20:1, скорост от 480 об./мин. и максимален въртящ момент от 2.6 кг./см.


линк към сайта на Pololu:
http://www.pololu.com/product/1572/specs

Джантите са изработени от дурал по следните чертежи:




Чертежите са правени на безплатната версия на AutoCAD Mechanical 2013,  (за ученици и студенти), разликата между чертежите и оригиналите идва от минималното разстояние между двете дупки за стопорните винтове.

Планките са два вида от 0.5мм неръждаема стомана и от 1.5мм неръждаема стомана, като страничните и долната са от 0.5мм а планката за избутване е от 1.5мм, като 1.5мм-вата е заострена с цел подпъхване на противника. Разбира се няколко часа преди състезанието (когато кантарчето ни тръгна) открихме че сме 70 грама над максималното позволено тегло (500гр.), така роботът остана без задна и странични планки и намалихме броя на болтовете и гайките с цел да олекотим още конструкцията. Крайното ни тегло е 498гр. Разликата можете да видите от чертежите и реалността:




Извиняваме се за липсващото оразмеряване, чертежите са правени за лазерно рязане.








Сензорите са закрепени с болтове, където може а средният сензор е залепен с горещ силикон. Платката е също на 2 винта (щяха да са 4 но 2 винта и 2 гайки се оказаха твърде тежки - 3гр. :().

Гумите
    Гумите са изработени от силикон с твърдост 10A по Шор или най-мекият който успяхме да намерим.
https://www.smooth-on.com/index.php?cPath=1135
Вносителят за България е Мистрал Трейдинг ООД (mystraltrade@yahoo.com). Отговарят бързо на имейли и доставят по куриер за един ден.
    Изливането се осъществи в изработени за това форми:



Архив на всички CAD файлове: https://www.dropbox.com/s/sn4itbi3muv7evv/Panic%20Attack%20CAD%20Files.zip

Електроника
    Платката е на основата на микроконтролер Atxmega32A4U, който комбинира бързи ADC конвертори, USB порт, 16 PWM канала и още много модули които можете да разгледате тук:http://www.atmel.com/devices/ATXMEGA32A4U.aspx?tab=overview.
    Захранването е осъществено с MC34063 сметнато е с безплатен калкулатор намерен в мрежата. http://dics.voicecontrol.ro/tutorials/mc34063/
    Мощните вериги са базирани на IR2104 драйвери, които позволяват да се ползват два N канални транзистора за направата на полу-мост. На платката са поставени 4 полу-моста или 8 N канални транзистора.
    Сензорите са: 2x 10-80см на SHARP и един 10см модул от Pololu със сензор на SHARP.
    Понеже драйверите на транзисторите изискват над 10 волта за да работят нормално се наложи добавянето на повишаващо захранване като външен модул, отново базирано на MC34063 сметнато със същият калкулатор и осъществено на прототипна платка.

Транзисторите са: http://bg.farnell.com/stmicroelectronics/std75n3llh6/mosfet-n-ch-30v-75a-dpak/dp/2098182
Линк към схемите: http://store.comet.bg/Catalogue/Product/9200/
Архив на файловете на платката: https://www.dropbox.com/s/1xa7wsmhgocku3a/Main_Board_28.10.2013_production.zip?dl=0

Програма
    Кодът на роботът е доста опростен и работи на принципа на прекъсвания от един от вътрешните таймери на микроконтролера. Проектът е на официалният и безплатен софтуер за Atmel микроконтролери: Atmel Studio, с помощта на вградените библиотеки за нашият микроконтролер успяхме да напишем кодът за забележително кратко време, а грешките бяха малки и лесно отстраними (почти веднага след минаване в режим на дебъгване).

Архив на проекта в Atmel Studio: https://www.dropbox.com/s/im9k0aw7qdbt5yt/Sumo%20Robot%20Panic%20V1.zip?dl=0

Ако имате въпроси или интерес към някоя неописана част от робота можете да питате под темата, ще се постараем да ви отговорим възможно най-скоро.

Поздрави

3
За всичко... / FREE DAY в Sparkfun
« -: Януари 09, 2011, 03:07:48 pm »
Прди малко научих че на 13 януари в Sparkfun ще има т.н. Free Day  в които плащаш само доскавката на поръчка до 100$ ако може някои да каже колко е доставката моля кажете.

Ето и линк:http://www.sparkfun.com/news/487

4
Робо-сумо / Моят сумо робот
« -: Май 29, 2010, 02:15:25 pm »
Здравеите на всички днес реших да кача малко от работата ми във форума(който чета редовно)

Ето го и роботът:

Първо малко снимки:
отзад:

отстрани:

отпред:

изправен:

силовата елоктраника(7-9V):

връзките на силовата електроника:

ардуиното:

батерията:

ключетата:

инфрачервените датчици:

тук следи линия:
http://www.youtube.com/watch?v=4zjp6kS0Trw
тук е с програмата за сумо:
http://www.youtube.com/watch?v=s4pO-d7Y5kY
и самата програма:

int b = 5;
int pwmA = 9;
int A1 = 7;
int A2 = 8;
int pwmB =10;
int b_1 = 12;
int b2 = 13;
int val =0,val2 =0,val3 =0,sen =0,sen2 =5,sen3 = 2;
int chooser = 0,c = 1,cl = 3,cl2 = 4;
void setup()
{
  Serial.begin(9600);
  pinMode(cl,INPUT);
  pinMode(cl2,INPUT);
  pinMode(chooser,INPUT);
  pinMode(pwmA,OUTPUT);
  pinMode(A1,OUTPUT);  
  pinMode(A2,OUTPUT);  
  pinMode(pwmB,OUTPUT);  
  pinMode(b_1,OUTPUT);  
  pinMode(b2,OUTPUT);    
  pinMode(sen,INPUT);
  pinMode(sen2,INPUT);  
  pinMode(c,OUTPUT);
  analogWrite(pwmA,0);
  digitalWrite(A1,HIGH);
  digitalWrite(A2,LOW);
  analogWrite(pwmA,255);
  analogWrite(pwmB,0);
  digitalWrite(b_1,HIGH);
  digitalWrite(b2,LOW);
  analogWrite(pwmB,255);
}

void loop()
{  


  val = analogRead(sen);
  val2 = analogRead(sen2);
  val3 = analogRead(sen3);
  Serial.print("x = ");
  Serial.print(val);
  Serial.print("y = ");
  Serial.print(val2);
  Serial.print("z = ");
  Serial.println(val3);  
  if(digitalRead(chooser) == HIGH)
  {
    Serial.println("1");
    analogWrite(pwmA,0);
    digitalWrite(A1,HIGH);
    digitalWrite(A2,LOW);
    analogWrite(pwmA,255);
    analogWrite(pwmB,0);
    digitalWrite(b_1,HIGH);
    digitalWrite(b2,LOW);
    analogWrite(pwmB,255);

    if((digitalRead(cl) == LOW) && (digitalRead(cl2)==LOW) && (val<800))
    {
      val = analogRead(sen);
    }
    else
    {

      if(digitalRead(cl) == HIGH)
      {
        analogWrite(pwmA,0);
      }
      else
      {
        analogWrite(pwmA,255);
      }
      if(digitalRead(cl2) == HIGH)
      {
        analogWrite(pwmB,0);
      }
      else
      {
        analogWrite(pwmB,255);
      }  
      val = analogRead(sen);
      if(val>800)
      {
        analogWrite(pwmA,0);
        digitalWrite(A1,LOW);
        digitalWrite(A2,HIGH);
        analogWrite(pwmA,255);
        analogWrite(pwmB,0);
        digitalWrite(b_1,LOW);
        digitalWrite(b2,HIGH);
        analogWrite(pwmB,255);
        delay(500);
        analogWrite(pwmA,0);
        digitalWrite(A1,HIGH);
        digitalWrite(A2,LOW);
        analogWrite(pwmA,255);
        delay(450);
      }
    }
  }
  else
  {

    Serial.println("2");
    if(val<800)
    {
      while(val<800)
      {
        val = analogRead(sen);
        analogWrite(pwmA,0);
      }
      analogWrite(pwmA,255);
    }
    else
    {
      analogWrite(pwmA,255);
    }
   
    if(val2<800)
    {
      while(val2<800)
      {
        val2 = analogRead(sen2);
        analogWrite(pwmB,0);
      }
      analogWrite(pwmB,255);
    }
    else
    {
      analogWrite(pwmB,255);
    }
  }
}

Страници: [1]