Aplicación PSLab para Android
Repositorio de la aplicación de Android PSLab para realizar experimentos con la plataforma de hardware abierto Pocket Science Lab.
Este repositorio contiene la aplicación de Android para realizar experimentos con PSLab. PSLab es un pequeño laboratorio científico de bolsillo que proporciona una variedad de equipos para realizar experimentos de ciencia e ingeniería. Puede funcionar como osciloscopio, generador de formas de onda, contador de frecuencia, fuente de corriente y voltaje programable y también como registrador de datos. Nuestro sitio web está en https://pslab.io.
Regístrese para recibir las últimas actualizaciones y pruebe nuevas funciones con anticipación uniéndose a nuestro programa beta aquí.
Comprar
- Puede obtener un dispositivo Pocket Science Lab en la tienda FOSSASIA.
- Se enumeran más revendedores en el sitio web de PSLab.
Comunicación
- El canal de chat de PSLab está en Gitter.
- Únase también a nosotros en la lista de correo de PSLab.
Hoja de ruta
Capturas de pantalla
Demostración en vídeo
- Descripción general de la aplicación PSLab para Android.
- Observación de formas de onda de sonido mediante el dispositivo PSLab.
- Registro de datos de sensores en tiempo real mediante Pocket Science Lab.
- Generación y observación de formas de onda utilizando Pocket Science Lab.
Características
Característica | Descripción | Estado |
---|
Pantalla de inicio | Mostrar estado y versión del dispositivo PSLab | ✔️ |
Instrumentos | Expone instrumentos de PSLab como osciloscopio, etc. | ✔️ |
Osciloscopio | Muestra variación de señales analógicas. | ✔️ |
Multímetro | Mide voltaje, corriente, resistencia y capacitancia. | ✔️ |
Analizador lógico | Captura y muestra señales del sistema digital. | ✔️ |
Generador de ondas | Genera formas de onda analógicas y digitales arbitrarias. | ✔️ |
Fuente de energía | Genera voltaje y corrientes programables. | ✔️ |
Luxómetro | Mide la intensidad de la luz ambiental. | ✔️ |
Barómetro | Mide la presión | ✔️ |
Acelerómetro | Mide la aceleración del dispositivo. | ✔️ |
Girómetro | Mide la velocidad de rotación. | ✔️ |
Brújula | Mide la rotación absoluta relativa a los polos magnéticos terrestres. | ✔️ |
Termómetro | Mide la temperatura ambiente | ✔️ |
Sensor de gases | Detecta gases, incluidos NH3, NOx, alcohol, benceno, humo y CO2. | ✔️ |
Controlador de brazo robótico | Permite controlar 4 servomotores del brazo robótico de forma independiente | ✔️ |
Cómo configurar la aplicación de Android en su entorno de desarrollo
Sabores de aplicación
Hay 2 versiones (variantes de compilación) de la aplicación PSLab para Android.
Sabor de Play Store
- La versión Play Store utiliza Google Maps para mostrar la ubicación almacenada en los registros del registrador de datos.
Sabores Fdroid
- La versión Fdroid utiliza Open Street Maps para mostrar la ubicación almacenada en registros en el registrador de datos.
Configuración de desarrollo
Antes de comenzar, ya deberías tener el SDK de Android Studio descargado y configurado correctamente. Puede encontrar una guía sobre cómo hacer esto aquí: Configuración de Android Studio
Configurando el proyecto Android
Para configurar el proyecto PSLab de Android, puede seguir cualquiera de los dos métodos que se enumeran a continuación, es decir, puede descargar el archivo zip del repositorio o puede clonar directamente el repositorio en Android Studio.
Descargando el archivo zip
Descargue la fuente del proyecto pslab-android . Puede hacer esto bifurcando y clonando el repositorio (recomendado si planea realizar cambios) o descargándolo como un archivo ZIP y extrayéndolo.
Abra Android Studio, verá una ventana de Bienvenido a Android . En Inicio rápido, seleccione _Importar proyecto (Eclipse ADT, Gradle, etc.) Para depurar a través de Wi-Fi, siga los pasos que se indican en este Blog.
- Nota: Si creó su propio hardware, cambie VendorID y/o ProductID en CommunicationHandler.java.
Por clonación directa
- Abra Android Studio, verá una ventana de Bienvenido a Android . En Inicio rápido, seleccione "desproteger proyecto desde el control de versiones".
- Seleccione git en el menú desplegable que apareció.
- Vaya al repositorio y haga clic en el botón clonar o descargar.
- Del menú desplegable que apareció, copie el enlace.
- Pega la URL que copiaste y presiona clonar.
- Android Studio ahora debería comenzar a construir el proyecto con Gradle.
- Una vez que se complete este proceso y se abra Android Studio, verifique la consola para ver si hay errores de compilación.
- Nota: Si recibe un error de sincronización de Gradle titulado "No se pudo encontrar ...", debe hacer clic en el enlace debajo del mensaje de error (si está disponible) que dice Instalar plataforma(s) faltante(s) y proyecto de sincronización y permitir que Android Studio buscarte lo que falta.
- Una vez que se hayan resuelto todos los errores de compilación, debería estar todo listo para compilar la aplicación y probarla.
- Para compilar la aplicación, vaya a Construir>Crear proyecto (o, alternativamente, presione el ícono Crear proyecto en la barra de herramientas).
- Si la aplicación se creó correctamente, puede probarla ejecutándola en un dispositivo real o en uno emulado yendo a Ejecutar>Ejecutar 'aplicación' o presionando el ícono Ejecutar en la barra de herramientas.
Si solo desea compilar apk, vaya a Construir>Compilar apk y Android Studio le solicitará el directorio donde se genera el apk.
No puede depurar de la forma habitual ya que el dispositivo PSLab está conectado al puerto micro-USB mediante un cable OTG. Entonces, el dispositivo Android no está conectado a la PC mediante un cable USB.
Para depurar a través de Wi-Fi, siga los pasos que se indican en este Blog.
- Nota: Si creó su propio hardware, cambie VendorID y/o ProductID en CommunicationHandler.java.
Permisos requeridos
- Record_Audio: es necesario para que el osciloscopio acepte entradas del micrófono incorporado del teléfono. Puede encontrar su implementación en AudioJack.java.
- Access_Fine_Location e Internet: se requiere para su uso en luxómetro y brújula para obtener las coordenadas para etiquetar los datos en el mapa. Puede encontrar su implementación en GPSLogger.java.
- Write_External_Storage: es necesario para almacenar archivos de registro de instrumentos que se pueden transferir para análisis futuros.
- Read_External_Storage: mientras escribe registros en el almacenamiento, CSVLogger.java primero verifica si existe o no algún directorio CSVLogger que requiera este permiso de lectura.
Configuración para usar PSLab con la aplicación de Android
Para usar el dispositivo PSLab con Android, simplemente necesita un cable OTG, un dispositivo Android con la función de host USB habilitada (la mayoría de los teléfonos modernos son compatibles con OTG) y la aplicación PSLab para Android. Conecte el dispositivo PSLab al teléfono Android mediante un cable OTG. El descanso lo gestiona la propia aplicación.
Mejores prácticas de contribuciones
Prácticas de código
Ayúdenos a seguir las mejores prácticas para que sea más fácil tanto para el revisor como para el colaborador. Queremos centrarnos en la calidad del código más que en gestionar la ética de las solicitudes de extracción.
- Confirmación única por solicitud de extracción.
- Haga referencia a los números de problema en el mensaje de confirmación. Siga el patrón
Fixes #<issue number> <commit message>
- Siga prácticas de diseño uniformes. El lenguaje de diseño debe ser coherente en toda la aplicación.
- La solicitud de extracción no se fusionará hasta que se eliminen las confirmaciones. En caso de que haya múltiples confirmaciones en el PR, el autor de la confirmación debe aplastarlas y no los mantenedores seleccionando y fusionando aplastamientos.
- Si el PR está relacionado con algún cambio en el front-end, adjunte capturas de pantalla relevantes en la descripción de la solicitud de extracción.
¿Cómo git squash
?
Como consejo para los nuevos desarrolladores que tienen dificultades para agrupar confirmaciones en una sola, pueden aparecer varias confirmaciones en su solicitud de extracción, principalmente debido a los siguientes motivos.
- Agregar intencionalmente múltiples mensajes de confirmación después de cada cambio sin simplemente
git add
. - Actualizar la rama actual con el control remoto para que se realice una confirmación de fusión.
Independientemente del motivo, siga los pasos que se indican a continuación para agrupar todos los compromisos en uno que cumpla con nuestras mejores prácticas.
- Configurar de forma remota a la rama ascendente si no se configuró antes
$ git remote add upstream https://github.com/fossasia/pslab-android.git
- Regístrese en la rama relacionada con la solicitud de extracción
$ git checkout <branch-name>
- Realice un reinicio parcial para conservar los cambios mientras elimina todos los detalles de confirmación
$ git reset --soft upstream/development
- Agregar archivos al área de preparación
$ git add <file paths or "." to add everything>
- Cree una nueva confirmación con un mensaje adecuado siguiendo las pautas de mensajes de confirmación
$ git commit -m "tag: commit message"
- Si ya has realizado una solicitud de extracción
$ git push -f origin <branch-name>
Política de sucursales
Contamos con las siguientes sucursales
- desarrollo Todo el desarrollo continúa en esta rama. Si estás haciendo una contribución, se supone que debes realizar una solicitud de extracción al desarrollo . Asegúrate de que pase una verificación de compilación en Travis.
- master Contiene el código estable. Una vez que se acumulan funciones y correcciones de errores importantes en el desarrollo, lo pasamos a master.
- apk Esta rama contiene un archivo apk generado automáticamente para realizar pruebas.
Estilo de código
Intente seguir las pautas mencionadas mientras escribe y envía su código, ya que facilita la comprensión para el revisor y otros desarrolladores.
- Al nombrar los archivos de diseño, asegúrese de que la convención seguida sea (actividad/fragmento) _ (nombre).xml como
activity_oscilloscope.xml
, fragment_control_main.xml
. - Nombra las vistas y widgets definidos en los archivos de diseño como (tipo de vista/widget) _ (fragmento/nombre de actividad) _ (nº en el archivo) como
spinner_channel_select_la1
, button_activity_oscilloscope1
. - El nombre del archivo de actividad/fragmento correspondiente a los archivos de diseño debe denominarse (nombre de actividad/fragmento)(actividad/fragmento).java como
ChannelsParameterFragment.java
correspondiente al archivo de diseño fragment_channels_parameter.xml
. - Los widgets correspondientes a botones, cuadros de texto, casillas de verificación, etc. en archivos de actividad deben denominarse (tipo de vista/widget)(fragmento/nombre de actividad)(nro. en el archivo) como
spinnerChannelSelect1
correspondiente a spinner_channel_select1
.
Desarrolladores
mantenedores
El proyecto es mantenido por
- Padmal (@CloudyPadmal)
- Mario Behling (@mariobehling)
- Lorenz Gerber (@lorenzgerber)
- Wei Tat (@cweitat)
- Wai Gie (@woshikie)
Antiguos alumnos
- Neel Trivedi (@neel1998)
- Akarshan Gandotra (@akarshan96)
- Asitava Sarkar (@asitava1998)
- Vivek Singh Bhadauria (@viveksb007)
- Avjeet (@Avjeet)
- Abhinav (@abhinavraj23)
- Duro (@duro-2711)
- Yatri (@yatri1609)
Licencia
Este proyecto actualmente tiene la licencia Apache 2.0. Deberá estar presente una copia de la LICENCIA junto con el código fuente. Para obtener el software bajo una licencia diferente, comuníquese con FOSSASIA.