Montagem do Pêndulo de Precisão: Gestão de software

From wwwelab
Jump to navigation Jump to search

Nesta página pode encontrar-se o ‘set’ de instruções e a maioria dos utilitários de software utilizados no controlador remoto da experiência, bem como a forma como este está ligado à Internet.

Software Raspberry

Gestão do Software

O computador Raspberry Pi faz a interface entre o microcontrolador da experiência e os servidores do e-lab. Sem ele, o acesso remoto não é possível. Assim, é essencial que este seja devidamente instalado e configurado para garantir uma elevada fiabilidade e segurança.

Instalação do Sistema Operativo

Ao iniciar com um cartão SD vazio, a primeira tarefa é instalar o Sistema Operativo (SO). Existem vários sistemas operativos que suportam o Raspberry Pi (RPi) e, em teoria, qualquer um dos que suportam o software necessário pode ser utilizado. Ainda assim, o uso do Raspbian é altamente recomendado. É o SO oficial da Fundação Raspberry Pi para todos os modelos RPi, tem uma vasta seleção de software suportado disponível nos repositórios oficiais e abundam tutoriais e guias, online e em outros meios.

As instruções abaixo deste ponto assumem a utilização do Raspbian. Outros SOs podem ter diferentes métodos de configuração.

Ao criar um novo cartão SD, deve ser instalada a última versão do sistema operativo. Isto assegura que o sistema vai funcionar com todas as correções de segurança e desempenho disponíveis. A última versão do Raspbian pode ser descarregada a partir deste deste link. Estão disponíveis três versões:

  • A versão lite contém a quantidade mínima de software necessária para arrancar o RPi. Nenhum software extra está incluído. Isto implica a falta de uma Interface Gráfica do Utilizador (IGU), o que significa que, se ligado a um ecrã, o RPi mostrará apenas uma linha de comando (como ilustrado).
  • A versão desktop contém o mesmo software que a versão lite mais o software necessário para utilizar uma IGU. Quando ligado a um ecrã, o RPi mostrará uma IGU (na imagem).
  • A versão desktop e de software recomendado contém o mesmo software que a versão desktop mais alguns softwares e utilitários pré-selecionados.

O mesmo software está disponível para instalação em todas as versões, o que significa que se pode começar com uma versão lite e mais tarde instalar todo o software incluído na versão desktop e de software recomendado. Se o RPi estiver a ser preparado para funcionar apenas como servidor para a experiência, recomenda-se que seja escolhida a versão lite ou desktop, uma vez que ter um SO que possua apenas o software necessário é mais seguro e melhora o desempenho e a capacidade de manutenção. Em particular, a versão lite é de especial interesse se o objetivo for utilizar o RPi sem display, visto que não inclui a IGU, que só é útil se utilizar um display.

A Fundação Raspberry Pi fornece instruções de instalação para o SO Raspbian aqui.

Depois da Instalação

Depois de instalado o SO, o cartão SD está pronto para arrancar o RPi. No entanto, antes de inserir o cartão SD no RPi, é necessário considerar como fazer a interface com o RPi. É possível fazê-lo através de dois métodos diferentes:

Usar o RPi através de um teclado, rato e monitor

Ao utilizar um teclado, rato e monitor, o RPi funciona tal como qualquer outro computador. Visto que é possível interagir com o RPi através do teclado, rato e monitor, o cartão SD pode ser inserido no RPi e o processo de arranque pode ser iniciado ligando o adaptador de alimentação ao RPi. Este é um procedimento mais simples mas mais caro devido ao hardware extra necessário. Não ligue o RPi à Internet antes de completar a configuração do SO, tal como descrito abaixo. Quando a configuração for bem sucedida, deverá ver um prompt a apresentar:

pi@raspberry:~ $

ou a interface gráfica habitual do utilizador do sistema operativo, dependendo da versão do Raspbian escolhida.

Avance para a seção Configuração do Sistema Operativo RPi.

Ligação ao RPi através de uma ligação SSH

Se não estiverem disponíveis um teclado, rato e monitor para utilizar e interagir com o RPi, ainda é possível interagir com este através da configuração do serviço SSH antes de inserir o cartão SD no RPi. O serviço SSH permite ligações com um RPi através de uma interface de rede, a partir da qual os comandos podem ser enviados. Isto faz uso do teclado, rato e monitor de um segundo computador (um computador portátil ou fixo já configurado, por exemplo). Para tal, o Raspberry Pi e o computador utilizado necessitam que a sua configuração de rede seja ajustada.

Para permitir externamente o serviço SSH no RPi:

  • Insira o cartão SD num computador, por exemplo, o utilizado para instalar o SO no cartão.
  • Após a instalação do SO, o cartão aparecerá nos computadores como sendo composto por duas unidades. Uma unidade mais pequena de algumas centenas de MBs e uma unidade maior de alguns GBs (dependendo do tamanho do cartão SD).
  • Na "drive" mais pequena, crie um ficheiro vazio chamado ssh. Isto permite o serviço SSH apenas durante o próximo arranque do RPi. Esta configuração será tornada permanente mais tarde.
  • Na "drive" maior, edite o ficheiro "/etc/dhcpcd.conf". No final do ficheiro, deverá haver uma secção de texto semelhante a esta:
# It is possible to fall back to a static IP if DHCP fails:
# define static profile
profile static_eth0
static ip_address=123.123.123.123/24
#static routers=192.168.1.1
#static domain_name_servers=192.168.1.1

# fallback to static profile on eth0
interface eth0
fallback static_eth0

Edite o ficheiro tal como o texto mostrado acima. A linha:

static ip_address=123.123.123.123/24

Define o endereço IP de recurso do Raspberry Pi quando não recebe ofertas IP através do DHCP. Em geral, isto acontece quando não há nenhuma ligação disponível na rede ou quando foi ligado a um computador portátil ou fixo comum. Podem ser escolhidos outros IPs de fallback para além de 123.123.123.123. Este é sugerido porque é simples de memorizar.

  • O cartão SD pode agora ser removido em segurança do computador e inserido no Raspberry Pi para arrancar.

Em seguida, o computador que se ligará ao RPi deve ter a sua própria ligação Ethernet configurada de modo a ligar-se à mesma sub-rede que o RPi. Isto significa que, seguindo a configuração mostrada acima, o seu IP deve ser configurado para 123.123.123.xxx, onde o último número pode ser qualquer um de 001 a 254, e uma netmask de 255.255.255.000. O procedimento exato a seguir para o conseguir é altamente dependente do SO instalado no computador. É importante proceder de uma forma adequada ao sistema operativo específico. Se o seu computador utiliza a porta Ethernet para a ligação diária à Internet, é possível que lhe seja atribuída alguma configuração específica para tornar esta ligação possível na sua rede. Certifique-se que preserva as configurações originais da rede do seu adaptador Ethernet para que possa reverter quaisquer alterações realizadas, seja tirando capturas de ecrã dos diálogos apropriados ou tomando notas. Pode encontrar alguns exemplos de SOs comuns abaixo.

Configuração do Adaptador Ethernet no Windows 10/8.1/7 e ligação ao RPi
  • A Microsoft fornece instruções sobre como configurar manualmente o adaptador Ethernet.
  • Siga o procedimento de configuração manual das definições IPv4. Quando solicitado, preencha o campo IP Address com um endereço apropriado de acordo com a configuração selecionada para o RPi. Assumindo que foi escolhida a configuração de exemplo mostrada nesta página, este campo pode ser preenchido com 123.123.123.124, e o campo Subnet prefix length/Subnetmask pode ser preenchido com 255.255.255.0 ou 24. As configurações relativas aos campos Gateway e DNS e ao IPv6 podem ser ignoradas.
  • Caso não o tenha feito antes, o RPi pode ser iniciado e ligado ao computador através de Ethernet. Isto é conseguido ligando uma extremidade de um cabo Ethernet à porta Ethernet do computador e a outra extremidade do cabo à porta Ethernet do RPi.
  • O símbolo de rede no Windows deve agora mostrar a ligação Ethernet. Provavelmente afirmará que se trata de uma rede desconhecida.
  • O Windows não instala um cliente SSH por "default". . Para se ligar ao RPi via SSH deve ser configurado um. Embora outros possam ser utilizados, o putty é um software cliente SSH de código aberto e gratuito para Windows. Pode ser instalado ou utilizado como autónomo, o que significa que a instalação não é necessária. Os passos seguintes seguir-se-ão à utilização do putty. Embora a configuração geral também se aplique a outro software, as instruções específicas podem ser diferentes.
  • Preencha o campo Host Name (or IP Address) com o IP configurado do RPi. Se a configuração sugerida estiver a ser seguida, deverá ser preenchido com 123.123.123.123. Nos botões de rádio abaixo, selecione SSH. Se desejar guardar esta configuração para que não seja necessário recordá-la ou reescrevê-la sempre, escreva qualquer nome memorável no campo Saved Sessions e clique em Save. Assim, poderá recuperar esta configuração selecionando o nome da lista e selecionando Load.
  • Pode aparecer um aviso indicando que o anfitrião, o computador ao qual se está a ligar, é novo e desconhecido. Ser-lhe-á perguntado se o novo computador é de confiança e se a ligação pode ser completada. Uma vez que se trata de uma nova instalação de um computador que possui e que foi configurado por si, pode responder com segurança que sim. Quando lhe for pedido, introduza a palavra-chave. Se esta não for a primeira vez que segue este guia, é possível que o aviso indique que o anfitrião, o computador a que se está a ligar, mudou. Isto é esperado, uma vez que pode agora aplicar estes passos a um RPi diferente. Aceite o aviso, selecionando Yes e a ligação deve ser completada.
  • Quando lhe forem pedidos o utilizador e a palavra-passe, introduza o utilizador predefinido e a palavra-passe do SO Raspian que pode ser encontrada aqui.
  • Note que neste caso são utilizados o pi e 123.123.123.123 uma vez que se está a ligar ao RPi como utilizador pi e este está diretamente ligado ao computador com o IP 123.123.123.123 configurado. Depois de criar um novo utilizador, de apagar o predefinido e ligar o RPi à rede normal, isto irá mudar.
  • Depois de introduzir com sucesso a palavra-passe predefinida, surgirá o seguinte texto:
pi@raspberry:~ $

Conectou-se com sucesso e pode proceder à Configuração do Sistema Operativo do RPi

  • Se surgiu um erro que indica:
ssh: connect to host xxx.xxx.xxx.xxx port 22: No route to host

onde xxx.xxx.xxx.xxx é o IP utilizado no comando ssh, os adaptadores Ethernet foram mal configurados. Revisite a configuração dos adaptadores. Para uma ligação bem sucedida, tanto o computador como o RPi devem ser configurados de modo a estarem na mesma sub-rede. Se não adotou a configuração IP sugerida, saiba que esta fornece uma configuração funcional.

Configuração do Adaptador Ethernet no Linux utilizando o Network Manager e ligação ao RPi
  • O Linux não é um SO monolítico. O que é geralmente referido como Linux é um conjunto de várias distribuições, também conhecidas como "distros", que constroem um SO na mesma base, o Linux kernel. Dependendo da "distro" utilizada, o procedimento específico a seguir será diferente. O procedimento seguinte aplica-se às distribuições que têm o Network Manager configurado para gerir a conetividade. Este é o caso da maioria das distribuições populares, tais como Ubuntu e os seus sabores, Linux Mint, Fedora, etc.
  • Clique com o botão direito do rato sobre o ícone Network Manager e selecione Edit connections
  • Clique no sinal + no canto inferior esquerdo da janela, selecione Ethernet no diálogo mostrado e clique em Create. Ao criar uma nova configuração, as definições utilizadas para o acesso normal à Internet são preservadas, tornando mais fácil reverter as alterações.
  • O campo Name pode ser preenchido com qualquer nome, embora seja recomendado escrever um fácil de lembrar, tal como Raspberry ou Ethernet RPi.
  • Selecione o separador IPv4 Settings e, no menu Method dropdown, selecione Manual.
  • Clique em Add junto à tabela Adresses e, quando solicitado, preencha o campo Address com um endereço apropriado de acordo com a configuração escolhida para o RPi. Assumindo que a configuração de exemplo mostrada nesta página foi a escolhida, este campo pode ser preenchido com 123.123.123.124e o campo vizinho Netmask pode ser preenchido ou com 255.255.255.0 ou 24.
  • O resto dos campos podem ser ignorados em segurança. Clique em Save para guardar as novas definições de ligação. As novas configurações surgirão agora na lista com o nome escolhido.
  • Caso não o tenha feito antes, o RPi pode ser iniciado e ligado ao computador através da Ethernet. Isto é conseguido ligando uma extremidade de um cabo Ethernet à porta Ethernet do computador e a outra extremidade do cabo à porta Ethernet do RPi
  • Ao tentar ligar-se o RPi, o ícone do Gestor de Rede deve mostrar um símbolo rotativo. Clique no símbolo do Gestor de Rede e selecione, no menu, a ligação Ethernet com o nome escolhido anteriormente. A ligação deve agora ser configurada.
  • A maioria das distros Linux incluem software SSH na instalação padrão do SO, tornando desnecessária a instalação de qualquer software adicional. Os comandos SSH seguem a sintaxe ssh user@ip ou ssh user@hostname. O utilizador predefinido e a palavra-passe do SO Raspian podem ser encontrados aqui. Para se ligar ao RPi, abra um terminal no computador e escreva
ssh pi@RPI ADDRESS

O RPI ADDRESS deve ser substituído pelo endereço IP selecionado para o RPi na secção anterior. Assumindo que foi adotada a configuração sugerida, o comando deve ser:

ssh pi@123.123.123.123

Note que, neste caso, são utilizados o pi e o 123.123.123.123, uma vez que se está a ligar ao RPi como utilizador pi e este está diretamente ligado ao computador com o IP configurado 123.123.123.123. Depois de criar um novo utilizador, apagar o predefinido e ligar o RPi à rede normal, isto irá mudar.

  • Pode surgir um aviso afirmando que o anfitrião, o computador a que se está a ligar, é novo e desconhecido. Ser-lhe-á perguntado se o novo computador é de confiança e a se ligação pode ser completada. Uma vez que se trata de uma nova instalação de um computador que possui e que foi configurado por si, pode responder com segurança que sim. Quando lhe for pedido, introduza a palavra-chave. Se esta não for a primeira vez que segue este guia, é possível que o aviso indique que o anfitrião, o computador a que se está a ligar, mudou. Isto é esperado, uma vez que pode agora aplicar estes passos a um RPi diferente. Edite o ficheiro indicado no aviso e apague a linha que começa com o IP do RPi. Se a configuração do exemplo estiver a ser seguida, esta será a linha que começa com
123.123.123.123. Experimente voltar a ligar utilizando novamente o comando SSH. Deverá ver um aviso que indica que se trata de um computador novo e desconhecido.
  • Depois de introduzir com sucesso a palavra-passe predefinida, surgirá o seguinte texto:
pi@raspberry:~ $

Conectou-se com sucesso e pode agora proceder à Configuração do Sistema Operativo do RPi

  • Se surgiu um erro que indica:

ssh: connect to host xxx.xxx.xxx.xxx port 22: No route to host onde xxx.xxx.xxx.xxx é o IP utilizado no comando ssh, os adaptadores Ethernet foram mal configurados. Revisite a configuração dos adaptadores. Para uma ligação bem sucedida, tanto o computador como o RPi devem ser configurados de modo a estarem na mesma sub-rede. Se não adoptou a configuração IP sugerida saiba que esta fornece uma configuração funcional.

Configuração do Adaptador Ethernet no MacOS Catalina/Mojave/High Sierra e ligação ao RPi
  • A Apple fornece instruções sobre como configurar manualmente o adaptador Ethernet.
  • Siga o procedimento para a configuração manual das definições IPv4. Quando solicitado, preencha o campo IP Address com um endereço apropriado de acordo com a configuração selecionada para o RPi. Assumindo que a configuração de exemplo mostrada nesta página foi selecionada, este campo pode ser preenchido com 123.123.123.124, e o campo Subnetmask pode ser preenchido com 255.255.255.0 ou 24. As configurações relativas aos campos Gateway e DNS e ao IPv6 podem ser ignoradas.
  • Se não o tiver feito antes, o RPi pode ser iniciado e ligado ao computador através da Ethernet. Para tal, basta ligar uma extremidade do cabo Ethernet à porta Ethernet do computador e a outra extremidade do cabo à porta Ethernet do RPi
  • O símbolo da rede deve agora mostrar a ligação como estando concluída
  • MacOS inclui um cliente SSH client na instalação predefinida do SO, tornando desnecessária a instalação de qualquer software adicional. Os comandos SSH seguem a sintaxe ssh user@ip ou ssh user@hostname. O utilizador predefinido e a palavra-passe do SO Raspian podem ser encontrados aqui. Para se ligar ao RPi, abra um terminal no computador, e escreva
ssh pi@RPI ADDRESS

O RPI ADDRESS deve ser substituído pelo endereço IP selecionado para o RPi na secção anterior. Assumindo que a configuração sugerida foi adotada, o comando deve ser:

ssh pi@123.123.123.123

Note que, neste caso, são utilizados o pi e 123.123.123.123 , uma vez que nos estamos a ligar ao RPi como utilizador pi e este está diretamente ligado ao computador com o IP configurado 123.123.123.123. Depois de criar um novo utilizador, apagar o predefinido e ligar o RPi à rede normal, isto irá mudar.

  • Pode surgir um aviso afirmando que o anfitrião, o computador a que se está a ligar, é novo e desconhecido. Ser-lhe-á perguntado se o novo computador é de confiança e se a ligação pode ser completada. Uma vez que se trata de uma nova instalação de um computador que possui e que foi configurado por si, pode responder com segurança que sim. Quando lhe for pedido, introduza a palavra-chave. Se esta não for a primeira vez que segue este guia, é possível que o aviso indique que o anfitrião, o computador a que se está a ligar, mudou. Isto é esperado, uma vez que pode agora aplicar estes passos a um RPi diferente. Edite o ficheiro indicado no aviso e apague a linha que começa com o IP do RPi. Se a configuração do exemplo estiver a ser seguida, esta será a linha que começa com 123.123.123.123. Tente voltar a ligar utilizando novamente o comando SSH. Surgirá um aviso que indica que se trata de um computador novo, desconhecido.
  • Depois de introduzir com sucesso a palavra-passe predefinida, surgirá o seguinte texto:
pi@raspberry:~ $

Conectou-se com sucesso e pode agora proceder à Configuração do Sistema Operativo do RPi

  • Se surgiu um erro que indica

ssh: connect to host xxx.xxx.xxx.xxx port 22: No route to host onde xxx.xxx.xxx.xxx é o IP utilizado no comando ssh, os adaptadores Ethernet foram mal configurados. Revisite a configuração dos adaptadores. Para uma ligação bem sucedida, tanto o computador como o RPi devem ser configurados de modo a estarem na mesma sub-rede. Se não adoptou a configuração IP sugerida saiba que esta fornece uma configuração funcional.

Configuração do Sistema Operativo do RPi

Depois de instalado, o SO precisa de ser configurado. As próximas instruções devem ser seguidas no prompt terminal. Se estiver a utilizar um teclado e monitor ligados ao RPi e instalado um SO com IGU, por favor abra um emulador terminal.

Primeiro, proceda à configuração geral do sistema carregando o utilitário raspi-config, ao executar o comando:

sudo raspi-config

Quando solicitado, introduza a senha do utilizador pi. Pode navegar no menu usando as teclas de Seta para seleção, tecla Escape para retroceder nos menus e Enter para selecionar a entrada em destaque.

  • A opção 1 Change User Password pode ser ignorada, uma vez que o utilizador pi será apagado mais tarde.
  • Na opção 2 Network Options é possível definir o Hostname (Nome do Anfitrião) e configurar uma ligação Wi-fi

O Hostname é o nome atribuído ao RPi e não tem qualquer significado especial. É útil porque facilita o reconhecimento do computador com base apenas no nome.

A entrada Wi-fi permite a configuração de uma rede Wi-Fi introduzindo o SSID (nome da rede) e a palavra-passe da rede. Este diálogo só funciona para esquemas WEP, WPA e WPA2. O WPA-entreprise deve ser configurado manualmente através do wpa_supplicant.

Ignore as restantes entradas, a não ser que tenha a certeza das alterações que estará a realizar.

  • Em 3 Boot Options, a entrada Desktop / CLI é a que seleciona se o RPi arranca num ambiente IGU ou num prompt de comando; a entrada Wait for Network at Boot se espera pela ligação à rede antes de completar o arranque e a Splash Screen se mostra uma imagem ou um texto de depuração durante o arranque.

Tenha em atenção que a entrada Desktop / CLI só produz efeitos se tiver previamente instalado uma versão do Raspbian com IGU ou tiver instalado entretanto uma IGU na versão lite.

Estas configurações são seguras para aplicar consoante o que os utilizadores pretendem.

  • Em 4 Localisation Options, a entrada Change Locale permite configurar o RPi de modo a que a língua, e outros elementos de localização, tais como o formato da hora e da data, o nome dos dias da wiki, a moeda, etc., estejam de acordo com a localização do utilizador RPi; a entrada Change Timezone permite configurar o fuso horário local, para que o RPi mostre a hora e a data corretas; Change Keyboard Layout permite configurar o teclado para que as teclas digitadas no teclado físico coincidam com as que aparecem no ecrã, e a entrada Change Wi-fi Country configura o RPi para que este comunique nas frequências wi-fi corretas de acordo com as leis locais.

A entrada Change Keyboard Layout só é importante se o RPi for utilizado com um teclado que lhe está diretamente ligado. Os utilizadores ligados através do SSH não precisam de configurar o teclado.

A entrada Change Wi-fi Country deve ser utilizada se se pretender configurar uma ligação Wi-fi. Uma configuração errada pode resultar seja numa ligação não operacional, uma vez que o RPi tentará comunicar em frequências diferentes dos restantes dispositivos Wi-fi locais, seja em questões legais para o utilizador por transmitir em frequências proibidas.

  • Em 5 Interfacing Options, as entradas permitem ativar/desativar os vários serviços listados. Todos devem ser desativados, excepto os serviços SSH e/ou VNC, a interface Serial e o acesso Remote GPIO

Note que o serviço VNC só funcionará se for instalada uma IGU no sistema. Caso contrário, só poderá ser ativado o serviço SSH.

A activação do serviço SSH torna desnecessário criar o ficheiro ssh em disco, tal como descrito anteriormente. Este estará disponível em cada arranque até ser novamente desativado.

Na entrada Serial, selecione No se a login shell deve estar disponível em série e Yes se o hardware da porta-série deve ser ativado.

  • Ignore as restantes opções, exceto a opção Expand Filesystem disponível na entrada Advanced Options.
  • Saia do utilitário selecionando Finish e, quando solicitado, permita que o RPi seja reiniciado selecionando yes. Se estiver ligado via SSH, a ligação será terminada automaticamente.
  • Aguarde que o RPi reinicie completamente. Não desligue o cabo de alimentação do RPi.
  • Quando o LED verde deixar de piscar, o processo está completo. Inicie a sessão no RPi como anteriormente.

Antes de ligar o RPi à Internet, deve ser criado um novo utilizador e o utilizador predefinido deve ser eliminado. Uma vez que todas as novas instalações de SO Raspbian têm o mesmo utilizador e a palavra-passe padrão que todos podem encontrar na Internet, mantê-los disponíveis no SO é uma vulnerabilidade de segurança muito grave. Desta forma, qualquer pessoa é livre de tentar entrar no seu RPi e, tendo sucesso, assumir o controlo do sistema.

Os seguintes comandos criam um utilizador chamado newton. Podem, e devem, ser ser escolhidos outros nomes de utilizador aquando da configuração do RPi. newton está apenas a ser utilizado como exemplo

  • Crie o utilizador newton
sudo useradd newton

Introduza a palavra-passe do utilizador pi quando solicitada. Use a mesma palavra-passe que utiliza para iniciar sessão. Isto iniciará o processo de criação do utilizador onde uma nova palavra-passe para o novo utilizador será solicitada. Escolha uma nova palavra-passe, diferente da palavra-passe de utilizador pi padrão. Ao escolher a nova palavra-passe, note que:

As senhas fortes têm pelo menos 8 caracteres, uma mistura de letras maiúsculas e minúsculas, uma mistura de letras e números e incluem, pelo menos, um carácter especial, por exemplo, ! @ # ? ].

Uma palavra-passe forte é difícil de adivinhar mas deve ser fácil de lembrar. Uma palavra-passe que tem de ser escrita não é forte, por mais que sejam as suas características acima mencionadas.

Não escolha palavras-passe compostas por: qualquer palavra que possa ser encontrada num dicionário, em qualquer língua (por exemplo, avião), uma palavra de dicionário com algumas letras simplesmente substituídas por números (por exemplo, a1rplan3 ou aer0plan0), um caracter repetido ou uma série de caracteres (por exemplo, AAAAA ou 12345), uma série de caracteres de teclado (por exemplo, qwerty ou qazwsx) ou qualquer coisa que esteja escrita e guardada algures perto do seu computador

O seu nome de utilizador e a palavra-passe são dos principais mecanismos de defesa contra o acesso não autorizado e adulteração. Ter nomes de utilizador fáceis de adivinhar, senhas fracas ou que sejam conhecidas publicamente afeta gravemente a segurança dos seus dispositivos e da sua rede.

  • Adicione o novo utilizador aos grupos do sistema

Comece por identificar os grupos dos quais o utilizador pi original é membro, executando o comando:

id

O comando produzirá três listas no formato número(texto). Mantenha este output no ecrã. Escreva, mas não execute, o seguinte comando:

sudo usermod -a -G

A partir do resultado do comando anterior, selecione a lista após groups=, exceto o primeiro elemento, clicando e arrastando com o rato sobre o texto. Copie-o para a linha de comando, clicando no botão do meio do rato depois de selecionar o texto. Edite o comando atual utilizando as setas do teclado para mover o cursor e retirar os números e parênteses, mas mantendo o texto e as vírgulas. Acrescente o nome do utilizador que está a ser criado no fim do comando. O comando final deve ter o seguinte formato:

sudo usermod -a -G group1,group2,group3,group4 newton

Confirme que o utilizador foi adicionado aos grupos do sistema com sucesso executando:

id newton

Depois de groups=, deverá encontrar os mesmos grupos que acima. Não continue antes que estes surjam.

  • Saia do RPi e inicie sessão utilizando o novo utilizador
  • Apague a conta do utilizador pi

O utilizador pi padrão ainda existe no sistema. Manter esta conta ativa é uma vulnerabilidade de segurança. Apague-a executando:

sudo userdel -remove-home pi
  • A fim de configurar a rede onde o RPi será ligado, muitas vezes é útil conhecer o endereço MAC do adaptador de rede. Execute o seguinte comando:
ifconfig

Se planear ligar a experiência via cabo Ethernet, copie o campo ether na entrada eht0. Se ligar via ligação sem fios, copie o campo ether na entrada wlan0.

  • Se planear utilizar uma ligação VPN para gerir experiências controladas remotamente, é também uma boa altura para enviar os ficheiros necessários para o RPi. Ao fazê-lo, assegura que as chaves continuarão secretas, uma vez que são enviadas através do cabo que liga o seu computador ao RPi. Se utilizar o RPi com teclado e monitor, considere desligá-lo e escrever os ficheiros diretamente no cartão SD, inserindo-o num computador. A configuração VPN é altamente dependente do seu setup, pelo que deve ser completada caso a caso.
  • Se não o fizer, desligue o RPi. Espere que o LED verde no RPi pare de piscar antes de desligar a fonte de alimentação. Mova-o para a sua localização permanente, ligando-o à infraestrutura eletrónica e de rede da experiência.
  • Ligue o RPi, ligando a fonte de energia. Deve obter um endereço de IP da sua rede válido. A configuração da rede e da firewall é altamente dependente da sua infraestrutura de rede específica. Se as instruções acima foram seguidas, o RPi está configurado para aceitar ofertas de aluguer de IP DHCP. Para que o servidor de hardware e a transmissão de vídeo possam funcionar, o RPi deve ser capaz de comunicar
  • Inicie a sessão e atualize o software no RPi, executando sucessivamente os seguintes comandos:
sudo apt-get update
sudo apt-get full-upgrade

O último comando pode demorar algum tempo a completar-se. Enquanto isso, NÃO DESCONECTE O RPi DA FONTE ALIMENTAÇÃO. SE O FIZER, MUITO PROVAVELMENTE CORROMPERÁ O CARTÃO SD E TERÁ DE COMEÇAR DE NOVO.

  • Reinicie o RPi para assegurar que o software mais recente está a funcionar. Volte a entrar.
  • Instale o software necessário para o servidor de hardware e para a transmissão de vídeo.

Para o servidor de hardware, deve ser instalado o seguinte software:

sudo apt-get install openjdk-8-jre-headless librxtx-java

Para a transmissão de vídeo, podem ser utilizados vários programas. O modo recomendado é utilizar o GStreamer e as suas bibliotecas, visto que suportam o enconding de hardware de vídeo no RPi. Pode ser instalado através do seguinte comando:

sudo apt-get install gstreamer1.0-tools gstreamer1.0-plugins-ugly gstreamer1.0-plugins-good gstreamer1.0-plugins-base gstreamer1.0-plugins-bad\
gstreamer1.0-omx-rpi gstreamer1.0-omx-rpi-config gstreamer1.0-omx-generic gstreamer1.0-omx-generic-config

Se necessário, instale também o software para a ligação VPN. Por exemplo, o cliente openvpn seria instalado através do comando:

sudo apt-get install openvpn

Agora que a VPN está instalada, complete a sua configuração com os ficheiros transferidos para o RPi na última etapa.

Note que o gestor do software irá sugerir pacotes extra, na sua maioria dependências dos que foram referidos explicitamente para instalar. Aceite quaisquer pacotes extra sugeridos.

Ferramentas e utilitários de rede

A conectividade do computador onde o servidor de hardware será instalado pode ser testada e verificada através da instalação de algumas ferramentas como o nmap:

sudo apt-get install nmap

O programa nmap é utilizado para testar o acesso às portas para elab.ist.utl.pt, elab1.ist.utl.pt and elabmc.ist.utl.pt:

nmap -v -A elab.ist.utl.pt

Espera-se que as portas 443, 80, 8080, 22, e [9000..9010] estja abertas. elabmc deveria ter sido acrescentado às portas UDP para "streaming" (ver última secção).

Sugerimos a utilização do utilitário cron caso seja necessário reiniciar. Para evitar pedidos de registo simultâneos, é estabelecido um atraso de 5 minutos de acordo com a ordem da experiência. Nano é o editor eleito.

sudo crontab -e

e a seguinte linha é acrescentada para reiniciar a cada 4h e 35m da manhã (posição 7 na tabela)

0 4   *   *   *    /sbin/shutdown -r +35

Contab -l lista as tarefas a serem executadas num determinado momento.

sudo crontab -l

Instalar um certificado OpenVPN

Se o seu certificado se tornar inválido para permitir que o seu sistema entre no OpenVPN do elab, pode recuperar um recente, emitindo o seguinte comando:

echo "get ca.crt" | sftp -P2222 wpa@elab1.ist.utl.pt:/dist

Aqui deve utilizar a palavra-passe do sistema remoto elab1

Depois, deve movê-lo para o diretório OpenVPN que, que tem privilégios de administrador:

sudo mv ./ca.crt /etc/openvpn/privnet

Introduza a palavra-passe do utilizador wpa local

Para concluir, reinicie o sistema para ter efeito.

Códigos autónomos

Servidor de hardware

Agora que tem o Raspberry Pi e o Pêndulo instalados, está pronto a ligá-lo à rede do projeto World Pendulum Alliance./p>

Para tal, terá de instalar e executar uma aplicação no Raspberry. Esta aplicação chama-se "REC Hardware Server", é uma aplicação Java sendo necessário ter o JDK instalado.

Uma vez executado o "REC Hardware Server", este tentará contactar automaticamente o seu pêndulo onde é expectável encontrar a sua cadeia de identificação (por exemplo, "WP_UESC_IOS"). Se encontrar o ID esperado, ligar-se-á ao pêndulo e este deverá ganhar vida na página pública do elab. Caso contrário, surgirá uma mensagem de erro. Nesse caso, aconselhamo-lo a contactar a equipa de gestão do projeto.

O "REC Hardware Server" específico para o seu pêndulo será fornecido pelos coordenadores do projeto num ficheiro .ZIP que estará disponível numa pasta específica no servidor elab1.

Para instalar uma nova versão do "REC Hardware Server" para um pêndulo específico, deverá abrir um terminal (por exemplo, Putty) e aceder ao aparelho onde o servidor de hardware será instalado - neste caso, o RPi - e seguir estes passos:

  • Confirme se o diretório "rec-deployment" existe. Se não, crie o directório através do comando:
    mkdir ${home_directory}/rec-deployment 
    ex: mkdir /home/wpa/rec-deployment 
  • Liste os ficheiros .Zip do Servidor de Hardware:
    echo "ls *.zip" | sftp -P2222 wpa@elab1.ist.utl.pt:/dist
  • Uma vez identificado o servidor de hardware para o seu pêndulo, copie o ficheiro HardwareServerZip para o seu aparelho (Raspberry):
    echo "get ${hardwareServerZipFile} ~/rec-reployment/" | sftp -P2222 wpa@elab1.ist.utl.pt:/dist 
    ex. echo "get wpunicvraiHarwareServer_21-02-2020.zip ~/rec-reployment/" | sftp -P2222 wpa@elab1.ist.utl.pt:/dist 
  • Aceda ao directório "rec-deployment":
    cd /home/wpa/rec-deployment 
  • Descompacte os ficheiros .zip do Servidor de Hardware para o diretório "rec-deployment":
    unzip ${hardwareServerZipFile} -d ${hardwareServerAliasName}
    ex: unzip wpuesciosHardwareServer_24-01-2020.zip -d wpuescios
  • Altere para o diretório da experiência:
    cd ${hardwareServerAliasName}
    ex: cd wpuescios
  • Inicie o Servidor de Hardware::
    ./Start${AliasName}Driver.sh
    ex: ./StartwpuesciosDriver.sh

    NOTA

    O Servidor de Hardware só deve ser instalado após o procedimento de calibração descrito na página seguinte estar completo e executado com o minicom ou outro programa terminal.

    Transmissão de Vídeo

    A transmissão de vídeo pode ser feita utilizando a picamera, a câmara do RPi, ou uma câmara USB comum. Os passos seguintes foram testados com uma câmara USB. Além disso, foram concebidos para trabalhar com um servidor de transmissão de vídeo que recebe o vídeo do RPi e o reenvia a todos os clientes ligados.

    • Inicie a transmissão no RPi com o comando:
    gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=320,height=240,framerate=10/1 ! clockoverlay time-format="%x - %X" \
    ! videoconvert ! omxh264enc ! video/x-h264,profile=baseline ! h264parse ! mpegtsmux ! rtpmp2tpay ! udpsink host=HOST port=PORT async=false

    Embora seja quase certo que esteja em /dev/video0, é possível que a câmara não apareça no sistema RPi em /dev/video0. Verifique se aparece, com o seguinte comando:

    ls /dev
    

    Como resultado, a entrada do formato videoX, onde X é um número, é a localização da câmara no sistema. Edite o comando acima para que o número X seja o mesmo que o que consta no resultado do último comando.

    É possível aumentar a resolução do vídeo e a framerate alterando os campos width (largura), height (altura) e framerate no comando do exemplo acima. Os valores desse exemplo são muito conservadores mas asseguram que o fluxo de vídeo é possível, mesmo nas condições de rede mais difíceis, por gerar um fluxo de bitrate muito baixo. Note que qualquer largura, altura e framerate solicitadas precisam de ser suportadas pela câmara de vídeo, caso contrário, surgirá um erro. Edite os campos HOST e PORT para que apontem para o seu servidor de transmissão de vídeo.

    Uma vez verificado que o vídeo está a ser transmitido, este pode ser tornado permanente, alterando ligeiramente o comando para:

    nohup gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=320,height=240,framerate=10/1 ! clockoverlay time-format="%x - %X" \
    ! videoconvert ! omxh264enc ! video/x-h264,profile=baseline ! h264parse ! mpegtsmux ! rtpmp2tpay ! udpsink host=HOST port=PORT async=false &

    Isto funcionará até que o RPi ou a câmara sejam desligados.

    Instruções específicas para o projeto World Pendulum Alliance

    É necessária uma lista de portas TCP para a correta ligação à Internet entre o computador do aparelho e o servidor central.

    Para os pêndulos parceiros principais, o parâmetro HOST do comando de transmissão deve ser definido como instruído nas sessões de formação. O PORT deve ser definido como indicado na página de listagem de portas. Para cada pêndulo secundário, pode ser seguido o mesmo processo. No entanto, os parceiros devem criar uma infraestrutura de transmissão independente para a transmissão de vídeo dos pêndulos secundários.

    A fim de disponibilizar a informação necessária para que os utilizadores possam ligar-se à transmissão, os ficheiros SDP devem ser partilhados. Assim, estes podem ser independentemente abertos num software de leitor de vídeo, como o VLC, ou vistos através do pendulum client software. O ficheiro pode ser criado através da adaptação do modelo abaixo, substituindo os campos EXPERIMENT NAME e PORT pelos campos apropriados, conforme mostrado na página de listagem de portas. O campo HOST deve ser definido com o valor descrito nas sessões de formação.

    v=0
    o=- 16251185917537979632 16251185917537979632 IN IP4 EXPERIMENT NAME
    s=EXPERIMENT NAME
    i=N/A
    c=IN IP4 HOST
    t=0 0
    a=tool:vlc 3.0.8
    a=recvonly
    a=type:broadcast
    a=charset:UTF-8
    m=video PORT RTP/AVP 33
    b=RR:0
    a=rtpmap:33 MP2T/90000
    

    O ficheiro SDP deve ser criado com o mesmo nome que o indicado na página de listagem de portas. Este ficheiro deve então ser transferido para o servidor responsável pela sua disponibilização na web, conforme instruído nas sessões de formação.


    No caso de não estar a ser utilizado o ttyS0, se necessário, pode recorrer-se a um linker simbólico:

    ln -s /dev/ttyAMA0 /dev/ttyS0
    

    Iniciar automaticamente no arranque do RPi

    Para que os programas iniciem automaticamente no arranque do RPi, edite o ficheiro /etc/rc.local executando:

    sudo nano /etc/rc.local
    

    Assumindo que o servidor de hardware foi colocado na pasta indicada na seção anterior, ao adicionar as seguintes linhas ao ficheiro, antes de exit 0 e depois de fi, fará com que o RPi inicie automaticamente o servidor de hardware e a transmissão de vídeo enquanto arranca.

    sleep 120
    su USER -c "/home/USER/rec-deployment/exp_name/expDaemon.sh start &"
    su USER -c "(gst-launch-1.0 v4l2src device=/dev/video0 ! \
     video/x-raw,width=320,height=240,framerate=10/1 ! \
     clockoverlay time-format=\"%x - %X\" ! \
     videoconvert ! \
     omxh264enc ! \
     video/x-h264,profile=baseline ! h264parse ! \
     mpegtsmux ! rtpmp2tpay ! \
     udpsink host=HOST port=PORT async=false ) &"
    

    Note que os campos HOST e PORT devem ser substituídos como exemplificado acima. O campo USER deve ser alterado para corresponder à conta de utilizador criada, tipicamente wpa como previamente instruído. No caso de não estar a ser utilizado o ttyS0, se necessário, pode recorrer-se a um linker simbólico:

    ln -s /dev/ttyAMA0 /dev/ttyS0
    

    Firmware dsPIC

    Programar o dsPIC com o Raspberry Pi

    O dsPIC pode ser programado utilizando o Raspberry Pi, com a ajuda de um software programador. Ver esta página para instruções.

    Descarregar o ficheiro de firmware

    As versões oficiais de firmware disponíveis para download são apresentadas abaixo:

    Version 2021_01_96_22_08_46: File:Wp 2021 01 06 22 08 46.zip


    Página Anterior (Interfaces elétricas)
    Página Seguinte (Calibração)

    Ligações