terça-feira, 14 de janeiro de 2014

Usando o Whatsapp com Pidgin no Linux ou Windows

Já é possível utilizar o Whatsapp no notebook ou desktop, estando ele com Linux ou Windows. Este artigo foi feito utilizando o Fedora 19, mas pode ser adaptada para qualquer outra distro e para o Windows basta usar a versão correta do whatsapp purple e yowsup para a plataforma. Vale lembrar que não é possível utilizar o mesmo número que já é utilizado em algum aparelho.

1 - Instalando as Dependências:

1. sudo yum -y install pidgin nano wget git git-core glib glib-devel glib2 glib2-devel python-argh python-dateutil
2. git clone https://github.com/tgalal/yowsup.git
3. cd yowsup
4. chmod +x src/yowsup-cli

2 - Instalando o Whatsapp para o Pidgin:

32 Bits:

sudo wget http://davidgf.net/nightly/whatsapp-purple/386/last-whatsapp.so -O /usr/lib/pidgin/libwhatsapp.so

64 Bits:

sudo wget http://davidgf.net/nightly/whatsapp-purple/x64/last-whatsapp.so -O /usr/lib64/pidgin/libwhatsapp.so

3 - Configurando o Whatsapp:

1. cd ruta/a/yowsup (si te saliste de la carpeta)
2. mv src/config.example src/whatsapp_config.txt

4 -  Criando um arquivo de configuração:

1. nano whatsapp_config.txt
No arquivo que abrir coloque as variáveis conforme abaixo, onde cc é o código do país para ligações internacionais, phone é o seu número composto do DDI+DDD+Número do Celular, na dúvida consulte aqui e a id pode ser qualquer texto minúsculo e sem espaço que quiser, é apenas uma identificação:

cc=55
phone=556198xxxxxx
id=engenheiro1

Digite Ctrl+o e depois enter para salvar e Ctrl+x para sair e voltar ao terminal.

4 -  Validando a conta:

Para fazer a requisição do código de validação para o celular digite:
1. src/yowsup-cli -c whatsapp_config.txt --requestcode sms
Após receber o código de validação, digite o código abaixo no terminal substituindo xxx-xxx pelo que você recebeu:
2. src/yowsup-cli -c whatsapp_config.txt --register xxx-xxx

Se você receber na tela a mensagem status: ok, tudo ocorreu perfeitamente. Abra o Pidgin, vá em adicionar uma nova conta, selecione o protocolo "Whatsapp" e agora já pode usar o valor que recebeu de "pw" como senha e o seu telefone que aparece em "login" para logar no Whatsapp pelo Pidgin conforme a figura abaixo.


Agora já pode logar no WhatsApp pelo computador sem dificuldade.


Bibliografia: 

sexta-feira, 23 de agosto de 2013

DICA - Instalando o Windows 7 ou 8 Utilizando um Pen Drive

Algumas dicas que podem ser úteis no nosso dia a dia, neste tutorial você verá como colocar o windows 7 em um pen drive para poder formatar ou reinstalar o seu computador utilizando a porta usb. Requisitos mínimos para esse método:
  • Pen Drive de no mínimo 4 GB (Caso a ISO ou o DVD que você esteja utilizando seja maior que 4GB, evidentemente você deverá possuir um pen drive maior).
  • DVD de instalação do Windows 7 ou 8.
  • Ter o Windows 7 ou 8 instalado no computador.
Preparando o Pen Drive:
1 – Conecte o Pen Drive à uma porta USB em seu computador e coloque o DVD de instalação do Windows 7 ou 8 no drive.
2 – Abra o Prompt de Comando como Administrador. (Pressione Tecla do Windows + R e digite cmd no botão Executar)

Ou na Área de Trabalho (Desktop), abrirá a tela conforme a imagem abaixo. Arrastando o mouse até o canto inferior esquerdo da tela e clicando com o botão direito do mouse (no Windows 7 sobre o botão iniciar), aparecerá um conjunto de opções para uso administrativo do sistema e entre eles está o Prompt de Comando em modo usuário e modo administrativo.

3 - No Prompt de Comando, digite os comandos abaixo, sempre pressionando ENTER entre os comandos, para que a ação seja executada.

diskpart – Ao digitar este comando, você entrará no DiskPart, que é utilitário do Windows para manipulação de partições, conforme mostra a imagem abaixo. No windows 8 o UAC (User Account Control) pedirá permissão para executar 0 comando. Clicando em Sim, abrirá outra tela com o Prompt do DISKPART.


list disk – Esse comando irá listar os discos conectados ao seu computador.
No meu caso, utilizarei um Pen Drive de 8GB, que está listado como Disco 2.


select disk 2 – O comando select disk 2 selecionará o Pen Drive para que o mesmo possa ser manipulado. Substitua o 2 pelo número correspondente ao seu Pen Drive.
Será mostrada a mensagem: O disco 2 é o selecionado.
clean – Utilize o comando clean para limpar o seu Pen Drive.
Será mostrada a mensagem: DiskPart está limpando o disco.
create partition primary – Utilize este comando para criar uma partição primária no seu pen drive.
Será mostrada a mensagem: DiskPart criou com êxito a partição especificada.
active – Este comando tornará a partição ativa.
Será mostrada a mensagem: O DiskPart marcou a partição atual como ativa.
format fs=NTFS quick – Este comando irá formatar o Pen Drive com o Sistema de Arquivos (File System) NTFS. O parâmetro quick indica que será feito uma formatação rápida. Pode usar ainda FORMAT FS=FAT32 QUICK, que formatará o Pen Drive para o formato Fat32, a opção Quick (não é o fundamental), fará o processo de formatação de forma rápida
assign – Este comando atribuirá a letra de unidade ao dispositivo.
exit – O comando exit sairá do DiskPart e retornará ao Prompt.
4 - Tornando o Pen Drive Bootável:

Ainda no Prompt de Comando, devemos tornar o Pen Drive bootável, para isso navegue até a pasta boot do DVD do Windows 7 ou 8, que no nosso exemplo está em H, conforme o exemplo abaixo:
H: – Acessa a Unidade H:


cd boot – Irá acessar a pasta boot do DVD. O comando cd serve para acessar um diretório.
bootsect /nt60 I: – Este comando irá definir o Pen Drive como um disco bootável, ondeI: é a unidade correspondente a onde o Pen Drive foi detecdato.
Obs: Em alguns casos, este passo não é necessário, pois ao definir a partição do Pen Drive como primária, ele torna-se bootável. Mas caso seu Pen Drive não tenha se tornado bootável, utilize os comandos acima.

5 - Finalizando:

Após seguir os procedimentos acima, copie todo o conteúdo do DVD do Windows 7 ou 8 para o Pen Drive. Para finalizar, altere as configurações no Setup de forma que a máquina leia o Pen Drive durante o boot.

Bibliografia: 
http://www.profissionaisti.com.br/2013/05/tutorial-boot-do-windows-8-pelo-pen-drive/ - 23/08/2013 - Autor: Luciano Gusso
http://www.profissionaisti.com.br/2011/11/instalar-windows-7-pelo-pen-drive/ - 23/08/2013 - Autor: Ítalo Diego Teotônio

OBS.: Este poste é apenas para compartilhar conhecimentos que também utilizo no meu dia a dia, não sou seu autor, apenas fiz algumas modificações que achei necessárias, espero que seja de utilidade para outras pessoas.

sábado, 17 de agosto de 2013

DICA - Logar Automaticamente no Windows 7 ou 8

Algumas dicas para melhorar o seu dia a dia, se quiser logar automaticamente no windows 7 ou 8 toda vez que iniciar o computador, siga estes passos:

1) Abra o "Run" [ou pressione a tecla windows+R];

2) Digite "netplwiz" [sem aspas] tecle OK;

 3) Na aba "USERS", desmarque a opção; "[] Users must enter a user name and password to use this computer"; e click OK;


4) Confirme seu "password" [se tiver].

 OBS: Se quiser voltar a digitar a senha para entrar no windows, remarque a opção.

Bibliografia: 
http://www.babooforum.com.br/forum/index.php?/topic/687025-como-fazer-o-windows-7-logar-automaticamente/ - 17/08/2013 - Autor:"Joshua"

OBS.: Este poste é apenas para compartilhar conhecimentos que também utilizo no meu dia a dia, não sou seu autor, apenas fiz algumas modificações que achei necessárias, espero que seja de utilidade para outras pessoas.

sábado, 20 de abril de 2013

Livro – Sistema Fotovoltaico


Um ótimo livro, bem completo sobre energia solar fotovoltaica.

segunda-feira, 18 de fevereiro de 2013

Cross-Compilar o QT5 para a Raspberry PI




Alguns meses depois… hora de voltar a ativa, muita coisa para se publicar, mas como sempre pouco tempo… durante este tempo fizemos a aquisição da Raspberry PI 512mb, para mais informações visite o site raspberrypi.

Eu não fiz este tutorial, apenas estou demonstrando aqui a minha experiência em cross-compilar o QT5 para a Raspberry PI, o tutorial que usei como base está no site qtonpi que contem muito mais informações.

A primeira ação é criar a pasta onde serão salvos todos os arquivos necessários para cross-compilar o QT5, então com os comandos abaixo no terminal do linux você cria e entra no diretório “opt” dentro da sua pasta “home”:
1. labsyn@labsynVM:~$ mkdir ~/opt
2. labsyn@labsynVM:~$ cd ~/opt

Agora é necessário fazer o download dos arquivos de imagem da Raspbian Wheezy em raspberrypi.org. Suponho que ja tenha gravado o sd card e testado sua Rasp, basta copiar a o arquivo que já baixou anteriormente para a pasta, mas se perdeu esses arquivos, baixe novamente, só não esquece de modificar o comando para a versão da Wheezy que está gravada no seu sd card:
1. labsyn@labsynVM:~/opt$ wget http://files.velocix.com/c1410/images/raspbian/2012-07-15-wheezy-raspbian/2012-12-16-wheezy-raspbian.zip
2. labsyn@labsynVM:~/opt$ unzip 2012-12-16-wheezy-raspbian.zip

Agora é necessário montar a imagem:
1. labsyn@labsynVM:~/opt$ sudo mkdir /mnt/rasp-pi-rootfs
2. labsyn@labsynVM:~/opt$ sudo mount -o loop,offset=62914560 2012-12-16-wheezy-raspbian.img /mnt/rasp-pi-rootfs
1. labsyn@labsynVM:~/opt$ wget http://swap.tsmt.eu/gcc-4.7-linaro-rpi-gnueabihf.tbz with sha1 f6255c6aca925239dc943d22a794f642daa17e65
2. labsyn@labsynVM:~/opt$ tar -xf gcc-4.7-linaro-rpi-gnueabihf.tbz

A Raspberry já possui um cross-compiler ideal, o que poupa muito tempo e muita dor de cabeça…. para mais informações acesse github.com/raspberrypi/tools. Mas se quiser ser mais específico, acesse sergioprado.org/

Obs: Se estiver trabalhando em uma máquina 64-bit, vai precisar instalar as bibliotecas de  32-bit “ia32-libs”, não foi o meu caso:
labsyn@labsynVM:~/opt$ sudo apt-get install ia32-libs

Obtendo o código do repositório do cross-compiler:
1. labsyn@labsynVM:~/opt$ git clone git://gitorious.org/cross-compile-tools/cross-compile-tools.git

Iniciando o repositório Qt5:
1. labsyn@labsynVM:~/opt$ git clone git://gitorious.org/qt/qt5.git
2. labsyn@labsynVM:~/opt$ cd qt5
3. labsyn@labsynVM:~/opt/qt5$ ./init-repository

Antes de aplicar os repositorios, se estiver atrás de um firewall, execute o comando para evitar problemas com “./init-repository”:
4. labsyn@labsynVM:~/opt/qt5$ sed -i 's/git:\/\//https:\/\/git./' .gitmodules

Em seguida:
5. labsyn@labsynVM:~/opt/qt5$ ./init-repository -f
6. labsyn@labsynVM:~/opt/qt5/$ cd ~/opt/qt5/qtjsbackend
7. labsyn@labsynVM:~/opt/qt5/$ git fetch https://codereview.qt-project.org/p/qt/qtjsbackend refs/changes/56/27256/4 && git cherry-pick FETCH_HEAD

Neste ponto, temos finalmente um ambiente necessário para compilar o QT5 para a Raspberry. Agora basta corrigir links e caminhos:
1. labsyn@labsynVM:~$ cd ~/opt/cross-compile-tools
2. labsyn@labsynVM:~$ sudo ./fixQualifiedLibraryPaths /mnt/rasp-pi-rootfs/ ~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf-gcc

Retornando para a pasta e finalmente iniciar:
1. labsyn@labsynVM:~$ cd ~/opt/qt5/qtbase
2. labsyn@labsynVM:~/opt/qt5/qtbase$ ./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-relocations -reduce-exports -release -make libs -prefix /usr/local/qt5pi
3. labsyn@labsynVM:~/opt/qt5/qtbase$ make -j 4

Ela deve funcionar, mas depois de um bom tempo, eu tive a ingrata surpresa:
cc1: fatal error: .pch/release-shared/Qt5Gui: No such file or directory
compilation terminated.
make[2]: *** [.obj/release-shared/pixman-arm-neon-asm.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/home/labsyn/opt/qt5/qtbase/src/gui'
make[1]: *** [sub-gui-make_first] Error 2
make[1]: Leaving directory `/home/labsyn/opt/qt5/qtbase/src'
make: *** [sub-src-make_first] Error 2

Estranho, mas a única solução que achei foi retirar esse erro inserindo “-no-pch” no ./configure. Então tive que executar os seguintes commandos, mas se não teve problema, pode pular direto para “make install”:
1. labsyn@labsynVM:~/opt/qt5/qtbase$ ./configure -opengl es2 -device linux-rasp-pi-g++ -device-option CROSS_COMPILE=~/opt/gcc-4.7-linaro-rpi-gnueabihf/bin/arm-linux-gnueabihf- -sysroot /mnt/rasp-pi-rootfs -opensource -confirm-license -optimized-qmake -reduce-relocations -reduce-exports -release -make libs -prefix /usr/local/qt5pi –no-pch
2. labsyn@labsynVM:~/opt/qt5/qtbase$ make -j 4


E agora:

3. labsyn@labsynVM:~/opt/qt5/qtbase$ sudo make install

Continua…

segunda-feira, 17 de setembro de 2012

Teste Rápido da Placa de Entradas




 - Comunicação USB - Perfeita, inclusive na máquina virtual funcionou perfeitamente;
 - Testes de Software - Perfeito, com acionamento dos pontos por negativo e identificação dos pontos com delay previsto;
 - Testes de Hardware - Alguns acertos são necessários, mas funcionou melhor que o esperado.

quarta-feira, 25 de julho de 2012

Flowcode - Sequêncial de Led´s Controlado por Chaves

Mais um programinha, ou melhor fluxograma, outro sequêncial, mas agora por chaves, são 8 chaves e 8 Led´s, cada chave aciona um Led, utilizei o microcontolador PIC 16f877A e determinei que toda a Porta C fossem as chaves e toda a Porta B fossem os Leds.

Na imagem é possível ver a programação, o fluxograma de funcionamento, é bem básico, sendo até mais simples que o anterior. 

A imagem abaixo mostra a simulação e o correto funcionamento do fluxograma.


Veja como o programa gerou o código em C:



//Declarações da variável
char FCV_VERIFICA;
char FCV_TESTE;



//Implementações Macro

void main()
{

//Iniciação
adcon1 = 0x07;


//Código de iniciação de interrupção
option_reg = 0xC0;


//Comentário:
//Programa Sequêncial de Led´s Acionados Por Chaves
//Ciclo eterno...


//Ciclo
//Ciclo: Enquanto1
while (1)
{
//Comentário:
//Como determinei que toda Porta C seriam minhas as Chaves,
//a variavel VERIFICA recebe o estado atual do Porta C...


//Entrada
//Entrada: PORTO C -> VERIFICA
trisc = trisc | 0xff;
FCV_VERIFICA = portc;


//Comentário:
//Verifico a Porta C continua no mesmo estado, testo se a variável
//VERIFICA(estado atual) está igual a variável TESTE(estado anterior).
//Se for igual o programa pula os próximos dois passos...


//Decisão
//Decisão: VERIFICA = TESTE?
if (FCV_VERIFICA == FCV_TESTE)
{
} else {
//Comentário:
//Como não são iguais, coloco na variável TESTE o valor da variável VERIFICA...


//Cálculo
//Cálculo:
//  TESTE = VERIFICA
FCV_TESTE = FCV_VERIFICA;


//Comentário:
//Como os Led´s estão relacionados a toda Porta B,
//basta apenas direcionar o valor da variável TESTE
//para a Porta B que os led´s serão acionados ou desligados
//conforme o estado da Porta C...


//Saída
//Saída: TESTE -> PORTO B
trisb = 0x00;
portb = FCV_TESTE;


}


//Comentário:
//Um atraso só para evitar problemas...


//Atraso
//Atraso: 300 ms
delay_ms(255);
delay_ms(45);


}


mainendloop: goto mainendloop;
}




Para baixe o fluxograma aqui.