Arduino - Blogger - Cinema 4D - Electrónica - Hardware - IPod Touch - Photoshop - Programación - Programas - Revisiones - Windows

Quitar la protección contra escritura a memorias USB, SD, Discos Duros

Tienen problemas con su memoria USB, SD o Disco Duro, no pueden copiarle archivos, bórralos o formatearlo, pues sus problemas se acabaron con este tutorial, es un procedimiento bastante sencillo que funciona con todos los dispositivos, en el tutorial les explico paso a paso todo el procedimiento necesario.

Aprender a Formatear cualquier Pc e instalar Windows [Curso]

En el curso se explica de manera clara y paso a paso todo lo que hay que tener en cuenta antes, durante y después de formatear una computadora, incluyendo ejemplos prácticos de todos los temas vistos.

25 de abril de 2017

Control de Cámara con Movimiento usando Servos, Arduino y Computadora


Hola amigos, en esta ocasión quiero mostrarles un proyecto que consiste en una cámara de video montada en 2 servomotores, los cuales están conectados a una placa Arduino, la placa y la cámara son controlados por un aplicación para computadoras, que permite visualizar el video y mover la cámara tanto vertical como horizontalmente. 


Proceso de Realización del Proyecto

Materiales necesarios:
-Placa Arduino.
-Cable de Placa Arduino a Computadora.
-2 Servomotores.
-Cables Dupont.
-Cámara de video.
-Trozo de Madera o Acrílico.
-Silicón, tornillos y material para el montaje.

Montaje:
Colocar los componentes como en la imagen, de tal modo que un servomotor pueda mover al otro, y el otro servomotor a su vez pueda mover la cámara.

Conexión del Circuito:
Conectar los componentes como en la siguiente imagen.


Ya teniendo todo listo es momento de cargar el sketch a la placa Arduino, el cual pueden descargarlo desde el enlace que se encuentra al final de la entrada.

Bien, ahora cierran la aplicación de Arduino para Windows, conectan la cámara de video y abren el programa de control, seleccionan el puerto donde está conectada la placa Arduino e inician la comunicación, de igual manera inician la cámara de video.
NOTA: La aplicación requiere de Microsoft .NET Framework 4.5, si no lo tienen instalado pueden descargarlo de la página oficial de Microsoft.
Realizando todo el proceso mencionado anteriormente ahora pueden controlar el movimiento de la cámara con la aplicación, asi como visualizar el video. Espero el proyecto, el código y la aplicación les sea de utilidad.

Clic en la imagen para descargar el código para Arduino y la aplicación para Windows.

24 de abril de 2017

Inicio de Sesión (Login) con C Sharp y SQL Server



















Un tutorial sobre cómo desarrollar una aplicación en Visual Studio con el lenguaje de programación C Sharp que permita iniciar sesión e identificar al tipo de usuario en una base de datos, utilizando el sistema de bases de datos Microsoft SQL Server.



Código Fuente 

Script Base de Datos
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
USE master
CREATE DATABASE escuela
GO
USE escuela
CREATE TABLE usuario
(
nombreUsuario nvarchar(20) PRIMARY KEY not null,
contrasena nvarchar(20) not null,
nombre nvarchar(50) not null,
apellidoPaterno nvarchar(50) not null,
apellidoMaterno nvarchar(50),
tipoUsuario nvarchar(20) not null
)
GO
INSERT INTO usuario VALUES('jesus', '123A', 'Jesús', 'Morales', 'Campos', 'Administrador')
INSERT INTO usuario VALUES('roberto', '123456', 'Roberto', 'Castro', 'Morales', 'Profesor')
GO

Clase BaseDatos.cs
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using System.Data.SqlClient;

namespace InicioSesion
{
    class BaseDatos
    {
        private string cadenaConexion = "Data Source=JEOVANI-PC; Initial Catalog=escuela; Integrated Security=true;";

        public static string nombreCompleto = "";
        public static string tipoUsuario = "";

        public Boolean iniciarSesion(string nomus, string con)
        {
            nombreCompleto = "";
            tipoUsuario = "";

            SqlConnection conexion = new SqlConnection(cadenaConexion);
            conexion.Open();

            SqlParameter parnomus = new SqlParameter("@nomus", nomus);
            SqlParameter parcon = new SqlParameter("@con", con);

            SqlCommand comando = new SqlCommand("SELECT nombre, apellidoPaterno, apellidoMaterno, tipoUsuario FROM usuario WHERE nombreUsuario = @nomus AND contrasena COLLATE Latin1_General_CS_AS = @con", conexion);
            comando.Parameters.Add(parnomus);
            comando.Parameters.Add(parcon);

            SqlDataReader lector = comando.ExecuteReader();
            while (lector.Read())
            {
                nombreCompleto = lector.GetString(0) + " " + lector.GetString(1) + " " + lector.GetString(2);
                tipoUsuario = lector.GetString(3);
            }

            lector.Close();
            conexion.Close();

            if (String.IsNullOrEmpty(tipoUsuario))
            {
                return false;
            }
            else
            {
                return true;
            }
        }
    }
}

Form1.cs
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace InicioSesion
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btiniciarsesion_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(tbnombreusuario.Text) && !String.IsNullOrEmpty(tbcontrasena.Text))
            {
                try
                {
                    BaseDatos bd = new BaseDatos();

                    Boolean res = bd.iniciarSesion(tbnombreusuario.Text, tbcontrasena.Text);

                    if (res)
                    {
                        Principal p = new Principal();
                        p.Show();
                        this.Hide();
                    }
                    else
                    {
                        MessageBox.Show("Datos Incorrectos");
                    }
                }
                catch
                {
                    MessageBox.Show("Error");
                }
            }
            else
            {
                MessageBox.Show("Complete los datos");
            }
        }
    }
}

Principal.cs
1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace InicioSesion
{
    public partial class Principal : Form
    {
        public Principal()
        {
            InitializeComponent();

            labelusuario.Text = BaseDatos.nombreCompleto;

            if (BaseDatos.tipoUsuario == "Administrador")
            {
                paneladministrador.Visible = true;
                panelprofesor.Visible = false;

            }
            else if (BaseDatos.tipoUsuario == "Profesor")
            {
                paneladministrador.Visible = false;
                panelprofesor.Visible = true;
            }

        }

        private void Principal_FormClosed(object sender, FormClosedEventArgs e)
        {
            Application.Exit();
        }
    }
}

Solución al Error JAVA_HOME de Android Studio


















Un nuevo tutorial donde se muestra como solucionar el error JAVA_HOME de Android Studio.


22 de abril de 2017

Convertir el Texto a Voz en C Sharp


Un Video Tutorial donde muestro como convertir el texto a voz en un proyecto de Visual Studio con el lenguaje de programación C Sharp.



Código Fuente

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Speech.Synthesis;
using System.Threading;

namespace TextoVoz
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void bthablar_Click(object sender, EventArgs e)
        {
            Thread tarea = new Thread(new ParameterizedThreadStart(hablar));
            tarea.Start(rtexto.Text);
        }

        private void hablar(object texto)
        {
            SpeechSynthesizer voz = new SpeechSynthesizer();
            voz.SetOutputToDefaultAudioDevice();
            voz.Speak(texto.ToString());
        }
    }
}

21 de abril de 2017

Captura de Pantalla en C Sharp


Un Video Tutorial donde muestro como hacer una captura de pantalla en un proyecto de Visual Studio con el lenguaje de programación C Sharp.


Código Fuente

1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing.Imaging;

namespace CapturarPantalla
{
    public partial class Form1 : Form
    {
        int contador = 0;
        public Form1()
        {
            InitializeComponent();
        }

        private void btcapturar_Click(object sender, EventArgs e)
        {
            contador = 0;
            timer1.Start();

            this.Visible = false;
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (contador == 1)
            {
                Rectangle limites = Screen.GetBounds(Point.Empty);
                Bitmap imgb = new Bitmap(limites.Width, limites.Height);
                Graphics graf = Graphics.FromImage(imgb);
                graf.CopyFromScreen(Point.Empty, Point.Empty, limites.Size);
                pictureBoximg.Image = imgb;

                this.Visible = true;
                timer1.Stop();
            }
            contador++;
        }

        private void btguardar_Click(object sender, EventArgs e)
        {
            SaveFileDialog dg = new SaveFileDialog();
            dg.Filter = "Imagen | .png";

            if (dg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                ImageFormat formato = ImageFormat.Png;
                pictureBoximg.Image.Save(dg.FileName, formato);
            }
        }
    }
}