quarta-feira, 20 de maio de 2020

VNC no RASPBIAN com MobaXterm (modo terminal)

No terminal primeiro ative o VNC digitando "sudo rasp-config" sem aspas.






Na janela do configurador vá em "Interfacing Options.

Vá na opção VNC para habilitar a vnc.




Click em finish e digite o seguinte comando: "Sudo su" sem aspas e depois"sudo echo 'Authentication=VncAuth' >> /root/.vnc/config.d/vncserver-x11" sem aspas, isso modifica o arquivo de configuração.
Adicione um password para o arquivo de configuração com  seguinte comando:
"sudo vncpasswd -service" e  digitea senhanha nova, lembre-se que vc precisará dela, digite "reboot now", o raspbery vai ser reiniciado.
digite "ifconfig" sem aspas e anote o ip que aparece (O raspberry tem que estar conectado a internet).
Abra uma nova sessão VNC no MobaXterm e pront só digitar a senha e usar.


Agora é só usar o Rapbian versão desktop.

terça-feira, 21 de abril de 2020

Configurando Raspberry Pi 3 com windows

Configurando SSH no no Raspberry Pi 

Após gravar a imagem no cartão sd, inserir no pc e abrir o arquivo config.txt;
adicionar no final do arquivo:
enable_uart=1
Salvar e colocar no Raspbery.

Overclock no Raspbery Pi 3 B+

Adicionar as seguintes configurações no config.txt:

force_turbo=1
arm_freq=1400
core_freq=400
h264_freq=400
isp_freq=400
v3d_freq=400
arm_freq_min=600
Pronto tá no máximo, agora coloque um cooler e boa sorte;

quarta-feira, 23 de novembro de 2016

Anonymous inline Function

Neste post vou mostrar como declarar Funções não definidas no matlab.
Até a versão 2015 você ainda pode declarar uma função do tipo y+x=0 no matlab com a função inline(exp,arg1,arg2,…), mas ele começou a avisar que em futuras versões scripts feitos com esta função não vão rodar.
Aí entra a Anonymous inline Function ou Função @() e vamos ver como ela funciona.
A função @() não fica gravada no programa, ela passa apenas no script e enquanto ele durar, ou seja, ela não é global mas pode passar os valores definidos por ela a uma variável global.
Ela é declarada assim:
nome_da_função = @(argumento) função;
Vamos supor a expressão y = x², essa função fica:
x_2 = @(x) x^2;
E agora como ficaria uma função do tipo f(x,y) = y²-seno(x):
func = @(x, y) y^2-sin(x);
e por hoje é isso!

terça-feira, 22 de novembro de 2016

Contagem de tempo tic toc, função max e passar valores sem gasta memória no matlab

Olá agora vou começar a passar algumas firulas interessantes de se usar para otimização e comparação de códigos no matlab.
Tive que fazer um seminário na pós e tinha que provar que um algoritmo rodando o método de passo simples de Runge Kutta que resolve equações diferenciais ordinárias era mais demorado que um outro que roda o método multipasso de Adams Bashforth.
Aí lembrei da contagem de tempo do matlab o tic toc.
Funciona assim, você escolhe um lugar do código onde você começa a contar o tempo, pula uma linha e escreve tic, depois aonde você quer terminar você coloca o toc, e pronto o matlab vai te dizer quantos milissegundos demorou para passar naquele pedaço aí vai o código do Runge Kutta como exemplo:
%%%
function [t,w] = rk4(a,b,alfa,n)

h= (b-a)/n;
h24=h/24;

w=zeros(1,n+1);
w(1)= alfa;
%f=@(t,y)  y-t*t+1; %EDO mudar aqui
f=@(t,y)  -1.2*y+7*exp(-0.3*t);
m=min(3,n);
t = a:h:b;
tic
for i =1:n %Runge Kutta ordem 4
    k(i) = f(t(i), w(i));
    k2 = f(t(i) + h / 2, w(i) + k(i) * h /2);
    k3 = f(t(i) + h / 2, w(i) + k2 * h /2);
    k4 = f(t(i+1), w(i) + k3 * h);
    w(i+1) = w(i) + (k(i) + k2+k2 + k3+k3 + k4) * h / 6;

end
toc
plot(t,w(1,:));
%%
E sae quando você tem um monte de informações em uma tabela ou matriz (que matematicamente é a mesma coisa) e você quer saber o valor do maior elemento ou aonde este elemento aparece (conhecido com index), você usa a função max.
exemplo:
Tenho a matriz A com os números 1 5 6 8 4 nesta ordem, e quero saber qual o maior número e gravar este número na variável 'x', então eu escrevo:

A = [1 5 6 8 4 ];
x = max(A);

A variável 'x' neste caso vai conter o valor 8, agora eu também quero saber aonde este valor se encontra na sequência destes 5 números e guardar este índice na variável 'b', o programa ficaria assim:
A = [1 5 6 8 4 ];
[x, b] = max(A);
A variável 'x' continua contendo o valor 8 enquanto que a variável 'b' armazenou o ídice em que este 8 aparece que é 4  ou seja o quarto número.
Agora  eu estou fazendo uma aplicação crítica e não quero acumular variáveis 'lixo' com valores que eu nunca vou usar e vou ter que limpar depois, por exemplo preciso saber aonde o número 8 aparece mas nunca vou usar o valor diretamente, então eu uso um truque. Toda função no matlab que retorna mais de um valor e eu não quero gastar memória com estes valores eu passo para uma variável temporária clear que é o símbolo ; (ponto e vírgula), exemplo não vou usar o x e ó o b então o programa fica:
A = [1 5 6 8 4 ];
[;, b] = max(A);
A variável 'b' cntém o índice e o sistema ignora o número.
Outra coisa interessante, no matlab eu posso declarar uma variável e deixar ela vazia sem ocupar espaço em memória, neste caso eu uso [] como neste exemplo:
A = [];
Neste caso a variável 'A' existe no matlab mas está vazia e não contém valor algum, ou seja é um jeito de iniciar variáveis sem gastar memória e apagar da memória valores dentro desta variável.
exemplo:
% Este é o símbolo de comentários no matlab
%Vou passar um conjunto e valores para a variável A
A = [ 2 4 5 6 7 8];
%Agora quero que o valor 6 suma, lembre que ele está no índice 4
A(4) = [];
%Agora que ele sumiu a variável 'A' contem os valores  [ 2 4 5 7 8]
%Agora vou apagar TODOS os valores da variável 'A'
A = [];

A variável 'A' agora é vazia, ela existe mas não ocupa espaço em memória.
Por hoje é isso, até a próxima!