IMVIEW CLOSE ALL
close all
clear
clear all
clc


t=0


% inlezen van de tekening

RGB = imread('C:\mechatronica\ProjectMetIntensiteit\1_testfiguren\Presentatie\Wutang.jpg');

%imview(RGB);

Graypic = RGB2GRAY(RGB);

% Tekening bekijken
%imview(Graypic);

[AANTAL_PIX_X AANTAL_PIX_Y] = size(Graypic);

Matlab_Matrix = zeros(AANTAL_PIX_X,AANTAL_PIX_Y);

for i=1:AANTAL_PIX_X
    for j=1:AANTAL_PIX_Y

        if Graypic(i,j)>=64 & Graypic(i,j)<=128
            Matlab_Matrix(i,j)=1;
        end

        if Graypic(i,j)>=129 & Graypic(i,j)<=191
            Matlab_Matrix(i,j)=1;
        end

        if Graypic(i,j)>=192 & Graypic(i,j)<=255
            Matlab_Matrix(i,j)=1;
        end
    end
end


%imview( Matlab_Matrix)

% Om een middenpunt te kunnen definieren
if mod(AANTAL_PIX_Y,2)== 0
    AANTAL_PIX_Y = AANTAL_PIX_Y - 1;
end

if mod(AANTAL_PIX_X,2)== 0
    AANTAL_PIX_X = AANTAL_PIX_X - 1;
end



%               Cirkel matrix maken
% --------------------------------------------------------------

% inialisatie van "matrix": die onthoud welke elementen er van Matlab_matrix gebruikt werden
% inialisatie van "matrix_aantalkeergebruikt": die onthoud hoeveel keer een
% element van Matlab_matrix gebruikt werd

matrix(AANTAL_PIX_X,AANTAL_PIX_Y) = 0;
matrix_aantalkeergebruikt(AANTAL_PIX_X,AANTAL_PIX_Y)=0;


mx = (AANTAL_PIX_X + 1)/2;   %coord centerpix in x richting
my = (AANTAL_PIX_Y + 1)/2;   %coord centerpix in y richting


pix = 0.352;     %100pixels = 35.2 mm        dus 1mm=1/0.352pix

aantal_hoeken = 100;
alfa= (2*pi)/aantal_hoeken;

aantal_ledjes=24;
aantal_ledjes_gebruiken= floor( 0.5*mx*pix );

schuineZijde = 0.5*sqrt( (AANTAL_PIX_X)^2 + (AANTAL_PIX_Y)^2 );
constante = schuineZijde* 0.9/120
constante = 5

for i = 0: aantal_ledjes-1
    L(i+1)=42+i*constante;                     % voor de letter i moet je 3 nemen  !
end

cirkel_matrix= zeros(aantal_ledjes,aantal_hoeken);

for i= 1: aantal_ledjes
    for n= 0: aantal_hoeken-1


        Xcoord= mx +  round ((L(i)/pix*cos((n+1)*alfa)) );
        Ycoord= my +  round ((L(i)/pix*sin((n+1)*alfa)) );


        if Xcoord < AANTAL_PIX_X
            if Ycoord < AANTAL_PIX_Y

                if Xcoord > 0
                    if Ycoord > 0

                        cirkel_matrix(i,n+1) = Matlab_Matrix(Xcoord,Ycoord);

                        matrix(Xcoord,Ycoord)=1;

                        if  Matlab_Matrix(Xcoord,Ycoord) ==1

                            matrix(Xcoord,Ycoord)=0;

                        end



                        matrix_aantalkeergebruikt(Xcoord,Ycoord)=matrix_aantalkeergebruikt(Xcoord,Ycoord)+1;
                    end
                end
            end
        end
    end
end

cirkel_matrix
matrix;
matrix_aantalkeergebruikt;

imview(matrix);

%imview(matrix2);



m=0;
k=0;

stuur_naar_leds(3*aantal_hoeken)=0;


for n  = 1: aantal_hoeken
    m=m+1;
    k = 0;
    for i  = 1 : 24


        stuur_naar_leds(m) = stuur_naar_leds(m)+  (cirkel_matrix(i,n)*(2)^k);

        k=k+1;


        if i < 24

            if mod(i,8) == 0
                k=0;
                m=m+1;
            end
        end

    end

end

stuur_naar_leds

p =size(stuur_naar_leds)





% open com port for data transfer
%fid = fopen('com4:','w');


%fwrite(fid,240);





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   DATA DOORSTUREN    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%



% Set serial port mode
!mode com4:600,n,8,1


for i = 1:(3*aantal_hoeken)

    i



    fid = fopen('com4:','w');
    fwrite(fid,stuur_naar_leds(i));
    fclose(fid);

end

stuur_naar_leds

