"Uno, dos, tres: ¡quema el árbol de Navidad!" O mi primer vistazo al pequeño controlador CANNY 3

"Año Nuevo" es mandarinas, Olivier, fines de semana y, por supuesto, regalos.

Como probablemente ya haya adivinado, de repente me convertí en el propietario del microcontrolador CANNY 3 Tiny. Es cierto, no estoy particularmente interesado en la electrónica de bricolaje y la última vez que intenté conectar algo al controlador hace casi siete años, cuando hice retroiluminación para el perejil usando el clon Arduino . ¿Pero no desaparece lo bueno? Todavía debemos ver qué tipo de bestia es esta.

Entonces, según el sitio de los desarrolladores, sus productos son ampliamente utilizados e incluso instalados en KAMAZ que participan en el rally Dakar. Al mismo tiempo, la característica principal de sus controladores es que para programar no tiene que escribir una sola línea de código. Todo el programa se desarrolla como un diagrama de bloques. Como una persona lejos del mundo del bricolaje, estaba muy intrigado.

Y todo estaría bien, pero hay un inconveniente. El año pasado, sinceramente, quería comprar un par de camiones Dakarovsky KAMAZ, pero no pude obtenerlos con un descuento en el Black Friday. Por lo tanto, tenemos que salir de esta situación de manera simple y elegante.

En este artículo conectaremos el botón y el LED rojo piraña al controlador, después de lo cual los programaremos para que el LED se encienda y apague presionando el botón.

¿Quieres unirte a mi diversión desenfrenada de Año Nuevo? Entonces eres bienvenido bajo cat.



Por cierto, en Habré ya había un artículo sobre los controladores CANNY , pero en primer lugar había otro controlador allí, y en segundo lugar, el software para desarrollar programas estaba desactualizado desde ese momento. Como resultado, me llevó aproximadamente una hora descubrir cómo parpadear el LED verde integrado en el controlador. Esto es en parte por lo que decidí compartir con ustedes mis intentos de "frenar" el controlador. Y en parte solo porque me gusta escribir en Habr, cuando tengo tiempo libre.

Antes de continuar, considero que es mi deber advertir a los lectores. A pesar de que este artículo se presenta como un "tutorial", no soy un experto ni en microelectrónica ni en programación. Solo compartiré lo que logré resolver para ahorrarle tiempo.

Esto es lo que discutirá el artículo:

Parte I: Desembalaje y familiarización
Parte II: conectar el circuito
Parte III: Programación
Parte IV: Conclusión

Parte I: Desembalaje y familiarización


Para empezar, debe decir al menos algunas palabras sobre nuestro héroe del artículo. El pequeño controlador CANNY 3 es la familia de controladores CANNY más pequeña. Los hermanos mayores CANNY 3 pequeños: los controladores de las series CANNY 7 y CANNY 5 pueden trabajar con el bus CAN del automóvil. Nuestro hermano menor, así como mi viejo automóvil Zhiguli, no saben nada sobre el autobús CAN y viven en paz.

Para obtener más información sobre el controlador, consulte la sección Wiki correspondiente. Los desarrolladores también tienen una sección en el foro , gracias a la cual finalmente descubrí cómo configurar los registros del controlador para entrada y salida.

Pero volveremos a los problemas de programación más tarde. Veamos finalmente un regalo inesperado.



Al abrir la caja, experimenté una breve sensación de ternura. El controlador es realmente pequeño. Perdona a los fanáticos perdonándome una comparación inapropiada, pero él es casi como "bebé Yoda".



Según las tiendas en línea, el controlador tiene dos opciones de configuración: sin un bloque de terminales y arnés, así como con ellos. Dada mi curvatura en términos de "soldar algo", estoy muy contento de haber obtenido una versión con un bloque de terminales y un arnés.

Ocultaré algunas fotos más del controlador y el arnés debajo del spoiler.

Más fotos




Parte II: conectar el circuito


Como dije, conectaremos un LED al controlador (en nuestro caso, "piraña"), pero cualquiera es posible (simplemente no tenía otro). Controlaremos el LED usando el botón. El algoritmo de operación es el siguiente: una vez presionado el botón y el LED está encendido, una vez más presionado se apaga.

Describamos brevemente las características del controlador días importantes de nuestro caso:

  1. Alimentaremos el controlador desde el cargador microUSB (en mi caso 5V, 1 A);
  2. El controlador tiene 6 pines programables, así como los pines "+" y "-";
  3. Las salidas programables se pueden configurar como una "entrada" o como una salida;
  4. La corriente máxima en la salida de los terminales controlados es de 100 mA;
  5. Las conclusiones tienen modos diferentes, incluido PWM, pero hoy no profundizaremos tanto.

Traté de hacerlo para que pudieras entender mi idea simple e incluso puse a KiCad para dibujar al menos un boceto.

Para ser honesto, no soy bueno en tales asuntos, y veo KiCad la primera (o segunda) vez en mi vida, así que si encuentras errores, asegúrate de decírmelo para que pueda solucionarlo.





Como espera, entendemos por los diagramas que en nuestro proyecto usaremos: el controlador en sí, una placa de pruebas, una resistencia de limitación de corriente de 80 ohmios, un botón similar a KLS7-TS6601-5.0-180 y un LED similar a BL-FL7600UEC, pero de hecho puede reemplazarlos con lo que está a su alcance.

La lógica de conexión es la siguiente:

  1. La salida "-" del controlador está conectada al bus negativo;
  2. La salida "2" nos servirá como un "plus", conéctelo al bus correspondiente en la placa de pruebas;
  3. Conclusión "1" Trabajará en la entrada y recibirá una señal si el botón cierra el circuito (cuando se presiona);
  4. La salida "4" será alimentada por nuestro LED, por conveniencia lo conecté a otro bus "+" en el tablero, pero esto no es necesario.
  5. El árbol de Navidad es un atributo del año nuevo y en todos los sentidos justifica el título de este artículo.


Parte III: Programación


Para programar el controlador, necesitamos el entorno de desarrollo CannyLab, puede descargarlo desde el sitio del desarrollador. Al momento de escribir, la versión actual era 1.41. El entorno de desarrollo no requiere instalación, solo necesita descomprimir el archivo en alguna carpeta.

Antes de escribir código para nuestro circuito, asegurémonos de que todo funcione para nosotros.
En mi caso, lo primero que hice fue escribir el software del sistema en el controlador.

Conectamos el controlador mediante un cable microUSB a la computadora. En mi caso, en Windows 10, no tuve que instalar ningún controlador por separado.

Nos aseguramos de que el controlador esté conectado; de lo contrario, haga clic en el botón "Conectar" (parece dos enlaces en una cadena)

A continuación, debe llamar al cuadro de diálogo a la dirección "Dispositivo -> Software del sistema -> Escribir" y seleccionar el archivo apropiado (en mi caso, "c3tinyv00108.ccx"). Por si acaso, dejaré una captura de pantalla a continuación.



Ahora puedes configurar el programa.

El programa se forma arrastrando los elementos de la izquierda al campo blanco del espacio de trabajo y luego conectando los elementos entre sí.

Para parpadear el LED incorporado en modo PWM, necesitamos 3 constantes, un bloque generador de señal PWM y un registro de escritura.

Conectamos todo como en la imagen.



Los valores para constantes y registros se pueden establecer si hace doble clic en ellos con LMB.
¿Cuáles son estos misteriosos valores de constantes?

  • "3000" - un período de 3 segundos;
  • "1500" - nos dice que nuestro LED de tres segundos solo brillará uno y medio;
  • “1”: solo inicia el generador.

Para no buscar el valor deseado del registro durante mucho tiempo, ingrese la línea "LED" en la ventana "Filtro"

Escribimos el programa en la memoria del controlador.



A continuación, desconecte el controlador de la computadora y cambie el cable a carga USB.

La luz verde parpadea con un período de tres segundos, por lo que todo funciona como queríamos.



Un par de palabras sobre el entorno de desarrollo, en primer lugar, comprueba si hay errores en el diagrama antes de cargarlo en el controlador, lo que significa que hay alguna "protección contra el tonto". En segundo lugar, si hace clic en el botón en forma de "error", se abrirá el emulador de la tabla, pero más sobre eso en otro momento.

Pasemos al programa para el circuito.

Montar el diagrama como en la imagen.



Para no buscar nombres de registros y constantes durante mucho tiempo, utilice el filtro por analogía con la captura de pantalla.



Explica brevemente los bloques.

« /   » -  . .   2» 

Nos establece la salida 2 para suministrar + 5V, de manera similar para el cuarto canal

Como el canal 2 se usa realmente como "+ 5 V", simplemente escribimos la constante "1" en él (creo que puede usar cualquier número mayor que cero).

Nota: El voltaje en las salidas del controlador depende del voltaje de suministro y puede variar dependiendo de cómo lo alimente.

Pero el canal 4 aquí da + 5V, luego no, dependiendo de presionar un botón.

El canal 1 está configurado de forma predeterminada para la entrada y no es necesario configurar nada por separado, tomamos su valor de entrada usando el bloque:

 « . .  1» 

Y pasamos al bloque de la negación lógica ("No").

El bloque "No" es necesario para que, por defecto, cuando el circuito esté encendido, nuestro LED se ilumine de inmediato. Si se elimina este bloque y el registro de canal 1 se conecta directamente al detector de borde de ataque, el LED se apagará de manera predeterminada.

El detector de borde de ataque se activa cuando presionamos el botón y no dará más señales hasta que decidamos presionarlo nuevamente.

Para guardar el estado actual, se utiliza un disparador "T". Si se alimenta uno a la entrada "T", y se alimenta un solo pulso a la entrada "C" desde la salida del detector, entonces nuestro disparador alternará el estado "0" y el estado "1" en la salida. Justo exactamente lo que necesitamos.

A continuación, la señal de la salida del disparador va al registro de salida del canal 4, que a su vez alimenta el LED.

Ambos gráficos se pueden descargar desde GitHub .

Parte IV: Conclusión








Las imágenes a continuación muestran que todo funciona (y mi dedo aún está visible).
Al comienzo del artículo, mencioné el torniquete, pero era demasiado vago para pelarlo y estañar, así que por ahora usé cables separados, que todavía tengo de los experimentos con Craftduino.

"¿Y qué hay de multiplataforma?" - preguntas. Traté de escribir código en el controlador ejecutando el entorno de desarrollo en Linux a través de Wine. Como resultado, el entorno de desarrollo comenzó, pero el controlador en sí no ve la computadora (tal vez necesite "conjurarla" con Wine). Por lo tanto, aún no es posible hablar sobre soluciones multiplataforma listas para usar.

Otra desventaja del controlador es el alto costo en comparación con algunas falsificaciones "chinas" para Arduino, pero esto se compensa parcialmente por la calidad. Es agradable tener el controlador en sus manos, y todo fue embalado en una caja con mucho cuidado. El controlador incluso se cayó una vez, pero hasta ahora todo funciona.

Es cierto que en las evaluaciones del controlador, probablemente soy un poco subjetivo. Es agradable para mí que el producto sea doméstico y que los desarrolladores, aunque un poco, estén involucrados en las victorias de KAMAZ en el rally Dakar.

En general, estuve satisfecho con el regalo, el estilo visual de programación es muy inusual para mí, pero al mismo tiempo tiene sus ventajas. Creo que a las personas que estudiaron ingeniería electrónica y ciencias de la computación, incluso de los libros de texto soviéticos y que sabían qué registros, disparadores, multiplexores, etc., les gustaría más que nada.

UPD: Amigos, estaba un poco atrasado y violé ligeramente las reglas de Habr, por lo que eliminé los enlaces directos al sitio web de desarrolladores del controlador para que el artículo no se vea publicitario y cumpla con las reglas. Creo que puede encontrar fácilmente el enlace para descargar el entorno de desarrollo CannyLab y las "pruebas" sobre KAMAZ usted mismo.

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


All Articles