Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
proyectos:barcosolar2022 [2022/06/13 11:59] – Sergio Alvariño | proyectos:barcosolar2022 [2022/06/14 07:44] (actual) – Sergio Alvariño | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
====== Barco Solar 2022 ====== | ====== Barco Solar 2022 ====== | ||
+ | |||
+ | |||
+ | {{ : | ||
Línea 8: | Línea 11: | ||
===== Enlaces a los principales componentes ===== | ===== Enlaces a los principales componentes ===== | ||
+ | * Motores y ejes: [[https:// | ||
+ | * Acoplamiento ejes: [[https:// | ||
+ | * Variadores electrónicos: | ||
+ | * Hélices: [[https:// | ||
+ | |||
+ | {{: | ||
+ | |||
+ | A la derecha: detalle del suelo dentro de la caja de electrónica, | ||
+ | |||
+ | ---- | ||
+ | |||
+ | |||
+ | {{: | ||
+ | |||
+ | En las otras dos fotos podemos ver los resultados en el propio casco (Recuerda que puedes pinchar en la imagen para ampliar).{{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{: | ||
+ | |||
+ | Resto de fotos, detalles del alojamiento de los motores embutidos en el casco. Y la herramienta utilizada para crear el alojamiento de los motores {{ : | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ---- | ||
+ | |||
+ | {{: | ||
+ | |||
+ | A la derecha, detalle del pegado de las dos mitades de un casco. {{ : | ||
+ | |||
+ | ---- | ||
+ | Detalle de los timones de proa para las maniobras de ciaboga. | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== Software ===== | ||
+ | |||
+ | ==== Control de timones de proa ==== | ||
+ | |||
+ | Este es el programa que gestiona los timones delanteros del Arduino nano y al que llegan la señal de la dirección sin mezclar con la del acelerador y otra de ajuste de calado de los timones , osea que cuando bajen al agua lo hagan entre 45 y 90 grados desde la horizontal que tienen en reposo: | ||
+ | |||
+ | <code cpp> | ||
+ | #include < | ||
+ | |||
+ | Servo timondch; | ||
+ | Servo timonizq; | ||
+ | int pin = 2; // entrada de señal de direcion | ||
+ | int patilla = 3; // entrada de señal de ajuste de angulo maximo de baja de timones | ||
+ | unsigned direccion; | ||
+ | unsigned ajuste; | ||
+ | unsigned long delaydch; // registro de retardo para activar el timon derecho despues de una cantidad de ciclos | ||
+ | unsigned long delayizq; | ||
+ | |||
+ | void setup() { | ||
+ | pinMode(LED_BUILTIN, | ||
+ | timondch.attach(6); | ||
+ | timondch.writeMicroseconds(1980); | ||
+ | timonizq.attach(5); | ||
+ | timonizq.writeMicroseconds(960); | ||
+ | } | ||
+ | |||
+ | void loop() { | ||
+ | ajuste = pulseIn(patilla, | ||
+ | ajuste = ajuste -1000; | ||
+ | ajuste=ajuste/ | ||
+ | direccion = pulseIn(pin, | ||
+ | if (direccion< | ||
+ | timonizq.writeMicroseconds(1950-ajuste); | ||
+ | } else { | ||
+ | timonizq.writeMicroseconds(960); | ||
+ | } | ||
+ | if(direccion> | ||
+ | timondch.writeMicroseconds(1000+ajuste); | ||
+ | } else { | ||
+ | timondch.writeMicroseconds(1980); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ==== Control de tensión demandada ==== | ||
+ | |||
+ | Este es el programa que evita que la tensión del panel baje de 18v al que le entra una medida de tensión directa del panel que únicamente pasa por un divisor de tensión que se compone de tres resistencias: | ||
+ | Además recibe las señales de servo que irían a los ESC de los dos motores ya mezcladas en la emisora y procedentes del receptor. El programa envía esas mismas señales sin modificar hacia dichos ESC siempre y cuando la tensión del panel no baje de los ya citados 18v: | ||
- | * Motores y ejes: [[https://a.aliexpress.com/ | + | <code cpp> |
+ | #include < | ||
- | * Acoplamiento ejes: [[https://a.aliexpress.com/_vD55uz|Conector | + | Servo motorizquierdo; |
+ | Servo motorderecho; | ||
+ | int pin = 5; | ||
+ | int pin2= 18; // entrada | ||
+ | int led= 2; // define led interno y externo(si procede) | ||
+ | unsigned long motor1; | ||
+ | unsigned long motor2; | ||
+ | unsigned long resta=0 ; // registro donde ajustaremos la cuantia | ||
+ | unsigned long modulado1; | ||
+ | unsigned long modulado2; | ||
+ | float caidaV; | ||
+ | float VoltMinima; | ||
+ | float VoltMaxima=3300; | ||
+ | float voltaje=3300; | ||
+ | float voltajeanterior; | ||
- | * Variadores electrónicos: | + | void setup() { |
+ | motorizquierdo.attach(4); | ||
+ | motorizquierdo.writeMicroseconds(1500); | ||
+ | // Serial.begin(9600); | ||
+ | pinMode(pin, INPUT); | ||
+ | motorderecho.attach(15); | ||
+ | motorderecho.writeMicroseconds(1500); | ||
+ | // Serial.begin(9600); | ||
+ | pinMode(pin2, INPUT); | ||
+ | pinMode(led, OUTPUT); | ||
+ | digitalWrite(led, HIGH); | ||
+ | } | ||
+ | void loop() { | ||
+ | voltaje = analogRead(A0); | ||
+ | VoltMaxima= (3300); | ||
+ | motor1 = pulseIn(pin, HIGH, 30000 ); // Lee el pin5 y lo guarda en el registro | ||
+ | motor2 = pulseIn(pin2, | ||
+ | caidaV=VoltMaxima-voltaje; | ||
+ | if (voltaje> | ||
+ | if (caidaV> | ||
+ | if (caidaV> | ||
+ | if (resta> | ||
+ | goto salta; | ||
- | * Hélices: [[https://a.aliexpress.com/_uiI2HF|Hélice de Metal de 4,76mm, tornillo izquierdo/derecho, 2 cuchillas, aleación de puntal, relación Picth 1,9, tornillo de 40/42/45/48mm para eje de barco de 4,76mm y 3/16'' | + | recupera:; |
+ | if (resta< | ||
+ | resta=resta-0.5; // sube medio punto solo por estar subiendo la tension aunque los niveles sean bajos aun | ||
+ | if (caidaV< | ||
+ | if (caidaV< | ||
+ | salta:; | ||
+ | if (resta> | ||
+ | if (resta< | ||
+ | modulado1=motor1-resta; | ||
+ | if (modulado1< | ||
+ | if (modulado1> | ||
+ | modulado1=motor1; | ||
+ | } | ||
+ | modulado2=motor2-resta; | ||
+ | if (modulado2< | ||
+ | if (modulado2> | ||
+ | modulado2=motor2; | ||
+ | } | ||
+ | motorizquierdo.writeMicroseconds(modulado1); | ||
+ | motorderecho.writeMicroseconds(modulado2); | ||
+ | voltajeanterior=voltaje ; | ||
+ | } | ||
+ | </ | ||