16.3.14

Tunnid vaheajal

Tunnid toimuvad tunniplaani järgi. TEISIPÄEVAL roboteid ei ehita vaid läheme direktori jutule. Seega tavalist tundi ei tule!

6.3.14

Arduinoga alustamine

Kuna Lego roboteid on kodus ainult 1 õpilasel siis kodutöödest loobumine osutus teistel justkui põhjendatuks. Arutasime olukorda ja asume Arduino robotiseeria kallale. Eelmisest aastast on olemas 4 Arduino Leonardo plaati. lisaks püüan juurde hankida Arduino Unosid ja mootorite kontrollereid. Mõlemaid saaks olemasoleva raha eest 2 tk. Panen siia lingid mis asjad need on:
Arduino Leonardo eelmise õppeaasta tutvustus ja Arduino UNO selleks aastaks. Mootorite juhtimise moodul võimaldab ühendada 2 alalisvoolu mootorit või ühe sammumootori. Seega saaks teha liikuva roboti. Kes soovib omada isiklikke plaate/mooduleid siis vajalikum on põhiplaat.



Pilt mootorite juhtplokist


Tarkvara on vabavara ning leidub palju koodijuppe ja foorumeid kust saab lisaks abi ja juhendamist. Arduino koduleht http://www.arduino.cc/
Tarkvara saab allalaadida http://arduino.cc/en/Main/Software



2.3.14

Reketi liigutamise programm

Kuna otsustasime tutvuda kuidas tehakse lihtsamat mängu, siis proovisime Ping-Pongi ühele. Näide on raamatust Robootika? ... See on imelihtne! Nagu ikka ei hakka endast lugu pidav koodijupp kohe tööle. Olen reede õhtust pusinud ja mõnda kohta omatahtsi ringi teinud. Panen siia esialgse variandi, mida saab veel ringis kohendada.
Peamiseks probleemiks on reketi paremale liikumisel jääv pikk saba. Vahetasin katsetamise käigus värava ehk reketi "AA" deks. Siis oli parem jälgida. Mingi konks on veel sellega kui reket jõuab paremasse nurka. Alustamisel ei teki värav ka päris keskele.

//Reketi liikumine
task main()
{
  int Dash;
  long alg;
  long Mootor;
  alg=MotorRotationCount(OUT_A);
 
  while(TRUE)
  {
    Mootor=MotorRotationCount (OUT_A)/5;
    Dash=(alg-Mootor)+DISPLAY_WIDTH/2;
    if (Dash<0)
    {
      alg=Mootor-DISPLAY_WIDTH/2;
      Dash=0;
    }
    if (Dash>DISPLAY_WIDTH-12)
    {
      alg=Mootor+DISPLAY_WIDTH/2-12;
      Dash=DISPLAY_WIDTH-12;
    }
   TextOut(Dash, LCD_LINE8,"AA",DRAW_OPT_CLEAR_LINE);
   Wait(100);
   ClearScreen();
   }
}