Skip to content

A biblioteca oficial para se fazer um Painel personalizado com software DSW painel pro

License

Notifications You must be signed in to change notification settings

Valdemir-DSW/DSW-painel-arduino-lib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

site ofc > https://dsw-wheel.rf.gd/

discord > https://discord.gg/8cFE527m9p

DSW-painel-arduino-lib

A biblioteca oficial para se fazer um Painel personalizado para jogos de corrida com software DSW painel pro obtido em > https://dsw-wheel.rf.gd/baxada.html?i=1

baixe o arquivo ZIP e coloque sua ide arduino de preferência 1.8.x na nova atualização está funcionando corretamente no IDE V2.x.x

nossa biblioteca é oficial no gerenciador de bibliotecas do IDE veja image

pode instalar por aí normal!


Espere... espere... detenham a contagem ! caso você não conseguiu conectar a placa no sofware novo ,no "void setup" coloque o comando "Serial.begin(115200);"

image


ela é simples apenas 3 funções

".vai()" deve ser chamada só uma vez para iniciar ela

".atualizar()" vai procurar por atualizações lá no aplicativo

".puxa( valor de 0 a 19)" para você puxar os valores dos slots configurados no aplicativo mas lembre que no arduino slots começam de 0 a 19 e no software de 1 a 20 ou seja se você configurou o slot 14 aqui no arduíno você vai ter que colocar o número 13 para puxar ele

veja um exemplo para fazer um shift light

#include <dswpainelpro.h>

DSWPainelPro dsw;

void setup() {

    dsw.vai();
    pinMode(13, OUTPUT); // Configura o pino como saída
}

void loop() {
    dsw.atualizar(); // Atualiza os valores Com o que tiver disponível 
    
    // Obtém o valor do slot 0 e imprime
    String value = dsw.puxa(0);
   int intensity = value.toInt();
   int libata = 0;
   if (intensity >= 1244){
         libata = 255;
   }else{
     libata = 0;
   }
    
    // Ajusta a intensidade do LED
    analogWrite(13, libata);

    delay(1); // Aguarde um tanto 
}

você deverá colocar o slot 1 para ser RPM e isso vai funcionar quando o giro passar 1244 ele vai acender aquele LED que fica na porta 13 do arduino

novas atualizações novas funções ! V 1.2.4

cmd < um sistema de envio de comandos foi adicionado percebemos a gente precisava mudar variaveis toda hora e ficar enviando o código novamente então desenvolvemos esse sistema bem simples novas funções foram adicionadas observe. OBS . Ainda é necessário chamar a função " dsw.atualizar(); " para que o sistema se atualize !

para iniciar o sistema de CMD é bem simples chame essa funçao no setup " dsw.cmd_vai(comandos, numComandos);" passando uma listagem de comandos o número de comandos existentes lembrando que obrigatoriamente todo o comando deve começar com uma " / " se não ele não vai funcionar!

para você poder puxar o valor de um comando atual você pode utilizar "dsw.cmd_puxada("/led")" como nesse exemplo passando o nome do comando que ele vai retornar um float

outro problema surgiu como vamos saber quando o comando for validado ? então fizemos um sistema de chamadas defina "dsw.cmd_chamarisco()" passando uma função que você vai criar no código que ela vai ser chamada toda vez que um comando for validado ! ela vai passar 2 variáveis uma de "comando" string e um int do "valor" o que você pode fazer para saber qual comando foi enviado observe o exemplo abaixo que também está nos exemplos da biblioteca

#include "dswpainelpro.h"

DSWPainelPro dsw;

// Função de callback que será chamada quando um comando for recebido
void meuCallback(String command, int valuer) {
  /*
  essa disponibiliza de 2 variáveis uma do comando que foi validado e um valor inteiro do valor
  pode ver que logo abaixo a gente verificou se o comando é "/led" e depois foi dado outro exemplo de como usar o comando
  ""cmd_puxada""  que retorna um valor float do comando selecionado dentro dele por uma string 
  Apenas para exemplificar mas como a gente já precisa do valor como inteiro a gente podia apenas usar
  ""valuer"" aqui no caso que foi definido com a variável de retorno de valor do callback
  >PLUS esse CMD nao necessita realmente do proprietário dentro do aplicativo o do próprio Arduino IDE ele já funcionará
  */

   if (command == "/led"){
      analogWrite(13, (int)dsw.cmd_puxada("/led"));
      /*
aproveitando o embalo vamos apresentar a função ""slynky"" que serve para você fazer um retorno personalizado para o prompt de comando
você pode enviar qualquer string de apenas  strings
      */
   dsw.slynky(" o valor do LED foi atualizado com sucesso!! > exemplo de uso da função slynky !!<");
   
   }
}

void setup() {
   
    pinMode(13, OUTPUT); // Configura o pino 13 como saída (Esse pino Além de ser o pino digital 13 também é conectado a um LED que tem a letra "L" na placa )
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
    String comandos[] = {"/start", "/stop", "/reset","/led"};
    int numComandos = 4;
    // inicia a funcionalidade do prompt de comando !
    // definindo os comandos numa lista e o número de comandos
    dsw.cmd_vai(comandos, numComandos);
    ///////////////////////////////////////////////////////////////////////////////////////////////////////////////
    // Registra a função de callback
    // esse "callback" é uma função que você pode declarar que quando um comando for validado ou seja o software
    // enviou um comando que existe ele irá chamar uma função se você quiser claro você pode ver abaixo que foi definido uma função
    //""meuCallback"" que nesse código foi criado no início
    dsw.cmd_chamarisco(meuCallback);
}

void loop() {
  // atualiza os valores mais recentes enviados do Software
    dsw.atualizar();
}

outro problema surgiu e nós resolvemos após enviar um comando processaria vai tudo funcionar até você desligar placa ! Quando ligar novamente todas as configurações feitas vão ser perdidas então como resolver esse problema adicionamos um sistema de manejamento de EEPROM !

Observe é fácil de utilizar

basta iniciar dsw_eeprom "dsw_eeprom eepromManager(variaveis, tipos, 2);" passando uma listagem para ele das variáveis uma listagem dos tipos e o número de variáveis que você colocou a listagem de tipos na mesma ordem da listagem das variáveis você vai colocar uma string "i" ou "f" para dizer a tipologia inteiro ou float depois tem 2 funções que vão fazer o sistema salvar ou carregar ao salvar e carregar ele faz o salvamento e o carregamento de todas as variáveis ao mesmo tempo

salvar > eepromManager.eeprom_salvar();

carregar > eepromManager.eeprom_puxar();

veja um pequeno exemplo completo!

#include "dswpainelpro.h"

// Variáveis globais para serem armazenadas na EEPROM ( as variáveis que vamos utilizar no nosso exemplo )
int contador = 1234;    // Exemplo de um inteiro
float temperatura = 23.5; // Exemplo de um float

void setup() {
    // Array de variáveis que serão salvas ( aqui vamos colocar o nome das variáveis que nós vamos querer trabalhar)
    void* variaveis[] = { &contador, &temperatura };
    // Array com os tipos dessas variáveis ('i' para int, 'f' para float) | ( faça com respectividade ou seja a definição deve estar na mesma ordem que você definiu o nome das variáveis)
    char tipos[] = { 'i', 'f' };
    // Instancia o objeto para manipular a EEPROM( agora basta chamar a biblioteca com os dados que nós temos definindo nessa ordem a lista de variáveis lista de tipos e também coloque o valor da quantidade de variáveis que você definiu como pode observar nós temos 2 um número 2 foi colocado)
    dsw_eeprom eepromManager(variaveis, tipos, 2);
//=========================================================================================================================================
    // Salva os valores na EEPROM
    eepromManager.eeprom_salvar();
    // toda vez que ela for chamada ela vai pegar o valor das variáveis e salvar na eeprom mesmo que o Arduino for desligado os valores não são perdidos
//=========================================================================================================================================
    // Puxa os valores da EEPROM para as variáveis
    eepromManager.eeprom_puxar();
    // toda vez que acionada ela vai pegar aqueles valores que estão salvo na eeprom e redefinir eles nas variáveis respectivas, aquelas que foram definidas no início do código obvio
//=========================================================================================================================================
                                                                                                                                        /*
sugestão de uso<
você pode usar em conjunto do CMD inclusive foi feito para isso no caso !
Ao receber um novo comando e processado utilize essa biblioteca para salvar
os comandos após processar os comandos chame a função
                        {.eeprom_salvar();}
que ela vai fazer o salvamento e  na função "setup" chame
                        {.eeprom_puxar();}
Que toda vez que o arduino religar ele vai puxar o valor das variáveis na última salvação!
                                                                                                                                        */
}

void loop() {
    // Não é necessário fazer nada no loop para este exemplo
}

essas foram as novas funcionalidades adicionais colocamos também mais exemplos você pode ir no menu de exemplos do seu arduínoIDE e verá vários exemplos utilizando o comando e a EEPROM ao mesmo tempo utilizando o SERVOS também !

obs > tem uma função que pode ser muito útil nos testes "dsw.slynky("oi");" slynky pode ser chamada junto a uma string ela vai fazer um log, se você estiver com "cmd" ou "serial view" do arduino IDE aberto na hora que ela for acionada poderá ser visto o que ela enviou!

About

A biblioteca oficial para se fazer um Painel personalizado com software DSW painel pro

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages