{"id":3116,"date":"2012-03-24T07:58:27","date_gmt":"2012-03-24T12:28:27","guid":{"rendered":"http:\/\/blog-j.marcano.net.ve\/?p=3116"},"modified":"2017-05-01T11:04:13","modified_gmt":"2017-05-01T15:04:13","slug":"ejemplito-de-comunicacion-serial-en-el-pc-con-qtcreator","status":"publish","type":"post","link":"https:\/\/blog-j.marcano.net.ve\/index.php\/2012\/03\/24\/ejemplito-de-comunicacion-serial-en-el-pc-con-qtcreator\/","title":{"rendered":"Ejemplito de Comunicaci\u00f3n Serial en el PC con qtcreator"},"content":{"rendered":"<p>Ya probaste <a href=\"http:\/\/blog-j.marcano.net.ve\/index.php\/2010\/12\/26\/qt-creator\/\">Qtcreator?<\/a><\/p>\n<p>Para implementar una&nbsp;interfaz&nbsp;de usuario en alguna&nbsp;aplicaci\u00f3n&nbsp;con microcontroladores: un amplificador de <a title=\"que es el fua?\" href=\"http:\/\/www.youtube.com\/watch?v=SWOz-kIwDuU\" target=\"_blank\" rel=\"noopener noreferrer\">fu\u00e1<\/a>, un escualid\u00f3metro, una m\u00e1quina de votaci\u00f3n, un repelente de esp\u00edritus malignos USB, o lo que sea, a veces&nbsp;podr\u00eda&nbsp;no ser conveniente el uso de lenguajes de programaci\u00f3n pagos como labview o matlab (entretenidos como jugar con legos),y no precisamente por el hecho de ser pagos (yo me los bajo de<em> the pirate bay<\/em>). Estos lenguajes son excelentes, facilitan mucho las cosas, se prestan mucho para aprender y realizar pruebas en cortos periodos de tiempo pero definitivamente son fastidiosos de instalar, ineficientes (requieren un maquin\u00f3n) y requieren mucho espacio libre en tu disco duro.<br \/>\nAhora, suponiendo que nuestra aplicaci\u00f3n&nbsp;requiere&nbsp;portabilidad&nbsp;(funcionamiento con varios sistemas operativos),&nbsp;requiere&nbsp;el uso e instalaci\u00f3n r\u00e1pida y sencilla en varias PC, en otras palabras, una aplicaci\u00f3n m\u00e1s de tipo comercial con interfaz gr\u00e1fica de usuario&nbsp; lo m\u00e1s conveniente es el uso otros de lenguajes de programaci\u00f3n, hay muchas opciones disponibles, pero <strong>en este post nos enfocaremos en el C++ utilizando el IDE qtcreator<\/strong>. Hay&nbsp;much\u00edsimas&nbsp;opciones de lenguajes y de IDEs y la intenci\u00f3n de este post es brindar una idea para comenzar&nbsp; comunicarnos con el puerto serial.<\/p>\n<p><strong>&nbsp;<\/strong>En este caso&nbsp;&nbsp;nos interesa una GUI sencilla para comunicarnos, si no se posee experiencia en C++ sugiero leer:<\/p>\n<p style=\"text-align: center;\"><a href=\"http:\/\/mat21.etsii.upm.es\/ayudainf\/aprendainf\/Cpp\/manualcpp.pdf\">http:\/\/mat21.etsii.upm.es\/ayudainf\/aprendainf\/Cpp\/manualcpp.pdf<\/a><\/p>\n<p><script type=\"text\/javascript\">\/\/ <![CDATA[ google_ad_client = \"ca-pub-1885873472356662\"; \/* HOZONTAL TEXTO MEDIO BANNER *\/ google_ad_slot = \"3808866873\"; google_ad_width = 234; google_ad_height = 60; \/\/ ]]&gt; \/\/ ]]&gt; \/\/ ]]><\/script><\/p>\n<p><strong>HERRAMIENTAS B\u00c1SICAS<\/strong><\/p>\n<p>El protocolo lo de comunicaciones lo elegimos nosotros, puede ser algo simple inventado por usted, algo m\u00e1s estandarizado como modbus, o lo que sea. Obviamente deber\u00e1 programarse tanto en el microcontrolador, como el PC. Para realizar las pruebas se utilizan las siguientes herramientas:<\/p>\n<p><strong>&#8211; Un puerto serial virtual<\/strong>: Es un software que genera puertos seriales emulados en el PC,&nbsp; lo que permite realizar comunicaciones entre ellos sin que existan f\u00edsicamente. Esto&nbsp;permite&nbsp;que probemos nuestro software y la comunicaci\u00f3n, ya sea entre nuestro programa ejecutable y el microcontrolador, entre &nbsp;un microcontrolador simulado con proteus &nbsp;y una hyperterminal o entre una hyperterminal y el ejecutable, esto es muy&nbsp;\u00fatil&nbsp;para depurar y hallar las fallas de comunicaci\u00f3n sin tener que conectar todo f\u00edsicamente.<\/p>\n<p style=\"text-align: left;\">Este es el que uso y es muy bueno:<a href=\"http:\/\/www.eltima.com\/products\/vspdxp\/\"> http:\/\/www.eltima.com\/products\/vspdxp\/&nbsp; <\/a>, claro que hay otras opciones.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" src=\"https:\/\/www.dropbox.com\/s\/pfse6wif2zk65hy\/virtualserial.jpg?dl=1\" alt=\"\" width=\"475\" height=\"310\"><\/p>\n<p style=\"text-align: left;\"><strong>&#8211; Una terminal de comunicaci\u00f3n:<\/strong> Para ver que se recibe y que se env\u00eda a trav\u00e9s de los puertos seriales virtuales, &nbsp;se puede utilizar la hyperterminal del&nbsp;proteus o la del windows pero nada como la <a href=\"httphttp:\/\/blog-j.marcano.net.ve\/index.php\/2011\/11\/27\/realterm-captura-serial\/\">realterm<\/a>.<\/p>\n<p><strong>&#8211; El IDE qt Creator y el IDE de su micro.<\/strong><\/p>\n<p><strong>&#8211; Una&nbsp;librer\u00eda&nbsp;de C o &nbsp;C++ para&nbsp;comunicaciones&nbsp; por puerto serial en el PC<\/strong>. Existen muchas realmente pero me ha gustado la librer\u00eda C de&nbsp;<a href=\"http:\/\/www.teuniz.net\/RS-232\/\">http:\/\/www.teuniz.net\/RS-232\/<\/a>&nbsp;y es la que he utilizado. &nbsp;Por su extrema sencillez y por qu\u00e9 es compatible con linux y windows. Sin embargo se recuerda que existen otras opciones, ya queda de cada quien.<\/p>\n<p>En fin, dejo un programa sencillito basado en las librerias Qt, el IDE Qt creator y la libreria de Teuniz. El programa de demostraci\u00f3n &nbsp;permite enviar una cadena de 3 bytes a trav\u00e9s del puerto serial (bot\u00f3n escribir), la data a enviar moviendo las perillas. <em>Nota: la data esta en HEX, no en Asscii y por defecto los el puerto trabaja a 9600 baudios.<\/em> El bot\u00f3n \u00abLeer\u00bb permite leer igualmente una cadena de 3 bytes enviados al puerto del PC.<\/p>\n<p style=\"text-align: left;\">Para realizar las pruebas basta seleccionar el puerto de comunicaciones en el programita y habilitarlo, si el puerto no existe mi programa te da un mensaje de error.<\/p>\n<p style=\"text-align: center;\"><img loading=\"lazy\" class=\"aligncenter\" src=\"https:\/\/www.dropbox.com\/s\/7pyhgf848ho84y7\/pruebita.jpg?dl=1\" alt=\"\" width=\"226\" height=\"299\"><\/p>\n<p style=\"text-align: center;\">&nbsp;<a href=\"https:\/\/www.dropbox.com\/s\/57kcfyhgje2p94f\/pruebita%201.0.rar?dl=1\">DESCARGAR PRUEBITA 1.0<\/a><\/p>\n<p><script type=\"text\/javascript\">\/\/ <![CDATA[ google_ad_client = \"ca-pub-1885873472356662\"; \/* HOZONTAL TEXTO MEDIO BANNER *\/ google_ad_slot = \"3808866873\"; google_ad_width = 234; google_ad_height = 60; \/\/ ]]&gt; \/\/ ]]&gt; \/\/ ]]><\/script><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/www.dropbox.com\/s\/01eu77axyqk7opf\/Source.rar?dl=1\">Descargar c\u00f3digo<\/a> (se recomienda abrir con el qtcreator)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ya probaste Qtcreator? Para implementar una&nbsp;interfaz&nbsp;de usuario en alguna&nbsp;aplicaci\u00f3n&nbsp;con microcontroladores: un amplificador de fu\u00e1, un escualid\u00f3metro, una m\u00e1quina de votaci\u00f3n, un repelente de esp\u00edritus malignos USB, o lo que sea, a veces&nbsp;podr\u00eda&nbsp;no ser conveniente el uso de lenguajes de programaci\u00f3n pagos como labview o matlab (entretenidos como jugar con legos),y no precisamente por el hecho [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/posts\/3116"}],"collection":[{"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/comments?post=3116"}],"version-history":[{"count":45,"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/posts\/3116\/revisions"}],"predecessor-version":[{"id":3195,"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/posts\/3116\/revisions\/3195"}],"wp:attachment":[{"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/media?parent=3116"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/categories?post=3116"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog-j.marcano.net.ve\/index.php\/wp-json\/wp\/v2\/tags?post=3116"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}