Mecany https://mecany.org/es/ Mon, 31 Jul 2023 01:46:36 +0000 es hourly 1 https://wordpress.org/?v=6.5.2 https://i0.wp.com/mecany.org/wp-content/uploads/2021/12/cropped-mecany-512x512-1.png?fit=32%2C32&ssl=1 Mecany https://mecany.org/es/ 32 32 200460054 Listando sensores en cualquier dispositivo Android https://mecany.org/es/listando-sensores-en-cualquier-dispositivo-android/ Thu, 18 Jan 2018 14:06:16 +0000 https://mecany.org/?p=151 Hoy por hoy existen infinidad de smartphones y dispositivos móviles. A la hora de desarrollar esto puede ser un problema, debido a que el hardware disponible en los mismos, varía muchisimo. En Android existe una manera de poder listar los sensores disponibles en un dispositivo, para que en base a esto, podamos chequear si el […]

The post Listando sensores en cualquier dispositivo Android appeared first on Mecany.

]]>
Hoy por hoy existen infinidad de smartphones y dispositivos móviles.
A la hora de desarrollar esto puede ser un problema, debido a que el hardware disponible en los mismos, varía muchisimo.

En Android existe una manera de poder listar los sensores disponibles en un dispositivo, para que en base a esto, podamos chequear si el que precisamos está disponible o crear la lógica necesaria en caso contrario.

Para esto crearemos un nuevo proyecto, como blank o empty activity y dentro del MainActivity.java, colocaremos el siguiente código:

package your.package.name.here;

import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorEventListener;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;

import java.util.List;

public class MainActivity extends AppCompatActivity implements SensorEventListener {

    private SensorManager mSensorManager;
    private TextView sensor_list;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        sensor_list = findViewById(R.id.sensor_list);

        mSensorManager = (SensorManager) getSystemService(Context.SENSOR_SERVICE);
        List mList = mSensorManager.getSensorList(Sensor.TYPE_ALL);
        sensor_list.setText("Sensors: ");

        for(int i=1; i

Es importante destacar que en este código se debe reemplazar la línea:
package your.package.name.here;
por el nombre del package que hayamos escogido a la hora de crear el proyecto.
Por otro lado, el código hace referencia a un TextView llamado sensor_list, este va a ser el encargado de mostrar los sensores disponibles, en la pantalla del dispositivo.
Este TextView está declarado en el archivo content_main.xml


<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior"
    tools:context=".MainActivity"
    tools:showIn="@layout/activity_main">

    <TextView
        android:id="@+id/sensor_list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:text="TextView"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.174"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.077" />
</android.support.constraint.ConstraintLayout>

The post Listando sensores en cualquier dispositivo Android appeared first on Mecany.

]]> 23 Registro de Desplazamiento 74HC595 https://mecany.org/es/registro-de-desplazamiento-74hc595/ Fri, 05 Jan 2018 15:16:55 +0000 https://mecany.org/?p=75 Que es? Un registro de desplazamiento es un circuito digital secuencial, esto significa que los valores de sus salidas dependen de los valores de sus entradas y de los valores anteriores de sus entradas. Consiste en una serie de flip-flops conectados en cascada que oscilan de forma sincrónica con la misma señal de reloj. *flip-flops: […]

The post Registro de Desplazamiento 74HC595 appeared first on Mecany.

]]>
Que es?
Un registro de desplazamiento es un circuito digital secuencial, esto significa que los valores de sus salidas dependen de los valores de sus entradas y de los valores anteriores de sus entradas.
Consiste en una serie de flip-flops conectados en cascada que oscilan de forma sincrónica con la misma señal de reloj.

*flip-flops: es un multivibrador capaz de permanecer en uno de los dos estados posibles por un tiempo indefinido, en la ausencia de perturbaciones. Esta característica es altamente utilizada en electrónica digital para almacenar información.

Como todos los circuitos integrados, este tiene un data sheet (hoja de datos). Las hojas de datos nos brindan toda la información necesaria sobre el circuito integrado, tales como: condiciones para trabajar, las entradas y salidas para cada pin, la entrada de voltaje, la temperatura, etc.

En la hoja de datos podemos encontrar la configuración de los Pines:

Así como también la descripción para cada uno de ellos:

Symbol Pin Description
Q1 1 parallel data output 1
Q2 2 parallel data output 2
Q3 3 parallel data output 3
Q4 4 parallel data output 4
Q5 5 parallel data output 5
Q6 6 parallel data output 6
Q7 7 parallel data output 7
GND 8 ground (0 V)
Q7′ 9 serial data output
MR 10 master reset (active LOW)
SHcp 11 shift register clock input
STcp 12 storage register clock input
OE 13 output enable input (active LOW)
DS 14 serial data input
Q0 15 parallel data output 0
Vcc 16 supply voltage

Cuando necesito uno?
El registro de desplazamiento, si trabajamos con Arduino o Raspberry Pi, puede incrementar el número de pines usables. En este caso, el 74HC595 requiere 3 pines de entrada pero devuelve 8 pines de salida.
Esto significa que usando solo 3 pines en el Raspberry Pi o Arduino, podemos manejar hasta 8 pines. Muy útil cuando estamos haciendo proyectos que requieren más de los pines disponibles en nuestro Arduino o Raspberry Pi.

Ejemplo:

Vea lo que podemos hacer en este ejemplo



The post Registro de Desplazamiento 74HC595 appeared first on Mecany.

]]>
21
Utilizando Registro de Desplazamiento 74HC595 con Raspberry Pi https://mecany.org/es/utilizando-registro-de-desplazamiento-74hc595-con-raspberry-pi/ Thu, 04 Jan 2018 22:17:13 +0000 https://mecany.org/sin-categorizar/using-shift-register-74hc595-with-raspberry-pi/ En el artículo anterior estuvimos hablando sobre este dispositivo y las ventajas que podríamos tener al usarlo. Pero puede ser un poco difícil de entender sin ver un ejemplo o sin entender su operación y modos de uso. Hoy lo aplicaremos utilizando todos los pines que este dispositivo nos proporciona con un ejemplo simple usando […]

The post Utilizando Registro de Desplazamiento 74HC595 con Raspberry Pi appeared first on Mecany.

]]>
En el artículo anterior estuvimos hablando sobre este dispositivo y las ventajas que podríamos tener al usarlo. Pero puede ser un poco difícil de entender sin ver un ejemplo o sin entender su operación y modos de uso.
Hoy lo aplicaremos utilizando todos los pines que este dispositivo nos proporciona con un ejemplo simple usando una librería de código abierta accesible para todos, creada por Mecany y alojada en Github.

Requerimientos:

  • 1 Raspberry Pi
  • 1 Protoboard
  • 8 Leds
  • 8 Resistencias 220 Ω
  • 17 Conectores
  • 1 74HC595

Instalando librería requerida:

Podemos obtener una librería en github para manejar este registro de desplazamiento:
En el mismo directorio en el que tenemos el script de python, debemos hacer lo siguiente:

git clone git@github.com:marsminds/shiftr_74HC595.git

Procedimiento:

  • Antes de conectarle la energía al Raspberry Pi, necesitamos construir el circuito como se muestra en el diagrama.

  • Conectar la energía al Raspberry Pi
  • Guardar el código siguiente en un archivo llamado shift_register.py
import RPi.GPIO as GPIO
from shiftr_74HC595.shiftr_74HC595 import ShifRegister #importing the downloaded class
from time import sleep
GPIO.setmode(GPIO.BOARD)
data_pin = 7 #pin 14 on the 75HC595
latch_pin = 11 #pin 12 on the 75HC595
clock_pin = 12 #pin 11 on the 75HC595
shift_register = ShifRegister(data_pin, latch_pin, clock_pin) #using the class to manage the shift register
try:
    while 1:
        #setting the pins to turn on or off the leds
        shift_register.setOutput(0, GPIO.HIGH)
        shift_register.setOutput(1, GPIO.LOW)
        shift_register.setOutput(2, GPIO.LOW)
        shift_register.setOutput(3, GPIO.LOW)
        shift_register.setOutput(4, GPIO.HIGH)
        shift_register.setOutput(5, GPIO.LOW)
        shift_register.setOutput(6, GPIO.LOW)
        shift_register.setOutput(7, GPIO.HIGH)
        sleep(1)
        #setting the pins to turn on or off the leds
        shift_register.setOutput(0, GPIO.LOW)
        shift_register.setOutput(1, GPIO.HIGH)
        shift_register.setOutput(2, GPIO.HIGH)
        shift_register.setOutput(3, GPIO.HIGH)
        shift_register.setOutput(4, GPIO.LOW)
        shift_register.setOutput(5, GPIO.HIGH)
        shift_register.setOutput(6, GPIO.HIGH)
        shift_register.setOutput(7, GPIO.LOW)
        sleep(1)
except KeyboardInterrupt:
    print “Ctrl-C – quit”
GPIO.cleanup() #cleaning all the GPIO pins when the script is finished

 

  • Ejecutar el archivo guardado utilizando el siguiente comando en la consola:
sudo python shift_register.py

The post Utilizando Registro de Desplazamiento 74HC595 con Raspberry Pi appeared first on Mecany.

]]>
22