Índice:

Ledboard Pi: 5 etapas (com imagens)
Ledboard Pi: 5 etapas (com imagens)

Vídeo: Ledboard Pi: 5 etapas (com imagens)

Vídeo: Ledboard Pi: 5 etapas (com imagens)
Vídeo: Object Identification & Animal Recognition With Raspberry Pi + OpenCV + Python 2024, Julho
Anonim
Ledboard Pi
Ledboard Pi
Ledboard Pi
Ledboard Pi
Ledboard Pi
Ledboard Pi

A tela Ledboard Pi é o resultado de anos de experiências, aprendizado e desenvolvimento; mas também, o resultado de ter as ferramentas certas (hardware, software, firmware) no momento certo: Raspberry Pi 4 (com Raspberry Pi 3 funciona também) com sua velocidade, memória e capacidade wireless, o maravilhoso projeto Raspberry Pi LED Matrix Display com base nas bibliotecas rpi-rgb-led-matrix e rpi-fb-matrix (para conduzir muitos painéis de LED RGB comerciais por meio de GPIO) para mostrar a saída de vídeo do Raspberry Pi em uma grande tela de matriz de LED RGB (para isso instrutível, a resolução é 96x64 usando 6 painéis sparkfun 32x32). Tudo isso é controlado por um aplicativo GUI programado usando lazarus ide em um desktop openbox muito leve instalado sobre uma imagem Raspbian Buster Lite e, finalmente, mostre tudo o que sua imaginação pode programar: um placar multi-esporte, uma sinalização digital ou um reprodutor de vídeo; não há limites. Este projeto, controlado por qualquer computador, capaz de rodar o VNC Viewer, pois o VNC Server também está instalado no Raspberry Pi 4's Rasbian Buster Lite.

A partir de amanhã, tentarei explicar em detalhes todas as etapas para fazer esse projeto funcionar.

Suprimentos

Precisamos para este projeto:

Hardware

  1. Um Raspberry Pi 3 ou melhor, Raspberry Pi 4 com sua fonte de alimentação de 5 V 2,5 A
  2. Placa de unidade de painel de matriz de LED One Electrodragon RGB para Raspberry Pi
  3. Seis painéis LED 32x32 RGB da Sparkfun
  4. Uma fonte de alimentação 40A 5v
  5. Uma moldura retangular de 3 metros de alumínio 82,5 mm x 38 mm
  6. Um corte de acrílico tamanho W 576 mm x A 384 mm
  7. Um corte de filme polarizado

Programas

  1. biblioteca hezeller rpi-rgb-led-matrix
  2. Biblioteca Adafruit rpi-fb-matrix
  3. Imagens Raspbian buster lite ou realtimepi-buster-lite
  4. Caixa aberta
  5. Para controle de pc / laptop / Raspberry Pi 3 ou 4, Real VNC Viewer para Windows ou Linux ou Raspbian
  6. Lazarus IDE para raspbian buster lite
  7. Aplicação Leboard Pi

continua…

Etapa 1: configuração do Raspberry Pi 3/4 OS Stuff

Configurando o Raspberry Pi 3/4 OS Stuff
Configurando o Raspberry Pi 3/4 OS Stuff
Configurando o Raspberry Pi 3/4 OS Stuff
Configurando o Raspberry Pi 3/4 OS Stuff
Configurando o Raspberry Pi 3/4 OS Stuff
Configurando o Raspberry Pi 3/4 OS Stuff

Assim que tivermos as peças de hardware, precisamos obter as coisas do sistema operacional:

Primeiro, devemos obter o sistema operacional para Raspbian 3/4. no meu caso, decido usar o buster lite em tempo real; mas você também pode usar a versão Raspbian Buster Lite. Então você precisa transferir essa imagem para o cartão micro SD usando balenaEtcher.

Então, precisamos conectar um monitor HDMI e um teclado USB e um cabo de rede cat5 conectado a

Raspberry Pi 3/4 RJ45; assim, podemos pesquisar no Raspberry Pi 3/4 IP para fazer a configuração inicial: rede IP, com e sem fio. Usei o scanner de ip avançado. Agora, por meio do raspi-config, ative o servidor SSH para conectar remotamente usando Putty para concluir o resto da configuração do Ledboard Pi.

Agora, sobre a versão lite, vamos instalar um ambiente de desktop leve com openbox

sudo apt-get install --no-install-recommends xserver-xorg x11-xserver-utils xinit openbox

Então, instale lightdm (gerenciador de login)

sudo apt-get install lightdm

Ative realvncserver em raspi-config

sudo raspi-config> Opções de interface> vncserver> ativar vncserver

Aqui, uma vez que o vnceserver é ativado, vamos usar o VNC Viewer. Neste, o desktop a configurar na conexão é 0, ex. Se o IP for 192.168.100.61, a conexão será "192.168.100.61:0"

Precisamos de um link entre o computador / laptop de controle e o Ledboard Pi, então o samba precisa ser instalado para transferência de código-fonte, arquivos, fotos, vídeos, etc

sudo apt-get install samba samba-common-bin -y

Certifique-se de que seu usuário seja o proprietário do caminho que você está tentando compartilhar via Samba

sudo chown -R pi: pi / home / pi / share

Faça uma cópia do arquivo de compartilhamento do samba original

sudo cp /etc/samba/smb.conf /etc/samba/smb.bak

Edite o arquivo de configuração do samba

sudo nano /etc/samba/smb.conf

Deixe o grupo de trabalho como GRUPO DE TRABALHO (ou nomeie-o como desejar)

#wins support = no

para ganhar suporte = sim

Então ….

#Este é o nome da pasta compartilhada que aparecerá quando você navegar

[ledboardpi] comment = ledboardPi compartilhar pasta caminho = / home / pi / Compartilhar criar máscara = 0775 máscara de diretório = 0775 somente leitura = não navegável = sim público = sim forçar usuário = pi somente convidado = não

Agora, podemos acessar a pasta "home / pi / share" no caminho / home / pi de outro computador.

Para gerenciar o sistema de arquivos usando um aplicativo gui, vamos instalar o pcmanfm

sudo apt-get install pcmanfm

Etapa 2: Baixar, configurar e executar as bibliotecas necessárias do painel de LED RGB

Image
Image
Baixar, configurar e executar as bibliotecas necessárias do painel de LED RGB
Baixar, configurar e executar as bibliotecas necessárias do painel de LED RGB
Download, configuração e execução das bibliotecas necessárias do painel de LED RGB
Download, configuração e execução das bibliotecas necessárias do painel de LED RGB

Primeiro, instale os pré-requisitos

sudo apt-get update

sudo apt-get install -y build-essential git libconfig ++ - dev sudo apt-get install libgraphicsmagick ++ - dev libwebp-dev -y sudo apt-get install python2.7-dev python-pillow -y

Em seguida, baixe e compile hzeller rpi-rgb-led-matrix

wget

descompacte master.zip cd rpi-rgb-led-matrix-master / && make

Além disso, baixe e instale rpi-fb-matrix

Você deve clonar este repositório com a opção recursiva para que os submódulos necessários também sejam clonados. Execute este comando:

git clone --recursive

faço

Observação: substitua a biblioteca rpi-rgb-led-matrix baixada anteriormente na pasta rpi-fb-matrix

Agora, vamos testar essas bibliotecas, lembre-se, rpi-fb-matrix depende de rpi-rgb-led-matrix

cd rpi-fb-matrix

cd rpi-rgb-led-matrix sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" --led- no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh --led-brilho = 80 -D 0 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh - led-brilho = 80 -D 1 runtext.ppm sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" - -led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh --led-brilho = 80 -D 2 runtext.ppm sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led -show-refresh --led-glow = 80 -D 3 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = " regular "--led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh --led-brilho = 80 -D 4 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh --led-brilho = 80 -D 5 sudo./demo --led-chain = 3 --led-parallel = 2 --led- slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh --led-brilho = 80 -D 6 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh --led-brilho = 80 -D 7 sudo./demo --led-chain = 3 --led-parallel = 2 --led- slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh --led-brilho = 80 -D 8 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh --led-brilho = 80 -D 9 sudo./demo --led-chain = 3 --led-pa rallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" --led-no-hardware-pulse --led-pwm-lsb-nanosegundos = 180 --led-show-refresh --led-brilho = 80 -D 10 sudo./demo --led-chain = 3 --led-parallel = 2 --led-slowdown-gpio = 4 --led-gpio-mapping = "regular" - led-no-hardware-pulse --led-pwm-lsb-nanossegundos = 180 --led-show-refresh --led-brilho = 80 -D 11

Tudo funciona bem.

Agora, a biblioteca rpi-fb-matrix. Isso mostrará uma parte (96x64) da tela em painéis LED RGB baseados em Ledboard Pi

cd / home / pi / rpi-fb-matrix

LEMBRE-SE, copie a última versão da biblioteca rpi-rgb-led-matrix para a pasta rpi-fb-matrix. MUITO IMPORTANTE

limpar

faça tudo

Esses últimos comandos, para as bibliotecas rpi-fb-matrix e rpi-rgb-led-matrix…..

Para a matriz rpi-fb é necessária uma configuração correta de matrix.cfg (renomeei davenew.cfg para este instrutível), leia, analise para projetos personalizados com número diferente de painéis de LED RGB …

Configuração da tela de matriz de LED // Define toda a largura e altura da tela em pixels. // Esta é a largura e altura _total_ do retângulo definido por todos os // painéis encadeados. A largura deve ser um múltiplo da largura do pixel do painel (32), // e a altura deve ser um múltiplo da altura do pixel do painel (8, 16 ou 32). display_width = 96; display_height = 64; // Defina a largura de cada painel em pixels. Deve ser sempre 32 (mas pode // em teoria ser alterado). largura_do_painel = 32; // Defina a altura de cada painel em pixels. Normalmente é 8, 16 ou 32. // NOTA: Cada painel no visor _deve_ ter a mesma altura! Você não pode misturar // painéis de 16 e 32 pixels de altura, por exemplo. altura_do_painel = 32; // Defina o número total de painéis em cada cadeia. Conte quantos // painéis estão conectados e coloque esse valor aqui. Se você estiver usando // várias cadeias paralelas, conte cada uma separadamente e escolha o maior // valor para esta configuração. comprimento_cadeia = 3; // Defina o número total de cadeias paralelas. Se estiver usando o Adafruit HAT, você // pode ter apenas uma cadeia, portanto, mantenha o valor 1. O Pi 2 pode suportar até // até 3 cadeias paralelas, consulte a biblioteca rpi-rgb-led-matrix para obter mais informações: // https://github.com/hzeller/rpi-rgb-led-matrix#chaining-parallel-chains-and-coordinate-system parallel_count = 2; // Configure cada painel de matriz de LED. // Este é um array bidimensional com uma entrada para cada painel. A matriz // define a grade que subdividirá a exibição, portanto, por exemplo, uma exibição // de tamanho 64x64 com painéis de 32x32 pixels seria uma matriz 2x2 de configurações de painel. // // Para cada painel, você deve definir a ordem em que está dentro de sua cadeia, ou seja, // o primeiro painel em uma cadeia é pedido = 0, o próximo é pedido = 1, etc. Você pode // também definir um rotação para cada painel para levar em conta as mudanças na orientação do painel // (como quando 'serpentea' uma série de painéis ponta a ponta para fios mais curtos). // // Por exemplo, a configuração abaixo define esta exibição em grade de painéis e // sua fiação (começando no painel superior direito e serpenteando para a esquerda, para baixo e // para a direita no painel inferior direito): // _ _ _ / / | Painel | | Painel | | Painel | // | pedido = 2 | <= | pedido = 1 | <= | pedido = 0 | <= Cadeia 1 (de Pi) // | girar = 0 | | girar = 0 | | girar = 0 | // | _ | | _ | | _ | // _ _ _ // | Painel | | Painel | | Painel | // | pedido = 2 | <= | pedido = 1 | <= | pedido = 0 | <= Cadeia 2 (de Pi) // | girar = 0 | | girar = 0 | | girar = 0 | // | _ | | _ | | _ | // // Observe que a cadeia começa no canto superior direito e serpenteia até o canto inferior // direito. A ordem de cada painel é definida como sua posição ao longo da cadeia, // e a rotação é aplicada aos painéis inferiores que são invertidos em relação // aos painéis acima deles. // // Não mostrado, mas se você estiver usando cadeias paralelas, você pode especificar para cada entrada // na lista de painéis um 'parallel = x;' opção onde x é o ID de uma // cadeia paralela (0, 1 ou 2). painéis = (({ordem = 2; girar = 0; paralelo = 0;}, {ordem = 1; girar = 0; paralelo = 0;}, {ordem = 0; girar = 0; paralelo = 0;}, { ordem = 2; girar = 0; paralelo = 1;}, {ordem = 1; girar = 0; paralelo = 1;}, {ordem = 0; girar = 0; paralelo = 1;})) // Por padrão, o A ferramenta rpi-fb-matrix irá redimensionar e reduzir a tela // para se ajustar à resolução dos painéis de exibição. No entanto, você pode, em vez disso, obter // uma cópia de pixel perfeita específica de uma região da tela, definindo as coordenadas x, y // de pixel da tela abaixo. Um retângulo do tamanho exato da exibição // (ou seja, largura_de_ exibição x altura de exibição de pixels) será copiado da tela // começando nas coordenadas x, y fornecidas. Comente isso para desativar // este comportamento de corte e, em vez disso, redimensione a tela para a exibição de matriz. cultura_origem = (0, 0)

Etapa 3: Compilação, configuração e teste do aplicativo GUI do Ledboard Pi

Image
Image
Compilando, configurando e testando o aplicativo GUI do Ledboard Pi
Compilando, configurando e testando o aplicativo GUI do Ledboard Pi
Compilando, configurando e testando o aplicativo GUI do Ledboard Pi
Compilando, configurando e testando o aplicativo GUI do Ledboard Pi

Precisamos de um IDE de programação para criar um aplicativo GUI (Ledboard Pi). Então, eu escolho "Lazarus IDE" muito semelhante ao Delphi / C ++ Builder que usei no sistema operacional Windows

sudo apt-get install lazarus-ide

Depois de instalado, basta executar:

Lazarus-ide

Abrindo o projeto Ledboard Pi, compile para obter o aplicativo Ledboard Pi. Antes de abrir este aplicativo, crie um diretório denominado LEDBOARD_APP no caminho / home / pi e copie o aplicativo Ledboard Pi para este

Agora, vamos adicionar um link no menu do botão direito do openbox. Como, precisamos do obmenu, também do xterm usando o link do Putty, então:

sudo apt-get install obmenu xterm

Agora, podemos usar o terminal e o obmenu dentro da janela do vncviewer:

  1. Chame o xterm no menu do botão direito
  2. Abra o obmenu do xterm

Adicionar novo item: Ledboard Pi

  1. Escolha um novo item
  2. nomeie-o Ledboard Pi
  3. execute sudo nice -n -15 / home / pi / LEDBOARD_APP / LEDBOARD
  • Baixe o "horn. WAV" e, em seguida, usando o local do samba vinculado à rede "\ ledboardpi / ledboardpi \", copie e renomeie para o ambiente realtimePi como "horn.wav". Este arquivo, uma vez renomeado, deve ser copiado para a pasta / home / pi.
  • Feito, você deve ser capaz de executar o Ledboard Pi tão bem quanto você vê em vídeos e fotos.

Etapa 4: instalação e configuração do ponto de acesso WiFi

Instalação e configuração do ponto de acesso WiFi
Instalação e configuração do ponto de acesso WiFi
Instalação e configuração do ponto de acesso WiFi
Instalação e configuração do ponto de acesso WiFi
Instalação e configuração do ponto de acesso WiFi
Instalação e configuração do ponto de acesso WiFi
Instalação e configuração do ponto de acesso WiFi
Instalação e configuração do ponto de acesso WiFi

Este projeto foi projetado para ser executado usando o visualizador realvnc de um laptop conectado sem fio ao Raspberry Pi 3/4. Portanto, esta é a etapa final para fazê-lo funcionar e dizer "hasta la vista baby" para o pesadelo conectado.

Configuração de software

sudo apt-get update

sudo apt-get install hostapd isc-dhcp-server

Servidor DHCP

Seja sábio e sempre faça um backup da configuração padrão

sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.default

Edite o arquivo de configuração padrão

sudo nano /etc/dhcp/dhcpd.conf

Comente as seguintes linhas …

opção nome de domínio "exemplo.org";

opção de servidores de nomes de domínio ns1.example.org, ns2.example.org;

ler:

#option domain-name "example.org";

#option domain-name-servers ns1.example.org, ns2.example.org;

… E descomente esta linha

#authoritative;

… ler:

autoritário;

… Role para baixo na parte inferior do arquivo e escreva as seguintes linhas:

sub-rede 192.168.42.0 máscara de rede 255.255.255.0 {

intervalo 192.168.42.10 192.168.42.50; opção de endereço de transmissão 192.168.42.255; opção de roteadores 192.168.42.1; default-lease-time 600; tempo máximo de locação 7200; opção nome de domínio "local"; opção de servidores de nomes de domínio 8.8.8.8, 8.8.4.4; }

Vamos configurar wlan0 para IP estático

Primeiro, desligue-o …

sudo ifdown wlan0

… Mantenha-o seguro e faça um arquivo de backup:

sudo cp / etc / network / interfaces /etc/network/interfaces.backup

… Edite o arquivo de interfaces de rede:

sudo nano / etc / network / interfaces

… edite de acordo para ler:

diretório-fonte /etc/network/interfaces.d

auto lo iface lo inet loopback iface eth0 inet dhcp allow-hotplug wlan0 iface wlan0 inet endereço estático 192.168.42.1 máscara de rede 255.255.255.0 post-up iw dev $ IFACE set power_save off

… Feche o arquivo e atribua um IP estático agora

sudo ifconfig wlan0 192.168.42.1

Feito…

Hostapd

Crie um arquivo e edite-o:

sudo nano /etc/hostapd/hostapd.conf

Modifique o ssid com um nome de sua escolha e wpa_passphrase para uma autenticação WiFi

interface = wlan0

ssid = LedboardPi hw_mode = g channel = 6 macaddr_acl = 0 auth_algs = 1 ignore_broadcast_ssid = 0 wpa = 2 wpa_passphrase = davewarePi wpa_key_mgmt = WPA-PSK wpa_pairwise = TKIP rsn_pairwise = CCMP

Vamos configurar a tradução do endereço de rede

Crie um arquivo de backup

sudo cp /etc/sysctl.conf /etc/sysctl.conf.backup

edite o arquivo de configuração

sudo nano /etc/sysctl.conf

… Retire o comentário ou adicione ao final:

net.ipv4.ip_forward = 1

#… E ative-o imediatamente:

sudo sh -c "echo 1> / proc / sys / net / ipv4 / ip_forward"

… Modifique o iptables para criar uma tradução de rede entre eth0 e a porta wlan0 wlan0

sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELACIONADO, ESTABELECIDO -j ACEITAR sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACEITAR

… faça isso acontecer na reinicialização executando o runnig

sudo sh -c "iptables-save> /etc/iptables.ipv4.nat"

… e editando novamente

sudo nano / etc / network / interfaces

… Anexando no final:

up iptables-restore </etc/iptables.ipv4.nat

Nosso arquivo / etc / network / interfaces agora terá a seguinte aparência:

diretório-fonte /etc/network/interfaces.d

auto lo

iface lo inet loopback allow-hotplug eth0 iface eth0 inet endereço estático 192.168.100.61 netmask 255.255.255.0 gateway 192.168.100.1 allow-hotplug wlan0 iface wlan0 inet endereço estático 192.168.42.1 máscara de rede 255.255.255.0 rede 192.168.42.0 transmissão 192.168.42.255- diretório /etc/network/interfaces.d

Vamos testar nosso ponto de acesso executando:

sudo / usr / sbin / hostapd /etc/hostapd/hostapd.conf

Seu ponto de acesso está instalado e funcionando: tente se conectar a ele de um computador ou smartphone. Ao fazer isso, você também deve ver alguma atividade de registro em seu terminal. Se você estiver satisfeito, pare com CTRL + C

Vamos limpar tudo: sudo service hostapd start sudo service isc-dhcp-server start

… e certifique-se de que estamos funcionando:

sudo service hostapd status

sudo service isc-dhcp-server status

… Vamos configurar nossos daemons para iniciar no momento da inicialização:

sudo update-rc.d hostapd enable

sudo update-rc.d isc-dhcp-server habilitar sudo systemctl desmascarar hostapd sudo systemctl desmascarar isc-dhcp-server

… Reinicie o pi

sudo reboot

Agora você deve ser capaz de ver seu pi WiFi, conectar-se a ele e acessar a Internet. Como uma comparação rápida, o streaming de vídeos de 4k consumirá cerca de 10% da CPU pi, então … use-o de acordo.

Como um bônus, se você quiser verificar o que está acontecendo em seu ponto de acesso WiFi, verifique o arquivo de registro:

tail -f / var / log / syslog

Etapa 5:

Imagem
Imagem
Imagem
Imagem
Imagem
Imagem

O caso.

Projeto

Para esta parte, usei o programa de design 3D Sketchup. Projeto 3D da caixa de alumínio Ledboard Pi

Para isso, utilizei perfis retangulares comuns de alumínio de 82,5 mm x 38 mm, alguns ângulos e alguns parafusos. O apoio foi fundado pela minha mãe na rua, desperdiçado. Possui rodas conforme mostrado nas fotos.

Recomendado: