Дана 27. априла одржана је радионица у оквиру које је комплетиран програм за управљање Сортером. Програм је написан на програмском језику ПХП. Овом приликом обрађени су основни концепти објектно оријентисаног програмирања, као што су наслеђивање и енкапсулација.
<?php
require "ev3.php";
class Sorter extends Ev3
{
private $razmak = 80;
private $trenutnaBoja = 0;
private $portBoja = Ev3::PORT_4;
private $portDodir = Ev3::PORT_1;
public $maliMotor = Ev3::PORT_A;
private $velikiMotor = Ev3::PORT_D;
private $snaga = 50;
private $ispljuniRotacija = 250;
private $boje = ['Nedefinisana boja', 'Crna', 'Plava', 'Zelena', 'Žuta', 'Crvena', 'Bela', 'Braon'];
public function ispljuni()
{
$this->okreniMaliMotor(1);
$this->okreniMaliMotor(-1);
echo "Pljunuo \n";
$this->izgovoriTekst('Pu!');
usleep(4000);
}
private function okreniMaliMotor($smer)
{
$this->pokreniMotorPozicija($this->maliMotor,$this->ispljuniRotacija * $smer);
$this->blokirajDokRadiMotor($this->maliMotor);
}
private function pozicioniraj($novaBoja)
{
$imeBoje = $this->boje[$novaBoja];
echo "Pozicioniram se na boju: $imeBoje : $novaBoja \n";
$this->izgovoriTekst($imeBoje);
$pomeraj = ( $novaBoja - $this->trenutnaBoja) * $this->razmak * -1;
echo "Pomeraj je $pomeraj \n";
$this->pokreniMotorPozicija($this->velikiMotor, $pomeraj);
$this->blokirajDokRadiMotor($this->velikiMotor);
$this->trenutnaBoja = $novaBoja;
}
private function udarioUSenzor()
{
return intval($this->ocitajSenzor($this->portDodir));
}
public function pocetak()
{
$this->jacinaTona(100);
$snaga = $this->snaga * -1;
$this->snagaMotora($this->velikiMotor, $snaga.'');
$this->snagaMotora($this->maliMotor, $snaga);
$this->pokreniMotor($this->velikiMotor);
while( ! $this->udarioUSenzor()){
echo "Cekam na senzor za dodir \n";
}
echo "Senzor za dodir je aktiviran \n";
$this->zaustaviMotor($this->velikiMotor);
$this->pokreniMotorPozicija($this->velikiMotor, $this->razmak / 5, true);
$this->zaustaviMotor($this->velikiMotor);
$this->trenutnaBoja = 1;
$this->podesiModSenzora($this->portBoja, 'COL-COLOR');
}
protected function ocitajBoju()
{
return intval($this->ocitajSenzor($this->portBoja));
}
public function pokreni()
{
$this->pocetak();
$ponavljanje = 0;
usleep(4000);
while(($novaBoja = $this->ocitajBoju()))
{
if($this->trenutnaBoja == $novaBoja){
$ponavljanje++;
if($ponavljanje > 4){
echo "Izlazim jer se boja ponavlja vise od 4 puta \n";
break;
}
}else{
$ponavljanje = 0;
}
$this->pozicioniraj($novaBoja);
echo "PU! $novaBoja \n";
$this->ispljuni();
}
}
}
$robot = new Sorter();
$robot->pokreni();
|
Ивица 28.04.2015 Одељци: Зид Обавештења Ивица | Кључне речи: радионица пхп
|
0
|
©Библиотека++ 2025 Развој сајта Ивица Лазаревић