“Um, dois, três - queime a árvore de Natal!” Ou meu primeiro olhar para o pequeno controlador CANNY 3

"Ano Novo" são tangerinas, Olivier, fins de semana e, claro, presentes.

Como você provavelmente já adivinhou, de repente eu me tornei o proprietário do microcontrolador CANNY 3 Tiny. É verdade que não gosto muito de eletrônicos DIY e da última vez que tentei conectar algo ao controlador há quase sete anos, quando realizava a iluminação de fundo para a salsa usando o clone do Arduino . Mas o bem não desaparece? Ainda devemos ver que tipo de animal é esse.

Portanto, de acordo com o site dos desenvolvedores, seus produtos são amplamente utilizados e até instalados no KAMAZ participando do rally Dakar. Ao mesmo tempo, a principal característica de seus controladores é que, para programação, você não precisa escrever uma única linha de código. Todo o programa é desenvolvido como um diagrama de blocos. Como uma pessoa longe do mundo DIY, fiquei muito intrigado.

E tudo ficaria bem, mas há um problema. No ano passado, eu sinceramente queria comprar um par de caminhões Dakarovsky KAMAZ, mas não consegui descontos com desconto na Black Friday. Então, de alguma forma, precisamos sair dessa situação de maneira simples e elegante.

Neste artigo, conectaremos o botão e o LED piranha vermelho ao controlador, após o qual os programamos para que o LED acenda e apague pressionando o botão.

Quer se juntar à diversão desenfreada do Ano Novo? Então você é bem-vindo sob gato.



A propósito, em Habré já havia um artigo sobre os controladores CANNY , mas primeiro havia outro controlador lá e, em segundo lugar, o software para desenvolvimento de programas estava desatualizado a partir desse momento. Como resultado, levei cerca de uma hora para descobrir como piscar o LED verde embutido no controlador. É em parte por isso que decidi compartilhar com você minhas tentativas de "coibir" o controlador. E em parte só porque gosto de escrever em Habr, quando tenho tempo livre.

Antes de prosseguirmos, considero meu dever alertar os leitores. Apesar de este artigo ser apresentado como um "tutorial", não sou especialista em microeletrônica ou programação. Vou compartilhar o que consegui descobrir para economizar seu tempo.

Isto é o que o artigo irá discutir:

Parte I: Desembalando e Familiarizando-se
Parte II: Conectando o Circuito
Parte III: Programação
Parte IV: Conclusão

Parte I: Desembalando e Familiarizando-se


Para começar, é necessário dizer pelo menos algumas palavras sobre o nosso herói do artigo. O pequeno controlador CANNY 3 é a menor família de controladores CANNY. Os irmãos mais velhos CANNY 3 minúsculo - os controladores das séries CANNY 7 e CANNY 5 podem trabalhar com o barramento CAN do carro. Nosso irmão mais novo, assim como meu carro antigo de Zhiguli, não sabe nada sobre o ônibus CAN e vive em paz.

Para mais informações sobre o controlador, consulte a seção Wiki correspondente. Os desenvolvedores também têm uma seção no fórum , graças à qual finalmente descobri como configurar os registros do controlador para entrada e saída.

Mas retornaremos aos problemas de programação mais tarde. Vamos finalmente olhar para um presente inesperado.



Abrindo a caixa, senti uma breve sensação de ternura. O controlador é realmente pequeno. Perdoe os fãs que me perdoam comparações inadequadas, mas ele é quase como "bebê Yoda".



De acordo com as lojas on-line, o controlador possui duas opções de configuração: sem bloco de terminais e chicote, assim como com eles. Dada a minha curvatura em termos de "algo de solda", estou muito feliz por ter recebido uma versão com um bloco de terminais e um chicote.

Vou esconder mais algumas fotos do controlador e do cinto sob o spoiler.

Mais fotos




Parte II: Conectando o Circuito


Como eu disse, conectaremos um LED ao controlador (no nosso caso, "piranha"), mas qualquer um é possível (eu simplesmente não tinha outro). Controlaremos o LED usando o botão O algoritmo de operação é o seguinte: uma vez pressionado o botão e o LED aceso, novamente pressionado é desligado.

Vamos descrever brevemente os recursos dos dias importantes do controlador do nosso caso:

  1. Vamos alimentar o controlador a partir do carregador microUSB (no meu caso 5V, 1 A);
  2. O controlador possui 6 pinos programáveis, além dos pinos “+” e “-”;
  3. As saídas programáveis ​​podem ser configuradas como uma "entrada" ou como uma saída;
  4. A corrente máxima na saída dos terminais controlados é de 100 mA;
  5. As conclusões têm modos diferentes, incluindo o PWM, mas hoje não iremos tão fundo.

Tentei fazer isso para que você pudesse entender minha idéia simples e até colocar o KiCad para desenhar pelo menos algum esboço.

Para ser sincero, não sou bom em tais assuntos e vejo o KiCad pela primeira (ou segunda) vez na minha vida. Portanto, se você encontrar erros, informe-me para que eu possa corrigi-lo.





Como você espera, entendemos pelos diagramas que em nosso projeto usaremos: o próprio controlador, uma placa de ensaio, um resistor limitador de corrente de 80 Ohms, um botão semelhante ao KLS7-TS6601-5.0-180 e um LED semelhante ao BL-FL7600UEC, mas na verdade você pode substitua-os pelo que estiver ao seu alcance.

A lógica da conexão é a seguinte:

  1. A saída “-” do controlador está conectada ao barramento negativo;
  2. A saída "2" nos servirá como um "mais", conecte-o ao barramento correspondente na placa de ensaio;
  3. Conclusão "1" Funciona na entrada e recebe um sinal se o botão fechar o circuito (quando pressionado);
  4. A saída “4” será alimentada por nosso LED, por conveniência, conectei-a a outro barramento “+” na placa de ensaio, mas isso não é necessário.
  5. A árvore de Natal é um atributo do ano novo e, em todos os aspectos, justifica o título deste artigo.


Parte III: Programação


Para programar o controlador, precisamos do ambiente de desenvolvimento CannyLab, você pode baixá-lo no site do desenvolvedor. No momento da redação deste artigo, a versão atual era 1,41. O ambiente de desenvolvimento não requer instalação, basta descompactar o arquivo em uma pasta.

Antes de escrever o código para o nosso circuito, vamos garantir que tudo funcione para nós.
No meu caso, a primeira coisa a fazer foi escrever o software do sistema no controlador.

Conectamos o controlador através de um cabo microUSB ao computador. No meu caso, no Windows 10, não era necessário instalar nenhum driver separadamente.

Garantimos que o controlador esteja conectado; caso contrário, clique no botão "Conectar" (parece dois links em uma cadeia)

Em seguida, você precisa chamar a caixa de diálogo no endereço "Dispositivo -> Software do sistema -> Gravação" e selecionar o arquivo apropriado (no meu caso "c3tinyv00108.ccx"). Apenas para o caso, deixarei uma captura de tela abaixo.



Agora você pode configurar o programa.

O programa é formado arrastando os elementos à esquerda para o campo branco da área de trabalho e conectando os elementos.

Para piscar o LED embutido no modo PWM, precisamos de 3 constantes, um bloco gerador de sinal PWM e um registro de gravação.

Nós conectamos tudo como na imagem.



Valores para constantes e registradores podem ser definidos se você clicar duas vezes neles com LMB.
Quais são esses valores misteriosos das constantes?

  • "3000" - um período de 3 segundos;
  • "1500" - nos diz que nosso LED de três segundos acenderá apenas um ano e meio;
  • "1" - apenas liga o gerador.

Para não procurar o valor desejado do registro por um longo tempo, digite a linha "LED" na janela "Filtro"

Escrevemos o programa na memória do controlador.



Em seguida, desconecte o controlador do computador e mude o fio para o carregamento USB.

A luz verde pisca com um período de três segundos, então tudo funciona como queríamos.



Algumas palavras sobre o ambiente de desenvolvimento: primeiro, ele verifica se há erros no diagrama antes de enviá-lo ao controlador, o que significa que há alguma "proteção contra o tolo". Em segundo lugar, se você clicar no botão na forma de um "bug", o emulador do gráfico será aberto, mas mais sobre isso em outro momento.

Vamos seguir para o programa do circuito.

Monte o diagrama como na figura.



Para não procurar nomes de registros e constantes por um longo tempo, use o filtro por analogia com a captura de tela.



Explique brevemente os blocos.

« /   » -  . .   2» 

Ele nos define a saída 2 para fornecer + 5V, da mesma forma para o quarto canal

Como o canal 2 é realmente usado como "+ 5 V", simplesmente escrevemos a constante "1" (acho que qualquer número pode ser maior que zero).

Nota: A tensão nas saídas do controlador depende da tensão de alimentação e pode variar dependendo de como você a liga.

Mas o canal 4 aqui dá + 5V, então não, dependendo do pressionamento de um botão.

O canal 1 é, por padrão, configurado para entrada e nada precisa ser configurado separadamente, pegamos seu valor de entrada usando o bloco:

 « . .  1» 

E passamos para o bloco de negação lógica ("Não").

O bloco "Não" é necessário para que, por padrão, quando o circuito for ligado, nosso LED acenda imediatamente. Se esse bloco for removido e o registro de canais 1 estiver conectado diretamente ao detector de borda anterior, o LED será desligado por padrão.

O detector de borda de ataque é acionado quando pressionamos o botão e não emitirá mais sinais até decidirmos pressioná-lo novamente.

Para salvar o estado atual, um gatilho "T" é usado. Se alguém for alimentado na entrada "T" e um único pulso for alimentado na entrada "C" da saída do detector, nosso gatilho alternará o estado "0" e o estado "1" na saída. Exatamente o que precisamos.

Em seguida, o sinal da saída do acionador vai para o registro de saída do canal 4, que por sua vez alimenta o LED.

Ambos os gráficos podem ser baixados no GitHub .

Parte IV: Conclusão








As imagens abaixo mostram que tudo funciona (e meu dedo ainda está visível).
No começo do artigo, mencionei o torniquete, mas eu estava com preguiça de tirá-lo e estanhá-lo, então, por enquanto, usei fios separados, o que ainda tenho em experimentos com o Craftduino.

“E a plataforma cruzada?” - você pergunta. Tentei escrever código no controlador executando o ambiente de desenvolvimento no Linux através do Wine. Como resultado, o ambiente de desenvolvimento foi iniciado, mas o próprio controlador não vê o computador (talvez você precise “conjurá-lo” com o Wine). Portanto, ainda não é possível falar sobre soluções de plataforma cruzada imediatamente.

Outra desvantagem do controlador é o alto custo em comparação com algumas falsificações "chinesas" para o Arduino, mas isso é parcialmente compensado pela qualidade. É agradável segurar o controlador em suas mãos e tudo foi embalado em uma caixa com muito cuidado. O controlador caiu uma vez, mas até agora tudo está funcionando.

É verdade que, nas avaliações do controlador, provavelmente sou um pouco subjetiva. É simplesmente agradável para mim que o produto seja doméstico e que os desenvolvedores, ainda que um pouco, estejam envolvidos nas vitórias do KAMAZ no rally Dakar.

Em geral, fiquei satisfeito com o presente, o estilo visual da programação é muito incomum para mim, mas, ao mesmo tempo, tem suas vantagens. Penso que as pessoas que estudaram engenharia eletrônica e ciência da computação, mesmo a partir de livros soviéticos e que sabiam o que registram, disparam, multiplexam etc., gostariam mais dele.

UPD: Amigos, eu estava um pouco atrasado e violei levemente as regras da Habr, então removi os links diretos para o site dos desenvolvedores do controlador para que o artigo não parecesse publicitário e cumprisse as regras. Eu acho que você pode encontrar facilmente o link para baixar o ambiente de desenvolvimento do CannyLab e as "provas" sobre o KAMAZ.

Source: https://habr.com/ru/post/pt482948/


All Articles