Kdevelop https://planet.communia.org/en en Qtcreator o Kdevelop en lugar de IDE Arduino https://planet.communia.org/en/content/qtcreator-o-kdevelop-en-lugar-de-ide-arduino <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--title--blog--rss.html.twig * field--node--title--blog.html.twig x field--node--title.html.twig * field--node--blog.html.twig * field--title.html.twig * field--string.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <span>Qtcreator o Kdevelop en lugar de IDE Arduino</span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--title.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-image--blog--rss.html.twig * field--node--field-image--blog.html.twig * field--node--field-image.html.twig * field--node--blog.html.twig * field--field-image.html.twig * field--image.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="image field field--node-field-image field--name-field-image field--type-image field--label-hidden field__items"> <div class="field__item"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image_formatter' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> <a href="/sites/default/files/P1020150.jpg"> <!-- THEME DEBUG --> <!-- THEME HOOK: 'responsive_image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'image' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <img loading="eager" srcset="/sites/default/files/styles/max_325x325/public/P1020150.jpg?itok=l424gbwB 325w, /sites/default/files/styles/max_650x650/public/P1020150.jpg?itok=ZWARcCPP 650w, /sites/default/files/styles/max_1300x1300/public/P1020150.jpg?itok=0H-iB50n 1300w" sizes="(min-width: 1290px) 325px, (min-width: 851px) 25vw, (min-width: 560px) 50vw, 100vw" width="325" height="217" src="/sites/default/files/styles/max_325x325/public/P1020150.jpg?itok=l424gbwB" alt="" /> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/image.html.twig' --> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image.html.twig' --> </a> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/responsive-image-formatter.html.twig' --> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--uid--blog--rss.html.twig * field--node--uid--blog.html.twig x field--node--uid.html.twig * field--node--blog.html.twig * field--uid.html.twig * field--entity-reference.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'username' --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> <a href="/user/1" class="visually-hidden p-author h-card" rel="author" title="kinta">kinta <img src="" alt="kinta" /> </a> <a title="View user profile." href="/en/users/kinta">kinta</a> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/username.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--uid.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--created--blog--rss.html.twig * field--node--created--blog.html.twig x field--node--created.html.twig * field--node--blog.html.twig * field--created.html.twig * field--created.html.twig * field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <span> <!-- THEME DEBUG --> <!-- THEME HOOK: 'time' --> <!-- BEGIN OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> <time datetime="2018-04-30T13:01:18+02:00" title="Monday, April 30, 2018 - 13:01">Mon, 04/30/2018 - 13:01</time> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/time.html.twig' --> </span> <!-- END OUTPUT from 'themes/contrib/stable/templates/field/field--node--created.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--body--blog--rss.html.twig * field--node--body--blog.html.twig * field--node--body.html.twig * field--node--blog.html.twig * field--body.html.twig * field--text-with-summary.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="body field field--node-body field--name-body field--type-text-with-summary field--label-hidden field__item"><p><span>Sin querer menospreciar el trabajo hecho por los desarrolladores de la IDE de Arduino, ha llegado a un punto en que aprecio cierta ayuda(por ejemplo resaltado de sintaxis, autocompletar, monitoraje del puerto serie por otros programas...) cuando edito o construyo un proyecto de arduino o esp8266.<br /> Después de pasar por platformio, geany, e instalar otras IDE's (no hay muchas), he decidido ir a lo que más uso: vim, qtcreator o kate (kdevelop),  y ver que formas tengo para poder editar proyectos de arduino.</span></p> <p><span>La forma más estable y que puede aumentar la productividad es vía <a href="https://www.gnu.org/software/make/">GNU-Make</a>, gracias al proyecto Arduino-Makefile podemos subir programas a placas arduino.</span></p> <p><span>Clonamos el repositorio en la carpeta de ficheros de arduino:</span></p> <pre> <code class="language-bash">cd /usr/share/arduino/ git clone git@github.com:sudar/Arduino-Makefile.git</code></pre><p><span>Para usarlo debemos definir algunas variables de entorno, las podemos poner en ~.bashrc o escribir un ejecutable en /usr/local/bin/arduino.mk-env que llamaremos cuando queramos definir las variables. </span></p> <p><span>Con archlinux las variables son:</span></p> <pre> <code class="language-bash">export ARDUINO_DIR=/usr/share/arduino export ARDMK_DIR=/usr/share/arduino/Arduino-Makefile export AVR_TOOLS_DIR=/usr/share/arduino/hardware/archlinux-arduino/avr</code></pre><p><span>Haciendo esto ya podremos escribir el Makefile en el proyecto que queramos. Si queremos probarlo, podemos ir a los ejemplos que incluye Arduino-Makefile.</span></p> <p><span>cd /usr/share/arduino/Arduino-Makefile</span></p> <p><span>cd examples/Blink</span></p> <p><span>y ahí tirar make.</span></p> <p><span>Hay una estupenda documentación sobre como instalar y usar en el proyecto Arduino-mk. Pero si lo configuras correctamente podrás subir a la placas con un simple</span></p> <pre> <code class="language-bash">make upload</code></pre><h2><span>Esp8266</span></h2> <p><span>Que pasa con las placas Esp8266? No, Arduino-mk no tiene soporte para esas placas, pero está el <a href="https://github.com/plerup/makeEspArduino">proyecto makeEspArduino</a> , que de forma similar nos permite construir y subir proyectos a la placa.</span></p> <p><span>Hay también documentación. En mi caso he hecho:</span><code> </code></p> <pre> <code class="language-bash">cd /usr/share/arduino/ git clone https://github.com/esp8266/Arduino.git esp8266 cd esp8266 git checkout tags/2.4.1</code></pre><p><code>(</code><code><a href="https://github.com/esp8266/Arduino/releases">See releases</a> </code><code>para versión idonea)</code></p> <pre> <code class="language-bash">cd tools python get.py</code></pre><p>Y podremos probarlo enchufando la placa y tirar</p> <pre> <code class="language-bash">make -f makeEspArduino.mk ESP_ROOT=~/esp8266 DEMO=1 flash</code></pre><p>Hasta aquí ya podemos hacer un bypass de la IDE de arduino.</p> <h2>Qtcreator</h2> <p>últimamente con desarrollos en QT me siento cómodo usando qtcreator, ofrece una interficie que ayuda bastante. Si bien se puede importar un proyecto genérico que tenga el Makefile, deberemos definir las variables(puerto, placa, baudrate...) cada vez. Es por eso que una plantilla de proyecto vendría bien, y basándome en el trabajo hecho por <span class="col-11 text-gray-dark mr-2" itemprop="about"><a href="https://github.com/cleitonsouza01/qt-creator-arduino">https://github.com/cleitonsouza01/qt-creator-arduino</a> (que fallaba en la versión 4.6 de qtcreator), he creado una plantilla <a href="https://github.com/aleixq/qtcreator-arduino.mk-template">https://github.com/aleixq/qtcreator-arduino.mk-template</a> para poder empezar rápidamente un proyecto de arduino,</span></p> <p><img alt="wizard de qtcreator" data-entity-type="file" data-entity-uuid="c344303c-ad33-42d4-a401-88e8a8946b24" src="/sites/default/files/inline-images/conf-plantilla_0.png" /></p> <p><img alt="qt build arduino" data-entity-type="file" data-entity-uuid="956c9ec5-fe26-40bf-a2e3-0ac14a852737" src="/sites/default/files/inline-images/qt-build_0.png" /></p> <p> </p> <p>Lo mismo hice para placas Esp8266, basándome en el proyecto <a href="https://github.com/jontio/qt_esp8266_wizard">https://github.com/jontio/qt_esp8266_wizard</a>, cambiando algunas restricciones que impedían ejecutarse en gnu-linux.</p> <p>Eel proyecto de plantilla para arduino está en <a href="https://github.com/aleixq/qtcreator-arduino.mk-template">https://github.com/aleixq/qtcreator-arduino.mk-template</a>.</p> <p>El proyecto de plantilla de Esp8266 para qtcreator está en <a href="https://github.com/aleixq/qtcreator-makeEspArduino-template">https://github.com/aleixq/qtcreator-makeEspArduino-template</a></p> <h2><span class="col-11 text-gray-dark mr-2" itemprop="about">Kdevelop</span></h2> <p><span class="col-11 text-gray-dark mr-2" itemprop="about">En el caso de kdevelop también lee directamente proyectos con Makefile, pero siqueremos tener un acceso directo a la construcción de cada target del proyecto como se cuenta en el </span><a href="https://docs.kde.org/trunk5/en/extragear-kdevelop/kdevelop/building-compiling-projects-with-custom-makefiles.html" title="manual de kdevelop">manual de kdevelop</a><span class="col-11 text-gray-dark mr-2" itemprop="about">, debemos redefinir los targets que usemos, ya que sino no puede leer los targets de un fichero incluido en el Makefile.</span></p> <pre> <code class="language-makefile"> include /usr/share/arduino/Arduino-Makefile/Arduino.mk up: make upload</code></pre><p>Para disfrutar del autocompletado de código, debemos añadir las rutas de las librerías (tal como hacíamos con qtcreator con el fichero nombredeproject.includes) en</p> <pre> <code class="language-bash">[KDEVELOP_PROJECT]/.kdev_include_paths</code></pre><p>(<a href="https://userbase.kde.org/KDevelop4/FAQ#How_to_add_include_or_library_directory_to_compile_option.3F">más info</a>)</p> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'field' --> <!-- FILE NAME SUGGESTIONS: * field--node--field-tags--blog--rss.html.twig * field--node--field-tags--blog.html.twig * field--node--field-tags.html.twig * field--node--blog.html.twig * field--field-tags.html.twig * field--entity-reference.html.twig x field.html.twig --> <!-- BEGIN OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <div class="field field--node-field-tags field--name-field-tags field--type-entity-reference field--label-inline clearfix"> <div class="field-label">Tags</div> <div class="field__items"> <div class="field__item"><a href="/en/etiquetes/arduino" hreflang="en">arduino</a></div> <div class="field__item"><a href="/en/etiquetes/open-hardware" hreflang="en">Open Hardware</a></div> <div class="field__item"><a href="/en/etiquetes/floss" hreflang="en">FLOSS</a></div> <div class="field__item"><a href="/en/etiquetes/maquinari-lliure" hreflang="en">Maquinari lliure</a></div> <div class="field__item"><a href="/ca/etiquetes/qtcreator" hreflang="ca">QtCreator</a></div> <div class="field__item"><a href="/ca/etiquetes/kdevelop" hreflang="ca">Kdevelop</a></div> </div> </div> <!-- END OUTPUT from 'themes/contrib/zurb_foundation/templates/field.html.twig' --> <!-- THEME DEBUG --> <!-- THEME HOOK: 'links__node' --> <!-- FILE NAME SUGGESTIONS: * links--node.html.twig * links--node.html.twig x links.html.twig --> <!-- BEGIN OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> <!-- END OUTPUT from 'themes/custom/planet_foundated/templates/links.html.twig' --> Mon, 30 Apr 2018 11:01:18 +0000 kinta 6398 at https://planet.communia.org https://planet.communia.org/en/content/qtcreator-o-kdevelop-en-lugar-de-ide-arduino#comments