2010-12-27
GLCD Pinguino library new version 1.6
I made a new version of GLCD Pinguino library, this already tested with Pinguino beta 9.05, this have many improves on coding way.
Now we can:
- Use GLCD.PrintFloat(float number, presision) function for print decimal numbers, with #define USEFLOATS()
- Choose what port library uses for display control PORTA or PORTC, with #define USEPORTA()
Download GLCD 1.6 Here!
2010-12-20
Solar Powered Pinguino
Solar Powered Pinguino, using Clock sketch with GLCD library, and a Lipo Rider adapter!
2010-12-16
Pinguino i2c OLED Display
Thanks for help of JPMandon, we have OLED Display working
with libi2c on pinguino Board!
Pinguino full sourcecode here:
OLED.zip
//Program for I2C communication with a 128x64 OLED Display (http://www.seeedstudio.com) //Marcus Fazzi 2010 #define LED 13 #define I2C_address 0x3c //i2c address of Display #include <libI2C.c> //For working with strings strlen() function // #include <string.h> #include "data.c" unsigned char fill_OLED = 0x55; unsigned char fill_string1[13]="Pinguino OLED"; unsigned char fill_string2[11]="OLED 128x64"; unsigned char fill_string3[16]="0123456789ABCDEF"; unsigned char fill_string4[2]="SS"; //======================= void sendcommand(unsigned char com) { short dt[2] = { 0x80, com }; //command mode I2C_write(I2C_address, dt, 2); I2C_STOP(); //stop transmitting } //=================================== void SendChar(unsigned char dat) { short dt[2] = { 0x40, dat }; //data mode I2C_write(I2C_address, dt, 2); I2C_STOP(); //stop transmitting } //=================================== void setXY(unsigned char row,unsigned char col) { sendcommand(0xb0 + row); //set page address sendcommand(0x00 + (8 * col & 0x0f)); //set low col address sendcommand(0x10 + ((8 * col >> 4) & 0x0f)); //set high col address } //================================== void clear_display() { unsigned char i,k; for(k=0;k<8;k++) { setXY(k,0); { for(i=0;i<128;i++) //clear all COL { SendChar(0); } } } } //================================== void printChar(unsigned char ascii) { unsigned char i; for(i=0;i<8;i++) { SendChar(myFont[ascii-0x20][i]); } } //================================== void sendStr(unsigned char *string, unsigned char len) { unsigned char i, j; //setXY(0,0); for(i=0;i<len;i++) { for(j=0;j<8;j++) { SendChar(myFont[*string-0x20][j]); //SendChar(*string); delay(10); } *string++; } } //================================= void init_OLED(void) { sendcommand(0xae); //display off delay(50); // sendcommand(0xa0); //seg re-map 0->127(default) // sendcommand(0xa1); //seg re-map 127->0 // sendcommand(0xc8); // delay(1000); sendcommand(0xaf); //display on delay(50); } void setup() { delay(500); init_I2C(); //SSPADD=19; //Slow mode init_OLED(); delay(10); clear_display(); delay(50); pinMode(LED, OUTPUT); } //======================== void loop() { short i; clear_display(); delay(50); sendcommand(0x20); //Set Memory Addressing Mode sendcommand(0x02); //Set Memory Addressing Mode ab Page addressing mode(RESET) sendcommand(0xa6); //Set Normal Display (default) setXY(3,2); sendStr(fill_string1, 13); setXY(4,3); sendStr(fill_string2, 11); delay(2000); sendcommand(0xa7); //Set Inverse Display delay(2000); clear_display(); delay(50); setXY(0,0); sendcommand(0xa6); //Set Normal Display sendcommand(0xae); //display off sendcommand(0x20); //Set Memory Addressing Mode sendcommand(0x00); //Set Memory Addressing Mode ab Horizontal addressing mode for(i=0;i<128*8;i++) //write a 128x64 picture { SendChar(logo[i]); } sendcommand(0xaf); //display on delay(2000); sendcommand(0xa7); //Set Inverse Display delay(2000); /* while(1) { //sendcommand(0xa6); Set Normal Display sendcommand(0x29); //Vertical and Horizontal Scroll Setup sendcommand(0x00); //dummy byte sendcommand(0x00); //define page0 as startpage address sendcommand(0x00); //set time interval between each scroll ste as 6 frames sendcommand(0x07); //define page7 as endpage address sendcommand(0x01); //set vertical scrolling offset as 1 row sendcommand(0x2f); //active scrolling delay(3000); }; */ }
2010-11-12
Corrigindo Boot do N900!
Nos últimos dias saíram duas atualizações para o power kernel, as versões 44 e 45, que tiveram atualizações bastante problemáticas.
Logo de cara a versão 44 não era compatível com o uBoot e te jogava num loop infinito ao reinicializar o aparelho, para corrigir o boot tem de reinstalar o kernel:
1- Sigas os procedimentos para instalar apenas o kernel, e não ter de reinstalar tudo no Celular:
http://tablets-dev.nokia.com/nokia_N900.php
E grave somente o kernel com o comando (é uma linha só):
Tudo isso esta na wiki:
http://wiki.maemo.org/Updating_the_tablet_firmware
2- Após isso se você é realmente insistente vai querer tentar instalar o power kernel novamente, o segredo é que você tem de reinstalar todos os pacotes e também atualizar já à versão 45 que é compatível com o uBoot da PR1.3.
Acesse o N900 por ssh:
Acesse como root:
Aqui deu um erro associado a falta de espaço na rootfs, no wiki tem como solucionar isso:
http://wiki.maemo.org/Free_up_rootfs_space
Logo de cara a versão 44 não era compatível com o uBoot e te jogava num loop infinito ao reinicializar o aparelho, para corrigir o boot tem de reinstalar o kernel:
1- Sigas os procedimentos para instalar apenas o kernel, e não ter de reinstalar tudo no Celular:
Baixe a firmware RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin no link:
http://tablets-dev.nokia.com/nokia_N900.php
E grave somente o kernel com o comando (é uma linha só):
sudo ./flasher-3.5 -F RX-51_2009SE_20.2010.36-2_PR_COMBINED_MR0_ARM.bin --flash-only=kernel -f -R
Tudo isso esta na wiki:
http://wiki.maemo.org/Updating_the_tablet_firmware
2- Após isso se você é realmente insistente vai querer tentar instalar o power kernel novamente, o segredo é que você tem de reinstalar todos os pacotes e também atualizar já à versão 45 que é compatível com o uBoot da PR1.3.
Acesse o N900 por ssh:
Acesse como root:
e Reinstale todos os pacotes associados (é só uma linha):sudo gainroot --use-su
apt-get install --reinstall kernel-power kernel-power-bootimg kernel-power-settings kernel-power-modules multiboot u-boot-for-power-kernel multiboot-kernel-powerApós finalizar o procedimento verifique se tudo está OK e se não ocorreu nenhum erro e reinicialize o N900.
Aqui deu um erro associado a falta de espaço na rootfs, no wiki tem como solucionar isso:
http://wiki.maemo.org/Free_up_rootfs_space
Backing to FPGA, Basys 2 Xilinx FPGA now supports Linux!
Yeah Digilent, has released a Linux version for Adept tool!
Now I can remove some dusty from my Spartan 3E-100 (a less then $50 board).
There is a plugin for Linux Xilinx Software, for write your programs to FPGA board using Linux!
Now I can remove some dusty from my Spartan 3E-100 (a less then $50 board).
There is a plugin for Linux Xilinx Software, for write your programs to FPGA board using Linux!
2010-11-11
Apresentação Arduino/Pinguino (Presentation)
Hoje farei duas palestras aos colegas também alunos do IESAM, aonde estou fazendo Engenharia da Computação, sobre as placas desenvolvimento arduino, no link abaixo a palestra em PDF.
Conheca_o_arduino.pdf
Conheca_o_arduino.pdf
2010-11-10
Pinguino 32X no forno!
Galera já estamos a desenvolver a versão Pinguino com o PIC32MX460F512L e PIC32MX795F512L.
O compilador C já está funcional, estamos aguardando a Microchip liberar as licenças para uso de algumas bibliotecas deles com o projeto Pinguino que é Software Livre.
Já temos uns testes de UART e Blink a LED.
A Placa a ser usada é a UBW32 http://www.schmalzhaus.com/UBW32/
O compilador C já está funcional, estamos aguardando a Microchip liberar as licenças para uso de algumas bibliotecas deles com o projeto Pinguino que é Software Livre.
Já temos uns testes de UART e Blink a LED.
A Placa a ser usada é a UBW32 http://www.schmalzhaus.com/UBW32/
Assinar:
Postagens (Atom)


