Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Antônio_Lima

C Como criar uma GUI "redonda"?

Recommended Posts

Quero desenvolver um propeller clock usando o micro-controlador STM32F411RE e ser capaz de, por meio de uma interface, desenhar a imagem que quero exibir no pc e transmitir por bluetooth para o arm, mas não tenho nenhuma ideia de como desenvolver uma interface, ainda mais que seja redonda, como a da imagem. A ideia por trás do código do pc seria transformar tudo em uma matriz e enviar para o arm.

As linhas seriam os números de LEDs, e as colunas seriam os "ângulos" que vou acionar. Vale ressaltar que vou trabalhar com leds de uma cor só e que a imagem eu peguei de uma página que da uma explicação em como desenvolver o código do micro-controlador, mas não do PC. http://www.wittyrobo.com/povd/index.html

Enfim, alguém saberia como desenvolver algo assim usando C?

c00_p01_i01_aicte.jpg

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

não há ângulo algum aí.

é só uma matriz retangular que foi torcida.

Editado por T1000_2015
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Claro, acho que me expressei mal. O que eu quis dizer foi que não sei como desenvolver um programa no computador que exiba uma matriz "torcida" (não tenho conhecimento nenhum sobre interfaces, a únicas coisas que faço são pelo console). Gostaria de saber se tu tem alguma ideia de como posso desenvolver isso.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • boaa, acho que com isso já posso começar a treinar. valeu pela ajuda :D

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Antônio_Lima No caso, para manter o local correto, a ser exibido, calcule o tempo de giro, e a cada giro, você diminui a coordenada x, dependendo da direção do relógio, para a mensagem não rotacionar com a 'hélice'. E no caso da GUI redonda, a IDE Delphi é bem útil nessa questão.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @TYSQUARE89  Para fazer a mensagem ficar "estática" eu vou usar um sensor magnético, que irá detectar o tempo que levou para fazer uma volta, e assim calcular a velocidade da rotação. Mas não entendi a parte de diminuir a coordenada x, como assim? E sobre a IDE Delphi, já ouvi falar que ela é uma linguagem, mas só posso programar usando C. 

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Em ‎22‎/‎09‎/‎2017 às 01:14, Benjamin Breeg disse:

    xy.gif

    Mas isso só no caso de ser um que rotacione os led's em vez de um estático:

    Imagine que você acenda um led em (3,1) sendo (x,y), eventualmente o local do led ira mudar com a rotação, mesmo que a coordenada não mude, então você precisa mapear cada coordenada dos led's a fim de que a mensagem continue no mesmo lugar , sendo que o led em (4,1) será o novo (3,1). 

     

    . Delphi é uma IDE, Pascal é a linguagem usada pela IDE... Desculpe, achei que ainda iria escolher a linguagem, quando citou como criar uma GUI redonda.

     

    Agora no caso do relógio estático, é só você agrupar uma quantidade de led, tal que forme o circulo, e na linguagem C, você cria um código que mapeia esses led's com uma matriz e acenda os necessários para que apareça a mensagem que está na interface. Porém lembra-se C é diferente de C++, apenas C++ trabalha com GUI...

     

    Exemplo simples de um relógio digital ( 0 led desligado, 1 led ligado )

    int mapa relogio[4][29] = { 

    0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 },

    0 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 0 0 1 0 },

    0 0 1 0 1 0 0 1 0 1 0 0 1 0 0 0 1 0 1 0 1 1 1 0 1 0 0 1 0 },

    0 0 1 0 0 1 1 0 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 0 0 1 1 0 0 }};

     

    Texto: 10 : 15 : 20

     

    P.S: não coloquei virgula para ver melhor

     

    Editado por TYSQUARE89
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @TYSQUARE89 A minha ideia é fazer propeller clock que rotacione os leds, como o da imagem:pov_completed.jpg

    A minha ideia para exibir caracteres é criar uma matriz int texto[16][90], onde 16 é o número de leds que eu terei e 90 é o número de mudanças que posso exibir, ou seja, a cada 4 graus os leds poderão mudar de estado.

    Quanto à linguagem, conversei com o professor sobre criar a interface e ele disse que posso usar C++ e sugeriu usar o C++ Builder para isso. Tu sabe de algum outro meio pra fazer essa interface ou recomenda o C++ Builder também?

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @Antônio_Lima De fato, o C++ Builder vai facilitar demais, enfim, use ele ja que seu professor recomendou...Em questão a sua lógica, é só por em prática agora... 

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • @TYSQUARE89 Quanto à lógica, eu pensei em duas maneiras de fazer:

    1ª maneira: Criar uma imagem com 16 círculos e detectar quando o usuário faz um clique e pegar a coordenada x e y. Com isso, eu posso calcular o ângulo do clique a partir do centro da imagem e também a distância por meio de Pitágoras. Depois, - de alguma maneira que eu ainda não pensei - usar o ângulo e a distância para alterar a célula correspondente na matriz.

    2ª maneira: Criar um grid do mesmo tamanho da minha matriz (16x90) e pegar a posição do clique e alterar o valor corresponde na matriz (ainda preciso descobrir como fazer).

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Em 23/09/2017 às 18:47, Antônio_Lima disse:

    @TYSQUARE89 Quanto à lógica, eu pensei em duas maneiras de fazer:

    1ª maneira: Criar uma imagem com 16 círculos e detectar quando o usuário faz um clique e pegar a coordenada x e y. Com isso, eu posso calcular o ângulo do clique a partir do centro da imagem e também a distância por meio de Pitágoras. Depois, - de alguma maneira que eu ainda não pensei - usar o ângulo e a distância para alterar a célula correspondente na matriz.

    2ª maneira: Criar um grid do mesmo tamanho da minha matriz (16x90) e pegar a posição do clique e alterar o valor corresponde na matriz (ainda preciso descobrir como fazer).

     

     

    Como eu disse, não precisa de ângulo algum.

    Se cada seção da imagem for um objeto, ao clicar automaticamente você já sabe o X e o Y.

    Sugestão; colocar a imagem bmp e dentro de cada quadrado uma caixa de seleção ou, se quiser elaborar mais, uma forma geométrica que você mude de cor quando clica.

     

     

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×