Construción Voilier según planos

Si te gustan los modelos Radio Control RC este es tu foro.
Responder
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Nadie nace sabiéndolo todo y así la mayoría tiene la necesidad de aprender para poder hacer cosas nuevas, algo que en nuestra afición es muy usual. Resulta que para poder experimentar con la placa Raspi con la que quiero en un segundo paso poder controlar al controlador del motor de paso tengo varias materias que estudiar y aprender:
Entornos.png
Está imagen muestra de forma sencilla la diferencia de lo que representa la placa "Raspi" con lo que algunos conocen por ejemplo de usar una placa Arduino o un controlador como los de las familias de PIC y Atmel. estos entornos todos consisten de una placa con un controlador y recursos físicos que se integran o en una placa o como lo conocemos de los Arduinos de una placa y diversas placas adicionales llamadas "shields"! Lo que tienen en común todas estas placas es que el programa que se graba en su memoria tiene un 100% de control sobre todos los recursos físicos disponibles. En una placa del tipo Raspberry y de otras similares los programas que ejecutamos en ellas son programas que usan un sistema operacional que toma las "sentencias" de la aplicación y las hace comunicar con partes del sistema operacional, corto os, y es el os que ofrece recursos de funciones que programas pueden accede y que son el método exclusivo que programas en tales entornos tienen para acceder los recursos "físicos" de la placa. Así un controlador del tipo PIC, Avnet o en las placas del los Arduinos se opera a una frecuencia de quizá 16 MHz, en cada "tic" del reloj el controlador puede ejecutar una sentencia a nivel de instrucciones a nivel del controlador físico, mientras que en una placa, tomemos el extremo de la placa RaspBerry Pi 2B, el controlador ejecuta a 900 Mhz y tiene 4 núcleos que pueden ejecutar sentencias en paralelo, como si tuviera 4 controladores independientes. para ponerlo en relación:

El controlador de un raspi 2B tiene un reloj con 60 veces la cantidad de tics por segundo que un PIC andando a 15 MHz y a la vez 4 núcleos lo que resulta, asumiendo que sea posible esto 4 veces en paralelo lo que resultaría en un factor de 240 de velocidad comparando los 2 tipos de placas.

Pero no se limita a ello. Un controlador del tipo Arduino o PIC o Avnet tiene quizá 256 MBytes de memoria Flash y quizá 64 kBytes de memoria RAM, el Raspi tiene muchísimo mas, por ejemplo 512 MBytes o 1 Gbyte de memoria RAM. Son esos recursos de memoria por ejemplo los que permiten usar un os en un Raspi pero si mucho un os de tiempo real, RTOS, como FreeRTOS en los PIC, Avnet o Arduino y similares.

Un os del tipo disponible en la placa Raspi requiere de estos extensos recursos y así lo que finalmente queda como velocidad de ejecución de programas no es 240 veces más rápido! De allí resulta la necesidad de aprender ciertas herramientas y donde este conocimiento es indispensable para realmente poder aprovechar las ventajas que ofrece una raspi. Vayamos por partes:

El os que se ejecuta en la Raspi y que representa el entorno dentro del cual uso la placa Raspi para mis experimentos es una versión del os "Linux" y la preferencial sería la versión "Raspbian" y donde en el nombre se oculta que es una variante del os Linux llamada "Debian", de allí el "...bian" en el nombre y "Rasp" como referencia a que esta versión de Debian se ejecuta y está implementada específicamente para ser usada en una placa Raspi!

Así me encontré con la necesidad de estudiar "Linux" para poder usar de forma educada y consciente las funciones de Raspbian en la Raspi! la plataforma "edX" en el Internet ofrece un excelente curso gratuito para estudiar el os Linux aquí! El curso es ejecutado por la "Fundación Linux" y el inventor del os Linux da una breve presentación. Yo ni cerca estoy de haber completado este curso, pero no mas que en las primeras lecturas se van adquiriendo conocimientos sobre la estructura de Linux en general y aplicable a "Raspbian" de la placa raspi que ayudan explorando el Raspbian en la placa Raspi permiten empezar a familiarizarse con este entorno de la placa Raspi!

El segundo bloque de conocimientos que se requiere o que es recomendable ir adquiriendo son conocimientos sobre el lenguaje de programación "Python"! También aquí encontré una fuente de información en forma de un curso llamado "Programming for Everybody (Getting started with Python). Un efecto muy útil que me resultó empezando con este curso fue que pude entender porqué el lenguaje de programación "Python" fue una buena decisión al crearse la primera placa Raspi y porqué Python podría ser de gran utilidad para mis objetivos relacionados al proyecto de mi sistema de control de escotas. Ven que siempre el nexo con mi proyecto de modelismo naval me da una referencia que hace de informaciones aparentemente muy teóricas algo que me fomenta reflexionar sobre las implicaciones en como perseguir mis objetivos de modelista naval!

La idea detrás de como pienso realizar mi proyecto del control de escotas basa en un "circuito de control" donde un motor de paso mueve la escota dando o quitando largo de escota disponible dependiendo de la posición de los controles del usuario en la emisora de su radio control, de la posición del palo de la vela y de la posición adecuada del motor de paso que hace girar el tambor de la escota.

Para ello mi sistema de control de escota necesita monitorear constantemente la posición del palo de la vela, posición angular entre el línea central del casco y la del palo de la vela y hacer girar el tambor de la escota a la posición adecuada limitando esto a la posición angular máxima definida por la posición de los controles del usuario en su emisora. Para ello la electrónica de mi sistema de control de escotas necesita analizar un constante flujo de información que abarca los datos suministrados constantemente por el sensor angular que informa sobre la posición actual del palo de la vela, dar los comandos requeridos al controlador del motor de paso para adaptar el largo de la escota a la posición actual del palo de la vela y monitorear el constante flujo de datos del sensor angular que supervisa el tambor de la escota.

Esto significa que una placa del tipo LPCXpresso 1769 cumplirá esta función y la placa Raspi representará esta placa LPCXpresso 1769 en los experimentos para verificar la calidad de los modelos de mi control de escotas que iré creando usando la lengua Modelica en el entorno de la software de la empresa Wolfram. La lengua Python es especialmente potente en analizar un flujo de datos y reconocer su estructura y asignarla a variables simbólicas que es lo que procesa la software Mathematica. Verán mas detalles sobre esto cuando llegue al punto donde los sistemas de evaluación que he adquirido para el control del motor de paso de la empresa Trinamic y de la empresa Austria Micro Systems, en breve AMS. estas herramientas me van a ayudar en un plazo de tiempo relativamente corto y cuyo largo se define de cuantos obstáculos tengo que eliminar estudiando las materias correspondientes y presentadas aquí en parte. Pero realmente y finalmente estoy empezando a avanzar haciendo experimentos con las placas como muestra la imagen de mi laboratorio electrónico.

Para cerrar esta contribución del hilo quiero mencionar que a razón de los experimentos físicos que estoy por empezar también tengo que ir avanzando en estudiar de como usar las IDEs correspondientes! Si toman como referencia mi tutorial avanzado sobre motores de paso publicado aquí y en el que "solo" demuestro en videos como seleccionando parámetros adecuados se logran velocidades que a mi se me hacían increíbles para un motor de paso. Pues bien, la IDE de Trinamic que utilicé entonces y que presente parcialmente en el tutorial sobre motores de paso ha sido reemplazada por una nueva versión muchísimo mas potente permitiendo no solo el influenciar nuevos parámetros de control del motor de paso que en parte son el resultado de los avances tecnológicos de la empresa Trinamic, sino que ademas permite crear extensos y detallados datos que se pueden visualizar en la IDE como gráficos. esto requiere no solo que entienda esos nuevos parámetros y técnicas usadas, sino también el digerir y reflexionar sobre el impacto que esto tiene para mi proyecto de modelación y mis experimentos. Pera adicionalmente a eso la hardware del sistema de evaluación de Trinamic ofrece nuevas posibilidades de análisis que quiero presentar en mi próxima contribución!
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

TMC2100-EVAL-KIT_1460-1143.jpg
Como pueden apreciar en la foto de arriba el nuevo sistema de evaluación de la empresa Trinamic consiste de 3 placas. A la izquierda está la placa del controlador, un ARM Cortex M4 de Freescale. esta placa pone todos los pines que participan en la comunicación con la placa derecha, la del controlador para motores de paso TMC2100 en un listón de conector hembra y la placa central une estas señales al conector hembra correspondiente de la placa con el TMC2100. Lo fantástico es ahora que todas las líneas involucradas en la comunicación entre el controlador TMC2100 para motores de paso y su controlador de servicio están descritas y disponibles en pines hembra. Conectando un analizador lógico a estos pines hembra permiten analizar y monitorear las señales entre un controlador y el TMC2100 partiendo desde el entorno "que funciona", este sistema de evaluación. Yo tengo 2 analizadores lógicos que permiten mostrar en la pantalla los niveles de estas señales grabadas durante un cierto tiempo:
Logikanalisator.jpg
Para quienes desean mas informaciones sobre el analizador lógico aquí doy el enlace a la página del analizador lógico Analog Discovery! Sigue el enlace a un video sobre esta herramienta en Youtube. Conectándose con algún estudiante registrado en una universidad es posible comprar la herramienta a precios académicos muy rebajados. Yo solo gasté 99.- USd hace unos años!

este video representa la empresa Digilent Inc que ofrece esta herramienta y que contiene muchísima información muy valiosa e interesante:

https://youtu.be/TgQVBfNdJ2o

Estos analizadores lógicos son capaces de decodificar los protocoles de comunicación como por ejemplo aquí el "SPI" y así traducir de las imágenes representando los niveles eléctricos a presentar los datos transferidos usando protocolos pero eliminando estos datos. Python por lo tanto tiene esa capacidad especial de ser muy potente en reconocer y decodificar datos provenientes de los datos disponibles en esos pines hembra de la placa central del sistema de evaluación del TMC2100 y asignarlos a variables que luego pueden ser analizadas usando las potentes capacidades matemáticas de la herramienta "Mathematica" y de permitir la comparación del flujo de datos creados en un experimento físico con aquellos datos creados por las simulaciones con modelos escritos en el lenguaje "Modelica"! Es mas, herramientas como aquellas de la empresa Wolfram son capaces de crear funciones matemáticas que resultan en curvas que se aproximan a los datos reales cuando no es posible encontrar una función matemática que genere datos equivalentes a aquellos creados en experimentos físicos! Para no pecar por fomentar mis preferencias personales quiero indicar que la empresa Mathworks tiene las herramientas Matlab y una multitud de librerías como "Simulink" que permiten algo equivalente, lo mismo es aplicable a los productos de la empresa Maple! Yo me decidí por las herramientas de la empresa Wolfram por tener estos finalmente precios módicos para versiones de no uso comercial y que pueden ser actualizadas por costos módicos y por tener el foco en la lengua "Modelica" para la modelación en su herramienta SystemModeler y que SystemModeler y Mathematica dan un entorno muy poderoso. La empresa mathwork finalmente también ofrece licencias para uso no comercial por solo quizá un 25% del costo de las herramientas de Wolfram pero exigen comprar las licencias otra vez completas para actualizar su entorno. Siendo esto un campo donde el Internet de las cosas, IoT, resulta en un avance explosivo de las tecnologías esto resulta en costos comparables, quizá hasta algo mas barato que las herramientas de Wolfram. Pero la lengua de modelación Modelica trabaja con algo que se llama objetos acausales y mathwork y su herramienta Simulink trabajan con modelos causales. No entro en detalles y ambas estrategias tienen sus ventajas y desventajas por lo cual ambos caminos tienen un futuro asegurado. Las herramientas de la empresa Maple ofrecen el apoyo de ambas estrategias, su software es la mas madura, pero sus precios son prohibitivos para el aficionado no comercial! Así desafortunadamente Maple no es opción viable y eso me facilitó la decisión por usar las herramientas de Wolfram!

Para completar esta contribución quiero presentar tambien el sistema de evaluación de la empresa AMS:
AS5x47D-Adapterboard_f380greyscale.jpg
Este sensor angular magnético, el AS5047D, representa lo mas avanzado que actualmente existe y brinda sobre un ángulo de 90° 512 posiciones angulares específicas, lo que equivale a 11 bits de resolución sobre 360° que son puestas de forma digital en la codificación de quadratura y que consiste de 3 señales PWM, A, B e Indice:
PWM A B I.jpg
Dependiendo el orden en que sube la señal de "A" o de "B" respectivamente la periferia por ejemplo en el controlador LPCXpresso 1769 puede actualizar por ejemplo el registro conteniendo la posición angular actual incrementando su valor o de ir reduciéndolo de acuerdo a la dirección de giro. esto se denomina reporte de posición incremental por ser aumentado o reducido el valor de la posición actual. El PWM del Índice "I" solo cambia de nivel una vez por giro de 360° o giro completo. Así la software que administra esa periferia sobe cuando el sensor esta analizando la posición incremental del sujeto monitoreado. Al monitorear la posición angular de un palo de una vela existe una posibilidad muy sencilla de inicializar este mecanismo encendiendo una LED de señalización en la cubierta del modelo del velero. Girando un anillo de posición hasta el momento donde la LED se enciende el usuario del modelo puede inicializar la electrónica de forma sencilla a las orillas de un lago. También esto representa aspectos a considerar cuando el objetivo de todo esto es un sistema en un modelo de un velero! cada vez que el palo de la vela pasa por la posición angular central, paralela al eje central del casco la PWM Indie "I" lo indica y la software puede calibrarse en caso de haber perdido datos de información durante el tiempo entre ahora y la última vez que el velero dejo pasar el palo de la vela por su posición central. Así posibles errores son eliminados cada vez que el palo pasa por la posición central. No solo en lo que al monitoreo de la posición angular se refiere, sino que también en la posición del tambor de escota que debe alcanzar el valor mínimo de largo de escota en el momento que el palo de la vela pasa por su posición central!

Adicionalmente este sensor ofrece en paralelo la posición angular absoluta con una resolución de 14 bits o 16 x 1024 posiciones absolutos por giro de 360° representando lo mas avanzado que existe actualmente en este campo! esto resulta en 8 posiciones absolutas entre cada posición angular incremental lo que permite resolver aspectos relacionados al control del largo de la escota.
Magnetischer Winkelsensor Prinzip.jpg
Este gráfico muestra de forma creo que muy clara como funciona el sensor magnético angular. Una placa como las 2 pequeñas que muestra la foto del sistema de evaluación del sensor angular la tengo montada debajo de la cubierta, solo separado por una plaquita de plástico que evita que humedad entre al casco o que el sensor angular se dañe.

Imagen

Como muestra el dibujo el palo está montado de forma fija a su eje de rotación y ese eje va hasta la superficie de la cubierta teniendo un magneto como lo muestra el gráfico anterior montado a el y casi que tocando la cubierta donde una abertura cubierta por un folio de plástico permite que el magneto este siempre en la misma posición en referencia al sensor magnético. En la foto del sistema de evaluación del sensor angular magnético pueden ver el dispositivo en el cual se pone el magneto y que estará montado al extremo inferior del eje que gira con el palo de la vela haciendo así girar el magneto por encima del sensor. Como siempre en asuntos físicos tengo planeado que mis experimentos permitan ver como realizo estos detalles para lograr un máximo de estabilidad. También esto genera un flujo de datos que en mis experimentos iniciales adaptaré usando las capabilidades de la lengua "Python" para este propósito!

Como pueden imaginarse tengo muchísimo tiempo por delante entre aprendiendo las herramientas, aprendiendo las ciencias de física, electrónica y de matemáticas involucradas en el proceso y en experimentar en mi laboratorio y mi taller mecánico. Si Dios permite esto no mas me va a tomar años llenos de actividades que a mi me fascinan! Como tomo provecho de los inmensos avances científicos y técnicos en exactamente los campos involucrados estoy tratando un objetivo en movimiento brindándome así la posibilidad de aplicar estos avances como lleguen a estar disponibles!
--------------------
Saludos Hellmut
Avatar de Usuario
gerardo navarro
VIP (Very Important Person)
VIP (Very Important Person)
Mensajes: 6509
Registrado: Sab Jun 06, 2009 2:11 pm
Ubicación: Edo. Tachira/Venezuela

Re: Construción Voilier según planos

Mensaje por gerardo navarro »

vaya huf, como sabes utilizar la tecnología amigo.....

:wink: :wink:
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Hola Gerardo, quizá por estas horas, si alguno de los "símpaticos" foristas que me atacaron de forma personal leyera esto podría entender el porqué yo no quería meterme n lo de hacer placas con soluciones para uso de modelistas navales, sino solo con el curso de la tarjeta experimental ayudar a iniciar el proceso de aprendizaje en cosas de usar electrónica en el modelismo naval! Como se puede leer en mis últimas contribuciones a este hilo sigo como aprendiz estudiando y experimentando para seguir mis objetivos con el modelo del velero Carina! Realmente en el Internet se ofrecen infinitas posibilidades de aprender y estudiar tan poco comunes como los míos en el modelismo naval! Hay foristas aquí que andan merodeando por allí repartiendo el chisme que me considero superior a los otros foristas y probablemente con la motivación de comunicar esto publicando las cosas que publico! Que valor de esos chismosos y cuenta-historias. Dicen mas de si mismos que de mi!
Todo lo que se requiere para seguir objetivos como los que yo tengo ou otros objetivos que modelistas navales tienen y demuestran a diario es lo que nos caracteriza a nosotros los modelistas navales. Pasión por lo que hacemos y perseverancia! Lo que no tengo es una habilidad que admiro en muchos modelistas: La pasión por dedicarse a perfeccionar las cosas y técnicas que practican y que así se vuelven expertos. Yo desafortunadamente, pero eso lo hago conscientemente voy saltando de una tecnología a otra, nunca alcanzando la maestría que esos expertos demuestran en hacer muchos de los modelos que comparten con nosotros en este foro y otros similares. Yo siempre ando reflexionando y a pesar de que mi salud me limita en esto tengo nuevas ideas que aplicándolas a los diversos aspectos del proyecto de mi velero me hacen emprender nuevas rutas así quedando siempre un aprendiz y novato en todo lo que hago. Pero eso es lo bueno cuando ya no se es activo en la vida profesional. Se tiene la libertad y el tiempo para vagar por las sendas que se van abriendo!
--------------------
Saludos Hellmut
Avatar de Usuario
luis0027
Participativo
Participativo
Mensajes: 413
Registrado: Sab Jul 21, 2007 3:25 pm
Ubicación: Navalcarnero. (MADRID)

Re: Construción Voilier según planos

Mensaje por luis0027 »

Sencillamente increíble, mis mejores deseos para un proyecto tan ambicioso.
Felicidades por tu buen hacer.

Recibe un cordial saludo.
luis0027.
:shock: :shock: :o :o :) :) :D :D
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Mil gracias Luis y lo mismo te deseo a tí y a los otros foristas del foro
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Paso a Paso de mi Proyecto con el RaspBerry
Hola amigos, después de lo que a mí se me hizo una eternidad aparentemente ahora puedo empezar a dedicarme a lo concreto y a compartir mis esfuerzos, vaivenes consistiendo en logros y fallas.

Este hilo se va a dedicar a reportar paso-a-paso mis trabajos dentro del ámbito de mi sistema de control de escotas y de lograr una de los objetivos relacionados, el simular y verificar el control de escotas escribiendo este en el lenguaje de modelación "Modelica" usando como herramientas los productos "Mathematica y SystemModeler" de Wolfram. El Raspi es un sistema que la software de Wolfram apoya y hasta ofrece de forma gratuita para el Raspberry Pi, B+ o 2B su software Mathematica y su entorno y lengua de programación "Wolfram Language".

Para lograr este objetivo y limitándome al contexto de este hilo a temas relacionados al Raspi. Para ello, por un lado, tenía que avanzar mis trabajos relacionados a mi taller y en especial a mi laboratorio electrónico, cosa que describo en otro hilo.
laboratorio electrónico.JPG
En esta foto tomada esta noche pueden ver la placa del RaspBerry Pi B+ montada en una placa de madera que iré poblando con otras placas en el transcurso de este hilo. También me compré la nueva RaspBerry Pi 2B por ser tan económica, pero empiezo con esta por si la llego a destruir durante mi aprendizaje! A la derecha ven el dispositivo que me armé con la protoboard y no mas para mostrar una placa que permite junto con un cable especial que también tengo los 40 pines del Raspi con el protoboard! Así puedo armar circuitos usando el protoboard y mantener la placa Raspi distante. estoy considerando comprarme un empaque transparente para la placa para así tenerla mas protegida.

La instalación del sistema operacional Raspbian no la voy a describir en detalle pues la única posibilidad haciendo esto es hacerlo menos bien de la multitud de tutoriales disponibles en el Internet en general y en Youtube específicamente. Pero la instalación inicial que pueden apreciar en la pantalla usa la microSD NOOB de 8 GBytes, instalación que resulta en extremo sencilla. Raspbian se puede activar en uno de 2 modos, cada cual teniendo sus ventajas.

Aquella mas adecuada para la programación y los experimentos, al menos inicialmente es aquella no gráfica. Muestro aquí de como se ve esa interfaz pero usando ese modo dentro del ordenador y ejecutando la versión correspondiente de Python 3. Por eso en esta pantalla/ventana aparece la versión 3.5.1 de mi ordenador.
Shell Prompt01.png
Con la instalación, partiendo de la microSD NOOB o descargando la imagen de NOOB del Internet, se instalan 2 versiones del lenguaje Python. Resulta que el lenguaje "Python" completamente compatible con el inmenso repertorio de software en el Internet es la vieja versión "2.x", siendo allí la versión actual instalada en la placa Raspi es la versión 2.7.3 y que ven en la vista "shell":
RaspiShell273s.JPG
La misma versión de Python 2.7.3 pero en el entorno de Windows 7:
Python273_shellraspis.jpg
La nueva y más moderna versión 3.x y es en la cual me concentro en el ordenador bajo Windows 7 es la versión 3.5.1. Aquí una vez en la versión command line y en la versión IDLE:
pantalla351shells.jpg
Para el Raspi hice la actualización antes de decidirme por hacer este hilo por lo que solo puedo mostrar la versión ya actualizada 3.2.3 y que actualicé usando la siguiente sentencia en el raspi:

sudo apt-get install update Python3

En mi sistema algo no funcionó y tengo que entenderlo para saber que hacer. Sigo teniendo la version 3.2.3 y no la 3.3.

Otra cosa que he investigado es la posibilidad de escribir los códigos de mis programas en el ordenador y de tener ese entorno IDE dentro del ordenador, pero ejecutar los programas en la Raspi. Relacionado a esto está el deseo de también poder hacer el "debuging" dentro del entorno del PC pero el programa siendo ejecutado en la Raspi.

Buscando en el Internet y analizando para este propósito me encontré con el proveedor "Wingware" y me descargue la versión "Personal 5.1.9-1 (rev27910). hay que proceder como si se quisiera instalar la versión personal comprando la licencia y no la versión "Trial"! La versión descargada pinchando "Trial" me resulto en un archivo "zip" conteniendo un folder con todo y escribiendo que se pudiera sacar del "zip" a cualquier lugar en el disco duro y que no se requeriría una instalación. Pues bien, eso no funciona en el entorno de mi ordenador por la software de protección. Pero al iniciar la instalación de la versión "Personal" descargando como archivo "*.exe" permite activar el programa por 10 días de forma gratuita e indica la posibilidad de prolongar 2 veces para un total de 30 días! Vale la pena probarlo, pues el entorno del ordenador es bastante mas poderosa que lo que brinda la Raspi! ya iré contando mis experiencias!
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Hola amigos, realmente creo que vale contar el estado actual! En general en mi proyecto de la construcción del modelo navegable de un velero siempre vuelve a confirmarse que un tema abre las puertas para ramificaciones!

En este caso finalmente mi entorno del taller y del laboratorio electrónico llego a un punto, lejos de haberlo completado, que puedo iniciar trabajos concretos. Así mis actividades en torno del uso de la placa Raspi, resultando que este entorno es apoyado por las herramientas de Wolfram Software que uso, ha vuelto a abrir un ramo de campos que tengo que investigar.

Como aficionado a la electrónica hacer parpadear un LED puro visto desde el aspecto de conectar a uno de los pines la LED y la resistencia es elemental. Gracias a las librerías disponibles para usar los pines del conector GPIO, que mi foco está en hacer ese ejercicio necesario para confirmar una base que funciona, combinándolo con el inicio de las actividades en torno al implementar un GUI!

También aquí vale mencionar que los materiales de información de como usar el "binding" llamado "tkinter", creo que la traducción apropiada del término inglés sería "conectar" objetos del GUI, llamados "widgets", como son Botones y elementos similares que en conjunto implementan el GUI, con las funciones o instancias de "objetos" del código escrito por ejemplo en el lenguaje "Python"!

Para aquellos de Ustedes no tan familiarizados con lo que son "widgets" y con la lengua de programación "Python, aquí una breve presentación:

"Widgets" son objetos como los "botones" que todos conocemos de las GUIs de Windows o Mac por ejemplo. Si con el ratón pinchamos uno de esos botones entonces el programa al que corresponden ejecuta una acción. Herramientas como "Tk", el cual está disponible en el entorno de desarrollo de Python, usa un programa que hace accesible la herramienta "Tk" al lenguaje de Python por medio de las funcionalidades de "Tkinter". Lo que se puede apreciar muy pronto, observando tutoriales en video disponibles en Youtube, Tkinter en combinación con "Tk" y Python conecta un elemento gráfico llamado widgets, aquí como ejemplo un "botón", con un módulo del programa escrito en Python. Así existen por ejemplo 3 parámetros que se pueden asociar a ese widget, "Button-1" = botón izquierdo del ratón, "Button-2" el botón céntrico del ratón y "Button-3", el botón derecho del ratón! Si ejecuto el botón izquierdo del ratón estando el cursor por encima de ese botón, entonces es ejecutado la función conectada a ese parámetro, "Botton-1".
Todo lo que normalmente exige una cantidad considerable de código como por ejemplo:
1.: Monitorear la posición del cursor en la pantalla y detectar que este se encuentra por encima del botón.
2.: Posicionar el botón en la pantalla aún si cambio las dimensiones físicas de la ventana.
3.: Detectar cuál botón del ratón se pincho, eso se denomina "evento".
4.: Habiendo detectado la acción del usuario de haber pinchado un cierto "widget" y por lo tanto haber sido confrontado con ese evento de haber pinchado uno de sus 3 botones el conectar este evento con cierta función de mi programa escrito en Python.
Todo esto ocurre de forma invisible para el programador con solo conector una función al evento correspondiente del "widget" que el usuario pincho!

Esto hace muy sencillo el sumar al código que usualmente hacemos como primer ejercicio, el parpadear de un LED un GUI!

Los problemas para mi en mi proyecto empiezan cuando pienso y considero la implementación de un GUI apropiado para los experimentos que tengo planeados! Yo quiero crear un GUI como los que conocemos de otras herramientas de software, donde es fácil usar y crear un panel instrumental. No mas hay que ver las funcionalidades en esto ofrecido por ejemplo de las herramientas de NI, "National Instruments"!

Lo primero que hice fue investigar las funcionalidades ofrecidas por Tk a través de Tkinter. Aquí existen 3 formas diferentes de implementar el diseño de un GUI. Pero realmente fuera de ofrecer métodos sencillos para definir la GUI se pueden usar los widgets posicionándolos usando un "grid". Grid es una estructura de tabla como lo conocemos por ejemplo de Excel. Los widgets disponibles de forma incluidas en tkinter según lo que mis investigaciones han dado al momento no incluyen un "instrumento" análogo a aquellos que se usan para indicar tensiones de forma análoga en un panel instrumental! Por otro lado widgets adicionales existen, pero identificar un paquete que incluya tales widgets no he sido capaz de encontrar. Adicionalmente se dificulta el asunto de una cantidad inmensa de paquetes para extender la funcionalidad puesta a disposición, pero que se subdivide en versiones que funcionan o solo con las versiones 2.x o de las 3.x de Python. Yo uso la versión 3.5.1
GUI.png
esta imagen, por bonita que parezca, no implementa widgets como la imagen de un instrumento análogo, sino solo como mostrar o datos digitales y imágenes creadas a base de datos que son mostrados en la pantalla como curvas para lo que se usa un widget llamado "Canvas"en Tkinter por ejemplo. Un instrumento análogo debería permitir definir entre que valores puede cambiar el dato y después poner la aguja de acuerdo al valor de los datos.

Claro, existen programas donde es posible crear datos basándose en gráficas vectoriales, pero debe haber alguna herramienta que ofrezca tal funcionalidad!

Para no limitar mi punto de vista en estas investigaciones conscientemente investigo que otras herramientas existen para crear el GUI que ejecutaré en la Raspi finalmente. "Qt" es un ejemplo. Pero también veo la posibilidad de crear el GUI usando herramientas disponibles en javascript. Aquí se gana el acceso a herramientas usadas para el diseño de páginas en el Internet. Pero es posible conectar widgets creados en tal entorno a Python y finalmente al nivel físico de mi placa Raspi? Será posible instalar y ejecutar todo esto en el entorno de la Raspi? Cual camino es el mas sensato a seguir? Aquí estoy abierto y a la espera de consejos de ustedes mis lectores del hilo!

También aquí entra a jugar la posibilidad de usar "Crossplatform" herramientas! Programar en el entorno de Windows 7 en mi ordenador y ejecutar y analizar el comportamiento en la placa Raspi! Como funciona todo esto si me decido por un camino en conjunto en el entorno ofrecido por la herramienta "Wing" de wingware que me acabé comprando una licencia personal no comercial por su apoyo de hacer "crossplatform" desarrollo del PC a la placa Raspi con Python!

Leyendo toda la información que publico ahora el asunto suena apto de crear problemas que no puedo solucionar! Claro, que una vez que mi placa Raspi se comunique con el ordenador por Wifi, que aprenda y logre implementar la funcionalidad de "crossplatform" de mi herramienta "Wing" implementaré aquella solución con foco en simple, que me permita controlar el parpadeo del LED por un GUI y actualmente no veo problema alguno en lograr esto con Python y Tkinter/tk. Pero lo que aquí pongo como prerequisito me exige a mi, por mi decisión de hacerlo en tal forma", entender como Samba o "sh" funcionan y permiten e implementan la comunicación entre mi Raspi y la herramienta Wing por la cual ya me he decidido!
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Tengo ya mas y mejores herramientas que pensado!
Investigando las posibilidades para poder hacer girar una imagen dando un ángulo específico como ocurriría si representa la parte de la brújula que giro, me parecía una opción interesante poder hacer girar una foro. Claro, hacerlo en el ordenador usando Photoshop por ejemplo la cosa es clara. Pero teniendo como objetivo el hacer girar tal imagen de forma integrada en el GUI ya es otra cosa.
Me encontré ayer con la posibilidad de copiar una imagen a una matriz y de realizar la multiplicación entre la matriz que contendría todos los pixel de la imagen y una matriz "4x4" con la cual se puede definir libremente el ángulo de giro de la imagen que resulta! Habiendo tenido noción de esa técnica esta noche en la cama me vino el punto a la mente que para la placa RaspBerry Pi B+ y 2B tambien existe integrado el lenguaje "Wolfram" usado en la software Mathematica. Teniendo no solo una licencia legal de Mathematica 10 en el PC, sino también en las placas Raspi fui al programa y me encontré que allí existen las sentencias requeridas:

1. Import ["file"]: Siendo file el "Path" al archivo en la memoria del disco del Raspi (tarjeta Flash o como tengo pensado hacer en un disco duro conectado por USB).

2. ImageDimensions: Que me da el tamaño de la imagen en pixels (2D)

3. ImageData: que me crea una matriz donde se graban los pixels individuales.

4. ImageTake: Que puede captar los datos provenientes de la cámara fotográfica del Raspi.

5. ImageRotate: Hace girar la foto alrededor del centro de la foto.

6. Ahora no encuentro el nombre de la sentencia, pero también existe una sentencia para hacer girar la foto alrededor de un punto cualquiera a definir.

7. Finalmente existe la posibilidad de manipular imágenes con todas las funciones imaginables e inimaginables usados por aquellos dedicados a trabajar en gráficas.

Se que había la forma de usar las funciones de Mathematica y el lenguaje Wolfram desde el lenguaje de programación Python!

Sigo reportando mis avances!
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Desafortunadamente estar vigilando que no aparezcan promociones de los productos de algún proveedor es algo importante para mantener la credibilidad de un foro! Ahora el porque de mi foco en las herramientas de este proveedor, cosa que creía ya haber aclarado. Existen mínimo 4 candidatos de herramientas del tipo que necesito. Son de los proveedores Maple, Mathworks, Dassault con su producto Dymola y Wolfram, fuera de las herramientas que ofrece la misma institución que fomenta y desarrolla el lenguaje "Modelica"! maple es muy bueno y apoya lo que he decidido va a ser y es mi estrategia, pero prohibitivamente caro para la herramienta Maplesim, pero ahora tambien ofrece una licencia para uso no comercial de maple, que sería la equivalencia con Mathematica. Mathworks finalmente con sus productos Matlab, Simulink y un muy alto número de módulos ofreció su producto no comercial cuando ya había invertido en la licencia de Mathematica. Pero el lenguaje "Modelica" modela usando objetos acausales, donde la dirección y así lo que es "Input" y "Output" es implementado a la hora de compilar y de forma invisible para el usuario. eso permite reusar los objetos que se van desarrollando. Un buen ejemplo para comparar objetos causales, donde la dirección es imperativa a la hora de diseñar un modelo es un motor eléctrico:

Si le aplico la tensión a un motor DC aparee en la salida un torque físico. Si ahora uso ese mismo motor como generador, entonces como "Input" hay un "toque" físico que genera una "tensión" a la salida. la implementación de ambos casos en un lenguaje de modelación causal resulta en 2 modelos totalmente diferentes. En objetos acausales como los ofrece Modelica el modelo del motor DC queda siendo el mismo en ambos casos. Existen vídeos por ejemplo en el sitio de Maple donde se da el ejemplo que menciono.

Pero volvamos al tema de mi proyecto del diseño de mi sistema de control de escotas para el modelo de mi velero:

Quiero aplicar la técnica de diseño por modelación para diseñar una implementación de mi sistema eficiente y que entonces entenderé en un alto grado. De allí las herramientas en forma de los 2 productos de software que menciono se vuelven tal una herramienta de electrónica como lo es un soldador.

Ahora una componente esencial en el diseño de modelos es la verificación de los modelos comparando los resultados de la simulación de un modelo con los datos que se ganan de experimentos físicos. Los aspectos se pueden expresar usando 2 términos. HiL y SiL, o "Hardware-in-the-Loop" y "Software-in-the-Loop". No los explico ahora si no recibo la pregunta! Pero es de allí que mis experimentos físicos con el motor de paso y el sensor magnético angular, actor y sensor, son controlados y monitoreados por placas con controladores. Ya he presentado varias veces el diagrama de bloques de mi sistema de control de escotas y para no aburrirlos mas de la cuenta no lo repito aquí.
Para poder usar las placas y las herramientas de Wolfram tengo que aprender e investigar un cierto número de temas:

SystemModeler se comunica con hardware externa usando el protocola firmata. Cuando hacía mis estudios de como meterme en esta materia SystemModeler y la placa Teensy 3.1, un ARM Cortex M4 de Freescale si no mal recuerdo era el entorno en el cual se podía estudiar como eso se efectúa allí para aprender como puedo lograr comunicarme con las placas LPCXpresso1769 de NXP que utilizo.

Mathematica y el lenguaje de programación Wolfram Language son disponibles de forma gratuita como parte de la instalación de la distribución de Linux llamada Raspbian, nombre que combina Raspi y Debian! De allí mi decisión de adquirir la placa RaspBerry Pi B+ y posteriormente también la placa RaspBerry Pi 2B.

A razón de esto resultó que tenía que adquirir conocimientos de Linux y de la placa Raspi. En Raspi la lengua de programación mejor apoyada es Python que existe en las versiones 2.X y 3.x. de allí me embarqué en sendos cursos MOOC disponibles de forma gratuita de universidades gringas.

Finalmente estudiando Python para el Raspi para mi resultó evidente que sería un ejercicio que me gusta hacer el generar una GUI usando tkinter. Así se cierra el círculo de lo que presenté en mi última contribución, donde resultó que en la versión 3 de Python los elementos usuales para hacer girar una imagen no están disponibles en todas sus variantes. Investigando este tema fue donde realicé que mi herramienta Mathematica efectivamente ofrece las funcionalidades de forma súper sofisticadas. Como las interacciones con la software Mathematica con mi hardware son uno de los objetivos, así usando Mathematica para girar imagenes de fotos al mismo tiempo me permite empezar a familiarizarme con el tema de las interacciones de mis placas con la software Mathematica.

Ojalá comparten mi posición que no estoy promocionando los productos de un proveedor. Ojalá he podido explicar el porqué estas herramientas obligadamente tienen que ser parte de mi reporte en este hilo y de porque todos estos temas informáticos si son una parte de los trabajos electrónicos y así parte del tema de este foro y de allí concluyo mi justificación de mencionar y tratar estos productos en el contexto de mi reporte en este hilo!
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Aquí las images tomadas de mi pantalla e utilizando Mathematica.

Primero importo la imagen con la sentencia:

data4 = Import["C:\\Users\\Hellmut Kohlsdorf\\Pictures\\foto Carina con Velas.jpg"]

El resultado en la foto:

Imagen

La próxima foto muestra esta girada por 10 grados:

Imagen

Existen además opciones para la sentencia del lenguaje "Wolfram Language" con el atributo "crop" se puede borrar el fondo por ejemplo dejando solo la imagen girada.

Así ya he podido verificar que el lenguaje disponible en la placa raspi con la software gratuita "Wolfram Language" tener la funcionalidad sin crear los "huecos"! Claro, tengo que poner el esfuerzo de aprender eso del "crop". Pero me he decidido por hacerlo en el entorno de la placa Raspi cuando haya echo los trabajos para poner mi entorno. Pero si por ejemplo en el caso de la brújula consideran que la parte del centro que gira es circular ya esos bordes no ocurren, al menos eso pienso que lo podré lograr.

Ya me empiezan a ocurrir usos de esto! Imagínense si monto una placa raspi con una pantalla en mi emisora de R/C, claro protegido de la intemperie, entonces podría ser posible ver la imagen de la brújula actualizada por los datos recibidos por ejemplo por WiFi desde el modelo mientras este navega!
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Me encontré con otro reto, cosa que tiene como efecto lateral, me mas aún me meto en lo de Linux y en ciertos detalles de la hardware!

Mi configuración de la hardware es la placa Raspberry Pi B+, una microSD de 8 GB y un disco duro de 1 TB conectado al Raspi por USB.

El problema resulta cuando quiero expandir la partición de datos, ahora en el disco duro. Se suma a ello que quiero hacer esto con la versión actual de Raspbian, la versión Jessi.

No tuve problemas al instalar en el pasado la versión Wheezy del Raspbian 100% en un microSd de 32 GB. Efectivamente el programa de configuración, raspi-config, ofrece esta funcionalidad expandiendo la partition de datos, por lo general la partición 2 para usar el total restante de la microSD.

Tampoco tuve problemas copiando la imagen de Raspbian Jessie al disco duro formateado con FAT32. Luego hay que copiar ciertos archivos a la boot partition de la microSD y modificar el texto en un archivo para registrar que el Raspbian encuentra el resto de los datos en el HDD conectado al USB. La rutina de inicialización del Raspi exige encontrar ciertos archivos en la boot partition de la microSD. Después recibe la información para seguir la inicialización del Raspbian con los datos que encuentra en un archivo que se tiene que copiar del HDD a la boot partición de la microSD. Como modifique la dirección todo funciona perfecto.

Mi Raspi con la versión del Raspbian Jessie es iniciado y aparece la nueva GUI, bastante mas sofisticada que la de la versión Wheezy! El problema ocurrió al querer expandir la partición de datos para incluir el resto del disco duro de 1 TB! Para hacer esto, lo que no funciona con la rutina que se utiliza para la microSD, en el Internet y en 2 libros que tengo se encuentra la forma de hacerlo. El problema es que tanto mis libros, como en el Internet no se encuentran tutoriales para expandir la partición de datos usando el Raspbian Jessie! Lo que me pasó, es que mi Raspi es inicializado y cuando debería aparecer la GUI en la pantalla, esta queda en negro y solo en la esquina superior izquierda de la pantalla aparece la imagen del cursor bölinqueando de forma irregular.

Mis investigaciones me llevaron a descubrir que existen 2 tipos de tablas de partición. La antigua "MBR" para la cual se utilizan ciertas sentencias y la mas moderna llamada "GUID". Ambas tablas son definidas por Microsoft y la GUID entre otras permite usar discos duros mas grandes. Las preguntas ante las cuales me encuentro son:

1. Como reconozco si la partición en un disco duro es MBR o GUID? Ya he encontrado que tambien en la versión GUID existe una tabla MBR especial que tiene como objetivo permitir entornos viejos adaptarse al uso de la tabla GUID. También he encontrado informaciones de como poder identificar la tabla conectando el disco pre-formateado al ordenador con Windows.

2. Si una MBR o una GUID es usada, esto lo determina el sistema operacional o esta definido por el formateado del disco duro?

3. El listado de como expandir la partición de datos en el disco duro o flash stick es adecuado cambiando las sentencias como por ejemplo "fdisk" or "gdisk" y de la misma forma las otras?

4. Alguien ya tiene experiencia en este campo?

Un cordial saludo
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Sigo reportando de mis investigaciones. Desafortunadamente mi salud los últimos días a impactado tanto mi habilidad de investigar y estudiar como el experimentar las cosas que voy descubriendo. Como siempre una situación como esta resulta en mi deseo de estudiar mas a fondo nuevos campos de conocimientos. Así ahora voy por aquí:

1. El desarrollo de las tablas de particiones por un lado resulta por la limitación que resulta de solo tener 32 bits para poner la dirección de un bloque en el medio de almacenamiento que da la bien sabida limitación de 2 TB para el tamaño del medio de almacenamiento de datos, sea una SD o microSD, sea un stick de memoria USB o sea un disco duro.

Las tablas de partición según el concepto MBR, "Master Boot Record", es el sistema que data desde los tiempos del DOS.
Las tablas de particiones GPT, "GUID Partition Tables", "Global Unique Identifier" fue adoptado primero por Apple en sus productos en 2005 y el PC dio ese paso en otoño del 2012 con Windows 8. Sin embargo también hay PCs mas antiguos que eran GPT compatibles. Para capacitar la compatibilidad con sistemas que se esperan una tabla de particiones MBR la tabla GPT empieza conteniendo los datos de partición de acuerdo al sistema MBR. Junto con ese cambio tambien se hizo la migración de los BIOS tradicionales al sistema nuevo llamado EFI. Así las tablas de particiones GPT pueden ser utilizada en sistemas con un BIOS tradicional. EFI esta para "Extensible Firmware Interface" y UEFI para "Unified Extensible Firmware Interface".

Esto según lo entiendo es de importancia, a pesar que el objetivo es usar Raspbian Jessie en la placa Raspi, porque para inicializar las memorias del Raspi se necesita otro ordenador, preferiblemente Windows. Mi ordenador ya es bastante viejo, tiene un BIOS del 2009, pero aparentemente es capaz de reconocer y usar discos duros con tabla de particiones GPT.

Otro aspecto que he estado aprendiendo se refiere al formato de formación del disco duro. El formato nativo de Linux aparentemente se llama ext4, pero requiere de un sector con formato FAT32. Si se forma la partición del disco duro y se desea que se pueda tener acceso a ella desde Windows lo normal es formatear esa partición 2, la partición de datos también usando FAT32.

El formato "ext4" de Linux, similar a las propiedades del formato NTFS, permite grabar datos adicionales que capacitan al sistema operacional una mayor seguridad del medio, fuera de lo de los límites de tamaño. He encontrado referencia que es posible capacitar Linux y Raspbian en especial aquí, para también poder utilizar particiones formateadas con NTFS.

Estas informaciones y mi estudio a largo trecho de ser completado de forma inicial de mis libros sobre Linux y el Raspi me están haciendo reflexionar sobre como sería la configuración de particiones y de su formato mas sofisticada y en consecuencia útil para mí. Recuerden que mi disco duro tiene 1 TB de capacidad y que el tamaño de la partición de boot en ese disco duro es de unos 100 a 200 MB.

No sería sensato formatear la partición de datos en ese disco usando "ext4" como formato nativo de Linux, tener una partición formateada en "NTFS" para poder intercambiar datos con el PC bajo Windows?

Otro idea que se está cristalizando en mi mente es la de hacer la instalación del Raspbian Jessie para la Raspi con varios pasos intermedios, pudiendo así verificar que he comprendido y puedo aplicar los conocimientos sobre Linux? La idea sería empezar instalando el Raspbian Jessie exclusivamente en mi microSD de 32 GB. Luego desde el entorno del Raspbian en la placa Raspi crear las particiones y formatear estas de acuerdo a las ideas que presenté arriba usando por ejemplo Firefox o Chromium como web browser para bajar del Internet las herramientas requeridas. Me parece que el entorno de Raspbian me permitiría usar las reconocidas capacidades de las herramientas disponibles allí.

Lo que tendría que analizar adicionalmente es el impacto que esto tendría en usar la IDE de WingWare, Wing, para programar y hacer los "debug" desde el entorno del PC.
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Me encuentro en el proceso de aprender como logro el objetivo que me he puesto y que presento ahora aquí:

Quiero desarrollar los programas para el Raspi en el PC y de ejecutar y "debug", búsqueda de errores y su corrección , usando una IDE en el ordenador. 2 IDEs se encuentran actualmente en el PC mio y los estoy estudiando:

1. Wing de Wingware
2. PyCharm de Jetbrains

Empecé usando Wing no mas familiarizándome con al herramienta y ahora lo interrumpí para estudiar PyCharm con la versión profesional en tiempo de 30 días disponible. La razón para esto es por un lado que para realmente entender el de como ejecutar programas escritos en Python 3 en un editor, parte de la IDE en el ordenador, dejando la ejecución del programa Python ser hecho por el interpretador Python en la Raspi. PyCharm hace esto realmente ejecutando el programa no en el PC, sino realmente con el interpretador de la Raspi en la Raspi. Para ello, al iniciar un proyecto se define que el interpretador a usar es el que se escoge libremente, sea en el PC, máquina local, o remoto. Allí se define en mi caso que quiero usar el interpretador en la Raspi. Para ello es necesario establecer el enlace entre la IDE PyCharm en el PC con el interpretador en la Raspi. El medio a usar es "ssh" y "SCP". Me varé estos últimos 2 días por falta de conocimiento tanto de "ssh", como del uso de "llaves" privada y pública.

Así por un lado me puse a estudiar la literatura que tengo tanto sobre Raspi Raspbian y sobre Linux. Durante estas investigaciones aprendí que una vez que la Raspi sea accesible desde el Internet hay que dedicar esfuerzo para evitar abrir puertas a ataques desde el exterior y que pudieran utilizar esto para acceder nuestra red en la casa y sus PCs!

Pues bien, actualmente he aprendido como, de forma relativamente sencilla se generan las llaves privadas y públicas en el Raspi bajo el os Raspbian. Por otro lado acabo de descubrir para mi el como crear las llaves en el PC y de ponerlas en un lugar definido por mi.

El paso que tomaré después de lograr que la IDE PyCharm en el PC pueda ser configurada a usar el interpretador Python 3.4 del Raspi, dedicaré mis estudios a entender como hacer que la comunicación tengan lugar dentro de un "túnel" "VNC", Virtual Network Computing", conexión virtual de redes. Me explico. existe en el Internet la posibilidad de conectar 2 o más PCs y/o redes de PCs como si estos estuvieran físicamente en el mismo cuarto, creando un túnel VNC entre las redes o PCs y que las comunicaciones tengan lugar atravesando ese túnel estando así protegidas de ataques.

Sigo ahora primero estudiando como se reparten las llaves, privada y pública entre la Raspi y mi PC con Windows 7 Ultimate. Luego ya entendiendo esto seguiré con mis intentos de relacionar la IDE de PyCharm al interpretador del raspi! Aquellos de Ustedes que ya saben de esto, perdonen por presentar lo obvio. Pero es que yo no sé eso y me puedo imaginar que alguno de mis lectores de este hilo son tan sabios como yo!

Una vez que haya entendido esto lo presentaré aquí con fotos. Pero es que hay gran trecho entre "lograr" un objetivo como el aquí presentado y el "entenderlo tan bien" que yo pueda presentarlo aquí!
--------------------
Saludos Hellmut
Avatar de Usuario
Hellmut1956
Miembro Leal
Miembro Leal
Mensajes: 1310
Registrado: Sab Nov 29, 2008 2:06 pm
Ubicación: Mammendorf, Alemania

Re: Construción Voilier según planos

Mensaje por Hellmut1956 »

Vuelto a tener que enfrentarme a problemas o asuntos aún no entendidos! Resulta que de pronto mi WiFi del Raspi dejo de funcionar. Como si fuera poco en los trabajos relacionados a los objetivos mencionados en mi contribución anterior me encontré que mi Raspi seguía usando la microSD como base del Raspbian y no como había pensado el disco duro USB! Así entre estudiar e investigar los asuntos de pronto mi Raspi dejo de reconocer el disco duro USB, a pesar que estaba utilizando una microSD que generé completamente nueva y usando el Raspbian Jessie! No fue de sorprenderse que al intentar arrancar mi Raspi usando la microSD conteniendo bajo "/" el contenido del directorio de "boot" del disco duro USB al que pasé la imagen del Raspbian Jessie y habiendo cambiado la referencia de "root=..." a "root=/dev/sda2" en el archivo "cmdline.txt"!

Bueno, me sentía en un estado de salud aceptable y me metí de forma metódica a estudiar el asunto entre la lectura de mis libros sobre "Linux", "RaspBerry PI", "Computer-Networks" y "Referencia de comandos de Linux". Adicionalmente investigaba en el Internet!

Resulta que parte del reto consiste en saber como o que preguntar en "google"! Para eso hay que avanzar tanto en la materia como en la terminología!

Pues bien, finalmente pude averiguar que en Linux existe la posibilidad motivada para economizar el consumo de energía, que Linux desactive el Wifi! Eso no me paso con Raspbian Wheezy pero si con el Raspbian Jessie! Lo malo es que a la larga es para mi casi imposible determinar si el responsable soy yo y lo que hice con el Raspi y Linux o si se debe a funcionalidades del Raspbian Jessie! Así me puse a investigar en el Internet sobre este asunto haciendo la pregunta: "How to manually activate Wifi". Me encontré con un sitio que me permitía investigar si el módulo de Wifi había sido reconocido, si los drivers requeridos estaban cargados y una cantidad de información interesante sobre como analizar este tipo de cosas, en que archivos mirar y encontré instrucciones de como reactivar mi Wifi! Desafortunadamente allí mi salud, mi mente se despidió forzándome a descansar e interrumpir estas labores! Mañana seguiré y les promete dar informaciones mas detalladas tanto de las fuentes de información, los archivos y blocks y si y como resolví primero mi problema con el Wifi, luego también lo de porqué de pronto el disco duro no aparece en el listado de la sentencia de Linux: "lsblk".
Si ya puedo compartir otro error, como de costumbre estúpido por mi parte de porqué el Raspi y su Raspbian no funcionaban. reporte incompleto por ser acción en vivo!
Me deje influenciar de las posibilidades de la herramienta "Mini Tools Partition Wizard"! Así me descuidé de hacerme consciente que el Win32DiskImager encargado de grabar la imagen del Raspbian en el disco duro USB no copia de forma normal el archivo del raspbian al disco o microSD, sinó que copia bloque por bloque el contenido del archivo Raspbian.img a los bloques correspondientes del microSD o disco Duro USB! Claro que entonces mi placa Raspi al iniciarse ejecutando las instrucciones del archivo "cmdline.txt" y los otros archivos del directorio "boot" no era capaz de montar el árbol de archivos del SDA2 y por lo tanto se colgaba! Cuando finalmente reconocí ese mi error, es cuando me encontré que de pronto la sentencia "lsblk" ya no veía el disco duro sda y por lo tanto se varaba!
Ojalá no los aburran esta descripción! Pero egoístamente confieso que leyendo contribuciones mías en algunos temas hace ya muchos años gozo recordando esos vaivenes, por lo que sigo documentándolos también para mi!
--------------------
Saludos Hellmut
Responder