Translate

terça-feira, 29 de setembro de 2015

Botão voltar / home em Android 4.03+

Perdi muito tempo tentando encontrar como fazer aparecer a seta para esquerda na janela filha de um aplicativo Android, pois a explicação foi feita às pressas na aula.

A solução está no arquivo AndroidManifest.xml.

Basta acrescentar, ao final da seção activity da janela filha as linhas entre //---  abaixo:

<activity    android:name=".acnMain2Activity"    android:label="@string/title_activity_acn_main2" >

    //--------------- vvvvvvvvvvvvvvvvvv
    android:parentActivityName=".MainActivity" >
    <meta-data        android:name="android.support.PARENT_ACTIVITY"        android:value="br.com.ee.app1.MainActivity" />
    //--------------- ^^^^^^^^^^^^^^^^^^
</activity>

sendo que ".MainActivity" e "br.com.ee.app1.MainActivity" referem-se à classe pai, para onde retornará.

quarta-feira, 18 de março de 2015

Acesso ethernet cabeado do Arduino com enc28j60


Montagem rápida para teste do breakout ENC28J60, ethernet de baixo custo para o arduíno.

Para ser rápido e não repetir outros sites, montei conforme o site http://hofmannsven.com/2013/laboratory/arduino-ethernet-module/ e com a exceção do modelo da placa que comprei ser 5v enquanto a grande maioria é 3.3v, deu certíssimo.





terça-feira, 3 de março de 2015

Programador CP2102 SEM Autoreset - upload com botão de reset



Mais um básico que fui procurar no meio do meu Blog e não achei (porque não fiz, lógico).

Achei alguns programadores CP2102 baratos (R$ 8,98 cada) e não resisti, comprei para estocar, pois paguei pelo menos o dobro há alguns anos atrás. Aproveitei a compra de algumas matrizes de Led, o que ia baratear o frete, pois estavam em MG.


O problema foi que ele não tem disponível o autoreset e quando programamos o atmega, temos que apertar o botão de reset (7-GND X 1-RST) para que o programa seja carregado.

A documentação sobre esse reset de upload é muito obscura na NET.
Algumas dicas, pois sofri fazendo uma besteira atrás da outra tentando upar e quase desisti:

  • tenha certeza sobre o modelo do microcontrolador (eu estava usando um atmega8 e não sabia);
  • esteja certo de ter bootloader neste;
  • acerte o lado, caso tenha um conector rápido;
  • confira bem a fiação;
Depois que acertei tudo, testei as 4 peças que comprei e deu tudo certo. Nunca tinha conseguido upar com o reset manual :). Na verdade, o reset manual é para modelos de arduino mais antigos, desprovidos do autoreset, mas acabam sendo uma mão na roda para ICSP (In Circuit Serial Programming) - programação serial do microcontrolador no próprio circuito.

Primeiro o esquema de ligação (4 FIOS):

CP2102 ---- ATMega328
  +5V  ----  7-VCC
  GND  ----  8-GND
  RXD  ----  3-TX
  TXD  ----  2-RX



Driver do CP2102:
https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx

Acertos no Arduino IDE (versões 1.6.0 e 0023): placa Arduino UNO; porta - a que foi dectada placa CP2102; carregado o exemplo Blink.


Quando notar que essas linhas laranjas aparecem, apertar e soltar o reset rapidamente.
Se estiver certo, o final do console será parecido com:



Logo que tiver paciência, tentarei colocar o autoreset no circuito (basta ligar na perna 28-DTR do CI CP2102 e colocar um capacitor de cerâmica de 0.1 μF entre ele e o pino 1-RST do ATmega.







sábado, 31 de janeiro de 2015

Por que utilizar Attiny?



O preço é quase o mesmo de um Atmega328 (falamos das versões DIP), que por sua vez tem muito mais entradas, saidas, memórias, etc.

Mas obviamente o tamanho é muito diferente: o Atmega328 tem 14 vias em cada lateral enquanto o attiny (25, 45, 85) tem 4. Isso resulta em muita economia de espaço para projetos mais simples.


Uma boa também por conseguirmos encontrar facilmente no Brasil, por um preço que vale a pena.

E se você tiver um USBASP poderá programá-lo no próprio circuito - ICSP - In-Circuit Serial Programming.

Um outro microcontrolador que vale a pena é o Atmega8 por ser mais barato que o atmega328, mas tem o mesmo número de vias, praticamente se igualando em entradas e saídas, mas tendo menos memória.

Attiny85: Default de fábrica e bricando para testes de reset via HVSP


Sem querer, eu já bricava um attiny. Propositalmente então, deve ser moleza. Mas primeiro, anotar quais são as configurações de fábricas e constatar no microcontrolador, é uma obrigação.

No site http://www.engbedded.com/fusecalc podemos calcular e ver os padrões de fábrica dos microcontroladores AVR. Os fuses do Attiny85 estão motrados assim para a configuração default


LowHighExtendedActionAVRDUDE arguments
0x0x0x* 
Apply manual changes to the values on the left side, or load factory default values for the selected device.
-U lfuse:w:0x62:m -U hfuse:w:0xdf:m -U efuse:w:0xff:m
Select (try triple-click) and copy-and-paste this option string into your avrdude command line. You may specify multiple -U arguments within one call of avrdude.
* Note that some numerical values refer to fuses containing undefined bits (set to '1' here). Depending on the target device these fuse bits will be read either as '0' or '1'. Verification errors will occur if the values are read back with undefined bits set to '0'. Everything is fine if the values read from the device are either the same as programmed, or the following values (undefined set to '0'):Extended: 0x01.


Meu Attiny85 recém resetado mostra as informações abaixo, no AVRDUDESS:

Isto é, as informações batem.

Para bricar o Attiny85: o meio mais fácil que achei foi configurar o Low para 0x00 no AVRDUDESS e dar um write. Observe a mensagem do console depois de dar um Detect:


Depois disso, pode tentar gravar os fuses de fábrica ou qualquer outro, que o AVRDUDESS não vai mais conseguir ler ou gravar qualquer informação.

Passando pelo circuito de reset via HVSP, o resultado é esse, no serial monitor da IDE:


Voltando ao AVRDUDESS, o Detect dá a tela:


Repeti duas vezes, o microcontrolador bricou as duas vezes e ressucitou duas vezes. 

Realmente, apesar de simplificado, o circuito resetador funciona mesmo e o mais importante: é muito fácil de montar.

quinta-feira, 29 de janeiro de 2015

Circuito para reset HVSP para attiny


Tinha até desanimado em programar os ATTINY devido ao fato de bricarem muito fácil.

Recentemente, por acaso, estava passeando no http://www.pinterest.com/ e apareceu um circuito muito simples para reset de attiny por HVSP (High Voltage Serial Programming) utilizando um arduino como auxiliar. Fiz e deu certo de pri-me-i-ra.

Desta vez planejei mais e como levei um ano para me abastecer com algumas peças e ferramentas, foi muito mais eficiente montar o circuito (tenho que fazer um curso de eletrônica para entender um pouco).

O circuito e o programa encontram-se no site https://sites.google.com/site/wayneholder/attiny-fuse-reset, mas como de costume, deixarei links no gdrive:

O Sr. Wayne otimizou o código original, do Sr. Paul Willoughby do site http://www.rickety.us/2010/03/arduino-avr-high-voltage-serial-programmer/, fazendo-o detectar automaticamente o tipo de Attiny.


Desenhei o circuito no Fritzing:
Lembrando que a bateria de 9 volts é ilustrativa, pois o circuito exige 12 v para fazer o processo. Fiz o circuito para sobrar bastante espaço na placa padrão para ver se futuramente comporta um atmega328, dispensando o arduino. Caso verifique o esquema no fritzing, olhe cuidadosamente os componentes, pois há fios sobrepostos, escondendo a conexão real. Saliento somente um pequeno corte feito na raia da perna 3 do attiny, aproveitando para ganhar espaço na placa. O arquivo do fritzing está aqui.

Um outro detalhe é que compraram para mim um 2N3906 em vez do 2N3904. Ainda bem que pesquisei e para minha surpresa um é PNP e o outro NPN. Graças ao meu amigo 4 zóio (Edilson Souza), fiquei sabendo que tinha um equivalente BC54x e por acaso eu tinha um BC547, que usei e deu certo (consulte a equivalência no site http://www.electronica-pt.com/db/componentes.php?ref=2N3904 - me ajudou muito).





O código fonte do programa está aqui.
Rodou sem nenhuma modificação e sem acréscimos no Arduino IDE 0023.

Detect / Config de ATTINY com USBASP


Vixi! Fui verificar o estado de um attiny85 e... nem lembrava como conectava com o USBASP. Sorte que hoje tem informação sobrando na net. Após essa grande parada (meses sem mexer com circuitos), milagrosamente as coisas estão dando certo....

Primeiro, a pinagem do cabo do USBASP (do site http://www.ozwald.fr/):


Em seguida, a pinagem do ATTINY (25-45-85):


A ligação é direta: RST-Reset, GND-GND, MOSI-MOSI, MISO-MISO, SCK-SCK e VCC-VCC.
Não é necessário nenhum outro componente quando utilizado o USBASP. Para ligações com outros Attinys, verificar a pinagem.


Usei o AVRDUDESS para ler (outras vezes já usei para gravar os fuse bits - e brickei os avrs).
Prá meu espanto, deu certo de prima:

Notar que usei o USBASP, Port USB, Baud 19200 e Bit clock 1.5, conforme orienta a maioria dos sites. O resultado no console foi da detecção (botão Detect). Como disse, este avr estava bricado. Montei um esquema de reset de fábrica para o avr e pelo jeito funcionou, pois o AVRDUDESS conseguiu detectar o modelo e ler os Fuse bits. Próximo blog é sobre esse circuito.