20 jan

Arduino – UNO/NANO – CH340

Para programar o Arduino NANO ou UNO no Windows 8 ou 10 basta instalar o driver.

Configure na IDE do Arduino os seguintes parâmetros:

  • Placa: Arduino NANO ou Arduino UNO
  • Processador: ATmega328 ou ATmega168
  • Porta: (Verifique no gerenciador de dispositivos em qual porta se encontra)
  • Programador: AVRISP mkll

Referências:

  • https://pandoralab.com.br/arduino/driver-ch340-para-arduino/
19 fev

[Arduino] Http WebServer (ENC28J60)

Instale a biblioteca:

cd /usr/share/arduino/libraries/
git clone https://github.com/jcw/ethercard.git
chmod -R 755 ethercard/

Configure os pinos desta forma:
1 Ground——Ground
2 Power——-VCC
3 Reset——-Reset
4 CS———-DigiPin 8
5 SCK———DigiPin 13
6 SI———-DigiPin 11
7 SO———-DigiPin 12

Utilize o exemplo “RBBB server” da biblioteca “ethercard” ou o exemplo abaixo:

#include <EtherCard.h>
 
// ethernet interface mac address, must be unique on the LAN
//static byte mymac[] = { 0x74,0x69,0x69,0x2D,0x30,0x31 };
static byte mymac[] = { 0x00,0x00,0x00,0x00,0x00,0x01 };
static byte myip[] = { 192,168,1,155 };
 
byte Ethernet::buffer[500];
BufferFiller bfill;
 
void setup () {
  if (ether.begin(sizeof Ethernet::buffer, mymac) == 0)
    Serial.println( "Failed to access Ethernet controller");
  ether.staticSetup(myip);
 
}
 
static word homePage() {
  long t = millis() / 1000;
  word h = t / 3600;
  byte m = (t / 60) % 60;
  byte s = t % 60;
  bfill = ether.tcpOffset();
  bfill.emit_p(PSTR(
      "HTTP/1.0 200 OK\r\n"
      "Content-Type: text/html\r\n"
      "Pragma: no-cache\r\n"
      "\r\n"
      "<meta http-equiv='refresh' content='1'/>"
      "<title>RBBB server</title>" 
      "<br>"
       "<br>"  
      "<h1>$D$D:$D$D:$D$D</h1>"
      "<br>" 
      "<br>" ),
      h/10, h%10, m/10, m%10, s/10, s%10);
  return bfill.position();
}
 
void loop () {
  word len = ether.packetReceive();
  word pos = ether.packetLoop(len);
 
  if (pos)  // check if valid tcp data is received
    ether.httpServerReply(homePage()); // send web page data
}

Referências

  • https://github.com/jcw/ethercard/blob/master/examples/rbbb_server/rbbb_server.ino
  • http://forum.pjrc.com/archive/index.php/t-16385.html
11 fev

Mini2440 – (EE) FBDEV(0): FBIOPUT_VSCREENINFO: Invalid argument

Como o driver FB não aceita mudança de resolução adicione a linha:

return 0;

Entre a linha

case FBIOPUT_VSCREENINFO:

E a linha

if (copy_from_user(&amp;var, argp, sizeof(var)))

Ficando assim:

case FBIOPUT_VSCREENINFO:
return 0;
if (copy_from_user(&amp;var, argp, sizeof(var)))

Referências:

11 fev

Mini2440 – Compilando Kernel – 256MB – X35

Separei o procedimento em duas etapas de forma que a segundo possa ser executada várias vezes e a primeira apenas uma vez.

Etapa 1 – Baixando os arquivos

echo "Limpando as pastas temporárias"
rm -fr /usr/tmp/arm-2008q3/
rm -fr /usr/tmp/arm-2008q3*
rm -fr /usr/tmp/dl.php?file=linux-2.6.32.2-mini2440_20110413.tgz
rm -fr /usr/tmp/dl.php?file=linux-logomaker.tgz
rm -fr /usr/tmp/linux-2.6.32.2/
rm -fr /usr/tmp/linux-2.6.32.2-mini2440_20110413.tgz
 
echo "Criando diretorio para download"
mkdir /usr/tmp/
 
cd /usr/tmp/
 
echo "Baixando o kernel"
wget http://www.friendlyarm.net/dl.php?file=linux-2.6.32.2-mini2440_20110413.tgz --post-data="file=linux-2.6.32.2-mini2440_20110413.tgz&amp;submit=Download+now&amp;do=downloadfile" -O linux-2.6.32.2-mini2440_20110413.tgz
tar -vzxf linux-2.6.32.2-mini2440_20110413.tgz
 
echo "Baixando a ferramenta de Cross-Compiling - Para compilar para arquitetura ARM920t"
wget http://www.codesourcery.com/sgpp/lite/arm/portal/package3696/public/arm-none-linux-gnueabi/arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
tar -jxvf arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

Etapa 2 – Compilando

echo "instalando as dependencias"
yum install -y gcc ncurses-libs ncurses-devel uboot-tools
 
echo "Removendo diretorio para os fontes"
rm -fr /usr/src/mini2440/
 
echo "Criando diretorio para os fontes"
mkdir /usr/src/mini2440
 
echo "Copiando para o diretorio de fontes"
cp -fr /usr/tmp/linux-2.6.32.2  /usr/src/mini2440/
 
echo "Copiando para o diretorio de fontes"
cp -fr /usr/tmp/arm-2008q3 /usr/src/mini2440/
 
mkdir /usr/src/mini2440/modules
mkdir /usr/src/mini2440/kernel
 
echo "Configurando as variáveis de ambiente"
INSTALL_MOD_PATH=/usr/src/mini2440/modules
O=/usr/src/mini2440/kernel
PATH=$PATH:/usr/src/mini2440/arm-2008q3/bin
CC='arm-none-linux-gnueabi-gcc -march=armv4t -mtune=arm920t'
CROSS_COMPILE=arm-none-linux-gnueabi-
export CC CROSS_COMPILE
 
echo "Entrando no diretório fonte"
cd /usr/src/mini2440/linux-2.6.32.2
 
echo "Copiando o arquivo de configuração..."
echo "Ou utilize o meu arquivo de configuração: http://www.thiagosiqueira.com.br/Downloads/.config.zip"
cp config_mini2440_x35 .config
 
echo "Ou monte o seu .config na hora com o comando comentado abaixo"
#make ARCH=arm menuconfig
 
echo "Compilando Kernel"
 
make ARCH=arm -j4
 
echo "Convert the zImage to uImage (Descompactando o Kernel)"
mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d /usr/src/mini2440/linux-2.6.32.2/arch/arm/boot/zImage /usr/src/mini2440/linux-2.6.32.2/arch/arm/boot/uImage
chmod 755 /usr/src/mini2440/linux-2.6.32.2/arch/arm/boot/uImage
 
echo "Compilando os módulos para o kernel"
 
make ARCH=arm -j4 modules
make ARCH=arm -j4 INSTALL_MOD_PATH=/usr/src/mini2440/modules modules_install

Pronto…

Agora basta gravar o uImage (/usr/src/mini2440/linux-2.6.32.2/arch/arm/boot/uImage) na NAND e o seu respectivo RootFS para o sistema desejado.
Copie a pasta /usr/src/mini2440/modules/lib para a raiz do sistema após o boot do kit mini2440.

11 fev

Mini2440 – Emdebian – 256MB – X35

Antes de começar, baixe os seguintes arquivos:

Conecte a porta serial e a usb do kit mini2440 ao seu computador.
Conecte-se ao kit via porta serial utilizando alguma aplicação terminal serial como:

picocom -b 115200 /dev/ttyUSB0 --send-cmd "sx -vv"

Obs.: No meu caso eu utilizo um conversor USB/RS-232 porisso meu dispositivo é “ttyUSB0”.
Efetue o boot do Mini2440 em modo NOR e observe o menu de opções que aparecerá no terminal.
Escolha a opção Vivi (“q” no meu caso).
Dentro do Vivi escreva o seguinte comando:

load flash 0 242360 u

Em um outro terminal vá para o diretório onde está o programa s3c2410_boot_usb e o arquivo u-boot-256M.bin e excute o comando:

./s3c2410_boot_usb u-boot-256M.bin

Desligue o kit mini2440 e troque o modo de boot para NAND.
Tendo o cartão SD conectado com os seguintes arquivos uImage e emdebian-jffs2.img na raiz mais a pasta lib/, faça o seguinte procedimento:

dynenv set env
dynenv set 40000
 
mmc
nand scrub
nand createbbt
 
fatload mmc 0:1 0x31000000 uImage
nand erase kernel
nand write.e 0x31000000 kernel
 
fatload mmc 0:1 0x31000000 emdebian-jffs2.img
nand erase root
nand write.jffs2 0x31000000 root ${filesize}
 
setenv bootcmd 'nboot.e kernel ; bootm'
setenv bootargs 'root=/dev/mtdblock3 rootfstype=jffs2 console=ttySAC0,115200 mini2440=0tb'
saveenv
boot

Referências:

10 fev

Mini2440 – Emdebian – mmap (22 Invalid argument)

Solução para o erro:
E: Couldn’t make mmap of 25165824 bytes – mmap (22 Invalid argument)

Baixe o pacote de arquivos:

http://www.thiagosiqueira.com.br/Downloads/mini2440-emdebian-apt.zip

Descopacte para raiz do Cartão SD.

Monte o cartão de memória em um diretório específico:

mkdir /media/SDCARD
mount /dev/mmcblk0p1 /media/SDCARD/

Instale os pacotes na seguinte ordem:

dpkg -i gcc-4.4-base_4.4.5-8em1_armel.deb
dpkg -i libgcc1_4.4.5-8em1_armel.deb
dpkg -i libstdc++6_4.4.5-8em1_armel.deb
dpkg -i apt_0.8.10.3+squeeze1em1_armel.deb

Faça um teste para chegar se o “apt-get update” está funcionando…

dhclient
apt-get update

Caso queira colocar o DHCP como automático, execute as linhas abaixo:

echo "auto eth1" > /etc/network/interfaces
echo "allow-hotplug eth1" >> /etc/network/interfaces
echo "iface eth1 inet dhcp" >> /etc/network/interfaces
29 set

Milestone – Reinstalando iGO/Motonav

Para reinstalar o iGO/Motonav siga os seguintes passos:
1. Acesso via ROOT
   1.1 Baixe o Universal Androot  no link http://www.droidware.com.br/apks/UniversalAndroot_1.6.1.apk
   1.2 Instale
   1.3 Execute o Univeral Androot
   1.4 Clique no botão “Root :-)”
2. Gerenciador de arquivos (Root Explorer)
   2.1 Baixe-o no link http://www.4shared.com/file/252265180/1921d37d/RootExplorerv293.html
   2.2 Instale-0
   2.3 Execute-0
   2.4 Se uma janela aparecer solicitando a execução com permissão de root, conceda.
3. No Root Explorer
   3.1 Copie o arquivo /system/app/Motonav.apk para seu cartão de memória. Tenha certeza de que ele está copiado lá. Agora apague o arquivo /system/app/Motonav.apk. Se der um aviso dizendo que ele não pode ser removido porque é aplicativo de sistema, clique num botãozinho cinza lá em cima “Mount alguma coisa”. Tente denovo.;
   3.2 Apague a pasta /data/data/com.navngo.igo.javaclient;
   3.3 Reinicie o Milestone;
   3.4 Vá na pasta aonde você fez o backup do “Motonav.apk”. Instale-o, mas não o abra.
   3.5 Agora vá no Gerenciador de aplicativos e desinstale-o.
4. Instalando a nova versão do Motonav
   4.1 baixe o programa no link http://www.4shared.com/file/hTvy43h6/Motonav__Milestone_-_Brasil_.html
   4.2 Após descompactar o arquivo, copie a pasta “Motonav” para a raiz do SD;
   4.3 Reinicie o Milestone;
   4.4 Instale o .apk.

dicas:
1. Se o programa ainda não estiver em português, feche-o, abra seu gerenciador de arquivo e acesse seu cartão de memória. Na pasta “Motonav/content/lang” apague todos os arquivos, deixando apenas o “Lang_Portuguese_BRA.gro”. Pronto, agora pode entrar no Motonav denovo;
2. Para corrigir a voz em inglês clique em “Mais”, depois “Idiomas”. O primeiro ítem é ”voz”. Entra ali e escolha Ana Maria;
3. Ainda dentro de “Mais”, entre em “Som e avisos”. DESMARQUE “Sons de tecla” e “Aviso de excesso de velocidade”;
4. Quando estiver andando na rua e o GPS fixar o sinal, volte no menu ”Mais” -> ”Som e avisos” e marque uma 3ª opção que vai aparecer (logo abaixo de aviso de velocidade), algo como “aviso de radar de velocidade”. Agora ele vai começar a te avisar dos radares. Só que é o seguinte, ele só apita se vc estiver acima da velocidade do pardal. Se o pardal for de 80km/h, ele começa a apitar a 1km antes dele apenas se você estiver acima da velocidade (80km). Se abaixar a velocidade, ele pára de apitar.

Referências: