Дана 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
|
©Библиотека++ 2024 Развој сајта Ивица Лазаревић