Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.

Temas - Moy

Páginas: [1]
1
Electrónica y Robótica / [Aporte] Arma tu propio drone FPV low cost
« en: Abril 17, 2020, 03:22:13 am »
Llevo ya unos años bastante metido en el tema y la verdad es que es increíble les dejo un tutorial para armar uno muy similar al primero que tuve no es lo mas top pero es relativamente economico y se puede empezar con algo así

el tutorial no es mio pero esta super bien explicado yo no lo hubiera podido hacer mejor




copio aqui la lista de componentes que tambien estan en la descripcion de youtube por si acaso

★ LISTADO COMPONENTES ★
(si alguno no está en stock mira la lista de componentes alternativos. Todos son compatibles)

- Frame (220): https://rebrand.ly/realaccx5r
- Motores: https://rebrand.ly/RacerStar2306S
- Variadores: https://rebrand.ly/racerstar30lite
- PDB (el frame trae una, si no): https://rebrand.ly/matekxt60
- Controladora: https://rebrand.ly/f405
- VTX: https://rebrand.ly/tx801
- Cámara: https://rebrand.ly/c800t
- Antenas (RP SMA y RHCP): https://rebrand.ly/pagodarealacc
- Buzzer y LED: https://rebrand.ly/buzzerLED o http://rebrand.ly/lanti6ea43
- Emisora (modo 2 + X6B): https://rebrand.ly/flyskyFSi6X
- Receptor (no necesario, la emisora ya lleva): https://rebrand.ly/flysk8a3da
- Hélices: https://rebrand.ly/propsracer o http://rebrand.ly/10paibda0b o http://rebrand.ly/10pai12c61
- Correas lipo: http://rebrand.ly/5pcsb6126f

////////// EMISORAS ///////////
- Taranis QX7: http://rebrand.ly/frskya60ef
- Taranis 9x Plus http://rebrand.ly/taranis

////////// GAFAS FPV /////////////
Eachine EV100: https://rebrand.ly/eachic7d52
Eachine EV800: https://rebrand.ly/ev800-diversity
Eachine VR D2 Pro: https://rebrand.ly/eachineVRD2pro
Eachine VR006: https://rebrand.ly/eachineVR006
Eachine VR007  https://rebrand.ly/eachineVR007
Fatshark HD3 http://rebrand.ly/fatsharkhd3
Aomway Commander V1: http://rebrand.ly/aomwa06324

///////// BATERÍAS //////////
https://rebrand.ly/giant4S
https://rebrand.ly/tattu1300bg
https://rebrand.ly/tattuRacing1300

///////// CARGADORES ///////////
Cargador BARATO: https://rebrand.ly/charsoonDC
Cargador PRO: https://rebrand.ly/skyrca25f9
Cargador SUPER PRO (carga 2 baterías): https://rebrand.ly/skyrc83698
Cargador SUPER PRO (carga 4 baterías): http://rebrand.ly/skyrcde46a

★ COMPONENTES ALTERNATIVOS ★
(combina con este listado si algún componente no está en stock)

- Controladoras:
Omnibus F4: http://rebrand.ly/omnib9a795 + cableado (https://imgur.com/9m8EKPf)
BF3.2: http://rebrand.ly/bf32o38d3a + cableado (https://imgur.com/2JEYAeD)
- Frames:
https://rebrand.ly/lisam1869e o https://rebrand.ly/tcr1820bac o https://rebrand.ly/martian2
- Motores:
https://rebrand.ly/4xrac8b6f9
- Variadores:
https://rebrand.ly/4pcsrc6058 o https://rebrand.ly/4pcsrdbc01
- VTX:
http://rebrand.ly/vtxet526
- Cámaras:
http://rebrand.ly/hs1177 o https://rebrand.ly/orangeCam

★ LISTADO HERRAMIENTAS ★
- Alicate de corte: https://rebrand.ly/daniub46df
- Destornilladores: https://rebrand.ly/7pcsb5a22e
- Termoretráctil: https://rebrand.ly/soloo78c44
- Espaciadores nylon: https://rebrand.ly/sulev41861
- Pinzas: https://rebrand.ly/onlyo86a20
- Estaño: https://rebrand.ly/daniu53274
- Soldador barato: https://rebrand.ly/musto3dc88
- Soldador PRO: https://rebrand.ly/minit1bedd
- Pulpo: https://rebrand.ly/reala7c8c2
- Tester: https://rebrand.ly/xl8300c0a1
- Aprieta hélices: https://rebrand.ly/aprietaHelices
- Salva lipos: https://rebrand.ly/batte220dc



y lo mejor de todo algunos vídeos que se me hacen increíbles de drones de este tipo








si alguien se anima a armar uno y tiene alguna duda, yo puedo ayudarlo con mucho gusto ^^

un saludo


2
C / C++ / Introducción Al Desarrollo [Unreal Engine 4]
« en: Julio 12, 2017, 02:29:48 am »




Introducción Al Desarrollo [Unreal Engine 4]
Creo que esta de mas decir lo potente que es unreal, escribo este manual-tutorial por que no encontré un tutorial lo bastante actualizado y me costo mucho entender de una forma clara unreal, llevo ya bastante en el desarrollo de video juegos pero usando unity pero bueno se me complico un poco por que no encontraba algo actualizado me basare en algunos otros manuales(links al final) para que sea algo practico y no solo teoría

Intentare que esto lo puedan seguir cualquiera incluso gente que no sabe mucho de c++ y para los que no han tocado nunca un motor gráfico claro que es mejor si ya tienen algun conocimiento de c++


Lo primero que tienen que hacer es bajarse unreal engine de la pagina oficial
www.unrealengine.com

tendran que registrarse y descargar el Epic Games Launcher
una vez descargado e instalado van a descargar desde ahi unreal engine

1- Click en unreal engine
2- Click en library
3- Click en add version

Van a necesitar también tener instalado Visual Studio
eso no explicare como hacerlo por que bueno si están en esto ya deberían saber hacerlo Unreal les va a pedir varios complementos de visual studio SDK 8.1 y cosas así me parece que se pueden instalar directamente desde el instalador de Visual Studio 2017

Damos click ahora en Launch Unreal Engine y esto es lo que nos aparece

1- Click en New Project
2- Click en C++
3- Seleccionamos Basic Code
4- Elegimos el folder donde guardaremos nuestro proyecto y el nombre
 
Ahora damos click en create Project
y listo empezara a generar el proyecto
En este punto podría ser que les mande un error si es que les falta algo en Visual Studio que no instalaron especificando que les falta
podrían correr así el visual pero recomiendo muchísimo que instalen todo lo que les pida para evitar dolores de cabeza después.

Si todo salio bien les abrirá Unreal Engine y Visual Studio

Lo siguiente que vamos a necesitar es un modelo para usar, vamos a usar este modelo

El modelo tiene ya huesos y animaciones, para hacer sus propios modelos tendran que aprender en algun software de modelado, animacion, texturas etc pero eso ya es otro tema ahora nos enfocaremos en el motor grafico

dejo el link para que lo descarguen
https://d26ilriwvtzlb.cloudfront.net/a/a7/ThirdPerson_FBX.zip

En el zip vendrán varios modelos con sus distintas animaciones bueno dicho esto seguimos con el editor


Les he puesto colores a las zonas del editor

Verde - Modes es una seccion que tiene primitivas, luces camaras y cosas basicas para agregar a la escena tambien es aqui en donde se crea y se edita el terreno

Rosa - Esta Area tiene algunos accesos directos que iremos viendo mas adelante de momento usaremos mucho el Play, Compile, y quiza un poco el Build

Amarillo - Content Browser esta area es el explorador de archivos de nuestro proyecto y no hay mucho que decir es eso

Rojo - World Outliner aqui lo que tenemos es una lista jerárquica de los objetos que tenemos en la escena

Azul - Aqui creo que no tienen ustedes el World Settings  no recuerdo si yo lo agregue aparte al mio pero en todo caso tendran Details que les muestra la posicion, rotacion y detalles generales de los objetos seleccionados en la escena(si no tienen world settings pueden agregarlo desde Window -> World Settings) En World Settings podemos definir las clases iniciales el objeto que sera el personaje y esas cosas, si no entienden mucho de esto no se preocupen mas adelante iremos usando estas opciones y lo entenderan

La parte sin color - Claramente esta es la escena en la que podremos seleccionar nuestros objetos dando click en ellos, moverlos, rotarlos, acomodar las cosas como mas nos guste

La forma de movernos en la escena

Click Derecho sostenido - Mirar arriba/abajo y a los lados(si mantenemos pulsado click derecho podemos usar las teclas ASDW para movernos como si se tratara de un juego FPS )

Scroll del mouse - Acercar/Alejar

Scroll Presionado - Mover la camara arriba/abajo y a los lados

prueben un poco hasta acostumbrarse es complicado al principio si no han usado un sotfware de modelado o algun motor grafico

ahora si es que aun no lo han echo den click en el boton play y podran moverse como si fuera un fps solo que como no hay aun un personaje la camara flotara por el aire  ::)

Importar nuestro modelo

Ahora vamos al Content Browser(El area de nuestro explorador de archivos de unreal) ahi vamos a crear una nueva carpeta para nuestro personaje para hacer esto damos click en Add New -> New Folder nombramos nuestra carpeta como "Character" bueno esto es opcional pueden poner el nombre que quieran pero bueno siempre es mejor ser ordenados

Ahora entramos a nuestra carpeta y damos click en el boton Import ahi buscamos nuestro modelo que habiamos descargado (SK_Mannequin.fbx) le damos import y listo
* a mi me salto un warning de que no estaba activa una opcion en el plugin para importar el fbx pero bueno cuestion de activarla o ignorarla no es necesaria para este tutorial

como podran ver nos importo 5 objetos 2 de ellos son materiales y otros 3 son uno la malla del modelo, otro es el esqueleto y otro mas llamado(SK_Mannequin_PhysicsAsset) este tercero pueden dar doble click en el y en la ventana que aparece dar click en simulate con eso se daran una idea de para que sirve 

ahora estamos listos para empezar con el codigo

Introducción a la programación en Unreal Engine 4

Citar
Un proyecto en Unreal Engine 4 está compuesto básicamente de dos grandes piezas que trabajan en conjunto. Los niveles, que es lo que se trabaja en el Editor y el proyecto de programación, que trabajamos en el IDE de programación. Vimos como al crear un nuevo proyecto en UE4 se crean ambas partes. Ahora vamos a trabajar en la segunda parte, la parte del código.

En Unreal Engine 4 se programa en C++, al crear un nuevo proyecto, automáticamente se crea un proyecto en el XCode (o Visual Studio si usas Windows) con las clases básicas para nuestro juego. Abre tu IDE de programación con el proyecto creado. Dentro de la carpeta Source es que se encuentran los fuentes nuestros. Dentro de la carpeta Engine están todos el framework. Tener acceso a esto es genial, porque sirve de mucha ayuda para revisar como están implementadas las clases, o para que es una determinada propiedad, viendo los comentarios puestos por el propio equipo de Epic. Antes de crear nuestra primera clase vamos a comentar rápidamente la filosofía que sigue Unreal Engine en su framework.

En UE4 todos los elementos que aparecen en nuestro juego son Actors (heredan de la clase AActor). Una silla, una mesa, un enemigo o el personaje principal. Los elementos del juego que son controlados, o sea que no son estáticos, que tienen un comportamiento, son Pawns. Hay un tipo especial de Pawn que es el Character. El Character es el Pawn que representa al personaje principal y tiene implementaciones particulares que solo tendrá el Pawn que será controlado por el jugador. Por ejemplo, si en nuestro juego tenemos al personaje principal y a un enemigo. El personaje principal será un Character y el enemigo será un Pawn solamente. Ahora… todos los Pawns son controlados por una clase Controller, para el caso del Character, este es controlado por un PlayerController. El PlayerController es la clase que recibe las entradas del jugador, del ser humano, y mediante ellas controla al personaje en el juego, al Character. Básicamente el PlayerController representa al ser humano, el Character (Tipo especial de Pawn) representa al personaje dentro del juego y es controlado por el PlayerController. Mientras que los otros Pawns pueden ser controlados, por ejemplo, por AIController.

. . . sip :S, bastante enredado, pero poco a poco a medida que te familiarices con Unreal Engine dominarás esta filosofía, la jerarquía de clases y la relación entre ellas.
* Esta parte la copie textual de un documento pero es importante que lo lean


de vuelta en el content browser vamos a las clases unreal nos habra creado por defecto una clase llamada
[Nombredelproyecto]GameModeBase que nos define las reglas principales del juego

damos doble click en ella y nos enviara a Visual Studio nos abrira 2 archivos

[Nombredelproyecto]GameModeBase.cpp
Código: C++
  1. // Fill out your copyright notice in the Description page of Project Settings.
  2.  
  3. #include "UE4FirstGameModeBase.h"
  4.  
  5.  
  6.  


[Nombredelproyecto]GameModeBase.h
Código: C++
  1. // Fill out your copyright notice in the Description page of Project Settings.
  2.  
  3. #pragma once
  4.  
  5. #include "CoreMinimal.h"
  6. #include "GameFramework/GameModeBase.h"
  7. #include "UE4FirstGameModeBase.generated.h"
  8.  
  9. /**
  10.  *
  11.  */
  12. UCLASS()
  13. class UE4FIRST_API AUE4FirstGameModeBase : public AGameModeBase
  14. {
  15.    GENERATED_BODY()
  16.    
  17.    
  18.    
  19.    
  20. };
  21.  

hasta aqui pareceria que va todo bien excepto que el archivo .cpp esta practicamente vacio por alguna razon unreal no crea lo basico vamos a editarlo un poco para que nos quede de esta manera

UE4FirstGameModeBase.cpp
Código: C++
  1. // Fill out your copyright notice in the Description page of Project Settings.
  2.  
  3. #include "UE4FirstGameModeBase.h"
  4. #include "Engine.h"
  5.  
  6. AUE4FirstGameModeBase::AUE4FirstGameModeBase(const FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer)
  7. {
  8.  
  9.  
  10. }
  11.  
  12. void AUE4FirstGameModeBase::StartPlay()
  13. {
  14.    Super::StartPlay();
  15.  
  16. }
agregamos una nueva libreria y nuestros metodos los llamamos con una A al principio es por eso que se llaman AUE4FirstGameModeBase si ustedes usaron otro nombre para su proyecto sus archivos tendran otro nombre y tendran que ponerles otro nombre a sus metodos

ahora agregaremos un par de lineas a nuestro archivo .h

nos debe quedar de esta forma

UE4FirstGameModeBase.h
Código: C++
  1. // Fill out your copyright notice in the Description page of Project Settings.
  2.  
  3. #pragma once
  4.  
  5. #include "CoreMinimal.h"
  6. #include "GameFramework/GameModeBase.h"
  7. #include "UnrealProjectGameModeBase.generated.h"
  8.  
  9. /**
  10.  *
  11.  */
  12. UCLASS()
  13. class UNREALPROJECT_API AUnrealProjectGameModeBase : public AGameModeBase
  14. {
  15.    GENERATED_BODY()
  16.    
  17.  
  18.                 AUnrealProjectGameModeBase(const FObjectInitializer& ObjectInitializer);
  19.                 virtual void StartPlay() override;
  20.    
  21. };
  22.  

hecho esto en teoria tendriamos lo basico para escribir ya las variables basicas de unreal

Ahora vamos al editor damos click a compilar y si hicieron todo bien no deberia darles ningun error
ahora vamos a world settings (explique antes como agregarlo si no lo tenian) en la parte de Game Mode donde dice Game Mode Override vamos a elegir nuestra clase en mi caso UE4FirstGameModeBase


Hasta aqui la parte 1 de esto por que ya debo dormir, mañana agregare el como configurar a nuestro personaje, No se olviden de dar click en File -> Save All
 

3
Java / [Java] BotIrc
« en: Enero 21, 2017, 02:24:51 am »
Bot Irc (by Moy & Ketzal)

ya tiene años que hicimos el bot la idea era que se hiciera pasar por una chica y consiguiera valoraciones para apps de google play o likes en facebook xD entraba a canales de irc y bueno les respondia a quien les enviara privados

algunas opciones
-se intenta reconectar cuando lo kickean,
-soporta hasta 5 canales de irc por servidor
-pueden elegir 2 conversaciones distintas segun necesiten valoraciones o likes



y bueno pues ahi se los dejo

Codigo fuente y el .jar

pueden editar el codigo fuente para cambiar las conversaciones o lo que quieran

descarga:
Mega

saludos


4
Ideas y Sugerencias / Sugerencias Subforos
« en: Enero 08, 2017, 04:57:32 am »
No se si ya habían pensando en esto probablemente si

pero yo creo que estaría super cool unos subforos de unity3d-UDK o desarrollo de juegos en general

y lo otro uno de adsense-admob o monetizacion en general

un saludo

5
Dudas y pedidos generales / ¿Cómo conseguir ganancias con Admob?
« en: Diciembre 17, 2016, 02:04:37 am »
Bueno pasa que yo uso admob y tengo un promedio de 500,000 impresiones de anuncios por dia pero solo gano unos 100 USD diarios entonces queria saber si alguien mas lo ocupa para saber como optimizar mi juego por que se me hace que gano muy poco para esas impresiones

saludos

6
Dudas y pedidos generales / [SOLUCIONADO] Laravel vs Php puro
« en: Noviembre 29, 2016, 12:35:49 am »
pues eso me gustaria saber por que usar laravel o hacer todo en php sin framework

estoy por empezar un proyecto he usado muy muy poco laravel pero veo que lo usan en muchos lados y muchos hablan de el entonces queria saber su opinion a ver si uso o no laravel

saludos

7
Electrónica y Robótica / Introducción a los motores Paso a Paso
« en: Noviembre 05, 2016, 03:44:39 am »
Pon a funcionar tus motores


Los motores de pasos son utilizados en muchos dispositivos y aplicaciones que son partes de nuestra vida diaria.
Aprende algunas bases para empezar a diseñar productos con ellos.

Los motores de pasos están donde sea. Como un desarrolador experimentado, quizás ya hayas diseñado motores de paso dentro de tus proyectos. Si no, seguro lo harás a lo largo de tu carrera o afición.
Este artículo resume alguna terminología importante asociada con motores de paso, presentando suficiente información para entregarte un entendimiento básico de los elementos de un motor de pasos, y te muestra como controlar un paso a paso usando un microcontrolador o procesador de señal digital.

El Paso a Paso.
Un motor de pasos es un tipo de motor que convierte energía eléctrica en energía mecánica a través de los principios del electromagnetismo. También conocidos como “Steppers” o “Paso a Paso”, esos motores fueron usados a inicios de los años 1920. Sus usos se ha elevado rápidamente con la popularidad de los sistemas integrados, incluyendo impresoras, unidades de disco, juguetes, limpia parabrisas, buscapersonas, brazos robóticas y video cámaras.

Siempre que se requiera mover desde una posición a otra (sin importar que la aplicación sea industrial, militar, médica, automotriz o de entretenimiento), puedes apostar que un motor de pasos es la fuerza motora. Los motores de pasos vienen en muchas formas y tamaños, pero la mayoría caen dentro de una o dos categorías: Los paso a paso de reluctancia variable o los paso a paos de magneto permanente.
Este artículo se enfoca en los más simples y populares Paso a Paso de magneto permanente.

Figura 1: Un estator con dos dientes y un devanado.



Construcción de un motor de pasos
El movimiento de un motor de pasos se hace posible gracias a los cables que son enrollados alrededor de los dientes de un estator, la parte no movible o estacionaria del motor como se muestra en la Figura 1. En general, el cable es enrollado en forma de bobina y es llamado solenoide. En un motor, el cable que es enrollado alrededor de un diente se denomina bobina, arrollado, devanado o fase. Si la corriente está fluyendo en la dirección mostrada en la Figura 1 y vemos el motor desde arriba mirando hacia abajo en el tope del diente, la corriente realiza un movimiento en contra de las agujas del reloj, alrededor de cada uno de los dos dientes. De acuerdo a la ley de Ampere y la regla de la mano derecha, este movimiento de corriente induce un campo magnético con el polo norte del campo apuntando hacia arriba

Supongamos ahora que construimos un dispositivo con dos bobinas en la parte estacionaria y dentro colocamos un imán permanente que puede rotar libremente alrededor de su centro. Esta pieza rotatoria es llamada Rotor.

Figura 2: Un motor de dos fases, dos polos.



El motor simple mostrado en la figura 2a, es llamado motor de dos fases y dos polos porque el estator tiene 2 fasis (bobinas), y el rotor tiene dos polos magnéticos, norte y sur. Si hacemos pasar corriente a través de la bobina 1 en la dirección mostrada en la figura 2a (sin ninguna corriente en la bobina 2), el rotor naturalmente se alineará a si mismo en la dirección mostrada, con su polo sur apuntando a la dirección norte del campo magnético del estator.

Ahora cortamos la corriente de la bobina 1 y se la aplicamos a la bobina 2 en la dirección mostrada en la Figura 2b. El campo magnético del estator apuntará a la izquierda, y el rotor girará de tal manera que el polo sur se alinee con este campo magnético del estator.

Luego cortamos la corriente de la bobina 2 y se la aplicamos nuevamente a la 1 en la dirección mostrada en la Figura 2c. Noten que la corriente de la bobina 1 es opuesta a la que se muestra en la Figura 2a. Esto resultará en un campo de estator apuntando hacia abajo, por lo tanto el rotor girará a la posición donde nuevamente su polo sur quede apuntando hacia abajo.

Nuevamente cortamos corriente en la bobina 1 y se la aplicamos a la 2 en la dirección mostrada en la Figura 2d. Esto producirá un campo de estator apuntando hacia la derecha, por lo que el rotor girará a la posición en donde su polo sur esté apuntando a la derecha

Finalmente, quitamos corriente de la bobina 2 y la aplicamos a la 1 en la dirección mostrada en la Figura 2a, regresando el rotor a su posición original.

Hemos completado un ciclo de excitación eléctrica de las bobinas del motor, mientras el rotor ha girado una revolución completa. En otra palabras, la frecuencia eléctrica del motor es igual a su frecuencia mecánica.

Si suponemos un Segundo de secuencia a través de los cuatro pasos de la Figura 2, la frecuencia eléctrica será 1Hz. El rotor giró en ese tiempo un vez, por lo tanto la frecuencia mecánica es también 1Hz. En general, para un “Stepper” de dos fases, se puede demostrar que la relación entre las frecuencias mecánica y eléctrica viene dada por la siguiente ecuación:

fe = fm P / 2 (1)

donde fe es la frecuencia eléctrica, fm es la frecuencia mecánica y P es el número de polos magnéticos igualmente espaciados del motor.

También podemos ver de la Figura 2 que un paso del motor resulta en una rotación de 90 grados. En general, para un “stepper” de dos fases, se puede también demostrar que un paso resulta en una rotación dada por la ecuación:

1 paso = 180º/ P (2)

Esta ecuación nos dice que nuestro motor de dos polos rotará 180º/ 2 = 90º, lo cual es consistente con lo que observamos en la Figura 2. La ecuación también muestra que un mayor número de polos resulta en una mejor resolución de paso. Es muy común encontrar paso a paso de dos fases con valores entre 12 y 200 polos, cuyas resoluciones de paso están comprendidas ente 15 y 0,9 grados.

Figura 3: Un motor bipolar de seis polos.



En otro ejemplo, la Figura 3 muestra cuatro pasos eléctricos de un motor bipolar de seis polos. Como se muestra, el rotor consiste de tres magnetos permanentes y, por consiguiente, seis polos magnéticos.
Aplicando la misma lógica anterior, podemos analizar el movimiento del rotor, las corrientes aplicadas a las bobinas de la armadura y los grados de rotación

Figura 4: Excitando ambas bobinas del motor simultáneamente.



Podemos incrementar el torque del motor, enviando corriente a través de ambas bobinas simultáneamente. La Figura 4 muestra este proceso. El campo magnético del estator es el vector suma de las componentes individuales de los campos magnéticos de cada bobina individual. El campo magnético del estator continuará rotando en pasos de 90 grados (como en las Figuras 2 y 3), pero ahora el campo es mucho mas fuerte debido a la excitación combinada de las dos bobinas. Debido a que el campo magnético resultante es el vector suma de dos campos componentes perpendiculares, su fuerza se incrementará en un factor de 2*1.414. (2 raiz de 2). Este resulta en una torque proporcionalmente mayor aplicado por el motor a su carga.

Secuencias de excitación
Ya que hemos visto que secuencia de excitación son las causantes de la rotación del “stepper”, deberemos poner algún hardware asociado para proporcionar la secuencia de paso deseada. A estos circuitos (o combinación de hardware/software) es los que se conoce como “driver” del motor.

En la Figura 4 podemos ver que secuencia de excitación necesitamos para aplicarla a las bobinar de un motor de dos fases a fin de generar la rotación.
Los terminales del motor están marcados como 1A, 1B, 2A y 2B. Los terminales 1 corresponden a la primera bobina y los 2 a la segunda.

Para el primer paso, necesitamos aplicar un voltaje positivo a los terminales 1B - 2B y deberemos poner a tierra los terminales 1A – 2A. Para el segundo paso, aplicaremos voltaje a los terminales 1B – 2A y tierra a los terminales 1A - 2B (esto en realidad depende de en que dirección se hayan enrollados las bobinas sobre los dientes. Asumiremos que se hizo en la dirección que afirma lo dicho anteriormente). Continuando con los otros pasos, podemos resumir la secuencia de excitación a lla mostrada en la Tabla1, en donde “1” significa voltaje positivo y “0” significa aterramiento.

Figura 5: Un circuito “Puente H” puede ser usado para manejar cada bobina.



Debido a que la corriente puede fluir en cualquier sentido en los terminales de las bobinas, al motor se denomina “Motor Bipolar” y a la secuencia de manejo “Secuencia Bipolar”. Un “driver” para motor bipolar usualmente esta construido con un circuito denominado puente H (H Bridge). En la Figura 5 se muestra el esquemático básico de un puente H conectado a dos terminales de un paso a paso. Una fuente de poder DC constante (cuyo valor depende de las especificaciones del motor), se conecta al puente H a través de una resistencia. El circuito se conmuta por medio de “switches” (marcados como S1, S2, S3 y S4) a los dos terminales de la bobina. El arreglo mostrado en el esquemático luce como un H mayúscula, de allí su denominación de puente H.



Tabla 1: Polaridades en los terminales de la bobina para una secuencia de paso de dos fases.

En la Tabla 1, vemos que el primer paso requiere de un 0 lógico en el Terminal 2A y un 1 lógico al Terminal 2B. Podemos hacer esto cerrando los interruptores S1 y S4 y abriendo S2 y S3. El segundo paso requiere de un 1 lógico en 2A y de un 0 lógico en 2B, lo cual logramos cerrando S2 y S3 y abriendo S1 y S4. Análogamente hacemos el tercer paso manteniendo S2 y S3 cerrados y S1 y S4 abiertos, y el cuarto cerrando S1 y S4 y abriendo S2 y S3.

Podemos seguir una línea similar de razonamiento para la bobina 1. Vemos entonces que un par de puente H pueden ser usados para generar toda la secuencia de excitación. Esto genera la Tabla 2, en la que se muestra la posición de los interruptores o “switches” para cada paso.



Tabla 2: Posición de los interruptores para una secuencia de paso de dos fases.

Fíjense que si R=0 y S1 y S3 se cierran a la vez, la corriente a través de los interruptores será infinita. Esto producirá un daño a la fuente de poder y a los interruptores. Además, la resistencia disipa potencia y hace que el driver sea menos eficiente pero provee protección contra corto circuitos.


Figura 6: Bobina de motores unipolares.



Motores Unipolares y su manejo

Un motor unipolar es similar a un bipolar excepto que cada bobina tiene un terminal central común que es accesible desde el exterior del motor. El Terminal que está arriba lo hemos llamado B y el de abajo, A, y al que viene del centro de la bobina lo hemos llamado C.

Muchas veces nos enfrentamos a motores en los que sus terminales no están identificados. Conociendo como los “steppers” están construidos, podemos determinar que cable está asociado con cada bobina, simplemente midiendo la resistencia entre sus terminales. La resistencia entre terminales que pertenecen a bobinas distintas será infinita. Si la resistencia medida entre A y C
Es 100 Ohm entonces, entre B y C será también 100 Ohm y entre A y B 200 Ohm. En este caso, la resistencia de 200 Ohm se denomina “Resistencia de Bobina”

Figura 7: Circuito para el control de un motor unipolar.



La Figura 7 muestra el circuito de “driver” o circuito manejador para un motor unipolar de una fase. Podemos ver que con S1 cerrado y S2 abierto, la corriente fluirá de derecha a izquierda a traves de la bobina. Con S1 abierto y S2 cerrado, la corriente fluirá de izquierda a derecha. Entonces, podemos cambiar la dirección del flujo de corriente usando solamente 2 interruptores.
Las secuencia de la posición de los interruptores para un driver de motor unipolar se muestra en la Tabla 3.



Tabla 3: Posición de los interruptores para una secuencia de paso de dos fases en un motor unipolar.

Los motores unipolares son simples de controlar. Si embargo son mecánicamente más complicados que los motores bipolares debido a que tienen un terminal central común, además son generalmente más caros que los bipolares. Debido a que la corriente eléctrica fluye en una sola dirección a través de la mitad de las bobinas que posee el motor, producen la mitad del campo eléctrico que los bipolares y por ende generan menos torque que estos últimos.

El conocimiento de cómo están construidos ambos tipos de motores, nos permite establecer algunas inferencias cuando nos encontramos con un motor que no está etiquetado y no tenemos su hoja de datos. Un motor con cuatro terminaleses un motor bipolar de dos fases. Mediremos la continuidad entes terminales para identificar los polos correspondientes a cada bobina. Un motor con seis terminales puede ser un motor unipolar de dos fases o un motor bipolar de tres fases. Para determinar el tipo, mediremos la continuidad entre pares de terminales y así conoceremos el número de bobinas o campos que tiene.

Figura 8: Esquemático de la controladora del motor paso a paso.



Controlando tu motor
La teoría de control del motor discutida anteriormente en este trabajo puede ser implementada con una solución de hardware únicamente: un microcontrolador o un DSP.
La Figura 8 muestra como puede ser controlado un motor unipolar de dos fases usando transistores e interruptores. Cada transistor necesita tener su base conectada a una de las salidas digitales del microcontrolador. Los emisores deberán ir conectados a tierra y los colectores a los cuatro terminales de las bobinas del motor. El Terminal central del motor irá conectado al Terminal positivo de la fuente de poder.

Cada colector también se conectará a la fuente a través de un diodo a fin de proteger el transistor del voltaje inducido por las bobinas del motor durante su rotación. De más está decir que en la medida que el roto gira, un voltaje se induce en las bobinas del motor. Este voltaje suministrará corriente hacia los colectores de los transistores a no ser que se impida por medio del diodo.

Supongamos por ejemplo, que una salida digital “do1” esta a nivel alto y “do2” está a nivel bajo. Entonces, el transistor de do1 estará polarizado y la corriente fluirá desde +V a través del terminal central común del motor, a través de la base del transistor T1, saliendo por su emisor. Sin embargo, do2 estará apagada, por lo que la corriente no podrá fluir a través de T2. Continuando este razonamiento, podemos deducir la Tabla 3 para poder apreciar la secuencia deseada en las salidas digitales del microcontrolador para poder manejar el motor. Vean la Tabla 4.



Tabla 4: Salidas digitales del microcontrolador para las secuencias de pasos en un motor unipolar de dos fases.


Ahora que conocemos el hardware y la secuencia de las salidas digitlaes necesaria para el manejo del motor, podemos escribir el software para nuestro microcontrolador/DSP favorito a fin de implementar la secuencia mostrada.

Control del Firmware

Hemos montado lo explicado anteriormente en un PIC16F877 de Microchip. Los diodos utilizados fueron los 1N4003 y los transistores unos Darlington 2SD1276A.
Como salidas digitales se escogieron los bits 0, 1, 2 y 3 del puerto A (PortA). Los motores Airpax son unipolares, de dos fases y 5 voltios.
Si bien en nuestro circuito utilizamos la misma fuente de poder de 5 voltios tanto para el microprocesador como para la alimentación de motores, para aplicaciones serias se recomienda el uso de fuentes separadas a fin de evitar ruidos inducidos en el microcontrolador.

Más abajo se muestra el código fuente. Este programa hace que el motor realice un paso cada 50 milisegundos. Trabaja inicializando las salidas digitales para el paso #1 como se muestra en la Tabla 4. Entonces, cada 50ms (o aquél que se especifiquen la constante WaitTime), el programa rotará las salidas digitales en el orden correcto. Para invertir la dirección de giro, simplemente realice el ciclo en el orden opuesto.

Listado 1 PIC16F877 Código Assembler para un motor paso a paso unipolar bifásico

Código: [Seleccionar]
; Declaración de variables
cblock  0x20
   Count1   ; Contador Delay
   Count2   ; Contador Delay
endc
; Declare constants
WaitTime   equ   d'50'   ; Espera 50 msec entre steps
Position1   equ   b'1010'   ; Valores de la Salida digital para 1er step
Position2   equ   b'1001'   ; Valores de la Salida digital para 2do step
Position3   equ   b'0101'   ; Valores de la Salida digital para 3er step
Position4   equ   b'0110'   ; Valores de la Salida digital para  4to step
;****************  Inicio del Programa  ***********************
   org    0   ; Vector de Reset
   nop      ; nop para Microchip's In-Circuit Debugger (ICD)
;****************  Initialization  *********************
   banksel   TRISA
   movlw   0xC0
   movwf   TRISA   ; Coloca bits 0-3  todas como Salidas en PortA
   movlw   b'00000110'; Configura Port A como digital
   movwf   ADCON1
   banksel   PORTA   ; Regreso al Bank 0
   clrf   Count1   ; Borra Contador
   clrf   Count2   ; Borra Contador
   movlw   Position1   ; Comenzar motor in Posición 1
   movwf   PORTA
;********************  Motor drive  *********************
Drive
   movlw   WaitTime   ; Inicializa WaitTime a Count1
   movwf   Count1
Loop   call   Timer   ; Espera 1 msec
   decfsz   Count1, f   ; Decrementa Count1. Count1 = 0 ?
   goto   Loop   ; No – Mantente esperando
   movf   PORTA, w   ; Leer la posición presente
   sublw   Position1
   bnz    Drive1
   movlw   Position2   ; En la Posición1 - step a la Posición2
   movwf   PORTA
   goto   Drive   ; otro Step
Drive1
   movf   PORTA, w   ; Leer la posición actual
   sublw   Position4
   bnz    Drive2
   movlw   Position1   ; En la Posición4 - step a la Posición1
   movwf   PORTA
   goto   Drive   ; otro Step
Drive2
   movf   PORTA, w   ; Leer la posición actual
   sublw   Position3
   bnz   Drive3
   movlw   Position4   ; En la Posición3 - step a la Posición4
   movwf   PORTA
   goto   Drive   ; otro Step
Drive3
   movf   PORTA, w   ; Leer la posición actual
   sublw   Position2
   bnz   Drive4
   movlw   Position3   ; En la Posición2 - step a la Posición3
   movwf   PORTA
   goto   Drive   ; otro Step
Drive4
   movlw   Position1   ; En posición desconocida - step a la Posición1
   movwf   PORTA   ; Escribir PORTA
   goto   Drive   ; otro Step
;*************  Subturina de 1 msec  de Retardo *****************
; Esta rutina toma  1 ms en ejecutarse (a velocidad de reloj de 4 MHz)
Timer
   movlw   d'200'   ; Set loop count
   movwf   Count2   ; Save loop count
Time1   nop
   nop
   decfsz   Count2, f   ; Count2 - 1 = 0 ?
   goto   Time1   ; No – Continuar
   return      ; Si – Regresar

end
El motor que hemos utilizado tiene 24 polos. Esto significa que un paso mueve 180º/24 = 7,5º. Este motor rota 7,5º cada 50ms, por lo que realiza una vuelta completa cada 2,4 segundos.
Si reducimos el valor de la constante WaitTime por un factor de 2, el motor rotará al doble de la velocidad. Sin embargo, existe un límite en la velocidad rotacional del motor. Si el campo del estator gira muy rápido, el rotor no será capaz de seguirlo debido a su inercia, fricción y otras limitaciones mecánicas.
En ese punto el motor empieza a “saltar” y deja de rotar sincrónicamente con el campo de estator. Si WaitTime se decrece consecutivamente, también el motor dejará de rotar.

Otros tipos de motores pueden contener 3 o 4 fases adicionales a las 2 que hemos tratado en este artículo. Algunos “steppers” bifásicos tiene un Terminal central que se conecta en el medio, entre ambas bobinas. Este tipo de paso a paso tiene 5 terminales saliendo del motor.

También existen otros tipos de motores que no son paso a paso. Los más viejos y simples son los motores DC o de corriente continua. Por lo general usan escobillas y no son muy duraderos como deberían ser. Sin embargo, existen motores DC que no usan escobillas y utilizan circuitería electrónica para la transmisión de energía a sus campos y rotores. Estos últimos tiene una vida útil mucho más extensa.

Otro tipo es el de inducción. Un motor de inducción trabaja con un principio totalmente diferente a los steppers y DC. El voltaje de alimentación de este tipo de motores es alterno (AC) en lugar de continuo (DC) y la velocidad del rotor retrasa la velocidad del campo magnético del estator.
Los paso a paso y los DC son motores sincrónicos ya que su rotor gira “sincrónicamente” con el campo magnético del estator. Los de inducción son asyncrónicos porque la velocidad del rotor se retrasa relativamente a la rotación del campo magnético

Muchisimos más detalles y tópicos que los cubiertos en este artículo los están esperando para que los descubran sin embargo, si han entendido los principios básicos expuestos aquí, estarán bien posicionados para comenzar el diseño, mantenimiento y diagnóstico de hardware controladora de paso a pasos y su software asociado.

Nota: El presente trabajo está basado y traducido del artículo de Dan Simon titulado “Get Your Motor Running” y publicado en http://www.embedded.com año 2003.

8
Dudas y pedidos generales / Consulta Raspberry ArchLinux
« en: Octubre 15, 2016, 03:34:04 am »
Alguien a probado arch en una raspberry ?

ya llego la mia y quiero probar pero antes quiero saber si va bien si no para no perder el tiempo y ponerle el raspbian xD

saludos

9
GNU/Linux / Instalar Unity3D
« en: Octubre 06, 2016, 03:17:03 pm »

Ya todos deben saber que es unity supongo asi que no deberia ocupar mucha información igual se lanzo hace mucho para linux pero bueno como lo andaba por probar y no vi el tema por aca pues lo publico




en ubuntu basta con descargar el paquete .deb
http://download.unity3d.com/download_unity/unity-editor-5.1.0f3+2015082501_amd64.deb




en archlinux igual es bastante facil

instalar desde el AUR el paquete unity-editor

Código: Bash
  1. $ yaourt -S unity-editor

o unity-editor-beta para la version beta
Código: Bash
  1. $ yaourt -S unity-editor-beta




y para las otras distros habra que descargarse el sh
http://download.unity3d.com/download_unity/unity-editor-installer-5.1.0f3+2015082501.sh

y bueno en donde sea que lo descarguen deben ejecutar el instalador y pues ya
desde linea de comandos seria asi
Código: Bash
  1. $ ./unity-editor-installer-5.1.0f3+2015082501.sh

10
Dudas y pedidos generales / Editar Clase de un .jar [ayuda]
« en: Septiembre 16, 2015, 05:33:19 am »
bueno pues necesito editar la clase de un jar y dejarlo tal cual

la clase es pircbot.class

linea 3091

Código: Java
  1. private String _version = "PircBot " + VERSION + " Java IRC Bot - [url=http://www.jibble.org]www.jibble.org[/url]";

quiero dejar esa variable vacia osea


Código: Java
  1. private String _version = "";

asi

lo he intentado todo pero cuando rearmo el jar me dice que las clases no existen y debo incluirlas de otro lado

esto:



asi que si alguien me ayuda o me dice como se hace les estaria muy agradecido :3

este es el jar en cuestion

https://mega.nz/#!FBF3DDLC!CT65xPOvz5I7OxAtu-aRE2EhetR7iNn3UdMbHMTSg-o

es el PircBot de java

saludos



11
Java / [Java][Android] FileExplorer by Moy & Aika
« en: Agosto 22, 2013, 02:53:08 pm »
No se si esto va aca si no que alguien lo mueva....

ya que no le veo futuro a este proyecto xD, tengo proyectos mas grandes

pues lo hago publico ^^


SimpleExplorer2

el apk:
https://mega.co.nz/#!mhxjnSjS!YT1zQ3Lu1LVAhUyONrvLpV4lXml-8SoRPeEAEjF0NzM


el proyecto:
https://mega.co.nz/#!vpwVVCiL!cu1oAiJ5N_TyYYi-OmLjWBJhVltN-0X_jynzak3fIpE

por cierto le faltan varias cosas por agregar pero funciona casi todo ^^

creditos:
Moy (osea yo) en toda la programacion
Aika - en gran parte de los iconos

saludos

Páginas: [1]