Índice:
- Suprimentos
- Etapa 1: configuração do Raspberry Pi 3/4 OS Stuff
- Etapa 2: Baixar, configurar e executar as bibliotecas necessárias do painel de LED RGB
- Etapa 3: Compilação, configuração e teste do aplicativo GUI do Ledboard Pi
- Etapa 4: instalação e configuração do ponto de acesso WiFi
- Etapa 5:
Vídeo: Ledboard Pi: 5 etapas (com imagens)
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-03 03:03
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
- Um Raspberry Pi 3 ou melhor, Raspberry Pi 4 com sua fonte de alimentação de 5 V 2,5 A
- Placa de unidade de painel de matriz de LED One Electrodragon RGB para Raspberry Pi
- Seis painéis LED 32x32 RGB da Sparkfun
- Uma fonte de alimentação 40A 5v
- Uma moldura retangular de 3 metros de alumínio 82,5 mm x 38 mm
- Um corte de acrílico tamanho W 576 mm x A 384 mm
- Um corte de filme polarizado
Programas
- biblioteca hezeller rpi-rgb-led-matrix
- Biblioteca Adafruit rpi-fb-matrix
- Imagens Raspbian buster lite ou realtimepi-buster-lite
- Caixa aberta
- Para controle de pc / laptop / Raspberry Pi 3 ou 4, Real VNC Viewer para Windows ou Linux ou Raspbian
- Lazarus IDE para raspbian buster lite
- Aplicação Leboard Pi
continua…
Etapa 1: configuração do 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
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
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:
- Chame o xterm no menu do botão direito
- Abra o obmenu do xterm
Adicionar novo item: Ledboard Pi
- Escolha um novo item
- nomeie-o Ledboard Pi
- 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
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:
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:
Howto: Instalando Raspberry PI 4 Headless (VNC) com Rpi-imager e imagens: 7 etapas (com imagens)
Howto: Instalando Raspberry PI 4 Headless (VNC) com Rpi-imager e imagens: Eu pretendo usar este Rapsberry PI em um monte de projetos divertidos em meu blog. Sinta-se à vontade para dar uma olhada. Eu queria voltar a usar meu Raspberry PI, mas não tinha um teclado ou mouse no meu novo local. Já fazia um tempo desde que configurei um Raspberry
Gesture Hawk: robô controlado por gestos manuais usando interface baseada em processamento de imagens: 13 etapas (com imagens)
Gesture Hawk: Robô controlado por gestos manuais usando uma interface baseada em processamento de imagem: Gesture Hawk foi apresentado no TechEvince 4.0 como uma interface homem-máquina baseada em processamento de imagem simples. Sua utilidade reside no fato de que nenhum sensor adicional ou vestível, exceto uma luva, é necessário para controlar o carro robótico que funciona em diferentes
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
Salvando suas imagens para sua tarefa: 4 etapas (com imagens)
Salvando suas imagens para sua tarefa: 1. Abra um novo documento do Google e use esta página para proteger suas imagens.2. Use ctrl (control) e " c " chave para copy.3. Use ctrl (control) e " v " chave para colar
Fazendo imagens sem costura horizontal ou verticalmente apenas (para "The GIMP").: 11 etapas (com imagens)
Fazendo imagens sem costura horizontalmente ou verticalmente apenas (para "The GIMP") .: Se você tentar o plug-in "Make seamless" no GIMP, ele tornará a imagem contínua tanto horizontal quanto verticalmente ao mesmo tempo. Ele não permitirá que você faça isso perfeito em apenas uma dimensão. Este instrutível irá ajudá-lo a fazer ima