El dispositivo más inútil.

Seguramente has visto cómo luce el “Dispositivo más inútil”, si no, entonces deberías ver un vídeo de su funcionamiento. ¡Es inolvidable!

Una cosita entretenida :) Y lo más importante, puede atraer la atención de los invitados durante mucho tiempo.
Por lo general, son este tipo de pequeñas cosas interesantes las que quieres hacer con tus propias manos.
Debo decir que hacer un dispositivo de este tipo no es difícil. Puedes arreglártelas con lo que tienes a mano.

Aquí está el principio diagrama eléctrico el dispositivo más inútil:

Se puede utilizar un servo convencional para accionar el pulsador del interruptor. Además, un servo “muerto” servirá. De todos modos, se retira toda la electrónica del servo original y sólo se utiliza el motor y el reductor incorporado.

Además, necesitarás un interruptor On-On de seis pines y un microinterruptor. Por cierto, estos últimos se suelen utilizar para pulsar teclas en ratones de ordenador.

Lo más difícil al fabricar una máquina de este tipo es fabricar el cuerpo. Un dispositivo que funciona esquemáticamente puede estar hecho de termoplástico. Posteriormente, es fácil completar el estuche con madera o plástico.

Mire las instrucciones en video para hacer lo más inútil. Esta instrucción muestra cómo hacerlo y qué adjuntar y dónde.

El dispositivo fabricado no es tan bonito como en el primer vídeo, pero funciona y es tan inútil como el original :)

Pavel comenta:

¡Oh genial! Iré a comprar todo lo que necesito)

Andrzej comenta:

Un producto casero divertido. No es ninguna vergüenza regalar algo como esto, y puedes obtener mucho entretenimiento con ello, ¡quién sabe cuánto!

Arduino + dos servos + placa de carga + placa convertidora + batería vieja + un montón de componentes de radio + pieza de madera contrachapada + interruptor = ¡el sueño de un idiota hecho realidad!
Mucho texto para aquellos a los que les gusta leer. Muchos spoilers para aquellos a los que les gusta leer en diagonal. Vídeo, para los amantes de los vídeos. Boceto para aquellos a quienes les gusta copiar y correr inmediatamente "sobre la rodilla". Foto, foto, foto. Gato, para los amantes de los gatos.

Realmente no es un descargo de responsabilidad

Este es mi primer proyecto, además del LED parpadeante, Hola mundo, etc. Según la tradición, primero debes esparcir cenizas sobre tu cabeza para asegurarte de que el código esté lejos de ser perfecto y asegurarte de involucrarte en una disputa al respecto. Y también respecto a la copia parcial de código de otro proyecto, pedir no pegar demasiado, etc. Pero esto no sucederá. ¡El código es perfecto! Porque funciona, me gusta y lo hice yo mismo.
Daré un consejo a aquellos que estén interesados: no tengan miedo, únanse a la lucha, paleen montañas de código, construyan sus propias megapirámides con diferentes operadores. Con el tiempo, el estilo, la sofisticación y el ideal llegarán.
Mientras haya espacio en la memoria del controlador, no le temes a nada. Si chocas contra una pared, optimizarás. Y esto también es desarrollo. Es importante.
Un gran libro sobre programación en C: sí, útil. Pero, al principio, es mucho más útil tener a mano una breve referencia sobre los comandos y mantener en sus marcadores varios enlaces para trabajar con ejemplos simples, bibliotecas, etc., como , o el mismo Amperka.
Además, los diagramas de flujo me ayudan mucho. Rectángulo, diamante, óvalo. Cualquiera que lo haya encontrado lo entiende. Estoy haciendo un proyecto ahora; no puedo hacerlo sin un diagrama de flujo. Para mí, es mejor dibujar durante varios días, volver a dibujar en papel para imaginar más claramente todo el flujo del programa, que anotar un montón de código y quedarme atrapado en él, porque... No tengo la capacidad de cubrir todo el código con el poder de mis pensamientos de programación debido a mi experiencia limitada.
Para aquellos que quieran repetirlo o hacerlo a su manera, responderé todas las preguntas.
No entraré en disputas vacías sobre mi escritura, estilo, diseño, código y necesidad del producto, etc. Si cometí un error grave en algún lugar de la reseña, lo corregiré o lo agregaré.

Puedes buscar en Google qué es "el dispositivo más inútil". Lo encontré por accidente. Este código se tomó como base, porque no se lanzó por sí solo y quería crear mis propios guiones.

Digresión lírica

Dicen que después de los cuarenta, especialmente cuando ya tienes mucho más de cuarenta, debes intentar "flexionar" tu cerebro. Y que aprender idiomas es el mejor precalentamiento. Y no sólo a esa edad. No soy muy bueno con los idiomas, pero la revista Health parece aconsejarme... En general, decidí aprender algo nuevo por mí mismo. La electrónica no es nueva para mí, aunque la mayor parte la he olvidado, pero la programación nunca me ha resultado familiar. Le tenía miedo. Pero aquí coincidieron muchas señales de arriba: la revista “Salud”, que recomienda aprender algo nuevo, un viejo sueño de entender (al menos un poco) la programación (al menos algo) y youtube, en el que sólo los perezosos no hablan. sobre cómo hacer parpadear un LED usando una tarifa inteligente por un dólar y un centavo.
Antes de esto, lograba que el LED parpadeara bastante bien usando dos transistores, un capacitor y un par de resistencias, pero ahora, dicen, no es comme il faut. Entonces necesitas estar a la moda.


Realmente me gustó este dispositivo inútil, en el sentido literal de la palabra. Lo vi y me enamoré. ¡Lo quiero, eso es todo! ¡Como el sueño de un niño! Pero la edad ha hecho sus propios ajustes. Quiero hacerlo yo mismo, no comprarlo. Además, se venden dispositivos sencillos. Me encontré con uno “intelectual”, pero no encontré nada parecido a la venta. Además, ¡hay que hacerlo!
Y de nuevo, Arduino. Y no hago boom-boom en eso. Entonces necesitamos resolverlo. Aliexpress al rescate. Empecé con Arduino. Entendí que el camino hacia el estudio sería espinoso y los sacrificios inevitables. Entonces pedí cinco diferentes. Déjalos arder, en todo caso. La depuración del circuito se realizó en Uno de otro vendedor. Pero, dado que esta placa en particular estaba en el dispositivo final, se incluyó en el título.
Además de Arduinos, pedí una gran cantidad de todo tipo de basura, tanto compatible con Arduino como casi Arduino. Aquí solo les contaré lo que fue útil en este producto.

ArduinoPro Mini


Envío rápido, embalado en bolsa antiestática estándar y sobre con superficie interior rugosa. El vendedor es comunicativo y habla ruso.
En un chip 328. 3,3 voltios, 8MHz. ¿Por qué esto es tan? Sí, por error. Quería 5 voltios, 16 MHz, pero compré este. Es mi culpa. Sin embargo, para este proyecto esto no es crítico: instalé un convertidor de voltaje adicional. Eso es todo. No encontré grandes diferencias con otros Minis. La diferencia de marca es textolita negra(?) De las jambas: el pin RAW no funciona en el tablero. Pero eso tampoco se detuvo. Aunque se podría ahorrar dinero con un convertidor de 3,3 V. Los peines no están soldados. El tablero está bien hecho.
¿Por qué tan corto? Porque ya existe un sesgo sobre este vendedor y sus honorarios (cláusula 18). Quien quiera podrá encontrarlo fácilmente. No tiene sentido volver a contarlo. También agregué mi granito de arena en los comentarios. Y mantuve mucha correspondencia con el vendedor.


Servoaccionamiento SG90


$3.2 por lote de dos piezas.
No hay nada especial que describir. Servoaccionamiento débil con precisión de posicionamiento media, que depende en gran medida de la velocidad de movimiento. Pero es barato. Para el accionamiento de la tapa, más que suficiente, para la “mano”, al borde de las posibilidades. Requiere 5 voltios para funcionar, pero 3,3 son suficientes para el control. Intenté controlarlo a través del convertidor y directamente desde Arduino; no hay diferencia. Por tanto, el convertidor de nivel ahorró dinero.


Controlador de carga y convertidor de potencia.


$2,28 por cinco piezas. Con protección. Mientras se carga, el LED rojo está encendido; cuando se completa la carga, el LED azul está encendido. Hubo una reseña aquí.


$0.50 cada uno. El envío, sin embargo, se paga, pero compré muchas otras cosas en esta tienda, por lo que el envío no fue molesto. Se quitó la toma USB para aligerar el peso))) La salida produce 5,12 voltios.





Lo desconecté. Un poco apretado. Para facilitar el funcionamiento del servo, fue posible desmontarlo, acortar el resorte o sustituirlo por uno más débil. Pero ganó la pereza. Lo puse así. Es cierto que tuve que escribir en el código complementos para el ángulo de rotación del servo a altas velocidades.


Convertidor TTL


$1.5 por pieza. De hecho, lo pedí primero. Cuesta la mitad de precio. Pero, por algunas extrañas razones, tuvo una muerte heroica. Todavía no entiendo cómo lo maté. Por esta razón, el proyecto se detuvo durante un mes hasta que llegó uno nuevo y más avanzado, sin necesidad de presionar reinicio. ¿No es esto un progreso?


El resto es de almacenamiento.

Regulador de voltaje 1117T-3,3V en carcasa TO220, condensadores 1500,0x6,3 y 470,0x16, dos condensadores de 0,1 μF, LED blanco y microinterruptor de coche para niños, resistencia de 220 Ohm. La batería llevaba varios años sin usarse. Una vez desarmé un reproductor de DVD portátil (literalmente) quemado. Lo único bueno fueron las baterías que sobrevivieron. Aquí tienes uno de ellos que te resultó útil. Voltaje 3,7 V, no encontré la capacidad en el etiquetado.
Pistola de pegamento, banda elástica para dinero, dos ganchos de... un sujetador (gracias a mi esposa. ¡Cariño, te amo!), dos tacos para muebles, cuatro tornillos, cuatro protectores adhesivos para puertas de muebles, un trozo de placa de pruebas, cables, conectores.


La situación con el casco era más complicada. Se han probado muchas cajas. La caja de plástico del reloj Tissot resultó ser frágil, en parte cartón. Pero las cortinas metálicas se levantaron. Incluso queda uno en stock. Probé estuches de perfumes ya hechos, una caja de vino y una caja de dulces. Al final decidí hacerlo yo mismo.
En un juego de combustión para niños se encontró madera contrachapada de alta calidad, probablemente de abedul. El niño ha crecido, el conjunto permanece. De un lado había un dibujo, pero del otro lado parecía para decirlo sin rodeos, excelente

En pocas palabras, genial

En la escuela teníamos un trudovik. Envejecido. En general es una persona maravillosa. Fue respetado. Cuando pasamos por la electricidad, usando el ejemplo de una batería, una bombilla y una llave, nos dio una conferencia.
“Hay corriente en la batería. Ahora sale del positivo y sigue los cables. Hace, hace, de repente bam: la llave está en camino. Y la llave está abierta. Tok comprende que no hay ningún lugar adonde ir más lejos. Se dio la vuelta y entró en la batería. Y la luz no se enciende. Cerramos la llave. La corriente volvió a fluir, llegó a la llave, la atravesó, pasó por la bombilla y regresó a la batería. Y la bombilla está encendida, francamente, perfectamente”. Desde entonces, esta frase ha aparecido en el léxico como sinónimo de algo inesperadamente exitoso.




Intenté cortar madera contrachapada con una sierra para metales y una sierra de calar, pero no funcionó. Descantillados que luego son difíciles de quitar y borde irregular. Encontré una salida: un cuchillo de oficina afilado. Corta la mitad de la madera contrachapada por un lado y la otra mitad por el otro. Luego un poco de lijado y todo bien. Pero, con una buena regla de metal y una hoja constantemente afilada, se consigue un corte perfecto y una línea recta.
Por supuesto, no está exento de defectos: debajo de la pegatina hecha a mano se esconde un agujero banal. Lo perforé en el centro para el interruptor de palanca. Pero el servo no encajaba. Tuve que mover el interruptor hacia un lado y cerrar el agujero. Esas dificultades no me asustan.
No veo el sentido de describir cada estornudo involucrado en la fabricación del dispositivo. Describiré algunos puntos. Y el que tiene manos, que las haga.
Monté la caja usando pegamento termofusible. No ahorré el pegamento. Se aguanta perfectamente. No cruje, no juega. Rápido, barato y alegre. Y en general, como habrás notado, casi todo se mantiene unido con este pegamento. Recomiendo. Acelera enormemente el proceso de montaje. Pegué el micrófono apagado desde el interior a la pared izquierda; se puede ver un poco en la foto.
La tapa estaba unida a la cortina.

Sufrí con el velo. Experimenté mucho. Quería que la tapa estuviera ubicada encima de la caja y no dentro. Incluso doblé varias versiones de cortinas básicas con clips. Poe recordó más tarde que durante los experimentos le llamaron la atención las cortinas de la caja de relojes Tissot. Muy bien, suizo (¿chino?).
El velo es algo importante. Su calidad es muy importante para la belleza exterior general del dispositivo.
El interruptor de palanca principal debe ser más suave para que funcione más fácilmente.
La tapa se devuelve a la posición cerrada mediante una banda elástica. No es necesario elegirlo muy rígido: el servo se encargará de ello, pero si la cortina está ubicada en el centro, la tapa se deformará.
En el caso de la madera contrachapada, el barnizado es obligatorio, ya que se ensucia mucho. Usé barniz tsapon transparente. Simplemente porque no había otro a mano.
Es mejor colocar el servo que controla la “mano” de otra manera. No en el lateral, sino delante del interruptor de palanca. Entonces el "brazo" puede ser más sencillo de fabricar: en forma de L, en lugar de en forma de U. Se puede reducir el ancho de la caja y colocar el interruptor de palanca en el centro.
Es mejor girar el servo de la tapa 180 grados, entonces en el código será más fácil asociar los grados de este servo con el funcionamiento de la tapa. Para mí es al revés, por lo que abrir significa disminuir grados. Pero con la “mano” ocurre al revés. Y es más correcto empujar la tapa desde el mismo lado por el que la banda elástica la tira hacia atrás.
La caja no debe hacerse demasiado pequeña. No será cómodo de usar. Pero uno más plano es aceptable. La caja es ligera y si es más plana será más estable. Será más conveniente presionar el interruptor de palanca con el dedo sin sostener la caja.
Hice algo parecido a un escudo con dos piezas de una placa de pruebas. Soldado a Arduino sin conectores. Estrechamente. No me importa.


Pero hice todos los periféricos con conectores. Es más cómodo.
Se requiere un condensador grande para alimentar el Arduino (3,3 voltios). Sin él, el Arduino se cuelga.
No tengo planos de montaje del dispositivo. Es tan sencillo que se pueden utilizar muchos otros. soluciones simples, en el que se basan todas las mecánicas. En el vídeo, tanto el mío como el de otros dispositivos similares, podéis ver las opciones de unidad utilizadas.

#incluir #incluir Servo puertaServo; //cubierta servoaccionamiento Servo handServo; //brazo servo Rebote rebote = Rebote(12, 40); //crea una instancia de la clase Bounce para el pin 12 del interruptor de palanca int pos = 0; //variable de posición inicial int pos1door = 70; //posición inicial del servo de tapa int pos2door = 30; //posición final del servo de tapa int pos1hand = 10; //posición inicial del servo manual int pos2hand = 160; //posición final del servo del brazo int r; //número aleatorio del cual depende la opción de apagar el interruptor de palanca #define LED_PIN 11 // número de la salida conectada al LED int ledState = LOW; // establece el estado del LED con esta variable long anteriorMillis = 0; // almacena la hora del último encendido del LED #define INTERVAL 30UL // intervalo entre encender/apagar el LED void setup() ( pinMode(LED_PIN, OUTPUT); pinMode(12, INPUT); // cambia el pin 12 al modo de entrada digitalWrite(12, 1); //activa la resistencia pull-up Serial.begin(9600); //configura el puerto a una velocidad de 9600 bps. Para depuración. Luego puedes eliminarlo. doorServo .attach(9); //asigna el servo de tapa al pin 9 handServo.attach(10); //asigna el servo de mano al pin 10 doorServo.write(pos1door); //establece el servo de tapa en la posición inicial handServo. write(pos1hand); //establece el servo manual en la posición inicial ) void loop() ( if (bouncer.update()) ( if (bouncer.read()==0) ( //si se presiona el botón ( r = random(0,11); //genera un número aleatorio jn 0 a 10 Serial.println® ; if (r == 0) ( move_0(); ) //llamada a función por número aleatorio else if (r == 1) ( move_1(); ) else if (r == 2) ( move_2(); ) else if (r == 3) ( move_3(); ) else if (r == 4) ( mover_4(); ) más si (r == 5) ( mover_5(); ) más si (r == 6) ( mover_0(); ) más si (r == 7) ( mover_1(); ) más si (r == 8) ( move_4(); ) else if (r == 9) ( move_3(); ) else if (r == 10) ( move_0(); ) ) ) ) // Biblioteca de funciones. Principio general: abra la tapa - saque la mano y apague el interruptor de palanca - retire la mano - cierre la tapa // y hay opciones sobre cómo decorarla bellamente ............ vacío move_0())( //opción simple: abrir-apagar-cerrar //abre la tapa for(pos = pos1door; pos >= pos2door; pos -=3) ( doorServo.write(pos); delay(15) ; ) //extiende tu mano para(pos = pos1mano ;pos<= pos2hand; pos +=3) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand; pos >= pos1mano; pos -=3) ( handServo.write(pos); delay(15); ) //cierra la tapa para(pos = pos2door; pos<= pos1door; pos +=3) { doorServo.write(pos); delay(15); } } void move_1(){ //простой вариант 2: открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2puerta; pos -=1) ( doorServo.write(pos); retraso(15); ) retraso(1000); //extiende tu mano para(pos = pos1mano; pos<= pos2hand; pos +=1) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand; pos > <= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_2(){ //задумчивый вариант 2: приоткрыли-закрыли-открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2puerta+15; pos -=5) ( doorServo.write(pos); retraso(15); ) retraso(1000); //cierra la tapa for(pos = pos2door+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } delay(1000); //открываем крышку for(pos = pos1door; pos > <= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+2; pos >= pos1mano; pos -=5) ( handServo.write(pos); delay(15); ) //cierra la tapa para(pos = pos2door; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_3(){ //дерганый вариант: приоткрыли-подергали - закрыли-открыли-выключили-закрыли //открываем крышку for(pos = pos1door; pos >= pos2puerta+15; pos -=1) ( doorServo.write(pos); retraso(50); ) retraso(500); // tira de la tapa for(int i=1; i<=8; i ++) { doorServo.write(pos2door+18); delay(80); doorServo.write(pos2door+15); delay(80); static unsigned long previousMillis = 0; if(millis() - previousMillis >INTERVALO) (anteriorMillis = milis(); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); ) ) retraso(500); //cierra la tapa for(pos = pos2door+15; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } delay(1000); //открываем крышку for(pos = pos1door; pos >= pos2puerta; pos -=5) ( doorServo.write(pos); delay(15); ) //extiende la mano para(pos = pos1hand; pos<= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+2; pos >= pos1mano; pos -=5) ( handServo.write(pos); delay(15); ) //cierra la tapa para(pos = pos2door; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_4(){ //открываем крышку delay(2000); for(pos = pos1door; pos >= pos2puerta+15; pos -=5) ( doorServo.write(pos); retraso(50); ) retraso(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); retraso(2000); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); retraso(500); //cierra la tapa for(pos = pos2door+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(50); } delay(1000); //открываем крышку не полностью for(pos = pos1door; pos >= pos2puerta+15; pos -=1) ( doorServo.write(pos); retraso(50); ) retraso(2000); //abre la tapa completamente for(pos = pos2door+15; pos >= pos2door; pos -=1) ( doorServo.write(pos); delay(15); ) //saca tu mano for(pos = pos1hand; posición<= pos2hand-35; pos +=1) { handServo.write(pos); delay(35); } delay(1000); //высовываем руку for(pos = pos2hand-35; pos <= pos2hand+3; pos +=4) { handServo.write(pos); delay(15); } //убираем руку for(pos = pos2hand+3; pos >= pos1mano; pos -=7) ( handServo.write(pos); delay(15); ) //cierra la tapa para(pos = pos2door; pos<= pos1door; pos +=7) { doorServo.write(pos); delay(15); } delay(500); //открываем крышку for(pos = pos1door; pos >= pos2puerta+20; pos -=5) ( doorServo.write(pos); retraso(50); ) retraso(300); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); retraso(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); retraso(100); //cerrar la tapa for(pos = pos2door+20; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } } void move_5(){ //возня for(int i=1; i <=2; i ++) { for(pos = pos1door; pos <= pos1door+45; pos +=5) { doorServo.write(pos); delay(50); } for(pos = pos1door+45; pos >= pos1puerta; pos -=5) ( doorServo.write(pos); retraso(50); ) retraso(100); ) //tira de la tapa for(int i=1; i<=3; i ++) { doorServo.write(pos1door-6); delay(80); doorServo.write(pos1door-3); delay(80); } delay(300); //открываем крышку digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos1door; pos >= pos2puerta+25; pos -=5) ( doorServo.write(pos); retraso(50); ) retraso(500); //abre la portada digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2door+25; pos >= pos2door+10; pos -=5) ( doorServo.write(pos); delay(50); ) //abre la puerta digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2door+10; pos >= pos2door-5; pos -=2) ( doorServo.write(pos); delay(50); ) //saca tu mano for(pos = pos1hand; pos<= pos2hand-35; pos +=9) { handServo.write(pos); delay(35); } delay(1000); //убираем руку for(pos = pos2hand-35; pos >= pos2mano-70; pos -=1) ( handServo.write(pos); retraso(15); ) retraso(1000); //extiende tu mano para(pos = pos2hand-70; pos<= pos2hand+3; pos +=9) { handServo.write(pos); delay(15); } delay(50); //убираем руку for(pos = pos2hand+3; pos >= pos1mano; pos -=7) ( handServo.write(pos); delay(15); ) //cierra la tapa digitalWrite(LED_PIN,!digitalRead(LED_PIN)); para(pos = pos2puerta-5; pos<= pos1door+3; pos +=5) { doorServo.write(pos); delay(50); } }

El boceto sugerido por el autor desde el enlace al comienzo de la reseña no me funcionó. Y todavía no era el profesional que soy ahora)))))))
En general, comencé a entender. Como resultado, basándose en el de otra persona, hice mi propio boceto. Se agregó protección anti-rebote. Por supuesto, sería más fácil instalar una resistencia con un condensador, pero tenía muchas ganas de programarlo.


En principio, el esquema se desprende claramente del boceto. Pero la traeré de todos modos. Perdón por la calidad, lo mejor que pude. Tomé una placa convertidora ligeramente diferente; no la encontré necesaria en la vista frontal.


No hay explicaciones especiales para el boceto. Quizás sea el momento de añadir unos cuantos grados de ángulo de rotación, cuando la velocidad del servo es alta. Noté que si la "mano" salta repentinamente, no apaga el interruptor de palanca. Evidentemente esto se debe a la mala calidad de los servos. Por lo tanto, es necesario aumentar un poco el ángulo de salida del "brazo". Sospecho que con la repetición, estos grados adicionales pueden ser diferentes para ti. Depende del hombro del “brazo”.
Y sobre los programas. Hasta el momento hay seis programas. Llamado mediante generación de números aleatorios. Además, los programas simples (0, 1 y 2) se llaman con más frecuencia que los normales. A todos mis evaluadores les pareció que los programas más sofisticados deberían ser una ventaja rara y agradable, entonces aparece cierta intriga. Así que lo hice.
Para los amantes de los números, el tamaño de la caja es: largo - 150 mm, alto - 70 mm, ancho - 65 mm.

Youtube ha degradado mucho la calidad. Si necesitas ver el original, descárgalo. 21 MB.
Aquí el boceto se ha modificado para permitirle ver los seis programas uno por uno para que tenga una idea de todos ellos. En la vida, como escribí, tienen un orden pseudoaleatorio.



La carga se realiza mediante micro-USB con un cargador de móvil normal. La duración de la batería depende en gran medida de la frecuencia de uso. A veces durante varios días y, a veces, "mato" en un día.


Por último.
Sin embargo, el proyecto puede desarrollarse y mejorarse aún más. Puedes idear nuevos escenarios. Puede agregar un tweeter y expresar el dispositivo. Por ejemplo, déjelo “gruñir”, como si se enojara, si el tiempo entre apagar y encender el interruptor es muy corto. Puedes, como en el proyecto original, agregar movimiento de la caja en diferentes direcciones.
Puede incorporar una verificación para el caso en el que la "mano", por alguna razón, no apagó el interruptor de palanca (por ejemplo, en el frío, el servo no alcanza el ángulo deseado) y ajustar el ángulo uno a la vez, escribiendo algún tipo de mensaje “nervioso” específicamente para tal caso » cerrar el programa. Puedes instalar el Nano y programar a través de USB sin desmontar el dispositivo cada vez. Me gustó la reseña +123 +232

Arduino + dos servos + placa de carga + placa convertidora + batería vieja + un montón de piezas de radio + pieza de madera contrachapada + interruptor de palanca = ¡el sueño de un idiota hecho realidad!
Mucho texto, para aquellos a los que les gusta leer. Muchos spoilers para quienes les gusta leer “en diagonal”. Vídeo, para los amantes del vídeo. Sketch, para aquellos a quienes les gusta copiar inmediatamente y correr de rodillas. Foto, foto, foto. Gato, para los amantes de los gatos.

Realmente no es un descargo de responsabilidad

Este es mi primer proyecto, sin contar el parpadeo del LED, Hola mundo, etc. Según la tradición, primero hay que esparcir cenizas sobre la cabeza, ya que el código está lejos de ser perfecto y hay que entablar una disputa al respecto. Y también respecto a la copia parcial de código de otro proyecto, pedir no pegar demasiado, etc. Pero esto no sucederá. ¡El código es perfecto! Porque funciona, me gusta y fue hecho para mí.
Daré un consejo a aquellos que estén interesados: no tengan miedo, vayan a la batalla, exploren montañas de código, construyan sus propias megapirámides con diferentes operadores. Con el tiempo, el estilo, la sofisticación y el ideal llegarán.
Mientras haya espacio en la memoria del controlador, no le temes a nada. Si chocas contra una pared, optimizarás. Y esto también es desarrollo. Es importante.
Un gran libro sobre programación en C: sí, útil. Pero, al principio, es mucho más útil tener a mano una breve guía de referencia sobre comandos y mantener en sus marcadores varios enlaces para trabajar con ejemplos sencillos, bibliotecas, etc., en especie. arduino-diy.com, o el mismo amperio.
Y además, los diagramas de flujo me ayudan mucho. Rectángulo, diamante, óvalo. Quienes lo han encontrado lo entienden. Estoy haciendo un proyecto ahora; no puedo hacerlo sin un diagrama de flujo. Para mí, es mejor dibujar y volver a dibujar en papel durante varios días para imaginar más claramente todo el progreso del programa, que esbozar un montón de código y quedarme atrapado en él, porque... No tengo la capacidad de cubrir todo el código con el poder de mis pensamientos de programación debido a mi experiencia limitada.
Para aquellos que quieran repetirlo o hacerlo a su manera, responderé todas las preguntas.
No entraré en disputas vacías sobre mis habilidades de escritura, estilo, diseño, código y necesidad del producto, etc. Si cometí un error grave en algún lugar de la reseña, lo corregiré o lo agregaré.

¿Cuál es el “dispositivo más inútil”? Puedes buscarlo en Google tú mismo. Me encontré con él por casualidad. Este código fue tomado como base, porque... No empezó solo y quería hacer mis propios guiones.

Digresión lírica

Dicen que después de los cuarenta, especialmente cuando ya tienes mucho más de cuarenta, debes intentar "calentar" tu cerebro. Y que aprender idiomas es el mejor precalentamiento. Y no sólo a esa edad. No soy muy bueno con los idiomas, pero la revista “Salud” parece aconsejarme... En general, decidí aprender algo nuevo por mí mismo. La electrónica no es nueva para mí, aunque la mayor parte la he olvidado, pero la programación nunca me ha resultado familiar. Le tenía miedo. Pero aquí coincidieron muchas señales de arriba: la revista “Salud”, que recomienda aprender algo nuevo, un viejo sueño de entender (al menos un poco) la programación (al menos algo) y youtube, donde sólo los perezosos no cuentan le enseñará cómo hacer parpadear un LED mediante el pago inteligente por un dólar y kopeks.
Antes de esto, hice un buen trabajo controlando el parpadeo del LED usando dos transistores, un capacitor y un par de resistencias, pero ahora, dicen, esto no es comme il faut. Entonces tienes que estar a la moda.


Realmente me gustó este dispositivo inútil, en el verdadero sentido de la palabra. Lo vi y me enamoré. ¡Lo quiero, eso es todo! ¡Como un sueño de infancia! Pero la edad ha hecho sus propios ajustes. Quiero hacerlo yo mismo, no comprarlo. Además, se venden dispositivos sencillos. Me encontré con "inteligente", pero no pude encontrar nada parecido a la venta. Es más, ¡debemos hacerlo!
Y de nuevo, Arduino. Y no hago boom-boom en eso. Entonces necesitamos resolverlo. Aliexpress para ayudar. Comenzó con Arduino. Entendí que el camino hacia el estudio sería espinoso y los sacrificios inevitables. Por eso pedí cinco diferentes. Déjalos arder, en todo caso. La depuración del circuito se realizó en Uno de otro vendedor. Pero, como fue esta placa la que terminó en el dispositivo final, se incluyó en el título.
Además del Arduino, pedí una gran cantidad de todo tipo de basura, tanto compatible con Arduino como casi Arduino. Aquí solo les contaré lo que fue útil en este producto.

ArduinoPro Mini


Envío rápido, embalado en forma de bolsa antiestática estándar y sobre con superficie interior abollada. El vendedor es comunicativo y habla ruso.
En un chip 328. 3,3 voltios, 8MHz. ¿Por qué esto es tan? Sí por error. Quería uno de 5 voltios, 16 MHz, pero compré este. Es mi culpa. Sin embargo, para este proyecto esto no es crítico: instalé un convertidor de voltaje adicional. En realidad eso es todo. No encontré grandes diferencias con otros Minis. La diferencia de marca es la textolita negra(?) Entre las desventajas: el pin RAW no funciona en la placa. Pero eso tampoco se detuvo. Aunque se podría ahorrar dinero con un convertidor de 3,3 V. Los niños no están conectados. El pago se realizó bien.
¿Por qué tan brevemente? Porque ya existe un sesgo sobre este vendedor y sus honorarios (cláusula 18). Quien quiera lo encontrará fácilmente. No tiene sentido volver a contarlo. También le agregué mi granito de arena en los comentarios. Y mantuve correspondencia con el vendedor a mi gusto.

Servoaccionamiento SG90


$3.2 por lote de dos piezas.
No hay nada especial que describir. Servoaccionamiento débil con precisión de posicionamiento media, que depende en gran medida de la velocidad de movimiento. Pero es barato. Para el accionamiento de la tapa, más que suficiente, para la “mano”, al borde de las posibilidades. Para funcionar necesitas 5 voltios, pero para controlar 3,3 es suficiente. Intenté controlarlo a través del convertidor y directamente desde Arduino; no hay diferencia. Por tanto, el convertidor de nivel ahorró dinero.

Controlador de carga y convertidor de potencia.


$2,28 por cinco piezas. Con protección. Mientras se carga, el LED rojo está encendido, el final de la carga es el LED azul. Hubo una reseña aquí.


$0.50 cada uno. La entrega, sin embargo, se paga, pero también tomé un montón de todo tipo de cosas de esta tienda, por lo que la entrega no fue estresante. Se ha quitado la toma USB para hacerla más ligera))) La salida produce 5,12 voltios.


Lo desconecté. Un poco apretado. Para facilitar el trabajo del serva, era posible desmontarlo, acortar el resorte o sustituirlo por uno más débil. Pero ganó la pereza. Lo puse así. Es cierto que tuve que escribir en el código adiciones al ángulo de rotación del servo a altas velocidades.

Convertidor TTL


$1.5 por pieza. De hecho, lo pedí primero. Es el doble de barato. Pero, por algunas extrañas razones, murió como los valientes. Todavía no entendía qué usé para matarlo. Por esta razón, el proyecto se detuvo durante un mes, hasta que llegó uno nuevo, más avanzado, sin necesidad de presionar reinicio. ¿No es esto un progreso?

El resto es de stock.

Regulador de voltaje 1117T-3.3V en paquete TO220, capacitores 1500.0×6.3 y 470.0×16, dos capacitores de 0.1 µF, LED blanco y microinterruptor para niños de qué tipo de máquina, resistencia de 220 ohmios. La batería estuvo varios años sin uso. Una vez desarmé un reproductor de DVD portátil (literalmente) quemado. Lo único bueno fue que las baterías sobrevivieron. Aquí tienes uno de ellos que te resultó útil. Voltaje 3,7 V, no encontré la capacitancia en la marca.
Una pistola de pegamento, una banda elástica para dinero, dos ganchos de... un sujetador (gracias a mi esposa. ¡Cariño, te amo!), dos tacos para muebles, cuatro tornillos, cuatro protectores adhesivos para dos rayos de muebles, un trozo de tablero. , cables, conectores.

La situación con el cuerpo era más complicada. Se probaron muchas cajas. La caja de plástico del reloj Tissot resultó ser frágil, en parte cartón. Pero las cortinas metálicas se apartaron de ella. Incluso queda uno en stock. Probé estuches de perfumes ya hechos, una caja de vino y una caja de dulces. Al final decidí hacerlo yo mismo.
En un juego de combustión para niños se encontró madera contrachapada de alta calidad, probablemente de abedul. El niño ha crecido, el conjunto permanece. Se aplicó un dibujo en un lado, pero el otro lado parecía para decirlo sin rodeos, genial

Para decirlo sin rodeos, genial

En la escuela teníamos un trabajador laboral. A la edad. En general es una persona maravillosa. Fue respetado. Cuando pasamos por la electricidad, por ejemplo una batería, una bombilla y una llave, nos dio un sermón.
“Hay corriente en la batería. Ahora sale de la nada y sigue los cables. Hace, hace, de repente bam: la llave está en camino. Y la llave está abierta. Tok comprende que no hay ningún lugar adonde ir más lejos. Se dio la vuelta y entró en la batería. Y la luz no se enciende. Cerremos la llave. La corriente volvió a fluir, llegó a la llave, la atravesó, pasó por la bombilla y regresó a la batería. Y la bombilla está encendida, sólo para decir, genial”. Desde entonces, existe una frase en el léxico como sinónimo de algo inesperadamente exitoso.


Intenté cortar madera contrachapada con una sierra para metales o una sierra de calar, pero nada funcionó. Descantillados que luego son difíciles de quitar, bordes irregulares. Encontré una salida: un cuchillo de oficina afilado. Corta la mitad de la madera contrachapada por un lado y la otra mitad por el otro. Luego un poco de lijado y todo bien. Pero, con una buena regla de metal y una hoja constantemente afilada, se consigue un corte perfecto y una línea recta.
Por supuesto, no sin errores: debajo de la pegatina hecha a mano se esconde un agujero banal. Lo perforé en el centro para el interruptor de palanca. Pero el servidor no encajaba. Tuve que mover el interruptor hacia un lado y cerrar el agujero. Esas dificultades no me asustan.
No veo el sentido de describir cada paso de la fabricación del dispositivo. Describiré algunos puntos. Y el que tiene manos, que las haga.
Monté la caja con pegamento caliente. No ahorré el pegamento. Se mantiene perfectamente. No cruje, no juega. Rápido, barato y alegre. Y en general, como habrás notado, casi todo se mantiene unido con este pegamento. Lo recomiendo. Acelera enormemente el proceso de montaje. El micrófono de apagado estaba pegado desde el interior a la pared izquierda; se puede ver un poco en la foto.
Adjunté la tapa a la cortina.

Sufrí con el velo. Experimenté mucho. Quería que la tapa estuviera ubicada encima de la caja y no dentro. Incluso doblé varias versiones de grapas para cortinas con clips. Entonces recordé que durante los experimentos me llamaron la atención las cortinas de la caja de un reloj Tissot. Muy amable, suizo (¿chino?).
La cortina es algo importante. Su calidad es muy importante para la belleza exterior general del dispositivo.
El interruptor de palanca principal debe ser más suave, así será más fácil trabajar.
La tapa se devuelve a la posición cerrada mediante una banda elástica. No es necesario elegirlo con mucha fuerza: el serva se encargará de ello, pero si la cortina está colocada en el centro, la tapa se deformará.
En el caso de la madera contrachapada, es imprescindible barnizarla, ya que se ensucia mucho. Utilicé barniz de capón incoloro. Simplemente porque no había otro a mano.
Es mejor colocar el servo que controla la “mano” de otra manera. No en el lateral, sino delante del interruptor de palanca. Entonces el "brazo" puede ser más fácil de fabricar: en forma de L, en lugar de en forma de U. Se puede reducir el ancho de la caja y colocar el interruptor de palanca en el centro.
Es mejor girar el servo de la tapa 180 grados, entonces en el código será más fácil asociar los grados de este servo con el funcionamiento de la tapa. Para mí es al revés, por lo que la apertura es una disminución de grados. Y la “mano” es todo lo contrario. Y es más correcto empujar la tapa desde el mismo lado por el que la banda elástica la tira hacia atrás.
La caja no debe hacerse demasiado pequeña. No será cómodo de usar. Pero uno más plano es aceptable. La caja es ligera y si es más plana será más estable. Será más conveniente presionar el interruptor de palanca con el dedo sin sostener la caja.
Hice algo parecido a un escudo con dos piezas de una placa de pruebas. Soldado a Arduino sin conectores. Mortal. No lo siento.


Pero hice todos los periféricos en el conector. Es más conveniente.
Se requiere un condensador de alta capacidad para alimentar el arduino (3,3 voltios). Sin él, el Arduino se cuelga.
No tengo planos de montaje del dispositivo. Es tan sencillo que puedes aplicar muchas otras soluciones sencillas en las que se basan todas las mecánicas. En el vídeo, tanto el mío como el de otros dispositivos similares, podéis ver las opciones de unidad utilizadas.

#incluir #incluir Servo puertaServo; //servoaccionamiento de tapa Servo handServo; //brazo servo Rebote rebote = Rebote(12, 40); //crea una instancia de la clase Bounce para el pin 12 del interruptor de palanca int pos = 0; //variable de posición inicial int pos1door = 70; //posición inicial del servomotor de la tapa int pos2door = 30; //posición final del servomotor de tapa int pos1hand = 10; //posición inicial del servo manual int pos2hand = 160; //posición final del servo manual int r; //número aleatorio del cual depende la opción de apagar el interruptor de palanca #define LED_PIN 11 // número de la salida conectada al LED int ledState = LOW; // configuramos el estado del LED con esta variable long anteriorMillis = 0; // almacena la hora del último cambio de LED #define INTERVAL 30UL // intervalo entre encender/apagar el LED void setup() ( pinMode(LED_PIN, OUTPUT); pinMode(12, INPUT); // cambia 12 pines ingresa la entrada mode digitalWrite(12, 1); //activa la resistencia pull-up Serial.begin(9600); //configura el puerto a una velocidad de 9600 bps. Para depuración. Luego puedes eliminarlo. doorServo.attach (9); //asigna las cubiertas del servodrive para el pin 9 handServo.attach(10); //asigna el servo manual al pin 10 doorServo.write(pos1door); //establece el servo de la tapa en la posición inicial handServo.write (pos1hand); //establece el servo en la posición inicial manos ) void loop() ( if (bouncer.update()) ( if (bouncer.read()==0) ( //si se presiona el botón ( r = random(0,11); //genera un número aleatorio jn 0 a 10 Serial.println® ; if (r == 0) ( move_0(); ) //llamada a función basada en un número aleatorio else if (r = = 1) ( mover_1(); ) más si (r == 2) ( mover_2(); ) más si (r == 3) ( mover_3(); ) más si (r == 4) ( mover_4(); ) más si (r == 5) ( mover_5(); ) más si (r == 6) ( mover_0(); ) más si (r == 7) ( mover_1(); ) más si (r == 8 ) ( move_4(); ) else if (r == 9) ( move_3(); ) else if (r == 10) ( move_0(); ) ) ) ) // Biblioteca de funciones. Principio general: abra la tapa - saque la mano y apague el interruptor de palanca - retire la mano - cierre la tapa // y hay opciones sobre cómo arreglarlo bellamente ............ vacío move_0())( //opción simple: abrir-apagar-cerrar //abre la tapa for(pos = pos1door; pos >= pos2door; pos -=3) ( doorServo.write(pos); delay(15) ; ) //extiende tu mano para(pos = pos1mano ;pos<= pos2hand; pos +=3) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand; pos >= pos1mano; pos -=3) ( handServo.write(pos); delay(15); ) //cierra la tapa para(pos = pos2door; pos<= pos1door; pos +=3) { doorServo.write(pos); delay(15); } } void move_1(){ //прocтoй вaриaнт 2: oткрыли-выключили-зaкрыли //oткрывaeм крышку for(pos = pos1door; pos >= pos2puerta; pos -=1) ( doorServo.write(pos); retraso(15); ) retraso(1000); //levanta la mano para(pos = pos1mano; pos<= pos2hand; pos +=1) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand; pos > <= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_2(){ //зaдумчивый вaриaнт 2: приoткрыли-зaкрыли-oткрыли-выключили-зaкрыли //oткрывaeм крышку for(pos = pos1door; pos >= pos2puerta+15; pos -=5) ( doorServo.write(pos); retraso(15); ) retraso(1000); //cierra la tapa for(pos = pos2door+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } delay(1000); //oткрывaeм крышку for(pos = pos1door; pos > <= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand+2; pos >= pos1mano; pos -=5) ( handServo.write(pos); delay(15); ) //cierra la tapa para(pos = pos2door; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_3(){ //дeргaный вaриaнт: приoткрыли-пoдeргaли - зaкрыли-oткрыли-выключили-зaкрыли //oткрывaeм крышку for(pos = pos1door; pos >= pos2puerta+15; pos -=1) ( doorServo.write(pos); retraso(50); ) retraso(500); // tira de la tapa for(int i=1; i<=8; i ++) { doorServo.write(pos2door+18); delay(80); doorServo.write(pos2door+15); delay(80); static unsigned long previousMillis = 0; if(millis() - previousMillis >INTERVALO) (anteriorMillis = milis(); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); ) ) retraso(500); //cierra la tapa for(pos = pos2door+15; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } delay(1000); //oткрывaeм крышку for(pos = pos1door; pos >= pos2puerta; pos -=5) ( doorServo.write(pos); delay(15); ) //levantar la mano para(pos = pos1hand; pos<= pos2hand+2; pos +=5) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand+2; pos >= pos1mano; pos -=5) ( handServo.write(pos); delay(15); ) //cierra la tapa para(pos = pos2door; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(15); } } void move_4(){ //oткрывaeм крышку delay(2000); for(pos = pos1door; pos >= pos2puerta+15; pos -=5) ( doorServo.write(pos); retraso(50); ) retraso(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); retraso(2000); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); retraso(500); //cierra la tapa for(pos = pos2door+15; pos<= pos1door; pos +=5) { doorServo.write(pos); delay(50); } delay(1000); //oткрывaeм крышку нe пoлнocтью for(pos = pos1door; pos >= pos2puerta+15; pos -=1) ( doorServo.write(pos); retraso(50); ) retraso(2000); //abre la tapa completamente for(pos = pos2door+15; pos >= pos2door; pos -=1) ( doorServo.write(pos); delay(15); ) //saca tu mano for(pos = pos1hand; posición<= pos2hand-35; pos +=1) { handServo.write(pos); delay(35); } delay(1000); //выcoвывaeм руку for(pos = pos2hand-35; pos <= pos2hand+3; pos +=4) { handServo.write(pos); delay(15); } //убирaeм руку for(pos = pos2hand+3; pos >= pos1mano; pos -=7) ( handServo.write(pos); delay(15); ) //cierra la tapa para(pos = pos2door; pos<= pos1door; pos +=7) { doorServo.write(pos); delay(15); } delay(500); //oткрывaeм крышку for(pos = pos1door; pos >= pos2puerta+20; pos -=5) ( doorServo.write(pos); retraso(50); ) retraso(300); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); retraso(500); digitalWrite(LED_PIN,!digitalRead(LED_PIN)); retraso(100); //cerrar la tapa for(pos = pos2door+20; pos<= pos1door; pos +=1) { doorServo.write(pos); delay(50); } } void move_5(){ //вoзня for(int i=1; i <=2; i ++) { for(pos = pos1door; pos <= pos1door+45; pos +=5) { doorServo.write(pos); delay(50); } for(pos = pos1door+45; pos >= pos1puerta; pos -=5) ( doorServo.write(pos); retraso(50); ) retraso(100); ) //tira de la tapa for(int i=1; i<=3; i ++) { doorServo.write(pos1door-6); delay(80); doorServo.write(pos1door-3); delay(80); } delay(300); //oткрывaeм крышку digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos1door; pos >= pos2puerta+25; pos -=5) ( doorServo.write(pos); retraso(50); ) retraso(500); //abre la portada digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2door+25; pos >= pos2door+10; pos -=5) ( doorServo.write(pos); delay(50); ) //abre la puerta digitalWrite(LED_PIN,!digitalRead(LED_PIN)); for(pos = pos2puerta+10; pos >= pos2puerta-5; pos -=2) ( doorServo.write(pos); delay(50); ) //levantar la mano for(pos = pos1hand; pos<= pos2hand-35; pos +=9) { handServo.write(pos); delay(35); } delay(1000); //убирaeм руку for(pos = pos2hand-35; pos >= pos2mano-70; pos -=1) ( handServo.write(pos); retraso(15); ) retraso(1000); //levanta la mano para(pos = pos2hand-70; pos<= pos2hand+3; pos +=9) { handServo.write(pos); delay(15); } delay(50); //убирaeм руку for(pos = pos2hand+3; pos >= pos1mano; pos -=7) ( handServo.write(pos); delay(15); ) //cierra la tapa digitalWrite(LED_PIN,!digitalRead(LED_PIN)); para(pos = pos2puerta-5; pos<= pos1door+3; pos +=5) { doorServo.write(pos); delay(50); } }

El boceto ofrecido por el autor desde el enlace al comienzo de la reseña no comenzó para mí. Y todavía no era el profesional que soy ahora)))))))
En general, comencé a resolverlo. Como resultado, basándose en el de otra persona, hice mi propio boceto. Se agregó protección anti-rebote. Por supuesto, sería más fácil instalar una resistencia con un condensador, pero tenía muchas ganas de programarlo.


En principio, el esquema se desprende claramente del boceto. Pero lo traeré de todos modos. Perdón por la calidad, lo mejor que pude. Tomé una placa convertidora ligeramente diferente; no encontré la que necesitaba en la sección "frontal".

No hay explicaciones especiales para el boceto. Quizás sea el momento de añadir unos grados al ángulo de giro, cuando la velocidad del servo es alta. Noté que si la "mano" salta bruscamente, no apaga el interruptor de palanca. Evidentemente esto se debe a la baja calidad de los servos. Por lo tanto, es necesario aumentar un poco el ángulo de salida del "brazo". Sospecho que con la repetición, estos grados adicionales pueden ser diferentes para ti. Depende del hombro del “brazo”.
Y sobre programas. Hasta el momento hay seis programas. Llamado mediante la generación de un número aleatorio. Además, los programas simples (0, 1 y 2) se llaman con más frecuencia de lo habitual. A todos mis evaluadores les pareció que los programas más sofisticados deberían ser un bono raro y agradable, luego aparece algo de intriga. Así que lo hice.
Para los amantes de los números: tamaño de la caja: largo - 150 mm, alto - 70 mm, ancho - 65 mm.

Youtube ha deteriorado mucho la calidad. Si necesitas ver el original, descárgalo. 21 MB.
Aquí se ha realizado un cambio en el boceto que le permite ver los seis programas uno por uno, para que tenga una idea de todo. En la vida, como escribí, tienen un orden pseudoaleatorio.

La carga se realiza mediante micro-USB con un cargador normal de un teléfono móvil. La autonomía depende en gran medida de la frecuencia de uso. A veces durante varios días y, a veces, "mato" en un día.


Por último.
El proyecto, sin embargo, se puede mejorar y mejorar. Puedes idear nuevos escenarios. Puedes agregar un tweeter y hacer sonar el dispositivo. Por ejemplo, déjelo “gruñir”, como si se enojara, si el tiempo entre apagar y encender el interruptor es muy corto. Puedes, como en el proyecto original, agregar movimiento de la caja en diferentes direcciones.
Puede incorporar una verificación para el caso en que la "mano", por alguna razón, no apaga el interruptor de palanca (por ejemplo, en el frío, el servo no alcanza el ángulo deseado) y ajustar el ángulo solo en un momento, habiendo escrito algún tipo de "nervioso" especialmente para tal caso » programa de cierre. Puedes instalar el Nano y programarlo vía USB sin desmontar el dispositivo cada vez.

Y, en general, puedes hacerlo con más cuidado. Son posibles muchas cosas diferentes. En realidad, esto es exactamente lo que sugiero hacer a quienes estén interesados ​​en ello.
Quizás me perdí algo. La revisión resultó ser bastante extensa para un dispositivo tan simple. Por esto puedo disculparme.
Ahora el gato y gracias por leer hasta el final.

Sesión de fotos de verano de un devorador de ratones domésticos.

Alrededor de las cinco, a muchos les sucedió una desgracia bien conocida: era el cumpleaños de un buen amigo. Volvió a surgir la pregunta: “¿qué regalar?” Teniendo en cuenta que a una persona no le gustan las cosas inútiles en el hogar, surgió la idea de regalarle algo inútil. Hay algo de lógica en esto. Después de todo, él mismo nunca adquiriría algo inútil. Pero en aras de la armonía universal, debe haber al menos uno de estos en el hogar. Bueno, estar... Solo... Aunque sólo fuera para poder decir: “ No me gustan las cosas inútiles. Sólo tengo una cosa inútil en mi casa y esto es más que suficiente para la armonía universal. Tema cerrado.“Bueno, un regalo de cumpleaños es una buena razón para ayudar a una persona a cerrar este tema para siempre y no volver a pensar en ello :-)

En esta situación, no bastaba con hacer un marco de fotos más o encontrar algún souvenir inútil para la estantería. Para la mayoría de la gente, su inutilidad no es muy obvia. Era necesario idear algo tan inútil que su inutilidad simplemente rezumara de la cosa. De modo que sería una especie de símbolo que personifica toda la esencia de su inutilidad.

Francamente, no sé muchas de esas cosas. Y entre ellos hay uno que tengo ganas de hacer desde hace muchísimo tiempo. En Internet de habla inglesa se le llama “La máquina más inútil de todos los tiempos” o “Leave Me Alone Box”. En cualquier YouTube, para ambas consultas, encontrará muchas opciones para implementar este dispositivo inútil, si lo desea.

La esencia de un dispositivo de este tipo es que todo su trabajo tiene como objetivo apagarse. Lo enciendes y se apaga solo. Eso es todo.

La máquina más loca que he conocido... Éste. Lo que la distingue de los demás es que su perseverancia puede llevarla naturalmente a la histeria. Después de un ataque violento, ella no solo apagará, sino que también te ocultará el interruptor para que ya no llegues al fondo... Aunque, para ser honesto, con todo esto viola su esencia misma. ella comienza a entretener. Y, en consecuencia, deja de ser tan inútil :-)

Yo mismo decidí hacer la versión clásica. Ciertamente no podrán divertirse mucho. Además, no había absolutamente ningún tiempo para todo tipo de trucos mecánicos...

El esquema general de lo que iba a hacer es este:

El principio de funcionamiento es el siguiente:

Tapa. Un elemento estructural de la caja en la que se ensambla el dispositivo. Durante el funcionamiento, debe subir para “liberar” la palanca (paso 2), que pone el dispositivo en marcha atrás (paso 3).

Marco. Sólo una simple caja con tapa con bisagras. Debido a que tenía una cierta cantidad de restos de madera contrachapada, decidí hacer una caja con ellos.

Tumblr. No necesitas cualquier interruptor de palanca. Debe cumplir varias condiciones. En primer lugar, debe ser “doble”. Aquellos. dar servicio no a una línea de circuito, sino a dos. Este es el tipo de interruptor de palanca que necesitas, con seis contactos:

En segundo lugar, el interruptor de palanca debe ser "suave". Aquellos. Cambiarlo no debería requerir mucho esfuerzo. Los microinterruptores habituales hoy en día, como en la foto, cumplen plenamente esta condición. Por supuesto, en principio, nada le impide utilizar un interruptor de palanca de "trolebús" del tamaño de una caja de cerillas. Solo que requerirá un motor y una caja de cambios mucho más potentes, que no serán tan fáciles de encontrar. Para un microinterruptor, casi cualquier servoaccionamiento es adecuado, de los cuales abundan en las tiendas con repuestos para modelos radiocontrolados.

"Aleta". Este elemento se agregó al final de la idea. Inicialmente no estaba en el diagrama. Simplemente me pareció que la palanca no levantaba la tapa lo suficiente. Para aumentar... mmm... expresividad Para toda la acción, es necesario que la tapa se levante más... claramente. Eso sí, en teoría, esta “aleta” tendría que encajarse inmediatamente en el perfil de la palanca para que formaran un todo único. Pero la idea de añadirlo se me ocurrió cuando ya estaba montada casi toda la estructura. Por lo tanto, la "aleta" se convirtió en un elemento separado pegado a la palanca.

Brazo de palanca. Placa gruesa de plexiglás. Lo suficientemente resistente como para accionar con confianza el interruptor de palanca (paso 3). El principal problema es desarrollar de forma correcta y precisa su perfil. Debe girar libremente sin atrapar nada en el camino, levantar la tapa y descansar exactamente contra el clic del interruptor de palanca.

Batería. Inicialmente, estaba planeando usar uno normal de nueve voltios. También se muestra en el diagrama. Sin embargo, más tarde resultó que para el motor encontrado con caja de cambios, nueve voltios eran demasiados. El dispositivo funcionó muy rápidamente. La palanca saltó como una paleta eyectora, casi imperceptiblemente a la vista. Al mismo tiempo, aunque el dispositivo funcionó según lo previsto, a tal velocidad no fue posible disfrutar plenamente de la inutilidad de su trabajo. Después de reemplazar los nueve voltios por dos AA y medio (obtuve un total de tres voltios), ralenticé enormemente el funcionamiento del mecanismo y todo quedó como debería, sin problemas y conceptualmente :-)

Motor y caja de cambios.. Solo un motor con solo una caja de cambios. Lo seleccioné por la velocidad de rotación (lo más lenta posible), por la fuerza creada (preferiblemente mayor que la calculada) y por el precio (lo más bajo posible). Como resultado, de acuerdo con todas estas condiciones, se seleccionó un motor con caja de cambios. Económico, compacto, adecuado para voltaje, daba bajas velocidades y desarrollaba una fuerza bastante impresionante en la palanca.


¿Cómo calculé cuánta fuerza necesitaba en la caja de cambios? Muy simple. Aunque completamente torpe. Simplemente tomé la balanza electrónica, tomé el interruptor de palanca, lo apoyé con el clicker en la placa de la balanza y presioné hasta que cambió. En el momento del cambio, tomé lecturas en la pantalla de la báscula. Por supuesto, el valor resultante no proviene de la serie "cuántas onzas por pulgada", sino "cuántas onzas por tamaño de la placa de escala", pero aún así esta cifra dio una idea general aproximada. Se podría estimar el error... En mi caso necesitaba buscar un motor con una caja de cambios que le diera unas 30 onzas por pulgada a la palanca. Bueno, más o menos... El mecanismo seleccionado produce 50 onzas por pulgada, lo cual es suficiente con todos los errores.

Al diagrama anterior le falta otro detalle importante:
Rompedor inverso. Es necesario para que la palanca, al volver a su posición original después de cambiar el interruptor de palanca (paso 4), apague todo el sistema y no se mueva más (paso 5). Me pareció que tal interruptor era algo tan primitivo, obvio y simple:

... que es completamente indigno de atención en el dibujo. Ay que equivocado estaba!!! ¡En todo el proyecto, este maldito rompedor se convirtió en la aventura más grande que realmente me arruinó los nervios!

El circuito eléctrico del dispositivo se ve así:

S1 es el interruptor de palanca "doble" principal. La esencia de su funcionamiento es que simplemente cambia la polaridad de la corriente suministrada al motor (M). En consecuencia, dependiendo de la posición del interruptor, el accionamiento gira en el sentido de las agujas del reloj o en el sentido contrario a las agujas del reloj.
S2 es el mismo disyuntor de marcha atrás que debería abrir el circuito cuando la palanca toma su posición original después de cambiar el interruptor de palanca S1 a marcha atrás.

Esta fue toda la parte teórica. Ahora, de la teoría a la acción.

Los problemas empezaron desde el primer momento. La tienda a la que me vinculé anteriormente no tenía las cajas de cambios necesarias en stock. Juraron que comprarían un nuevo lote dentro de una semana y me lo enviarían de inmediato. Se disculparon muchísimo y se ofrecieron a reemplazarla por otra caja de cambios. Pero estaba completo con todo tipo de engranajes, sujetadores que no necesitaba y, en general, parecía una especie de kit de helicóptero que no me convenía por el precio. En eBay, las mismas cajas de cambios cuestan el doble por alguna razón. En otras tiendas tampoco se encontró nada adecuado enseguida... Tenía algo de tiempo y podía esperar. Según mis estimaciones, recoger todo esto me llevará un par de noches. Más un par de días para el envío. Un día de reserva por si acaso. Entonces, si me lo envían al menos cinco días antes de la “hora X”, entonces tendré tiempo de hacer el regalo a tiempo. Bueno, si no lo envían, no hay nada que hacer: lo conseguiré en eBay con entrega urgente... Pero la tienda no decepcionó. La caja de cambios fue enviada a tiempo.

En primer lugar, fue necesario realizar un experimento con una palanca y un interruptor de palanca. Después de todo, si me perdí los cálculos, entonces la caja de cambios no tendrá la fuerza suficiente para cambiar el interruptor de palanca, lo que significa que se necesita otra caja de cambios con diferentes dimensiones y todos los demás cálculos también serán diferentes. Antes de cortar la palanca y hacer una caja, debe asegurarse de que el dispositivo funcione teóricamente.

La primera etapa del experimento es verificar el circuito eléctrico. Según las lecturas del multímetro, el interruptor de palanca cambió con éxito la polaridad de salida:

La segunda etapa del experimento consiste en conectar una caja de cambios con una palanca y ver si cambia el interruptor de palanca. Como palanca utilicé un trozo de plexiglás, el primero que me llegó a la mano:

Si todo se hace correctamente, entonces el motor debería mover la palanca hacia adelante y hacia atrás, cambiando el interruptor de palanca de un lado a otro:

DE ACUERDO. El experimento fue todo un éxito y fue posible montar el dispositivo final a partir de esta caja de cambios.

Como ya dije, comencé a hacer su caja de madera contrachapada:

La única sutileza aquí fue la conexión de los aviones. Si se superponen, los extremos de las hojas quedarán visibles. No es hermosa. Por lo tanto, los bordes de todas las placas se limaron a 45°:

Ahora se pueden pegar para que los extremos de las juntas no sean visibles:

Para arreglar la caja de cambios en la caja, doblé este aterrador soporte de un tapón de ranura viejo:

Me pareció tan aterrador que decidí pintarlo. En cuanto a la estética... Sin embargo, no estoy seguro de que la pintura haya aportado este mismo esteticismo al producto:

Hmmm... Es raro que algo parezca aún más repugnante en una fotografía que en la realidad. Normalmente ocurre al revés :-)

Palanca... Primero, la plantilla impresa se transfirió a una pieza de plexiglás:

Aquí tuve que ser muy, muy preciso. El dispositivo, aunque sencillo, sólo permitía errores muy pequeños. De lo contrario, o no entrará en el interruptor de palanca o comenzará a engancharse en la caja... Incluso metí una hoja nueva y afilada en la sierra de calar para esta ocasión:


Al final todo salió como debía:

Desafortunadamente, en nuestro Universo imperfecto existe tal fenómeno: la inercia. En mi caso, esto significó que incluso después de cortar la alimentación al motor, seguía moviendo la palanca por inercia antes de detenerse por completo.

Los creadores de esta caja de cambios, al parecer, también sospechaban de la existencia de inercia. Por lo tanto, proporcionaron algún tipo de fusible en el mecanismo de engranaje. Si la palanca descansa sobre algo y los engranajes aún continúan girando, entonces, para que toda la caja de cambios no explote (después de todo, es de plástico), hicieron un interruptor allí. Cuando se presiona, la palanca cambia a marcha atrás. No por mucho tiempo.

Al final, lo obtuve así: la palanca retrocede, abre el disyuntor, se corta la corriente en el motor, la palanca continúa presionando más por inercia, se dispara el fusible de la caja de cambios, la palanca entra en el en otra dirección... el interruptor, el muñón se limpia, restablece el circuito nuevamente, el motor se enciende, la palanca vuelve a ir al interruptor, se abre... inercia, retroceso, contacto... y así martilla el grifo. bailar hasta el punto de entumecerse. Parece gracioso, por supuesto, pero...

Parecería que es necesario ajustar el disyuntor para que rompa la cadena con un poco de antelación, teniendo en cuenta la inercia posterior de la palanca. En realidad, hacer esta enmienda resultó extremadamente difícil. Siempre había dos extremos: o se cortaba la corriente demasiado pronto y la palanca no bajaba del todo (y por tanto la tapa de la caja no se cerraba), o el freno se accionaba demasiado tarde y el mecanismo caía en el “ claqué” que describí anteriormente.

Hay muchos factores que se juntan inmediatamente. Incluyendo la longitud de la palanca del interruptor. Incluso hice mi propio disyuntor pequeño con el botón de un micro mouse. Todavía no funcionó. Y traté de hacer un disyuntor en forma de dos tiras de cobre, como en un relé... Lo intenté todo. ¡Casi me vuelvo loco intentando configurar todo como debería! Resultó que teníamos que hacer algún tipo de mecanismo de recorte muy preciso con microalimentación. Para que el retardo de interrupción se pueda ajustar con precisión de micras...

Afortunadamente, había una manera más sencilla. Bastaba con pensar fuera de lo común y... abandonar por completo este tipo de interruptores. ¿Quién dijo que el contacto sólo puede interrumpirse mediante un diseño de palanca? Hay un millón de formas de solucionarlo mecánicamente, sin utilizar palanca (en este caso no se consideran los métodos electrónicos).

La palanca está fijada a la caja de cambios mediante una arandela de metal grande y hermosa. Entonces, puedes usarlo directamente como uno de los contactos. Un segundo zarcillo de contacto se arrastrará a lo largo de él. La apertura se realiza simplemente privando a la antena de contacto con la arandela. Con cinta sencilla. Como esto:

El ajuste se realiza de la siguiente manera: primero se pega la cinta aislante con un margen grande, y luego, con un bisturí, se corta una tira diminuta del grosor de un cabello, hasta que la palanca comienza a detenerse exactamente donde se necesita. .

Y nada de diseños complejos con microalimentación y todo lo demás:

Anticipándonos a la pregunta obvia: no, la cinta no borrará el "zarcillo". Quiero decir, tarde o temprano lo borrará, por supuesto: los materiales eternos no existen en el mundo. Pero lo pulí en el punto de contacto y no presiona tanto. Luego apliqué la cinta en dos capas. En general, tardarán muchos años en desgastarse. La solución es bastante aceptable y funciona a las mil maravillas:

En el video de arriba, todavía cambio el interruptor principal manualmente. Pero el corte inverso ya se produce por sí solo, utilizando un disyuntor hecho de arandela y cinta adhesiva.

La confiabilidad del diseño fue confirmada por un hecho que no me resultó muy agradable... No sé cómo ni cómo, pero cuando el paquete con el dispositivo llegó al destinatario, resultó que ese tornillo que sujeta el ¡Se cayó la arandela del eje de la caja de cambios! No puedo imaginarme qué hicieron con el paquete en la oficina de correos. Pero incluso con este tornillo axial cayéndose, la caja siguió funcionando perfectamente... Le indiqué al destinatario por teléfono cómo devolver este tornillo a su lugar. Espero que pueda manejar este tipo de reparación. Pero ha surgido un defecto desagradable, sí... :-(

En ese momento, las partes restantes de la caja estaban pegadas y listas. No pegué a las paredes el fondo de la caja, al que están unidas la caja de cambios y la batería. Resultó suficiente asegurarlo con esquinas metálicas decorativas:

Si sacas con cuidado dos clavos en cada esquina, la parte inferior se separará libremente del resto de la estructura.

Bisagras para la tapa con estilo:

Ahora, en algún lugar aquí me di cuenta de que sería bueno aumentar la cantidad de elevación de la tapa mientras se suelta la palanca. Dibujé, corté y pegué una "aleta" en la palanca, que esta elevación aumenta a la altura deseada:

Un poco más de decoración y el dispositivo estará completamente listo:


En acción.




Arriba