Acender um LED com a tensão da rede eléctrica

Por diversos motivos, é útil saber se um determinado dispositivo está sob tensão. Por exemplo, um aparelho, apesar de estar desligado (OFF), pode estar conectado à rede eléctrica (230V-50Hz). Para este efeito informativo, muitos aparelhos têm um indicador luminoso (LED ou de outro tipo) que testemunha a presença da tensão da rede eléctrica no seu interior.

O circuito apresentado neste artigo, permite acender um LED com a tensão monofásica da rede eléctrica (230V – 50Hz). Pode então por exemplo, instalar este circuito num qualquer aparelho que funcione a 230V ou ainda instalá-lo num quadro eléctrico para indicar a presença de cada Fase, etc.

AVISO: Este artigo tem fins meramente informativos. Se não tem formação e experiência na montagem e manuseamento de circuitos eléctricos com tensão da rede eléctrica, procure ajuda de um técnico ou electricista qualificados. O autor deste artigo não se responsabiliza por quaisquer danos materiais ou fisiológicos que possam advir da consulta e implementação do conteúdo deste artigo. A sua utilização de qualquer informação ou materiais publicados neste artigo é da sua total responsabilidade. Se não concorda com o conteúdo deste aviso, queira abandonar este sítio.

O Esquema

Princípio de funcionamento

É possível simplificar este esquema, retirando dele o condensador. Funcionalmente, o resultado seria o mesmo; i.e., o LED acenderia sempre que se aplicassem 230V entre os terminais J1 e J2, desde que a resistência R1 tenha sido dimensionada apropriadamente. Porém, esta resistência seria demasiado “grande” pela potência que teria de dissipar como se pode verificar pelas operações seguintes:

UREDE = 230 V
ULED = 1,6 V
ILED = 20 mA (0,02 A) – Valor máximo, para um LED comum.

R1 = (UREDE – ULED) / ILED = (230 – 1,6) / 0,02 = 11420 Ω -> 12000 Ω (12 kΩ)

Com R1 = 12 kΩ, a corrente no LED passa a ser:

ILED = (UREDE – ULED) / R1 = (230 – 1,6) / 12000 = 0,019 A (19 mA)

A potência que a resistência terá de dissipar, pelo papel abaixador de tensão e limitador de corrente para o LED é calculada pela expressão:

PR = R1 x I2 = 12000 x 0,0192 = 4,33 W (Temos um aquecedor!)

Para evitar o uso de uma resistência “de aquecimento”, e baixar a tensão da rede para a necessária para o LED, recorre-se então ao uso de um circuito RC série. Esta técnica é frequentemente usada em fontes de alimentação sem transformador. Mas atenção!!! Esta técnica só funciona correctamente para cargas com corrente constante, pois a queda de tensão no par RC varia com a corrente solicitada pela carga.

Dimensionamento dos componentes

No dimensionamento de um “transformador de tensão” sem Transformador (máquina electromagnética), procura-se minimizar as perdas por Efeito de Joule (calor) na resistência, passando para o condensador a tarefa de baixar a tensão, já que este não sofre (tanto) de Efeito de Joule. Isto é possível porque o condensador, em corrente alternada adquire uma Impedância que tem o mesmo “efeito voltaico” que a resistência.

A resistência tem no entanto, de permanecer no circuito para limitar a corrente neste (circuito série).

Para proteger o LED contra eventuais flutuações da tensão da rede, limita-se a 15 mA, a corrente no mesmo, o que para um LED vulgar, permite um brilho muito bom. Assim,

UREDE = 230 V
fREDE = 50 Hz
ULED = 1,6 V
ILED = 15 mA (0,015 A)

Z = (UREDE – ULED) / ILED = (230 – 1,6) / 0,015 = 15227 Ω

Z = √ (R12 + XC12)

A questão agora consiste em arbitrar valores aos componentes R1 e C1 por forma a obter uma impedância total Z com cerca de 15,2 kΩ.

Se se utilizar uma resistência comum de 0,25 W e se limitar a potência desta a 0,2 W (por aplicação de um factor de cagaço), deduz-se o valor da resistência para uma corrente de 15 mA da seguinte forma:

R1 = P / ILED2 = 0,2 / 0,0152 = 889 Ω

Sabendo que a potência dissipada na resistência aumenta com o valor desta, reduz-se o valor obtido acima para o valor normalizado imediatamente abaixo (Série E12), isto é 820 Ω!

Conhecendo os valores de R1 e de Z, calcula-se o valor da impedância do condensador C1:

XC1 = √ (Z2 – R2) = √ (152272 – 8202) = 15205 Ω

Sabendo que XC1 = 1 / (2 . Π . fREDE . C1), obtém-se o valor da capacidade do condensador C1:

C1 = 1 / (2 . Pi . fREDE . XC1) = 1 / (2. Pi . 50 . 15205) = 209.10-9 = 209 nF

Sabendo que a impedância de um condensador diminui com o aumento da sua capacidade, ajusta-se o o valor obtido para um valor normalizado imediatamente abaixo (180nF). No entanto, é interessante verificar os valores teóricos das grandezas envolvidas no circuito, também para o valor imediatamente acima dos 209 nF (220nF). A tabela abaixo apresenta os resultados das grandezas relevantes no circuito para as diferentes combinações R1-C1.

Comparando as soluções 2 e 4 da tabela acima, verifica-se que para uma corrente aproximadamente igual (mesmo brilho do LED), a potência dissipada na resistência da solução 4 atinge valores próximos do limite nominal do modelo previamente escolhido (1/4W).

Optando-se pela solução 2, o esquema do circuito fica:

Cuidados adicionais

Conforme o esquema tratado aqui, existe ainda neste circuito um díodo (D1) de tipo 1N4007. Este díodo tem por função, proteger o LED durante a arcada negativa da tensão da rede eléctrica. De facto, sem este díodo, durante a arcada negativa, o LED ficaria submetido a uma tensão máxima de 230 . √ 2 = 325 V!!! Os LEDs não suportam este valor de tensão inversa. Uma forma de proteger o LED deste valor de tensão, consiste em ligar em anti-paralelo, um outro díodo (poderia ser um outro LED mas, para quê dois LEDs?). Assim, durante a arcada negativa da tensão da rede, o LED fica submetido a uma tensão inversa igual ao valor da tensão directa do díodo D1: cerca de 0,7 V.

Pelo que se conta no parágrafo anterior, deduz-se que o LED está aceso apenas durante a arcada positiva da tensão da rede. De facto, o LED só está aceso durante metade do período da tensão da rede; isto é, durante 10 ms (f=50 Hz).

Um outro pormenor a ter em atenção é a tensão de serviço do condensador C1. Se se tiver em consideração o momento em que a tensão da rede passa pelo seu valor máximo (cerca de 325 V), o condensador fica submetido a uma tensão de:

UC1 = UMAX – UR1 – ULED = 325 – (R1 . ILED) – 1,6 = 325 – 820 . 15,8.10-3 – 1,6 = 310 V

Como tal, o condensador deverá ter uma tensão de serviço superior a este valor; por exemplo: 400V.

Finalmente, aconselha-se (vivamente) a colocação de uma resistência de alto valor (e.g., 1MΩ), em paralelo com o condensador. Esta resistência descarregará o condensador quando o circuito não estiver a ser alimentado.

Lista de componentes

R1: 820 Ω – 1/4 W
C1: 220 nF – 400 V
D1: 1N4001
D2: LED standard

Não faz parte do âmbito deste artigo apresentar soluções de montagem deste circuito. Recomenda-se o máximo cuidado e respeito pelas regras de segurança na montagem, instalação e utilização deste circuito. Se tiver dúvidas acerca do que está a fazer, procure ajuda especializada! A sua vida, a de outras pessoas, de animais ou de bens, depende da atitude que tiver daqui em diante.

Implementação experimental

A imagem acima ilustra uma implementação tipo “Live” do circuito. Esta implementação foi usada para verificar experimentalmente a funcionalidade do circuito e efectuar diversas medições. Uma integração deste circuito numa qualquer aplicação final, carece de protecção física contra contactos acidentais; isto é, isolamento adequado dos componentes e de todos os condutores.

Programação do Yaesu FT-60 para os EasySats

NOTA: Este procedimento está também disponível em formato PDF, aqui.

Existem vários tipos de satélites de amador. Um destes tipos é o popularmente conhecido por EasySats (satélites fáceis). Estes satélites são na realidade, repetidores ou mais exactamente, transponders. Isto é, em simultâneo, transmitem numa banda (e.g., UHF) o sinal que estão a receber na outra (e.g., VHF). Este satélites modulam em FM; outros emitem com outras modulações (e.g., SSB, CW), porém não são tão fáceis de operar e requerem que o operador tenha a possibilidade de escutar o downlink da sua própria emissão (full-duplex) para uma correcção mais assertiva do efeito Doppler. Este artigo apenas se aplica aos satélites FM, uma vez que o FT-60 apenas emite em FM.

Um dos fenómenos que tem impacto nas comunicações via satélite é o efeito Doppler. Este efeito tem de ser compensado pelo operador, na emissão e/ou na recepção (dependendo do satélite), ajustando a frequência em que está a emitir ou a receber. O efeito Doppler é tanto mais influente quanto maior for a frequência de operação. Como o FT-60 não permite um ajuste contínuo da frequência (a frequência é ajustável por passos (STEP) mínimos de 5 kHz), procede-se à programação de algumas posições de memória com pares de frequências (emissão-recepção) pré-ajustados para as diferentes fases do sobrevoo do satélite. Este artigo refere o AO-92 (colocado em órbita LEO na semana passada) a título de exemplo, mas aplica-se também a outros satélites do mesmo género (e.g., SO-50, AO-91, etc).

Pode-se dividir o sobrevoo de um satélite em cinco fases:

  1. Aquisição do Sinal (AOS – Aquisition Of Signal). Este é o instante em que o satélite emerge no nosso horizonte; fica em linha de vista e como tal a comunicação passa a ser possível.

  2. Aproximação / Subida (APR). Fase de ascensão do satélite acima do horizonte.

  3. Elevação Máxima (ZÉNITE). Passagem do satélite pela elevação máxima sobre o horizonte.

  4. Afastamento / Descida (DES). Fase de descida do satélite em direcção ao horizonte.

  5. Perda do Sinal (LOS – Loss Of Signal). Este é o instante em que o satélite desaparece sob o horizonte.

Não se tratando aqui de ensinar a Arte de Comunicar Via Satélite, relembra-se que os valores de AOS, LOS e outros necessários a este tipo de comunicação, são fornecidos por aplicações de previsão e rastreio de satélites, tais como o GPredict, o WXtrack ou o Orbitron, entre outros.

O satélite AO-92 recebe em 435,350 MHz e emite em 145,880 MHz. Para corrigir o efeito Doppler e de acordo com as instruções da AMSAT, a Tabela 1 (abaixo) mostra os pares de frequências (Emissão/Recepção) relativos a cada fase de sobrevoo do satélite. Estes pares deverão ser sequencialmente memorizados pelo FT-60 para permitir uma operação relativamente fácil do satélite.

Fox-1D (AO-92)

Fase do sobrevoo

TX (Tom: 67,0 Hz)

RX

Memória

1) Aquisição do Sinal (AOS)

435,340 MHz

145,880 MHz

101 [AO92-1]

2) Aproximação / Subida (APR)

435,345 MHz

145,880 MHz

102 [AO92-2]

3) Zénite (TCA)

435,350 MHz

145,880 MHz

103 [AO92-3]

4) Afastamento / Descida (DES)

435,355 MHz

145,880 MHz

104 [AO92-4]

5) Perda do Sinal (LOS)

435,360 MHz

145,880 MHz

105 [AO92-5]

Tabela 1

A Tabela 2 (abaixo) lista os passos necessários à programação do FT-60 para que numa posição de memória (neste caso, a número 101, renomeada AO92-1) estejam configuradas as frequências e o Tom, de acordo com os dados da Tabela 1, para comunicar via satélite na fase de Aquisição de Sinal.

Acção

Descrição

Exemplo

1

Em modo VFO, introduzir a frequência de RX (teclas ou DIAL)

145,880

2

Premir a tecla [F/W] durante 1 segundo

3

Após largar a tecla [F/W], tem 10 segundos para seleccionar a posição de memória desejada, usando o DIAL.

101

4

Premir novamente a tecla [F/W] para gravar na memória

MEM-IN

5

Ainda no modo VFO, indroduzir a frequência de TX

435,340

6

Premir a tecla [F/W] durante 1 segundo e seleccionar com o DIAL a posição de memória usada na Acção 3.

101

7

Premir e segurar a tecla de PTT e premir a tecla [F/W] enquanto segura a PTT premida (esta acção não coloca o transmissor a emitir)

MEM-IN

8

Premir a tecla [V/M] para entrar no modo MEMÓRIA e seleccionar o canal 101

9

Premir a tecla [F/W] e seguidamente premir a tecla [0 (SET)]

10

Seleccionar a opção SQL.TYP (Item 48) com o DIAL e premir a tecla [F/W]

SQL.TYP

11

Seleccionar a opção TONE com o DIAL e premir a tecla [F/W]

TONE

12

Seleccionar a opção TN FRQ (Item 50) com o DIAL e premir a tecla [F/W]

TN FRQ

13

Seleccionar a opção 67,0HZ com o DIAL e premir a tecla [F/W]

67,0HZ

14

Seleccionar a opção NAME (Item 27) com o DIAL e premir a tecla [F/W]

NAME

15

Seleccionar a opção ALPHA com o DIAL e premir a tecla [F/W]

ALPHA

16

Seleccionar a opção NM WRT (Item 28) com o DIAL e premir a tecla [F/W]

NM WRT

17

Premir a tecla [F/W] para começar a inserir o nome da memória

……

18

Seleccionar a letra ‘A’ com o DIAL e premir [F/W] para passar ao caractere seguinte

A…..

19

Seleccionar a letra ‘O’ com o DIAL e premir [F/W] para passar ao caractere seguinte

AO….

20

Seleccionar o núm. ‘9’ com o DIAL e premir [F/W] para passar ao caractere seguinte

AO9…

21

Seleccionar o núm. ‘2’ com o DIAL e premir [F/W] para passar ao caractere seguinte

AO92..

22

Seleccionar o traço ‘-‘ com o DIAL e premir [F/W] para passar ao caractere seguinte

AO92-.

23

Seleccionar o núm. ‘1’ com o DIAL e premir [F/W] para terminar (máx. 6 caracteres)

AO92-1

24

Premir a tecla PTT para sair do modo de configuração de parâmetros

25

Premir a tecla [F/W] durante 1 segundo e seleccionar com o DIAL a posição de memória usada na Acção 3.

101

Tabela 2

Os passos da Tabela 2 têm de ser repetidos para as restantes fases do sobrevoo, de acordo com a informação da Tabela 1, para as posições de memória seguintes (102, 103, 104 e 105).

Este procedimento está também disponível em formato PDF, aqui.

73 de CT7AFR, Emmanuel.

AO-91 (RadFxSat Fox-1B) está no Ar!

Fotografia: AMSAT
Fotografia: AMSAT

Este nanosatélite foi (finalmente) lançado com sucesso, no passado dia 18 de Novembro de 2017, desde a Base Aérea de Vandenberg, na Califórnia, num fogetão tipo Delta-II da United Launch Alliance. Este veículo é responsável também, pelo transporte do equipamento para a missão JPSS-1 (Joint Polar Satellite System). O RadTxSat é um dos quatro Cubesats que compõem a missão ELaNa XIV (Educational Launch of Nanosatellites), da NASA.

71118f2b

Cronologia dos eventos do dia 18:
0948 UTC – Lançamento do RadFxSat, a bordo de um veículo Delta II (Delta-7920-10C).
1109 UTC – O RadFxSat é colocado em órbita.
1212 UTC – Confirmação de que o satélite está activo.
1234 UTC – Recepção dos primeiros dados de telemetria.

Após a confirmação, por via da telemetria,  de que todos os sistemas estavam operacionais, Bill Tynan (W3XO), Administrador da Numeração OSCAR, atribuiu ao satélite RadFoxSat (Fox-1B) a designação AMSAT-OSCAR-91 (AO-91).

AO-91 é um Cubesat (1U) que resulta da colaboração entre a AMSAT e o Institute for Space and Defense Electronics da Vanderbilt University. A parte universitária tem por objectivo a medição dos efeitos da radiação nos componentes electrónicos, incluindo a demonstração de uma plataforma orbital para a qualificação de componentes e a validação e melhoramento de modelos de previsão de tolerância da radiação nos semicondutores. A AMSAT construiu a resto do satélite, incluindo a estrutura física, o sistema de alimentação e o computador de bordo.

O equipamento de rádiomador a bordo do AO-91 consiste num transponder FM com:

UPLINK: 435,250 MHz (CTCSS 67,0 Hz)
DOWNLINK: 145, 960 MHz
BEACON: 145,960 MHz
MODE: FM CTCSS 67,0 Hz – 200bps DUV (telemetria sub-audível – DUV: Data Under Voice)

À data da escrita deste texto, a AMSAT recorda que o AO-91 não estará disponível para uso geral enquanto não forem completadas as tarefas de verificação e ensaios, em órbita. [EDIÇÃO] Às 0650 UTC  de 23 de Novembro de 2017, o Vice-Presidente da AMSAT Jerry Buxton (N0JY), entregou a operação do satélite AO-91 (RadFxSat/Fox-1B) às operações da AMSAT através de um QSO com Mark Hammond (N8MH), no transponder do satélite, durante uma passagem do mesmo sobre os Estados Unidos da América. N8MH repondeu e declarou AO-91 aberto para utilização dos radioamadores!

AO-91 (RadFxSat – Fox-1B)
NORAD ID:  43016
INTERNATIONAL CODE: 2017-073D
PERIGEU: 462,6 km
APOGEU: 825,7 km
INCLINAÇÃO: 97,7º
PERÍODO: 97,5 min
SEMIEIXO MAIOR: 7015 km

Programação de memórias no rádio para correcção do efeito Doppler (na transmissão):

Memória 1 (Aquisiçao do Sinal) – TX 435,240 MHz (67,0 Hz), RX 145,960 MHz
Memória 2 (Ascenção) – TX 435,245 MHz (67,0 Hz), RX 145,960 MHz
Memória 3 (Zénite) – TX 435,250 MHz (67,0 Hz), RX 145,960 MHz
Memória 4 (Descida) – TX 435,255 MHz (67,0 Hz), RX 145,960 MHz
Memória 5 (Perda do Sinal) – TX 435,260 MHz (67,0 Hz), RX 145,960 MHz

Telemetria:

A descodificação da telemetria pode ser realizada com recurso à aplicação FoxTelem, desenvolvida pela AMSAT e disponível em https://www.amsat.org/foxtelem-software-for-windows-mac-linux/

foxtelemiq

Os dados Keplerianos de pré-lançamento:

RadFxSat
1 00000U 17017A   17322.46018518  -.00000000  00000-0  00000-0 0   9995
2 00000  97.6969 254.4977 0258300 235.3028 178.8186 14.79656332 -137 06

Os dados Keplerianos (TLE) iniciais de pós-lançamento:

RadFxSat
1 00000U 17000A 17322.46057870 -.00000000 00000-0 00000-0 0 00004
2 00000 97.6996 257.5922 0258900 235.2917 178.7268 14.79536000 0

Dados Keplerianos, corrigidos a AO-91 (22/11/2017):

AO-91
1 43016U 17073D   17324.81992359  .00000855  00000-0  73563-4 0  9991
2 43016  97.6901 259.8749 0259544 229.6727 128.1552 14.77757019   356

AO-91 pode ser um excelente satélite!

Sim, o AO-91 (Fox-1B) tem mais potência no emissor que o SO-50, considerado um dos easy-sats, e nele foram resolvidos alguns problemas ocorridos com o AO-85 (Fox-1A), outro satélite FM. De facto, o AO-91 transmite nos 70cm com uma potência superior a 400 mW (versus os 250 mW do SO-50) e possui um receptor mais sensível nos 2 metros. Teoricamente, este satélite será fácil de operar apenas com um rádio portátil e a respectiva “antena de borracha”.

Uma dificuldade na operação deste satélite pode aparecer na compensação do efeito Doppler que deve ser feita no uplink, enquanto que no SO-50 era feito no downlink. De facto, no SO-50, o uplink era feito em 2 metros, pelo que não é necessário compensar o Doppler. No AO-91, o uplink é feito na banda dos 70 cm; o efeito Doppler é mais pronunciado em frequências mais altas, daí ter de ser compensado pelo operador.  Sem esta compensação, é possível não se conseguir operar o satélite por estar demasiado fora de frequência. É recomendável operar este satélite (idealmente, os outros também), operando em full-duplex para poder avaliar o desempenho da operação.

Parabéns e obrigado à AMSAT por mais este achievement!

Referências:
https://www.amsat.org/meet-the-fox-project/
https://www.amsat.org/getting-ready-for-radfxsat-fox-1b/
https://www.amsat.se/2017/11/12/radfxsatfox-1b-launch-summary/
http://www.ne.jp/asahi/hamradio/je9pel/fox1blau.htm
https://www.amsat.org/countdown-to-launch-radfxsat-fox-1b/

CT7AFR DIY CW-Keyer

ct7afr-cw-keyer

Finalmente, está pronto o meu keyer para CW!

Este projecto começou por ser apenas um oscilador para excitar um pequeno altifalante sempre que fechasse um pequeno botão de pressão  ou uma chave vertical de Morse. Mas durante o meu estudo de CW, apercebi-me de que existem diversos tipos de chave e diversos modos de operação. Então, abandonei o 555 em prol de um microcontrolador para criar um keyer que satisfizesse as minhas necessidades, não ficasse limitado a um único tipo de chave nem a um único modo de operação. Nasceu assim o CT7AFR-CW-Keyer.

Este pequeno circuito aceita chaves do tipo Vertical, Paddle e Bug, tendo as seguintes características:

  • Frequência do Tom: 400 ~ 800 Hz (aprox.)
  • Velocidade de transmissão: 5 ~ 60+ WPM
  • Tipo de chave: Vertical, Paddle, Bug
  • Orientação da chave iâmbica: Standard ou Reverse
  • Modos de Operação: Curtis Mode A, Curtis Mode B, Ultimatic, Bug
  • Relação Dit/Dah: 1:3 ou 1:4.4
  • Saída em Dreno aberto (MOSFET) para controlo de um emissor (modo A1A, ON-OFF)
  • Saída áudio para altifalante de 8 Ohms
  • Saída áudio para headphones ou Line-In de PC (32 Ohms), jack stereo 3,5 mm
  • Volume de som ajustável por potenciómetro
  • LED indicador de POWER ON
  • LED indicador do estado da saída MOSFET
  • Alimentação: 7 ~ 16 VDC

A divulgação do desenvolvimento deste projecto, no Facebook, suscitou curiosidade em alguns colegas de hobby que se mostraram interessados na aquisição de um exemplar. A partir daqui, o projecto ganhou um novo objectivo: ser um kit para aspirantes a CW com gosto pela arte de manusear o ferro de soldar.

Toda a informação técnica acerca deste kit está disponível no capítulo RADIO do AIRLOMBA.NET em http://www.airlomba.net/radio/?pagina=Tecnica&Project=CW_keyer

ct7afr-cw-keyer-webpage

Nesta página, estão também apontados dois vídeos alojados no canal CT7AFR do Youtube. Um destes vídeos demonstra o funcionamento deste keyer.

Finalmente, quem estiver interessado em adquirir um kit destes ou simplesmente solicitar informação adicional acerca do mesmo, poderá contactar-me através do endereço de correio electrónico RADIO <arroba> AIRLOMBA <ponto> NET (visível no banner vertical, no canto superior direito da referida página).

Escrito isto, vou praticar CW… dah-dit-dah-dit dah-dah-dit-dah…

VY 73 DE CT7AFR.

Shutdown button for the Raspberry Pi

shutdown_1
One thing that sometimes bothers me when using an headless embedded Linux system, is the workload I get when I need to power off the system for some hardware maintenance (e.g. adding some sensor, replacing some peripheral, moving the system to another location). Indeed, one cannot just cut the power supply; there is the risk that some files become corrupted. So, the proper way to shutdown a Linux system is to send a command like:

$ shutdown -h now

But to do this, one needs to be “online” with the system, via SSH for example, using another system (computer) that, at that moment, may precisely be OFF… Doh!

So, at the expense of a simple push-button (normally open), a couple of wires and some programming, I implemented a smart(?) way of shutting down my Raspberry Pi, safely, without the need of an extra computer, SSH and other complications.

Connecting the push-button

The push-button is connected to two of the 26 or 40 pins header, depending on the version of the raspberry Pi in use. From those two pins, one is GND and the other may be any free GPIO. Remember that some pins have multiple possible roles (I2C, UART, SPI, etc), so choose wisely. In my case, I plugged the button between pins 14 and 16, respectively GND and GPIO23.

raspi_pinout

Programming

To translate any action on the push-button into a Shutdown command, a script was written in the Pi’popular Python programming language.

In a folder of your choice (e.g., /home/pi), using the terminal command line, enter:

$ nano shutdown_button.py

Then, copy the following code into it and save as usual (CTRL-X + Y + ENTER):

shutdown_2

Testing the script

To test this script, just enter the following command and then press the button once.

$ sudo python shutdown_button.py

If everything is correct, the system should shutdown itself. You must then unplug and replug the power cord to start your system again.

Launching this script automatically after every system power-up

In order to launch this script automatically after every system boot, one must add the following line to the /etc/rc.local file (just before the line with exit 0) as shown in the image hereafter (assuming your script file is in the /home/pi folder):

python /home/pi/shutdown_button.py &

shutdown_3

Final notes

  1. If you prefer to have your Pi to reboot instead of shutting down after pressing the button, in the shutdown_button.py script, in the line containing os.system(“shutdown -h now”), replace the letter ‘h‘ (from halt) by a ‘r‘ (for reboot).
  2. The line stated in the above note is in fact a System Call. So, with this script, you can have your Pi doing “anything you want” after pressing the push-button, just by replacing the command between quotation marks, by another command invoking some application that suit your needs.

Have fun!

 

Simple C code to dump I2C device memory

I have been using I2C devices for a while and most of the times when I put my hands on a new device, I need to dump the contents of its registers on my screen, for debug purposes. For this task, I wrote a while ago a little script. Today, I feel I can share this code to whom it may be useful. Use it at your own risk.

This code was written in C language, on a Raspberry Pi and requires the WiringPi library to be installed.

Once you saved this code into a file (e.g., main.c), compile it with the following command in a shell:

$ gcc -o regdump main.c -lm -lwiringPi -Wall

If all went well and you have some I2C device plugged into your Raspberry Pi, your are good to go as long as you know the device’s bus address (try the command i2cdetect -y 1, if your are not sure of its address or if your device is connected to the bus).

So, once you are good to go, just type the following command, specifying the device’s I2C address and the first and last registers addresses to be read (all in Hexadecimal format):

$ ./regdump <device I2C address> <start address> <stop address>

For example, typing the command $ ./regdump 0x77 0x75 0xd3 returns the following result, from the reading of a BMP085 pressure sensor existing in my I2C bus.

regdump_screenshot

The code is available for download, here!

Feel free to change it to your needs. And if suits your needs, I will be glad to receive some feedback, opinions or critics about it; either via a comment below or via e-mail to webmaster @rrob@ airlomba dot net.

Have fun!

 

O que pode correr mal num SOTA (XIV)

EA1_OU-013

Nem só de caminhadas e operações com rádio, se fazem SOTAs. Uma SOTAda implica uma preparação prévia e algum trabalho de pós-produção, entre outras tarefas mais ou menos óbvias. Este artigo não visa explicar como faço as minhas activações, pelo menos, com o título que tem. Para contar como preparo e executo as minhas activações, escreverei outro artigo, um dia…

Não, este artigo, como o título indica, revela mais uma “armadilha” que pode aparecer na linha de uma activação.

Por já me ter acontecido no passado e por saber que aconteceu com outros sotistas, resolvi deixar por escrito aqui, um pequeno guia de correcção de gafes no LOG da sotada, submetido no sítio sotadata.

O primeiro tipo de erro é comum e simples de cometer. Ocorre quando se está a inserir manualmente no LOG, um a um, os contactos realizados. Trata-se do erro tipográfico. Pode acontecer na Hora, no Indicativo de Chamada ou até na selecção de um dos ítens dos menus drop-down, Band ou Mode. A imagem abaixo, ilustra um desses erros. NOTA: Esta imagem e as seguintes, são apenas ilustrativas e não correspondem a alguma activação real.

Gafe 1

Para corrigir o erro no Callsign, terei de eliminar (Delete) a linha correspondente e voltar a inserir os dados relativos a este contacto. O sistema de gestão de LOGs inserirá a nova linha no local certo, uma vez que os contactos são ordenados cronologicamente, conforme ilustra a imagem abaixo.

Gafe 1 resolvida

A outra situação de erro, ocorre quando o activador se apercebe do erro já depois de ter submetido o LOG ao sistema de gestão (através da acção no botão Finish e posterior confirmação na tick-box “I Agree”). Esta percepção acontece normalmente quando um dos caçadores reclama do erro ou se o activador fizer uma verificação posterior. A imagem abaixo ilustra um situação de erro identificado na consulta do LOG relativo a uma activação.

Gafe 2

Esta situação pode ser resolvida de duas maneiras diferentes, dependendo do tamanho do LOG (número de contactos registados). A solução mais radical passa pela eliminação do LOG e criação de um novo; voltando a inserir todos os contactos, um a um.

A outra solução consiste nos seguintes passos (implica ter feito o login no sistema):

  1. Ir à pagina Activator Log e na linha corresponde à activação cujo LOG contém erro(s), clicar no botão “Download” e gravar no computador o ficheiro CSV oferecido pelo site. SOTA_4
  2. Editar este ficheiro com uma aplicação tipo OpenOffice Calc, Microsft Excel ou outro processador de folhas de cálculo (não esquecendo de gravar o ficheiro alterado no mesmo formato CSV).SOTA_5
  3. Na página Activator Log, apagar o LOG clicando na ligação “Delete”. SOTA_6Na página que aparece em seguida, confirmar o apagamento, clicando no botão “Delete”. SOTA_7
  4. Na página de entrada do sotadata, ir ao menu Submit Log e ecolher o ítem Import Activator TSV/CSV. SOTA_8
  5. Clicando no botão “Browse…”, seleccionar o ficheiro CSV que foi editado anteriormente (isto é, em que foram efectuadas as correcções de erro). Em seguida, clicar no botão “Upload File”. SOTA_9
  6. Se o LOG estiver correcto, clicar no botão “Submit Entry”. SOTA_10
  7. Confirmar a inserção do LOG no sistema para validação. SOTA_11
  8. O LOG já está inserido no sistema, os pontos foram contabilizados, o problema está resolvido. SOTA_12

O SOTA só termina quando o LOG está contabilizado no sistema de gestão de activações da sotadata. Até este ponto, com o caro adepto desta saga(*) deve ter reparado, muita coisa pode correr mal num SOTA…

73 de CT7AFR, Emmanuel.

(*) Se ainda não leu, leia os restantes episódios da série “O que pode correr mal num SOTA“.

O que pode correr mal num SOTA (XIII)

moi_CT_MN-016

Pois bem, a brincar a brincar, cheguei ao décimo terceiro episódio da série O que pode correr mal num SOTA. Por se tratar do episódio treze, este vai ser especial, vou usar psicologia inversa para não ter de mudar o título…

Quinta-feira 8 de Dezembro de 2016, dia feriado em Portugal. Com a meteorologia a prever céu quase limpo no Minho, ficando o “quase” para algumas nuvens cuja base não desceria abaixo dos 2000 metros, esta quinta-feira teria de ser dia de SOTA! E assim foi!

Com o colega e amigo CT1HIX (Gomes), tínhamos sonhado dias antes, riscar da lista os dois cumes da Serra da Cabreira: CT/MN-016 e CT/MN-003.

Contas feitas, atacaríamos o MN-016 em primeiro, estimando o início da activação para as 11:00 Zulu. O Gomes fez o especial favor de me apanhar em Viana para seguirmos viagem até à Serra da Cabreira. Os percursos estavam devidamente planeados no GPS, as estimas do início de cada activação foram anunciadas no sotawatch, da seguinte forma:

  • CT/MN-016 – 11:00 +/- 30 min.
  • CT/MN-003 – 15:00 +/- 30 min.

O primeiro trilho (para o MN-016) era composto por um misto de caminho em terra, corta-mato e estradão de gravilha (daqueles, típicos dos parques eólicos). Com um comprimento de perto de 3,5 quilómetros, estava previsto ser percorrido numa hora de marcha sempre ascendente. O segundo trilho, apesar de ter apenas um terço da distância a percorrer (cerca de 1 quilómetro), era apenas composto por corta-mato, num terreno íngreme e ainda por cima, em socalcos estilo escadas de gigante, para quebrar o ritmo de marcha…

track_CT_MN-016

Tudo começou a correr mal quando chegamos ao início do primeiro trilho, muito antes da hora prevista. Além disto, a subida foi mais fácil do que o esperado; mesmo assim com algumas breves paragens para recuperar algum fôlego enquanto escrutinávamos a paisagem. No cume, fomos acolhidos por uma matilha de cães de caça com ares esfomeados, porém, inofensivos (cão que ladra…). O local era desprovido de vegetação alta, pelo que o risco de ser confundido com algum javali, era reduzido, dependendo apenas da taxa de alcoolemia dos caçadores presentes.

Fomos até ao Vértice Geodésico (VG) existente no local (não aparece referenciado nas listagens da Rede Geodésica Nacional) e apreciadas as vistas, verificamos que o ponto mais alto do cume corresponde às coordenadas oficiais SOTA, sensivelmente a 244 metros a Norte do VG. Foi do local oficial que activei o cume na banda de 40 metros, enquanto o Gomes fazia o mesmo noutras bandas, ali perto.

O início da activação estava previsto para as 11:00, mais ou menos meia hora. No entanto, às 10:31 tinha feito o meu último QSO, num total de onze, entre espanhóis, ingleses, um português, um alemão e um italiano.

É um facto que, na minha pouca experiência sotista, os alertas deixados no sotawatch raramente vêem as horas a bater certo. Confesso que é um pouco por isto, pela falta de pontualidade inerente a este tipo de explorações, que gosto pouco de anunciar antecipadamente as minhas activações. Para a próxima, anuncio a hora prevista com uma tolerância de mais ou menos uma hora (ou mais).

Cerca de uma hora depois, já estávamos no carro a partir para o cume seguinte: CT/MN-003. Este cume dista do primeiro, cerca de 6,5 km em linha recta; o triplo, pelo caminho percorrido de carro.

Este trilho inicia-se num pequeno bosque, para que o carro ficasse à sombra, e representa uma distância de cerca de 1 quilómetro. Apesar da pouca distância, esta ia servir a terceira marcha do dia, sempre a subir e a subir bem, com um ganho total de elevação de 136 metros numa distância rectilínea de pouco mais de 600 metros.

trilho_CT_MN-003

Esta activação estava anunciada para as 15:00. Às 13:20 registava o meu último QSO, de uma série de 18 contactos em doze minutos, com estações espanholas, inglesas, alemãs, suíças e, pela primeira vez nos meus SOTA, sueca. Tudo, como sempre, nos 40 metros.

Regressados ao carro cerca das 14:30, estávamos com um brilho especial nos olhos ao vislumbrar no horizonte, a possibilidade de activar um terceiro cume neste dia: CT/MN-014 (Cerdeira). Instalou-se então a confusão com os GPSs. O tablet (Android) com Navigator, usado para navegar até aqui, não sabia onde ficava o cume desejado (não estava previsto, não tinha sido inserido nos POI). A cobertura GSM era inviável para espreitar a olho, o caminho no Google-Earth. O Etrex tinha os cumes todos para SOTA, mas não era o melhor para navegar de carro por estrada… Recorreu-se então a uma mistura de todas estas ferramentas para convergir visualmente para o cume, até o Gomes (que já tinha activado este cume) ter um flash-back e recordar o caminho a partir de dado momento.

O Sol estava cada vez mais baixo e tínhamos perdido algum tempo precioso na viagem para este cume. Optou-se por chegar tão perto quanto tolerável do cume, de carro. Estacionamos a pouco mais de 650 metros do Vértice Geodésico CERDEIRA, junto à junção de um “caminho de cabras” com o estradão de gravilha.

trilho_CT_MN-014

O trilho percorrido tinha cerca de 700 metros, mas o declive (média de 35%),  aliado ao piso intragável (pedras rolantes e regos de água), fizeram-me perder o pio a dado momento (quem me conhece, sabe que sou conversador). O ritmo da escalada, em contra-relógio com o sol poente, provocou em mim um silêncio tão prolongado que assustou o Gomes que caminhava à minha frente…

Às 16:04 conseguia com alguma dificuldade, o primeiro de 7 QSOs. Depois, a greyline fechou a propagação. Quando eu dava por terminada a minha activação, fiquei a saber que o Gomes não tinha conseguido nenhum contacto em diversas bandas. O frio apertava cada vez mais, a propagação dava ares da sua graça, a bateria do meu rádio estava nos vapores, mas com insistência e teimosia, lá voltou a aparecer a santa propagação dos 40 metros e esta permitiu ao Gomes validar o cume com alguns QSOs nos 40 metros também.

Cerca das 19:00, estava novamente à porta de casa, 12 horas depois de ter encontrado o Gomes no ponto de encontro. Foi um dia em que o que correu mal fica quase imperceptível, junto do facto de termos validado 3 activações num dos cantos mais remoto da região Minho. Positivo, foi também o teste ao equipamento em condições mais agrestes, desde o vestuário especial recém-adquirido à autonomia da bateria. Tenho de reconhecer também que a última activação foi concretizada com alguma sorte, dada a hora a que ocorreu, em que a propagação dos 40 metros estava de partida.

Os ficheiros GPX com os trilhos percorridos estão disponíveis no sotamaps e na secção SOTA do meu site.

Ao Gomes (CT1HIX), fico agradecido pela excelente companhia neste dia.

73 de CT7AFR, Emmanuel.

O que pode correr mal num SOTA (XII)

Hoje foi dia de aproveitar uma oportunidade inesperada na agenda da família e na meteorologia, para fazer um SOTA num dos cumes próximos do QTH que deixei para os dias curtos de Inverno. Hoje foi dia de activar o Monte de São Gonçalo (CT/MN-041), cujo início da subida fica a pouco menos de 30 minutos de carro, de Viana do Castelo.

Trabalhinho de casa feito há meses, foi meter as tralhas no carro, despedir-me da família e meter-me a caminho. Como o título desta rubrica sugere, algo correu mal. E como hoje estou com pressa, não me vou alongar muito neste texto, com suspense e outras líricas. Vou desde já, exibir a imagem abaixo, para ilustrar o que aconteceu…

Correu_mal

É isso! O trabalho de casa, baseado na observação de carta topográfica e ortofotos, indicava-me a existência de um pseudo-trilho que me permitiria encurtar a distância a percorrer. Chegado ao local, encontrei o pseudo-trilho conforme o esperado. Era um “trilho” marcado pela passagem de veículos com 4 rodas (2, se forem carroças). Mas a partir de dado ponto, o trilho passou a ser marcado pela passagem de água. Neste dia, por falta de chuva, o trilho estava praticamente seco. A pouca humidade visível pertencia aos musgos que cobriam as pedras e aguardavam que me aventurasse neles para, provavelmente, espalhar-me ao comprido…

O declive era o esperado, de acordo com o trabalho de casa já referido. O que não era esperado, era uma parede de rocha no local onde termina o traço azul, parcialmente circunscrito a amarelo. Era apenas uma parede de rocha porque não havia água; assim que chover, será uma cascata!

A imagem não ilustra os rodeios que fiz à cascata para tentar contorná-la. Passaram-se uns minutos e decidi voltar para trás. Naquele momento, já não confiava nesta parte do meu trabalho de casa e não queria arriscar outra surpresa eventual, a montante da cascata.

Agora, no QTH, ao estudar a caixa negra da minha viagem (log GPS), apercebo-me que neste apêndice, perdi apenas 11 minutos. Porém, com base no que senti na pele (literalmente – o trilho está forrado a tojo e silvas), juraria que foram pelo menos 30!

Regressado ao estradão que desenha uma boa parte do trajecto, impõe-se realçar a inclinação do mesmo que logo desde os primeiros metros, põe o coração a bater nas 110+ bpm. A distância total percorrida foi de quase 3 km, feitos em 1 hora e 3 minutos. Não fosse o desvio inútil, a ascensão teria sido feita em 50 minutos.

Esta activação, realizada unicamente na banda dos 40 metros, somou 29 QSOs com operadores de Portugal, Espanha, Reino-unido, Itália, Bélgica e França; em cerca de 15 minutos. A viagem de regresso demorou exactamente meia hora.

O ficheiro GPX do trilho está disponível no site SOTAMAPS ou aqui:

73 de CT7AFR, Emmanuel.