{"id":1231,"date":"2018-04-13T21:51:56","date_gmt":"2018-04-14T02:51:56","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=1231"},"modified":"2018-09-10T10:29:06","modified_gmt":"2018-09-10T15:29:06","slug":"morse-deco-rx-mensajepython","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/edelros\/morse-deco-rx-mensajepython\/","title":{"rendered":"Morse Deco \u2013 RX mensaje\/Python"},"content":{"rendered":"<p>Se a\u00f1ade la traducci\u00f3n a texto, letra a letra del alfabeto.<\/p>\n<p>Como referencia se usa la funci\u00f3n\u00a0morsedeco(codigo) descrita en <a title=\"Morse Decodificador\" href=\"http:\/\/blog.espol.edu.ec\/estg1003\/morse-decodificador\/\">Morse Decodificador<\/a>, desarrollada en otro curso.<\/p>\n<p>Se a\u00f1ade al ejercicio realizado en <a title=\"Morse Deco \u2013 RX mensaje morse\/Python\" href=\"http:\/\/blog.espol.edu.ec\/edelros\/2018\/04\/13\/morse-deco-rx-mensaje-morsepython\/\">Morse Deco \u2013 RX mensaje morse\/Python<\/a><\/p>\n<pre>0 31\r\n --- ...  ... --- .\r\nSOS SO\r\n1015 15\r\n --- ...  ... --- ..\r\nSOS SO\r\n1 31\r\n --- ...  ... --- ..\r\nSOS SO\r\n1017 15\r\n --- ...  ... --- ...\r\nSOS SO\r\n0 128\r\n --- ...  ... --- ...  \r\nSOS SOS \r\n<\/pre>\n<p><em><strong>Tarea<\/strong><\/em>: usar en el transmisor un mensaje diferente, escrito por teclado, revisar para arduino el uso del puerto <a title=\"Serial - Envia y Recibe texto\" href=\"http:\/\/blog.espol.edu.ec\/edelros\/2018\/04\/12\/serial-envia-y-recibe-texto\/\">Serial - Envia y Recibe texto<\/a>.<\/p>\n<p>Con el uso del teclado para el mensaje, observar cuando se inicia la tx y recepci\u00f3n para codificar en Tx y decodificar en Rx.<\/p>\n<pre># Deco se\u00f1al a morse, luego a texto\r\n# generados desde arduino\r\n# Continuaci\u00f3n de: TxRx Inalambrico 433Mhz ASK\/OOK\r\n# http:\/\/blog.espol.edu.ec\/edelros\/2018\/04\/11\/txrx-inalambrico-433mhz-askook\/\r\n\r\nimport numpy as np\r\nimport matplotlib.pyplot as plt\r\nimport serial, time\r\ndef morsedeco(codigo): \r\n    equivale={ \r\n        '.-':'A', '-...':'B', '-.-.':'C', \r\n        '----':'CH', '-..':'D', '.':'E', \r\n        '..-.':'F', '--.':'G', '....':'H', \r\n        '..':'I', '.---':'J', '-.-':'K',\r\n        '.-..':'L', '--':'M', '-.':'N', \r\n        '--.--':'\u00d1', '---':'O', '.--.':'P', \r\n        '--.-':'Q', '.-.':'R', '...':'S', \r\n        '-':'T', '..-':'U', '...-':'V',\r\n        '.--':'W', '-..-':'X', '-.--':'Y', \r\n        '--..':'Z',\r\n        '-----':'0', '.----':'1', '..---':'2', \r\n        '...--':'3', '....-':'4', '.....':'5', \r\n        '-....':'6', '--...':'7', '---..':'8', \r\n        '----.':'9', \r\n        '.-.-.-':'.', '-.-.--':',', '..--..':'?', \r\n        '.-..-.':'\"', '--..--':'!', '   ':' ', \r\n        ' ':' '}\r\n    caracter=equivale[codigo]\r\n    return(caracter)\r\n\r\n# INGRESO\r\npuerto = 'com5'\r\nbaudios = 9600\r\ntolera = 100    # rango PIN anal\u00f3gico\r\nancho = 15      # del mensaje\r\n\r\n# PROCEDIMIENTO\r\narduino = serial.Serial(puerto, baudios)\r\narduino.setDTR(False)\r\ntime.sleep(0.3)\r\n\r\n# limpia buffer de datos anteriores\r\narduino.flushInput()  \r\narduino.setDTR()  \r\ntime.sleep(0.3)\r\nprint('\\nEstado del puerto: ',arduino.isOpen())\r\nprint('Nombre del dispositivo conectado: ', arduino.name)\r\nprint('Dump de la configuraci\u00f3n:\\n ',arduino)\r\nprint('\\n###############################################\\n')\r\n\r\n\r\n# Lectura de datos\r\nantes = 0\r\ncuenta = 0\r\nsimbolo = ''\r\nmorse_msg = ''\r\nmorse_letra = ''\r\nmensaje = ''\r\n\r\nwhile True:\r\n    # espera hasta recibir un dato\r\n    while (arduino.inWaiting()==0):\r\n        pass\r\n    \r\n    # lee binario del puerto serial\r\n    lectura = arduino.readline()\r\n    # binario a texto, elimina \/r\/n\r\n    texto = lectura.decode().strip()\r\n    valor = int(texto)\r\n    \r\n    # Busca duraci\u00f3n de s\u00edmbolo\r\n    # valor repetido\r\n    diferencia = np.abs(valor-antes)\r\n    if (diferencia &lt; tolera):\r\n        cuenta = cuenta + 1\r\n    \r\n    else:\r\n        print(antes,cuenta)\r\n        # Revisa espacios\r\n        if (antes&lt;(0+tolera)):\r\n            # Cambio de simbolo\r\n            if (cuenta&lt;(2*ancho+4)):\r\n                simbolo = ''\r\n            else:\r\n                # letra completa\r\n                letra = morsedeco(morse_letra)\r\n                mensaje = mensaje + letra\r\n                morse_letra = ''\r\n                if (cuenta&lt;(4*ancho+5)):\r\n                    simbolo = ' '\r\n                else:\r\n                    # cambio de palabra\r\n                    simbolo = '  '\r\n                    mensaje = mensaje + ' '\r\n        \r\n        # Revisa punto o raya        \r\n        else:\r\n            if (cuenta40:\r\n            morse_msg = ''\r\n            mensaje = ''\r\n            \r\n    antes = valor\r\n    \r\n# Cerrar el puerto serial.\r\nserial.Serial.close\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Se a\u00f1ade la traducci\u00f3n a texto, letra a letra del alfabeto. Como referencia se usa la funci\u00f3n\u00a0morsedeco(codigo) descrita en Morse Decodificador, desarrollada en otro curso. Se a\u00f1ade al ejercicio realizado en Morse Deco \u2013 RX mensaje morse\/Python 0 31 --- ... ... --- . SOS SO 1015 15 --- ... ... --- .. SOS SO &hellip; <a href=\"https:\/\/blog.espol.edu.ec\/edelros\/morse-deco-rx-mensajepython\/\" class=\"more-link\">Sigue leyendo <span class=\"screen-reader-text\">Morse Deco \u2013 RX mensaje\/Python<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1293406,20777],"tags":[],"class_list":["post-1231","post","type-post","status-publish","format-standard","hentry","category-morse","category-python"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1231","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/comments?post=1231"}],"version-history":[{"count":3,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1231\/revisions"}],"predecessor-version":[{"id":1234,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1231\/revisions\/1234"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/media?parent=1231"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/categories?post=1231"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/tags?post=1231"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}