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

From wwwelab
Jump to navigation Jump to search

EM CONSTRUÇÃO

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

Confirm that the user was successfully added to the system groups by executing:

id newton

In the output, after groups=, the same groups as above should appear. Do not proceed before they do.

  • Log out from the RPi and login using the new user
  • Delete the pi user account

The default user pi still exist in the system. Leaving this account active is a security vulnerability. Delete it by executing:

sudo userdel -remove-home pi
  • In order to configure the network where the RPi will be connected, it's often useful to know the MAC address of the network adapter. Execute the following command:
ifconfig

If planning to connect the experiment via Ethernet cable, copy the ether field on the eht0 entry of the output. If connecting via wireless connection, copy the ether field on the wlan0 entry of the output.

  • If planning to use a VPN connection to manage remotely deployed experiments, now is also a good time to send the needed files to the RPi. Doing so ensures the needed secrecy of the keys, as they are sent through the cable that connects your computer and the RPi. If using the RPi with keyboard and display, consider shutting it down and writing the files directly on the sd card by inserting it on a computer. VPN configuration is highly dependent on your setup, so it should be completed on case by case basis.
  • If not done so, shutdown the RPi. Wait for the green led on the RPi to stop blinking before disconnecting the power source. Move it to its permanent location, connecting it to experiment's electronics and network infrastructure.
  • Turn on the RPi by connecting the power source. It should obtain a valid IP adress from your network. Network and firewall configuration is highly dependent on your specific network infrastructure. If the above instructions were followed, the RPi is configured to accept DHCP IP lease offers. In order for the hardware server and the video streaming to work, the RPi must be able to communicate
  • Login into it. Update the software on the RPi by running the following commands in succession:
sudo apt-get update
sudo apt-get full-upgrade

The last command can take a while to complete. While it works, DO NOT DISCONNECT THE RPi FROM THE POWER SOURCE. IF YOU DO, YOU'LL MOST LIKELY CORRUPT THE SD CARD AND YOU'LL HAVE TO START ANEW.

  • Reboot the RPi to ensure the latest software is running. Log into it again.
  • Install the needed software for the hardware server and the video streaming.

For the hardware server, the following software should be installed:

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

For the video streaming, various software could be used. The recommend way is to use GStreamer and its libraries that support video hardware enconding on the RPi. It can be installed by the following command:

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

If needed, also install the software for the VPN connection. For example, the openvpn client would be installed by the command:

sudo apt-get install openvpn

Now that the VPN is install, complete the configuration of the VPN with the files transfered to the RPi on the last step.

Please note that the software manager will suggest extra packages, mostly dependencies of the ones explicited ordered to install. Accept any extra suggested packages.

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