Matlab - Cubo controlado por potenciometros con arduino

   
Vista:

Cubo controlado por potenciometros con arduino

Publicado por Andrea (2 intervenciones) el 18/08/2016 19:29:14
Buen día a todos, hace unos días realicé un programa que me permite la rotación y traslación de un triángulo mediante un potenciómetro que se conecta a arduino, sin embargo me preguntaba si era posible realizar algo así pero en 3 dimensiones y con un cubo, aquí anexaré el código de la rotación y traslación del triángulo, agradecería mucho la ayuda.
Traslación:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
delete(instrfind({'Port'},{'COM3'}));
s = serial('COM3','BaudRate',9600);
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
fopen(s);
num=input('cuantas traslaciones desea realizar');
x=[0 2 -1 0];
y=[5 4 1 5];
plot(x,y,'r');
hold on
t=0;
f=0;
while t<=num
    c = fscanf(s,'%d');
    g = (c*20)/1024;
    a=[0 5 1];
    b=[2 4 1];
    d=[-1 1 1];
    t=[1 0 0;0 1 0;g g 1];
    a1=a*t;
    b1=b*t;
    d1=d*t;
    h=[a1;b1;d1;a1];
    plot(h(:,1),h(:,2),'g')
    grid
    t=t+1;
    drawnow
end
fclose(s);
 
Rotación:
delete(instrfind({'Port'},{'COM3'}));
s = serial('COM3','BaudRate',9600);
warning('off','MATLAB:serial:fscanf:unsuccessfulRead');
fopen(s);
num=input('cuantas rotaciones desea realizar');
x=[0 2 -1 0];
y=[5 4 1 5];
plot(x,y,'r');
hold on
for c=1:num
    v=fscanf(s,'%d');
    an=(v*(2*pi))/1024;
    e=[cos(an) sin(an) 0;-sin(an) cos(an) 0;0 0 1];
    j=[x;y;1 1 1 1];
    R= j'*e;
    plot(R(:,1),R(:,2),'g')
    c=c+1;
    drawnow
end
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder