El logotipo es un derivado del logotipo de la comunidad Arduino con licencia de Creative Commons CC-SA-BY-NC 3.0
Actualización: Ganadores anunciados
Los ganadores del concurso han sido anunciados. Por favor, consulte la publicación Meta para más detalles .
Para celebrar los 10 años de Arduino , estamos orgullosos de anunciar el primer evento en Arduino Stack Exchange.
Saque sus placas y equipos de soldadura, extraiga los circuitos integrados y las resistencias. El primer concurso Arduino Stack Exchange está a la vuelta de la esquina. Buscaremos proyectos interesantes que se construyan con Arduinos. El concurso tiene como objetivo compartir, debatir y proporcionar comentarios sobre los proyectos en los que usted y otros miembros están trabajando. Ver publicación del anuncio
Detalles:
- El premio es una camiseta oficial de Stack Exchange.
- Límite de dos entradas por persona. Si se proporcionan más de dos, solo se considerarán los dos primeros.
- Se permiten clones .
- Los proyectos para consideración serán aceptados hasta el 29 de marzo de 2014 a las 4:00 UTC. La pregunta seguirá abierta en caso de que alguien quiera mostrar su proyecto que hicieron el día de Arduino 2014.
Visite la publicación Meta para discutir sobre este evento y obtener más información.
Formato de respuesta
Puede publicar hasta dos proyectos (como dos respuestas separadas) como entradas para el concurso. Todas las entradas adicionales serán eliminadas. Considere seguir la siguiente plantilla para las entradas:
Título del Proyecto
Descripción muy breve
Descripción
Cual es tu proyecto ¿Qué hace? ¿Qué problema soluciona?
Diseño
Cosas para incluir en esta sección:
- Esquemas y otra documentación de diseño. Fritzing es una buena herramienta para dibujar esquemas de tablero como el que se muestra en el logotipo del proyecto anterior.
- Componentes utilizados para construir el proyecto.
- Fotos o video
Conclusión
Pensamientos finales. ¿Qué aprendiste al hacer este proyecto? ¿Qué haría diferente si tuviera que empezar de nuevo?
Puede copiar / pegar el siguiente texto si desea usar esta plantilla.
# Project Title
**Very Brief Description**
# Description
What is your project? What does it do? What problem does it solve?
# Design
Things to include in this section:
- Schematics and other design documentation. [Fritzing][8] is a good tool for drawing breadboard schematics like the one shown in the project logo above.
- Components used to build the project
- Pictures or video
# Conclusion
Final thoughts. What did you learn from doing this project? What would you do differently if you had to start over?
Premios
¡Hay dos premios! ¡El ganador será la presentación que obtenga el número máximo de votos a favor (los votos a favor no cuentan) y recibirá una camiseta de Stack Exchange *! También habrá algo para el subcampeón. El segundo puesto se decidirá a discreción de los organizadores del evento.
* Ciertas restricciones pueden aplicar. El envío internacional puede demorar algunas semanas.
¿Dónde envío mis proyectos?
Publique sus proyectos como respuestas a esta publicación.
Respuestas:
Caja de búsqueda con estado
Una caja con GPS que te hace visitar algunos lugares antes de abrir
Descripción
Es similar a questbox , pero almacena una pequeña cantidad de información en EEPROM , por lo que debe visitar dos o tres lugares diferentes antes de que se abra.
Diseño
Hardware necesario:
Costo total de hardware: 137 $ + envío
Materiales adicionales:
Puede encontrar instrucciones de montaje en la página del reloj de sol (puede comprarles la mayoría de los materiales)
Cargaré código con estado y publicaré un enlace aquí, desafortunadamente no tendré todo el hardware necesario a tiempo, así que esto es solo una idea :)
Código escrito hasta ahora :
Inspiración:
Conclusión
Aprendí a integrar muchos componentes y bibliotecas todos juntos, tendré que viajar un poco para probarlo :)
El presupuesto se puede reducir bastante cambiando un poco el concepto:
fuente
Ahorro de energía para el usuario de PC distraído
Este dispositivo enciende / apaga las luces de mi escritorio cuando está oscuro (ish) y sincronizado con el protector de pantalla de mi PC.
Descripción
El proyecto es poco más que una combinación de un sensor sensible a la luz, un relé y un código inteligente que monitorea el protector de pantalla en mi PC. Cuando anochece y cuando el protector de pantalla no está activo, enciende las luces sobre mi escritorio. Cuando posteriormente salga de mi escritorio, se activará el protector de pantalla, que a su vez activará la luz del escritorio para apagarse. Cuando hay suficiente luz durante el día, las luces no se encienden en absoluto. El problema resuelto es reducir el desperdicio de energía debido a que la iluminación de mi oficina se enciende cuando salgo de la habitación.
Diseño
Debido a la potencia de los microcontroladores / Arduino, solo se requiere un poco de hardware adicional para crear un proyecto útil. Lo mismo ocurre con este proyecto donde el hardware es poco más que:
simular este circuito : esquema creado con CircuitLab
Conclusión
Aprendí cómo conectar la PC a través del enlace serie USB con Arduino y cómo leer el estado actual del protector de pantalla en mi PC. Si volviera a empezar, usaría un controlador mucho más pequeño, ya que realmente solo necesito una única salida digital y una sola entrada analógica. Probablemente base el proyecto en V-USB . Sin embargo, Arduino es excelente para la prueba de concepto (PoC) rápida y fácil. (El PoC ha estado en mi escritorio durante al menos dos años).
fuente
Creo que este tipo apenas se ajusta a las reglas, pero es lo suficientemente interesante como para pensar que lo publicaría de todos modos.
Generador de marca de tiempo sincronizado por GPS de alta precisión para fines de adquisición de datos.
Este es un proyecto bastante interesante destinado a proporcionar una manera fácil de sincronizar múltiples sistemas independientes de adquisición de datos.
Básicamente, trabajo en un laboratorio de investigación, y a menudo tenemos instrumentos que tienen múltiples sistemas independientes de adquisición de datos, que pueden estar físicamente separados hasta 50 pies. Necesitamos poder correlacionar el tiempo en el que se tomaron muestras de cada sistema, lo que puede ser difícil si desea resolver los tiempos de muestreo con un alto grado de precisión. Usando algo como un sistema de adquisición de datos USB, solo la latencia USB puede introducir varios cientos de milisegundos de latencia desconocida, que puede variar de una adquisición a otra.
La solución anterior era un contador paralelo de 24 bits que simplemente se transportaba por todas partes, que requería un arnés de cableado enorme y que era un poco molesto.
Este sistema utiliza un módulo GPS de temporización especializado que puede sintetizar relojes de frecuencia arbitrarios, que están bloqueados en fase y frecuencia a los relojes atómicos en los satélites GPS.
El MCU es responsable de vincular los mensajes de datos GPS (tuve que extender y optimizar en gran medida un analizador de protocolo existente para los datos GPS). El GPS está configurado para usar un protocolo binario patentado, y todo lo analiza el analizador que escribí.
El proyecto ha pasado por varias revisiones (en la foto a continuación).
Diseño
Revisiones!
Rev 1: Nunca funcionó, debido al hecho de que inicialmente esperaba usar un software dPLL de un GPS mucho menos costoso, para sintetizar un reloj de mayor frecuencia desde solo la salida de 1 PPS. Probablemente sea posible hacerlo funcionar, pero la inversión de tiempo simplemente hizo que no valiera la pena. (y soy un codificador demasiado malo)
Usó una hélice de paralaje MCU. La falta de idiomas compilados decentes también fue un problema importante.
Rev 2: cambiado a un ATmega2560. Trabajó, tenía muchos aspectos de diseño originales heredados de la primera revisión. Principalmente, el uso continuo de registros de desplazamiento para la salida de 32 bits, a pesar del número más que suficiente de IO en el ATmega2560.
La primera placa que ejecutó Optiboot, y en realidad se programó completamente usando la cadena de herramientas estándar Arduino, antes de que me irritara y comenzara a modificar la cadena de herramientas para que se adaptara mejor a mis propósitos.
Rev 3: También funcionó. El cableado estructurado se debe a que esta placa incorpora un concentrador USB incorporado para reducir la cantidad de puertos USB requeridos (la interfaz FTDI requiere 1 USB y el GPS también tiene una interfaz USB). Desafortunadamente, el GPS no se enumeraría correctamente, aunque el dispositivo FTDI funcionó bien, y he usado este concentrador en otro lugar sin problemas. Extraño.
No tengo un depurador USB adecuado, así que simplemente dejé caer el concentrador USB por completo, en lugar de tratar de solucionar el problema. De todos modos, el usb GPS no se usa mucho fuera de la configuración.
Rev 4: versión semifinal ATmega2560. Se agregó una pantalla LCD para el estado del GPS, manipulada con LED, etc. Además, mejores huellas para los posibles supercondensadores para mantener el estado del GPS cuando no está encendido.
Esta es la última versión de Optiboot.
MStime
es elMSTOW
, o milisegundo de tiempo de la semana, que es el nombre del valor de datos GPS que se emite en la marca de tiempo. Es una variable de 32 bits que se incrementa una vez por milisegundo y se reinicia cada semana. Es una parte más oscura del estándar GPS.ITOW
es otro valor relacionado con GPS, siendo un valor que corresponde a la señal 1PPS. La correlación entre los dos no se refleja adecuadamente en la pantalla LCD, ya que no tengo el tiempo de CPU para actualizar la pantalla LCD a la velocidad que me gustaría. Esta fue en realidad una de las principales cosas que mejoró en la actualización de los dispositivos Xmega.Rev 5: cambio de arquitectura completa. Ahora usa un procesador ATxmega128A1U. Ya no soy realmente "Arduino", pero la capacidad de tener múltiples niveles de interrupción en la serie de procesadores xmega me permitió mejorar considerablemente la estructura del código.
Los dos cables del cuerpo son de mí haciendo algo de experimentación, el tablero funcionó bien sin ellos también.
Viendo hacia adelante:
Rev 6!
Agregue la capacidad de usar diferentes tamaños de LCD, más protección ESD en la conexión de antena GPS (eso fue un problema), la capacidad de usar una batería CR2032 para mantener el reloj GPS en lugar de los supercondensadores.
Además, un etiquetado mucho mejor de los LED de depuración y estado.
Y bonificación Nyan-Cat!
(Estas placas están en proceso de fabricación en este momento. Cuando las obtenga, agregaré fotos de la placa real).
Hice algunas pruebas de larga duración entre dos de las placas ATmega2560, y durante 72 horas, el error de tiempo RMS entre las dos unidades fue de ~ 20 us. Esto fue con dos antenas completamente independientes también. Mi objetivo de diseño era <1 ms, así que estoy muy feliz con eso.
En general, creo que esto hace un buen trabajo ilustrando cómo Arduino puede ser una herramienta útil para la creación temprana de prototipos de productos / sistemas "reales". Lo uso para obtener una versión de prueba inicial que se ejecuta con un esfuerzo mínimo, y cuando estoy seguro de que la idea funcionará, realizo el trabajo para migrar a una implementación completamente personalizada y específica.
Archivos de diseño:
https://fake-server.no-ip.org/svn/FPGAStuff/DAQ%20systems/
(en la serie de directorios "GPS Timestamp").
(Nota: Los archivos son de Altium Designer El son. No archivos de águila).
Código fuente:
https://fake-server.no-ip.org/svn/Programming/Code/AVR/
Nuevamente, en la serie de directorios "gpsTimeStamp".
Perdón por las malas fotos del celular.
fuente
Sonic Ray Gun
Dos proyectos de niños
Estoy trabajando con un par de niños educados en el hogar y nos estamos divirtiendo mucho con un arduino. Su primer proyecto fue una bomba falsa, como se ve en las películas, con un temporizador de cuenta regresiva LCD y un clásico "¿Cortas el cable rojo o azul?" problema de tipo
El proyecto dos comenzó mostrándoles el ejemplo de toneMelody y un pequeño orador. Rápidamente descubrió que si gira la frecuencia hasta 15 kHz, sería bastante molesto para los adolescentes. Una hora después, habían mejorado el diseño con una taza, papel higiénico y un interruptor hecho de un clip que hacía una pistola direccional de rayos sónicos.
Lamentablemente no hay fotos.
Conclusión
No deje a los niños desatendidos con un arduino.
fuente
(falso) Linux en Arduino
Recientemente adquirí una pequeña pantalla LCD compuesta, con la que comencé a jugar rápidamente usando la biblioteca Arduino TVout. ¿Qué vino después? Linux!
Descripción
Mientras jugaba con la pantalla de mi televisor y la biblioteca de TVout, descubrí que hay un controlador de terminal prefabricado para el televisor. Pronto comencé a experimentar con su uso como terminal de TV conectado a un teclado PS / 2. Hubo algunos problemas con la biblioteca PS / 2 que utilicé, así que hice la transición para usar la biblioteca USB en mi Mega ADK junto con un teclado USB. Eso funcionó mucho mejor. Ahora para almacenamiento.
El escudo de mi tarjeta SD no es compatible con mi Mega, por lo que lo conecté de forma algo casual al SPI al final del tablero. Escribí el manejo de comandos para realizar algunas tareas como listar archivos y encontrar el tamaño del disco, espacio libre, etc. El ensamblaje completo no está terminado de ninguna manera, pero estoy contento con el progreso que he logrado.
El código será reubicado a Github eventualmente, mira los comentarios.
Diseño
Desafíos
Tuve muchos problemas para concatenar los caracteres introducidos en la cadena que almacenaba el comando actual porque no estaba lanzando correctamente. Una vez que lo entendí, también necesitaba solucionar el problema en el que algunas teclas imprimían basura aleatoria en la pantalla. Esto fue causado por la lectura de la memoria antes de las definiciones de las letras, por lo que unos pocos lo
if
aclararon.Conclusión
Estoy muy satisfecho con el código. Una vez que le agregue algunas utilidades más, lo pondré en Github, así que mira los comentarios. En general, fue un proyecto muy divertido. Aprendí a usar Stino en el proceso.
fuente
ShiftLCD
Placa basada en AVR, compatible con Arduino, que se monta en la parte posterior de una pantalla LCD de 8x1 hasta 20x4 caracteres.
Descripción
Acabo de diseñar esta placa y la biblioteca personalizada para que sea más fácil de usar y LCD. Aunque son bastante fáciles de usar en este momento. Reduce el número de pines de salida utilizados de 6 a 3. También tiene la opción de expandir la E / S agregando más registros de desplazamiento al que controla la pantalla. El procesador utilizado es un ATTiny45 o ATTiny85 que tiene, después de usar el registro de desplazamiento, los pines digitales 1 (PWM) y 4 disponibles y el pin analógico 2 (mismo pin que el pin digital 4) disponible.
Diseño
Desafíos
Un desafío imprevisto que enfrenté fue cuando comencé a usar pines digitales 0-2 para ejecutar el registro de desplazamiento, estos también resultaron ser los pines de programación (MISO, MOSI, SCK). Por lo tanto, cada vez que reprogramaba el dispositivo, la pantalla LCD recibía un montón de mensajes entrecortados en los que había que apagar la alimentación para restablecer la pantalla. Resolví este problema moviendo el pin de cierre de los registros de desplazamiento al pin digital 3, que no es un pin de programación. Resolver esto también resolvió otro problema para mí porque cuando moví el pasador de cierre, abrió el pin digital 1 que tenía uso de PWM, lo que permitió hacer más cosas con la placa.
Conclusión
De acuerdo, este puede no ser el mejor producto o idea, aún tiene sus usos. La respuesta a la pregunta directamente, "¿Qué aprendiste al hacer este proyecto?" Aprendí a diseñar desde el principio hasta el final de una placa PCB. Si pudiera hacer algo diferente, habría sido usar piezas de montaje en superficie en lugar de orificio pasante, entonces nuevamente es solo un prototipo de placa única.
fuente
Robot de botones.
Un robot de disparo láser de control remoto de cuatro ruedas y ocho libras que presiona los botones.
Descripción
Hice este proyecto en el transcurso del año escolar pasado. Estaba en la clase de robótica y decidimos hacer una competencia. Cada equipo crearía un robot que tiene un botón grande y una forma de presionar otros botones. Al final del año, tendríamos el concurso final, donde los tres robots intentarían presionarse mutuamente.
A finales de año, mi robot solo funcionaba parcialmente. Cada parte del robot había estado funcionando en algún momento, pero entre un Arduino frito, conductores de motores fritos, una organización de código terrible y yo siendo la única persona en mi equipo que trabajó en el robot durante un total de más de cinco horas. No pude hacerlo funcionar por completo.
No he tocado mi robot en casi un año, así que sé que si quisiera que volviera a funcionar tendría que volver a cablear el bot y reescribir el código. Tal vez decida hacerlo algún día, pero por ahora voy a trabajar en proyectos menos ambiciosos.
Diseño
Diseño general
Información / flujo de electricidad
Componentes
Código
No organicé mi código muy bien, así que espero que este sea el código correcto.
Mas imagenes
Terrible video de una versión temprana del robot lenta, sin brazos, sin botones, sin láser y sin bluetooth.
https://www.youtube.com/watch?v=Q7MvE7-Xb0E
Conclusión
Soy muy bueno para freír productos electrónicos.
Esta fue mi primera experiencia en un taller de máquinas real. Pude usar una fresadora CNC, una fresadora manual, un torno y una sierra de cinta. Si comenzara un proyecto como este nuevamente, haría una documentación mucho mejor, para poder descubrir qué diablos estaba haciendo un año después.
fuente
Pantalla LED de 4 dígitos para Arduino
Tablero pequeño con 4 dígitos LED de 7 segmentos, gestionado a través de 3 pines.
Descripción
Cuando comencé a trabajar con Arduino, quería una forma de mostrar los valores recopilados por varios sensores que experimenté, pero no quería enviar estos valores
Serial
a una PC.Quería una placa pequeña que pudiera reutilizar fácilmente de un proyecto a otro y quería ahorrar una placa de prueba.
Esta placa, junto con su pequeña biblioteca, actualmente permite la visualización de números de 4 dígitos y no genera ninguna corriente de Arduino durante la visualización (la corriente se obtiene solo cuando se comunica a la placa el nuevo valor para mostrar a partir de ahora).
Diseño
El diseño es bastante simple, ya que decidí reutilizar un chip MAX-7219 para controlar mi pantalla LED (tenía algunos a mano).
Gracias a este chip, el esquema era mucho más simple, pero era importante entender correctamente cómo usarlo; Afortunadamente, su hoja de datos era bastante clara.
El diseño original se realizó en una placa de pruebas y se utilizaron 4 dígitos LED de 7 segmentos individuales ; pero requirió demasiado cableado para mi gusto (necesidad de conectar segmentos por grupos de 4). Además, durante mi primer experimento con dígitos LED de 7 segmentos, he frito uno: tenía 2 pines de tierra, pero conecté solo uno a GND en lugar de ambos :-(
Luego decidí optar por una pantalla de 4x7 segmentos, cátodo común , con ánodos de segmento ya conectados para 4 dígitos: ¡eso es solo 4 + 8 pines!
Durante mis pruebas, encontré una biblioteca Arduino útil para trabajar con MAX-7219 que decidí reutilizar. He construido mi propia biblioteca sobre ella, con una API muy simple.
Después del proceso de prueba, llegó el momento de hacer que el diseño sea más permanente; Como tenía un montón de tablas de striptease a mano, decidí hacerlo.
Busqué y encontré un sencillo diseñador de Stripboard para PC que he usado para diseñar mi tablero.
El primer diseño del stripboard no estaba optimizado en términos de espacio y decidí no implementarlo:
Luego, he revisado el diseño para optimizar el costo y el tamaño (solo un pequeño stripboard de 50x75 mm); eso fue fácil con el diseñador de tablas que encontré antes:
Una vez que el tablero estuvo listo, decidí verificarlo con un Arduino UNO y un sensor ultrasónico:
Parecía funcionar, excepto que a menudo tenía valores mostrados extraños e inconsistentes; Después de la investigación, descubrí que se debía al ruido provocado por el panel de visualización , ruido que interfería con el sensor. Solo necesitaba agregar una tapa de desacoplamiento lo más cerca posible de los pines de suministro de corriente del sensor y funcionó perfectamente (tenga en cuenta que la placa de visualización ya tenía tapas de desacoplamiento para el chip MAX-7219).
Lista de partes:
Conclusión
30 años después de mis últimos experimentos electrónicos, pude volver a contraer el virus con Arduino y con este primer proyecto que, aunque bastante simple, me enseñó varias cosas:
Si tuviera que comenzar este proyecto nuevamente hoy, haría lo siguiente:
fuente
Reloj de pared digital con control remoto por radiofrecuencia (RF)
Un gran reloj de pared con pantalla de 7 segmentos (40x30cm / 16x12 ") con control remoto R / F.
Descripción
Este proyecto presenta un reloj de pared digital de pantalla grande (40x30cm / 16x12 ") de 7 segmentos con control remoto R / F. Tiene las siguientes características:
Diseño
Los aspectos clave de este proyecto fueron los siguientes:
A continuación se muestran los esquemas para el controlador y una de las placas de 7 segmentos:
Aquí hay algunas fotos de los tableros que diseñé, grabé y ensamblé, y el control remoto:
Y finalmente, aquí hay una foto de otra versión del reloj. En este, estoy haciendo las pantallas de 7 segmentos usando LED rectangulares y componentes discretos.
Conclusión
Este proyecto me llevó mucho tiempo, esfuerzo y aprendizaje para llegar a esta etapa (nunca lo terminé, como he aprendido), pero fue muy divertido. Algunas cosas que he aprendido:
Estudie todas las bibliotecas que va a utilizar en su proyecto antes de asignar pines GPIO en su controlador para evitar posibles conflictos. No tuve la suerte de usar el mismo pin PWM para el control de brillo que está asociado con el temporizador VirtualWire, así que tuve que parchear la placa para que el brillo y la RF funcionaran al mismo tiempo.
¡El engarzado KK molex y los conectores modulares toman MUCHO TIEMPO!
Las piezas acrílicas cortadas con láser son el futuro. Añaden mucha calidad al dispositivo incluso si eres torpe.
fuente
Rotador de antena de TV
Rotación de antena con control remoto IR
¿No puede levantarse del sofá para ajustar la dirección de la antena de TV? E incluso si lo hace, a veces su proximidad a la antena cambia la recepción. Sería bueno poder ajustar la antena desde el sofá. Usando el control remoto del televisor.
Componentes
Arduino Uno, receptor IR, motor paso a paso con placa de conductor, cojinete de identificación de 1 ", mango de trapeador Swiffer, caja de plástico,
Descripción
Use una manija de trapeador Swiffer vieja como el poste de la antena. Obtuve un cojinete de identificación de 1 "de mi tienda en línea favorita, en el cual el mango de la fregona simplemente se presiona y se detiene. Perfore un agujero en la caja de plástico lo suficientemente grande como para que entre el mango de la fregona, pero no para el cojinete. Perfore un rectángulo orificio en el extremo del mango del trapeador para que encaje en el eje de un motor paso a paso 28BYJ-48, y pegó el artilugio en la caja como se muestra. .
Usé la biblioteca stepper.h para girar el motor desde un Uno.
Desarmé un reproductor de DVD sin usar y recuperé el receptor IR de él. Puede desmontar cualquier dispositivo de consumo que tenga un control remoto y usar el receptor IR de él, funcionará. El receptor IR utiliza la biblioteca IRremote.h. Usando el monitor en serie, imprimí el código hexadecimal que correspondía a los dos botones del control remoto del televisor que quiero usar para operar el motor de la antena. Uno para girar a la izquierda, uno para la derecha.
Para ahorrar energía, use la función small_stepper.motorOff () para apagar las bobinas después de cada movimiento.
Conclusión
Este fue un proyecto divertido que también fue útil para mi esposa. No implementé ninguna aceleración / desaceleración en el movimiento, lo que podría ser bueno, especialmente si la antena tenía más inercia rotacional.
Editar: ¡perdón por que la imagen esté de lado! Está derecho en mi computadora, no tengo idea de por qué está en línea.
fuente
La lámpara Knock-knock
Una lámpara que se enciende / apaga cuando se enciende el escritorio. Actualmente en fase alfa, todavía creando prototipos, pero creo que es el proyecto Arduino más útil que existe. Incluye generador de chistes cursi ... de chistes de golpeteo previamente grabados. Nota: Sé que no puedo ganar en las reglas, pero no hay una regla sobre entrar ... También puedo mostrar mi proyecto.
Descripción
Hasta ahora he explicado casi todo. Tocas y la luz se enciende y se apaga. Actualmente estoy en el tablero. Estoy usando un elemento piezoeléctrico para detectar los golpes con vibraciones. En paralelo, tengo una resistencia de 1 megaohmio para proteger mi Arduino Uno SMD.
Pensé en este diseño después de casi tirar (jajajaja) mi lámpara de mi escritorio mientras buscaba el pequeño interruptor de palanca. No soy exactamente ... bueno hábil . Es bueno tocar el escritorio y luego tener luz. También estoy usando un Power Switch Tail SSR (relé de estado sólido: sin ruido) para controlarlo con dos de los pines de mi Arduino.
Diseño
Imagen tomada con la cámara web colgando sobre el monitor ... ¡eek!
Componentes utilizados para construir el proyecto:
Costo para mí: $ 3.30 USD + $ 0.02 USD (impuestos) == ¡Solo $ 3.32!
Conclusión
En general, es un proyecto simple pero en realidad es útil. Esa es una lucha con mis proyectos Arduino: ¿puedo construir algo que realmente usaría ? Parpadear un LED no te ayudará exactamente en la vida. Es divertido, pero eso es todo.
El mayor problema al que me enfrenté (y aún lo hago) es no recibir una señal lo suficientemente fuerte. Aprendí mucho sobre señales eléctricas: descubrí cómo encontrar el "pico" de un pulso y no solo leer el pin en un intervalo aleatorio y perder el voltaje más alto. Intentaría obtener un elemento piezo más sensible. Una más grande ayudaría. Estoy tratando de modificar mi circuito para no limitar tanto el voltaje, sino para proteger el Arduino. Algún tipo de fusible ayudaría en esta situación. También estoy jugando con valores de resistencia. Sería de gran ayuda tener un alcance para esto, pero supongo que no ...: P
Después de perfeccionar el circuito, voy a trabajar para obtenerlo en un PCB con un ATtiny ... y tal vez incluso desarrollar algunos kits. Intentaré publicar mis hallazgos sobre cómo hacer que el elemento sea más sensible sin arriesgar mi tablero en el proceso.
Actualización de estado: he estado muy ocupado recientemente. Voy a pedir un diodo zener (4.3V) aquí en una semana o dos para eliminar la resistencia megaohm para evitar diluir la señal mientras se protege el chip. Puedo construir un amplificador de voltaje simple aquí si es necesario (junto con el Zener) para tratar de hacer que el sensor sea más sensible.
fuente
- Aprenda a crear sus propios sensores inalámbricos de bajo costo y conectarlos al mundo.
http://www.mysensors.org
Lo llamamos "Internet de tus cosas"
Descripción
Hemos combinado la plataforma Arduino con un pequeño transceptor de radio en un mundo divertido y flexible de sensores inalámbricos de bajo costo.
Todos los detalles esenciales sobre la comunicación del sensor se han empaquetado en una biblioteca de software conveniente para que no tenga que preocuparse por ellos.
Es tan fácil como 1, 2, 3.
Lea más sobre cómo se forma automáticamente la red de sensores utilizando nuestra Biblioteca Arduino en el sitio. Básicamente forma una red estelar y puede alcanzar cientos de metros.
En el medio, coloca una puerta de enlace Arduion o Raspberry que recopila la información de sus sensores.
Diseño y esquemas.
Aquí está uno de los prototipos de sensores de movimiento que creé para controlar la luz del jardín fuera de mi casa. El estado de los movimientos se envía a mi controlador HA que enciende la luz (a través de la onda z) cuando se detecta movimiento. Un sensor de luz (que no está en la imagen) se asegura de encender las luces solo por la noche.
Encontrará todas las instrucciones de compilación aquí: http://www.mysensors.org/build/
En el sitio también hay instrucciones de construcción fáciles de seguir para muchos otros sensores y actuadores inalámbricos. Aquí hay unos ejemplos:
Sensor de distancia, sensor de movimiento, actuador de relé, humedad, luz, presión, lluvia, temperatura, ...
Conclusión
El proyecto todavía está en los bloques de partida y esperamos proporcionar complementos para una lista cada vez mayor de controladores de automatización del hogar. Lo primero en nuestra lista en este momento es proporcionar un controlador de bricolaje que proporcione un almacenamiento gratuito en la nube para los datos de su sensor.
Nos vemos @ mysensors.org
/ Henrik Ekblad (el creador de la Biblioteca Arduino Open Source utilizada para la comunicación entre los sensores)
fuente
Caja de serie
Un monitor serie portátil en una caja.
Descripción
A veces es útil para un dispositivo (Arduino o de otro tipo) generar información de depuración a través de serie. Eso es genial si tienes una computadora a mano con una entrada serial apropiada. Sin embargo, ese no es siempre el caso por una variedad de razones.
Este proyecto es mi intento de abordar ese problema mediante la creación de un monitor serie portátil con Arduino, que puedo conectar a otros dispositivos en el campo.
Por defecto, simplemente mostrará el texto en un formato de desplazamiento hacia atrás; es decir, el texto aparece en la línea inferior y todo se desplaza hacia arriba para hacer espacio cuando llega más. Esto significa que debería funcionar perfectamente con todo tipo de dispositivos genéricos. Sin embargo, también será posible usar secuencias de escape para controlar la pantalla con mayor precisión, de modo que los dispositivos también se puedan programar específicamente para aprovechar sus capacidades.
Diseño
El diseño consiste en un conjunto de 4 pantallas LCD alfanuméricas (16x2 caracteres cada una), alineadas en una caja similar a esta:
Las pantallas son Epson EAX16027AR, que desafortunadamente no son compatibles con el controlador estándar Hitachi HD44780. Como tal, tuve que escribir mi propia biblioteca para ellos.
Elegí usar estas pantallas (en lugar de, por ejemplo, una pantalla grande) principalmente porque las tenía por ahí y quería hacer algo interesante con ellas. También pensé que sería bastante útil poder controlar cada pantalla de forma independiente para algunas aplicaciones (por ejemplo, mostrar información diferente en cada una).
En términos de diseño de circuitos, las pantallas están conectadas en paralelo, con pines de selección de chip que se utilizan para dirigir los datos / comandos a cada uno según sea necesario.
Un ATMega328 será el cerebro de la unidad final, con datos en serie provenientes de una línea de nivel TTL (para conectarse directamente al TX de una MCU similar), u opcionalmente desde un zócalo D-sub RS232 de 9 pines (para conectarse a varios otros sistemas). La unidad también tendrá un dial de contraste, un botón para borrar la pantalla y un botón para iniciar un modo de autocomprobación. En el futuro, me gustaría agregar botones que permitan al usuario moverse a través de un historial de desplazamiento también.
A continuación se muestra un diseño de circuito muy preliminar (¡tuve algún problema para que Fritzing funcione bien por alguna razón!). Incluye un registro de desplazamiento SIPO de 8 bits para controlar las líneas de datos de los LCD, que se muestran en verde. También puede ver las líneas de selección de chips en naranja.
Por el momento, el proyecto aún se encuentra en la etapa de prototipo de trabajo, impulsado desde una placa Uno (clon). A continuación, puede ver una foto en acción, que muestra el texto que se pasó en serie desde mi computadora.
Código fuente
Estoy haciendo que mi biblioteca LCD esté disponible en GitHub en el siguiente enlace. Tenga en cuenta que se encuentra en una etapa temprana de desarrollo. En un futuro cercano, tengo la intención de hacerlo mucho más similar a la biblioteca de LiquidCrystal central para que sea más fácil la transición entre los dos.
Puede encontrar algún código básico para mi prototipo de Serial Box en la carpeta "ejemplos".
Conclusión
Creo que el proyecto avanza muy bien, y me complació mucho que el prototipo funcionara. Mi principal desafío será montar todo en una caja. Ya he comenzado a cortar agujeros adecuados para las pantallas, pero no tengo mucha experiencia en ese tipo de cosas, y me resulta bastante complicado alinear todo.
Sin embargo, llegaré al final. ¡Puede que no se vea muy bonito cuando termine! :)
fuente
Controlador de calefacción
Ya sabes cómo es: configuras la calefacción para que se encienda a una hora determinada y cuántos días trabajas hasta tarde y ha estado en pleno funcionamiento durante horas, o te vas por unos días y te olvidas de apagarla. ¿O la rara ocasión en que llegas temprano a casa y la casa está fría? Decidí que la forma más sencilla de solucionar esto era crear un dispositivo que me permitiera encender o apagar la calefacción por mensaje de texto / sms. Sería adicional al sistema de control existente para no perder la flexibilidad que puede proporcionar.
El proyecto consta de algunas partes principales: un clon Arduino Uno, un escudo GSM Seeedstudio, un sensor de temperatura DHT22 y un SSR de 25 amp.
Cómo funciona:
Los controles de calefacción existentes están configurados en 'Apagado' y el nuevo controlador está conectado para anularlos. El Uno está programado para responder a tres mensajes diferentes: Encendido, Apagado y Consulta. En el caso de este último, la unidad leerá el DHT22 y responderá al remitente con la temperatura actual y el estado de la unidad (encendido o apagado). Si el comando está activado o desactivado, responderá con una confirmación de la acción realizada. Una vez que se han actuado los mensajes, se eliminan; cualquier mensaje que no se ajuste a la estructura específica del mensaje se deja en la memoria de la tarjeta SIM y se puede examinar más adelante si lo desea.
La alimentación a la unidad es suministrada por una fuente de alimentación de modo de interruptor de cinco voltios y tres amperios. Como los pines de alimentación del Arduino simplemente exponen el bus interno de 5v de la placa, decidí alimentar el conjunto a través de estos y configurar el escudo para extraer energía del Arduino.
La unidad tiene tres LED de estado. Una verde para indicar que hay energía, una azul para indicar que la placa GSM está "activa" y una roja para indicar el estado de la calefacción. Estos son adicionales a los LED de estado provistos en el Arduino y el escudo. También hay un interruptor de botón que permite el control manual de la calefacción, con un condensador de 100nF para manejar el rebote.
Próximo:
Gran parte del código se basa en el viejo retraso () para darle al escudo el tiempo suficiente para realizar sus acciones. ¡Planeo mejorar el código para que espere la confirmación del escudo en lugar de suponer que ha hecho lo que se le indicó dentro del tiempo asignado! También agregaré una característica de 'todavía vivo': a intervalos fijos apague el LED azul, envíe el comando AT al escudo y, en un reconocimiento, encienda nuevamente el LED. El escudo está bajo control del software, por lo que si no responde, apáguelo y vuelva a encenderlo.
Todo el conjunto debe montarse en una carcasa adecuada y montarse junto al controlador existente. Tengo un interruptor de botón iluminado internamente que usaré en lugar de un interruptor separado y un LED rojo para manejar la anulación.
A largo plazo, planeo agregar un RTC, una pantalla LCD de 20 x 4 y botones adicionales para permitir que la unidad se programe y actúe también como un interruptor de tiempo.
¡La creación de prototipos ya ha comenzado!
Conclusión.
¡Hay algo un poco decadente en despertarse en un frío día de descanso de invierno, enviar un mensaje de texto / sms para encender la calefacción y darse la vuelta y volver a dormir durante una hora! Y cuando te das cuenta de que no lo has apagado en una noche, ¡puedes hacerlo desde la comodidad de tu cama!
fuente