lunes, 6 de noviembre de 2023

Steam Farmer (programa en Arduino)

 


Estamos creando nuestro primer brazo robótico, para ello hemos empleado los siguientes materiales:
  • Palitos de helado pequeños y grandes
  • Pistola de silicona
  • Amarras plásticas de 15cm
  • Servomotores SG90, inicialmente se construyó con tres de ellos, pero en la práctica nos dimos cuenta que es mejor utlizar los MG90, entonces se usaron un SG90 y dos MG90
  • Cables hembra macho, macho macho para las conexiones
  • Un arduino uno
  • Dos joystick, uno para girar y alzar el brazo y otro para abrir y cerrar el gancho.
  • Una mini protoboard
  • Una fuente de 5V, aunque en este caso utilizamos un módulo que nos ayuda regular el voltaje de un adaptador que entrega 12V, pero sirve también un adaptador de 5V/2A (mejor de 2A)
  • El conector hembra que recibe el plug del adaptador
  • Unas tablitas para la base y otras pequeñas para pegar el servo de la base al que nos regula la altura.
Procedimiento

Esto ha sido de paciencia, por ejemplo, es importante inicialmente usar un programa para leer la posición actual de los servomotores, creo que por eso fue que se quemamos dos SG90, debido a que en el gancho hacían mucha fuerza para cerrarse luego de que ya estaba cerrado al iniciar el programa, tener claro en qué ángulo está al iniciar.

Programa


#include <Servo.h>

Servo baseServo;   // Servo para el giro horizontal
Servo alturaServo; // Servo para subir y bajar el brazo
Servo ganchoServo; // Servo para abrir o cerrar el gancho

int baseAngle = 90;    // Ángulo inicial del servo horizontal
int alturaAngle = 90;  // Ángulo inicial del servo de altura
int ganchoAngle = 90;  // Ángulo inicial del servo de gancho


const int joyXPin = A0;   // Pin analógico para la posición X del joystick
const int joyYPin = A1;   // Pin analógico para la posición Y del joystick
const int joyYGPin = A2;   // Pin analógico para la posición X del joystick2 gancho

int baseIncremento = 1; // Incremento de ángulo para el servo de la base
int alturaIncremento = 1; // Incremento de ángulo para el servo de la altura
int ganchoIncremento = 1; // Incremento de ángulo para el servo del gancho

void setup() {
  Serial.begin(9600);  // Inicializa la comunicación serial
  baseServo.attach(8);    // Conecta el servo horizontal al pin 8
  alturaServo.attach(9);  // Conecta el servo de altura al pin 9
  ganchoServo.attach(7);  // Conecta el servo de gancho al pin 10

  baseAngle = baseServo.read();
  alturaAngle = alturaServo.read();
  ganchoAngle = ganchoServo.read();

}

void loop() {
   
  int joyX = analogRead(joyXPin);
  int joyY = analogRead(joyYPin);
  int joyYG = analogRead(joyYGPin);

  // Control de la base (eje X)
  baseAngle += map(joyX, 0, 1023, baseIncremento, -baseIncremento);
  baseAngle = constrain(baseAngle, 0, 180);

  // Control de la altura (eje Y)
  alturaAngle += map(joyY, 0, 1023, -alturaIncremento, alturaIncremento);
  alturaAngle = constrain(alturaAngle, 0, 126);

  // Control de apertura gancho (eje X)
  ganchoAngle += map(joyYG, 0, 1023, ganchoIncremento, -ganchoIncremento);
  ganchoAngle = constrain(ganchoAngle, 86, 180);

 // Envía las señales a los servos
  baseServo.write(baseAngle);
  alturaServo.write(alturaAngle);
  ganchoServo.write(ganchoAngle);

  // Muestra información en el Monitor Serie
  Serial.print("Base: ");
  Serial.print(baseAngle);
  Serial.print(" Altura: ");
  Serial.print(alturaAngle);
  Serial.print(" Gancho: ");
  Serial.println(ganchoAngle);
  delay(50);  // Pequeña pausa para estabilidad
}

miércoles, 4 de octubre de 2023

Proyecto AgroIN primer prototipo

 

Esta es nuestro primer intento este año 2023 de hacer un cultivo interior, para esta ocasión rescatamos unas tiras led que nos habían regalado por si nos servían, al igual que una pequeña estructura en madera con la que se hacen los desayunos sorpresa, así mismo utilizamos una botella pet de 5 litros en forma de maceta con autoriego por capilaridad, aún no tiene nada de control la iluminación, pero ese será nuestro siguiente paso poder controlar el color de acuerdo a la etapa de crecimiento de la lechuga. Hay mucho por experimentar, por aprender.

martes, 3 de octubre de 2023

Caterpilla Laboratorio de Innovación + Control

 


Este proyecto es muy entretenido para los estudiantes, pero al programa original se le debieron hacer algunas modificaciones para que funcionará, aquí el pdf sobre el proyecto,

Proyecto con Micro:Rover Kit

 Los archivos para desarrollar este proyecto se encuentran en https://freenove.com/fnk0037 tener en cuenta que este kit se puede adquirir en Amazon hace un buen tiempo lo adquirí para jugar con mis hijos pero aún son muy pequeños para trabajarlo, por eso lo estoy usando con mis estudiantes.

Utilicé una pila 18650 que conseguí al desarmar la batería de una laptop. La versión que tengo de la microbit es la V1 pero funciona también con la V2, en esta ocasión estamos usando el proyecto 03.3_Obstacle-Avoidance-2 
El archivo lo puede descargar aquí




Microbit Carro a Control Remoto con Microbit y Tarjeta de Expansión

Programa receptor RX https://makecode.microbit.org/_0JyXaq... 

Programa tarjeta transmisora TX https://makecode.microbit.org/_b7j4K4... 









domingo, 1 de octubre de 2023

Comipec Versión 1 de 2023. Dispensador de alimentos granulados para peces o mascotas

 

Este año hemos retomado un proyecto que iniciamos hace una decada y por cuestiones de tiempo y de traslado del coordinador del semillero tecnonarnajal, se había dejado en el olvido.
Esta es la versión 1 de este año 2023, la cual consta de un servomotor SG90 que hace apertura y cierre de la salida de la botella pet de 2.5l que estamos usando, al servo se le ha unido dos tapas, la primera de su misma botella, pero al ver que no alcanzaba a tapar la boca de esta se le montó una tapa de una garrafa de 5 litros, la programación es muy sencilla realizada con la microbit, recuerde instalar primero la extensión SERVO


Las conexiones son tres, PIN0 al amarillo del servomotor, GND al negro o café del servo, y 3V al rojo del servo, cuando lo probamos con el pc no funcionó, sonaba el servo pero no se movía, pensabamos que tenía algún problema el servo, lo cambiamos por otro pero seguía igual, decidimos más bien conectar el cable micro USB a un cargador de teléfono y wuala, funcionó. Luego compartiremos el video, este es el primer prototipo, la idea es que sea programable de acuerdo a la biomasa del estanque y que pueda ayudar a monitorear la temperatura del estanque para saber el momento ideal para proporcionar el alimento.

lunes, 7 de noviembre de 2022

Canal de Youtube del profe Noé

Canal de Youtube del profe Noé donde podrás consultar algunos videos relacionados con el semillero Tecnonaranjal y muchos sobre programación, electrónica, robótica y matemáticas.

 https://www.youtube.com/channel/UCSJo-c_HHXmMT0yzLadJTVA



jueves, 27 de octubre de 2022

Esp8266 y Thingspeak para monitorear la temperatura y la humedad relativa

 En la entrada anterior aprendimos a conectar el NodeMCU Esp8266 al ide de Arduino, ahora veremos como hacer que los datos que nos entrega el sensor DHT11 los podamos ver en una página web que promueve el IoT esta es thingspeak.com

La primera parte del siguiente video nos muestra como usar ThingSpeak





Funcionó!!!




Primeros pasos con el Nodemcu ESP8266 instalación del driver

 En el año 2013 configuramos nuestro Arduino con un Shield de Ethernet el W510, en esta ocasión queriamos usar de nuevo este módulo pero no funcionó, fue algo frustrante pero fue el punto de partida para conocer el NodeMcu ESP8266 que por $32500 alrededor de 6 dolares viene con un procesador de 32 bits y con un módulo interno de WIFI, mucho más económico y potente que nuestro fiel amigo el arduino uno, por eso nos pudo más la curiosidad y queremos comenzar a trabajar IoT (internet de las cosas) con este, esperamos crear nuestra estación meteorológica con dos variables usando el DHT11: temperatura y humedad relativa del ambiente.

Cuando iniciamos el trabajo con el NodeMCU nos encontramos que hay que instalar primero un driver, para ello seguimos el siguiente video, también están los enlaces a las librerías necesarias.





Enlaces importantes:

  • https://github.com/esp8266/Arduino
  • https://arduino.esp8266.com/stable/package_esp8266com_index.json 
Luego de indicar "Gestor de tarjetas" agregar la primera url se agrega la ESP8266, para probarla se utiliza uno de los ejemplos, el más sencillo es BLINK y otro que se puede usar el WebServer, recuerde cambiar la SSID y la contraseña por la de la red wifi a la cual se conectará.

Que alegría cuando muestra esto

Tener en cuenta que la ip se puede ver en el monitor SERIE, y ponerlo a 115200 baudios, sino salen sólo interrogantes.

En la próxima entrada estaremos analizando un pograma que ayuda a crear una estación meteorológica usando el DHT11


 

sábado, 15 de octubre de 2022

Huerta Inteligente, primeros acercamientos con el sistema de control

 


Este es un primer acercamiento al sistema de control de la huerta inteligente, (procedemos primero con la maqueta). Se compone:
  • Dectector de humedad del suelo
  • Sensor DHT11 para medir la temperatura y humedad relativa del ambiente
  • Una fotocelda con un potenciometro de 10K ohmios para sensar día o noche
  • Dos relés, uno para controlar el sistema de riego y otro para controlar la iluminación en la noche si se requiere
  • Un Shield Ethernet para poder controlar y monitorear desde la intranet el sistema
  • Un router para generar la intranet
  • Una placa arduino uno
Por el momento se tienen las conexiones mostradas en la imagen, el sensor de humedad a A0, al fotoresistencia a A1, esta se conecta a tierra, el punto donde va conectado el potenciometro es el que va a A1, en un protoboard se extiende el GND y los 5V para poder alimentar los diferentes elementos del circuito.

Con respecto a los pines digitales, al pin 9 se conecta el DHT11, los pines 6 y 7 se configuraron de salida para poder conectar los reles.

El primer programa para verificar que los sensores funcionen se vislumbra desde el monitor serie y es el siguiente:

#include <DFRobot_DHT11.h>

DFRobot_DHT11 DHT;

#define DHT11_PIN 9
int SensorPin = A0;
int FotoCelda = A1;
int valSonda;//Valor en porcentaje de la sonda
int foto;//Valor en porcentaje de la luz
int iluminacion=7;
int riego=6;


void setup() {
  Serial.begin(9600);
  //configuro los pines 6 y 7 de salida y el 9 como entrada
  pinMode(SensorPin,INPUT);
  pinMode(FotoCelda,INPUT);
  pinMode(9,INPUT);
  pinMode(7,OUTPUT);
  pinMode(6,OUTPUT);
 }

void loop() { 
  int humedad = analogRead(SensorPin);
  int luz = analogRead(FotoCelda);
   valSonda=map(humedad,0,1023,100,0);//pasamos a porcentajes
   
   //PARA ESTA PRIMERA PRUEBA ESTAMOS USANDO SÓLO EL 
   //MONITOR SERIE PARA HACER SEGUIMIENTO DE LAS MEDICIONES
   
   Serial.println("");
   Serial.print("Luz: ");
   Serial.println(luz);
//estos shield de rele se activan con 0, igual hay que revisar   
//PRENDO LA ILUMINACIÓN CUANDO SEA DE NOCHE
    //AQUI SE PREGUNTA: ¿HAY SUFICIENTE LUZ?
    //ENTRE MÁS INTENSIDAD DE LUMÉNES O LUZ MÁS 
    //PEQUEÑO SERÁ EL VALOR MOSTRADO
    //POR ESO SEGÚN LO VISTO DE LA FOTOCELDA EMPLEADA
    //CON UN VALOR POR ENCIMA DE 700 SIGNIFICA QUE ESTA OSCURO
    //Y REQUIERE ENCENDER LA ILUMINACIÓN
    if(luz < 700)
      {
        digitalWrite(iluminacion,HIGH);//OFF
      }
      else
      {
        digitalWrite(iluminacion,LOW);//ON
      }
   
   Serial.print("Humedad en el suelo: ");
   Serial.print(valSonda);
   Serial.println("%");

//ACTIVO LA MOTOBOMBA
     if(valSonda < 80)
      {
        digitalWrite(riego,LOW);//ON
      }
      else
      {
        digitalWrite(riego,HIGH);//OFF
      }
   
//leemos la temperatura del DHT11 conectado al pin 9
   DHT.read(DHT11_PIN);
   Serial.print("Temperatura: ");
   Serial.print(DHT.temperature);
   Serial.println("°C");

   Serial.print("Humedad relativa: ");
   Serial.print(DHT.humidity);
   Serial.println("%");
   //esperamos un segundo
   delay(1000);

  
}
  

En la próxima entrada hablaremos del ethernet shield para poder verlo desde la intranet, recordar que el router a sido configurado con un rango de ip de 192.168.1.100 a 192.168.1.199 dentro de ese rango de ip se le asignará al shield, que será el 192,168.1.101 y este sera el servidor al cual ingresar para controlar el sistema, para la wifi se dejó el SSID "HuertaInteligente" con la clave 0123456789 esperamos más adelante poder darle más seguridad a la página para que sólo el administrador pueda hacer el control del sistema.