Reloj electrónico casero, elemento base - parte 2

Hola geektimes! En la primera parte del artículo, se consideraron los principios para obtener la hora exacta de los relojes caseros. Sigamos adelante y consideremos cómo y a qué hora es mejor derivar.

1. Dispositivos de salida


Entonces, tenemos una determinada plataforma (Arduino, Raspberry, PIC / AVR / STM-controller, etc.), y la tarea es conectarle alguna indicación. Hay muchas opciones que consideraremos.

Indicación de segmento


Todo es simple aquí. El indicador de segmento consta de LED ordinarios que están trivialmente conectados al microcontrolador a través de las resistencias de enfriamiento.


¡Atención, tráfico!

Pros: simplicidad de diseño, buenos ángulos de visión, bajo precio.
Menos: la cantidad de información que se muestra es limitada.
Hay dos tipos de diseños de indicadores, con un cátodo común y un ánodo común, en su interior se ve más o menos así (diagrama del sitio web del fabricante).


Hay un artículo 1001 sobre cómo conectar un LED a un microcontrolador, google para ayudar. Las dificultades comienzan cuando queremos hacer un gran reloj; después de todo, mirar un indicador pequeño no es particularmente conveniente. Entonces necesitamos tales indicadores (foto de eBay):


funcionan con 12V y simplemente no funcionan directamente desde el microcontrolador. Aquí el chip CD4511 viene en nuestra ayuda., solo para este propósito. No solo convierte datos de una línea de 4 bits a los dígitos deseados, sino que también contiene un interruptor de transistor incorporado para suministrar voltaje al indicador. Por lo tanto, en el circuito necesitaremos tener un voltaje de "potencia" de 9-12 V, y un convertidor reductor separado (por ejemplo, L7805) para alimentar la "lógica" del circuito.

Indicadores matriciales


De hecho, estos son los mismos LED, solo en forma de matriz de 8x8. Fotos de eBay:


vendidas en eBay en forma de módulos individuales o bloques terminados, por ejemplo, 4 piezas. Administrarlos es muy simple: el chip MAX7219 ya está soldado a los módulos , lo que garantiza su funcionamiento y conexión al microcontrolador con solo 5 cables. Hay muchas bibliotecas para Arduino, quienes lo deseen pueden ver el código.
Pros: bajo precio, buenos ángulos de visión y brillo.
Menos: baja resolución. Pero para la tarea de generar tiempo es suficiente.

Indicadores LCD


Los indicadores LCD son gráficos y de texto.


Los gráficos son más caros, pero le permiten mostrar información más diversa (por ejemplo, un gráfico de presión atmosférica). Los textos son más baratos y fáciles de usar, también le permiten mostrar pseudografías: es posible cargar caracteres personalizados en la pantalla.

No es difícil trabajar con el indicador LCD del código, pero hay un cierto inconveniente: el indicador requiere muchas líneas de control (del 7 al 12) del microcontrolador, lo cual es inconveniente. Por lo tanto, a los chinos se les ocurrió una combinación de un indicador LCD y un controlador i2c, que resultó ser muy conveniente al final: solo 4 cables son suficientes para conectarse (foto de eBay).

Los indicadores LCD son lo suficientemente baratos (si los lleva en eBee), grandes, son fáciles de conectar y puede mostrar una variedad de información. Lo único negativo es que no tiene ángulos de visión muy grandes.

Indicadores OLED


Son una continuación mejorada de la versión anterior. Varía desde pequeño y barato con una diagonal de 1.1 "hasta grande y costoso. Fotos de eBay.

En realidad, son buenas para todos excepto el precio. En cuanto a los indicadores pequeños, 0.9-1.1" de tamaño, luego (aparte de estudiar cómo trabajar con i2c) alguna aplicación práctica les cuesta encontrarlo.

Indicadores de descarga de gas (IN-14, IN-18)


Estos indicadores ahora son muy populares, aparentemente debido al " sonido cálido de tubo de luz" y al diseño original.

(foto de nocrotec.com)

El esquema de su conexión es algo más complicado, porque Estos indicadores utilizan un voltaje de 170 V para el encendido. Se puede hacer un convertidor de 12V => 180V en el chip MAX771 . Para suministrar voltaje a los indicadores, se utiliza el microcircuito soviético K155ID1, que fue creado específicamente para esto. El precio de emisión para la autoproducción: alrededor de 500 rublos para cada indicador y 100 rublos para K155ID1, todos los demás detalles, como escribieron en revistas antiguas, "no son escasos". La principal dificultad aquí es que tanto IN-xx como K155ID1 han sido descontinuados durante mucho tiempo, y puede comprarlos solo en los mercados de radio o en algunas tiendas especializadas.

2. Selección de plataforma


Descubrimos más o menos con la indicación, queda por decidir qué plataforma de hardware es mejor usar. Aquí hay varias opciones (no considero las hechas en casa, porque no necesito este artículo para aquellos que pueden hacer una placa y soldar un procesador).

Arduino


La opción más fácil para principiantes. El tablero terminado es económico (alrededor de $ 10 en eBay con envío gratis), tiene todos los conectores necesarios para la programación. Foto de eBay:


bajo Arduino hay una gran cantidad de bibliotecas diferentes (por ejemplo, para las mismas pantallas LCD, módulos en tiempo real), Arduino es compatible con hardware con varios módulos adicionales.
El principal inconveniente: la complejidad de la depuración (solo a través de la consola del puerto serie) y un procesador bastante débil para los estándares modernos (2 KB de RAM y 16 MHz).
La ventaja principal: puede hacer muchas cosas, casi sin molestarse en soldar, comprar un programador y placas de cableado, es suficiente para conectar los módulos entre sí.

Procesadores STM de 32 bits


Para aquellos que desean algo más potente, hay placas preparadas con procesadores STM, por ejemplo, una placa con STM32F103RBT6 y una pantalla TFT. Foto de eBay:


Aquí ya tenemos la depuración completa en un IDE completo (me gustó sobre todo el IDE de Coocox), sin embargo, necesitará un depurador-programador ST-LINK separado con un conector JTAG (el precio es de $ 20-40 en eBay). Alternativamente, puede comprar la placa de depuración STM32F4Discovery, en la que este programador ya está integrado, y puede usarse por separado.

Raspberry PI


Y, por último, para aquellos que desean una integración total con el mundo moderno, hay computadoras de placa única con Linux, probablemente todos ya conocen el Raspberry PI. Foto de eBay:


Esta es una computadora completa con Linux, un gigabyte de RAM y un procesador de 4 núcleos a bordo. Se muestra un panel de 40 pines en el borde de la placa, lo que le permite conectar varios periféricos (se puede acceder a los pines desde el código, por ejemplo en Python, sin mencionar C / C ++), también hay un USB estándar en forma de 4 conectores (puede conectar WiFi). También hay HDMI estándar.
La placa tendrá suficiente potencia, por ejemplo, no solo para mostrar el tiempo, sino también para mantener un servidor HTTP para configurar parámetros a través de la interfaz web, cargar pronósticos meteorológicos a través de Internet, etc. En general, el alcance para un vuelo de fantasía es grande.

Solo hay una dificultad con Raspberry (y procesadores STM32): sus pines usan lógica de 3 voltios, y la mayoría de los dispositivos externos (como pantallas LCD) funcionan "a la antigua usanza" desde 5V. Por supuesto, puede conectarlo así, en principio, funcionará, pero este no es el método correcto y es una pena estropear la tarifa por $ 50. La forma correcta es utilizar el "convertidor de nivel lógico", que cuesta solo $ 1-2 en eBay.
Foto de eBay:


ahora es suficiente conectar nuestro dispositivo a través de dicho módulo, y se acordarán todos los parámetros.

ESP8266


El método es bastante exótico, pero bastante prometedor debido a la compacidad y el bajo costo de la solución. Por muy poco dinero (alrededor de $ 4-5 en eBay) puede comprar un módulo ESP8266 que contiene un procesador y WiFi a bordo.
Foto de eBay:


inicialmente, dichos módulos estaban destinados a ser un puente WiFi para el intercambio de puertos en serie, pero los entusiastas escribieron una gran cantidad de firmware alternativo para trabajar con sensores, dispositivos i2c, PWM, etc. Es hipotéticamente posible obtener tiempo de un servidor NTP y visualizarlo a través de i2c en la pantalla. Para aquellos que desean conectar muchos periféricos diferentes, hay placas especiales NodeMCU con una gran cantidad de conclusiones, el precio de la pregunta es de aproximadamente 500 rublos (por supuesto, en eBay):


Lo único negativo es que el ESP8266 tiene muy poca memoria RAM (dependiendo del firmware, de 1 a 32 KB), pero la tarea lo hace aún más interesante. Los módulos ESP8266 usan lógica de 3 voltios, por lo que el convertidor de nivel anterior también es útil aquí.

En esta excursión introductoria a la electrónica casera se puede completar, el autor desea todos los experimentos exitosos.

En lugar de una conclusión


Terminé usando Raspberry PI con un indicador de texto configurado para trabajar con pseudografía (que salió más barato que la pantalla gráfica de la misma diagonal). Capturó la pantalla del reloj de escritorio mientras escribía este artículo.


El reloj muestra el tiempo exacto tomado de Internet, y el clima, que se actualiza desde Yandex, todo esto está escrito en Python, y ha estado funcionando durante algunos meses. En paralelo, el servidor FTP se inicia en el reloj, lo que permite (junto con el reenvío de puertos en el enrutador) actualizar el firmware en ellos, no solo desde el hogar, sino también desde cualquier lugar donde haya acceso a Internet. Como beneficio adicional, los recursos de Raspberry, en principio, serán suficientes para conectar una cámara y / o micrófono con la capacidad de monitorear remotamente un departamento o controlar varios módulos / relés / sensores. Puede agregar todo tipo de "bollos", como indicadores LED para el correo entrante, etc.

PD: ¿Por qué eBay?
Como puede ver, se dieron precios o fotos de eBay para todos los dispositivos. ¿Porqué es eso? Desafortunadamente, nuestras tiendas a menudo viven según el principio de "comprado por $ 1, vendido por $ 3, y yo vivo por este 2 por ciento". Como un simple ejemplo, el Arduino Uno R3 cuesta (al momento de escribir) 3600 rublos en San Petersburgo y 350 rublos en eBay con entrega gratuita desde China. La diferencia es realmente un orden de magnitud, sin ninguna exageración literaria. Sí, debe esperar un mes para recoger el paquete por correo, pero creo que vale la pena la diferencia de precio. Pero, por cierto, si alguien lo necesita ahora y con urgencia, entonces debe haber una opción en las tiendas locales, entonces todos deciden por sí mismos.

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


All Articles