Zabawa z robotem to pewne wyzwanie dla każdego użytkownika, ale oczywiście przyjemne wyzwanie. W cyklu tym postaram się przedstawić przykłady zadań, a raczej przykłady projektów na zajęcia z robotami. Projektem który dziś przed przedstawię to budowa i prezentacja możliwości dźwigu. Zadanie będzie polegało na przeniesieniu obiektów znajdujących się z jednej strony dźwigu na drugą stronę tegoż dźwigu.
Pierwszym etapem realizacji projekt dźwig jest zbudowanie go. Zrobimy go przy pomocy instrukcji przedstawionej poniżej.
Czas potrzebny na realizację tego zadania to około 90 minut. Najciekawszą częścią jest programowanie robota, tak aby on wykonał zgodnie z poleceniem. W tym przypadku jest to pozytywne programowanie, ponieważ robot może być ciągle podłączony do urządzenia, aby wykonywać testy.
Rozwiązując zadanie należy pamiętać a tym, że w tej wersji zamontowane są dwa sensory (dotyku i koloru). Dzięki tym sensorom możemy ustalić pozycję wyjściową ramienia dźwigu. Tak jak to jest przedstawione na tym filmiku.
Przedstawione rozwiązanie jest to przykładowe rozwiązanie w LEGO Mindstorms oraz w języku RobotC.
#pragma config(Sensor, S1, Touch, sensorEV3_Touch) #pragma config(Sensor, S3, Color, sensorEV3_Color, modeEV3Color_Color) #pragma config(Motor, motorA, Chwytak, tmotorEV3_Medium, PIDControl, encoder) #pragma config(Motor, motorB, MotorGD, tmotorEV3_Large, PIDControl, encoder) #pragma config(Motor, motorC, , tmotorEV3_Large, openLoop) #pragma config(Motor, motorD, MotorOB, tmotorEV3_Large, PIDControl, encoder) //*!!Code automatically generated by 'ROBOTC' configuration wizard !!*// //ustawienie wysokosci void wys(int s) { while(getColorName(S3)!=6) { setMotor(MotorGD,-s); } stopMotor(MotorGD); } //ustawienie obrotu void ob(int s) { while(!getTouchValue(S1)) { setMotor(MotorOB,s); } stopMotor(MotorOB); } task main() { int speed=10; for(int i=0; i<2; i++) { //ustawienia poczatkowe dzwigu //ustawienie wysokosci wys(speed); //ustawienie obrotu ob(speed); //ustawienie chwytaka setMotor(Chwytak,-speed); wait1Msec(1000); setMotor(Chwytak,15); wait1Msec(400); stopMotor(Chwytak); //chwyt przedmiotu setMotor(MotorGD,speed); wait1Msec(3000); setMotor(Chwytak,-10); wait1Msec(500); //przeniesienie przedmiotu while(getColorName(S3)!=6) { setMotor(MotorGD,-speed); } stopMotor(MotorGD); setMotor(MotorOB,-speed); wait1Msec(3000); stopMotor(MotorOB); setMotor(MotorGD,speed); wait1Msec(3000); stopMotor(MotorGD); setMotor(Chwytak,10); wait1Msec(500); stopMotor(Chwytak); while(getColorName(S3)!=6) { setMotor(MotorGD,-speed); } stopMotor(MotorGD); } //ustawienie wysokosci wys(speed); //ustawienie obrotu ob(speed); }