{"id":215,"date":"2017-06-16T16:15:05","date_gmt":"2017-06-16T16:15:05","guid":{"rendered":"http:\/\/fambach.net\/?p=215"},"modified":"2019-05-31T08:35:15","modified_gmt":"2019-05-31T08:35:15","slug":"pi4j-bluej","status":"publish","type":"post","link":"https:\/\/www.fambach.net\/en\/pi4j-bluej\/","title":{"rendered":"Pi4J + BlueJ"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 ez-toc-wrap-left counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.fambach.net\/en\/pi4j-bluej\/#Die_Ports_machen_nix\" >Die Ports machen nix<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.fambach.net\/en\/pi4j-bluej\/#Nach_dem_Upgrade_geht_nix_mehr\" >Nach dem Upgrade geht nix mehr<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.fambach.net\/en\/pi4j-bluej\/#Software_PWM_beim_Servo\" >Software PWM beim Servo<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.fambach.net\/en\/pi4j-bluej\/#Verwandte_Beitrage\" >Verwandte Beitr&auml;ge<\/a><\/li><\/ul><\/nav><\/div>\n\n<p class=\"wp-block-paragraph\">Da ich am liebsten im Java programmiere, verwende ich die Bibliothek Pi4J zur Ansteuerung der GPIOs am Raspberry Pi 2 und 3.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auf die Installation der Bibliothek werde ich nicht n&auml;her eingehen, da dies auf den folgenden Webseiten schon ersch&ouml;pfend beschrieben wurde.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"http:\/\/pi4j.com\/install.htmlhttp:\/\/pi4j.com\/utility\/pi4j.htmlhttp:\/\/www.forum-raspberrypi.de\/Thread-tutorial-ansteuerung-der-gpio-ports-mit-pi4j\">http:\/\/pi4j.com\/install.htmlhttp:\/\/pi4j.com\/utility\/pi4j.htmlhttp:\/\/www.forum-raspberrypi.de\/Thread-tutorial-ansteuerung-der-gpio-ports-mit-pi4j<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Auch wichtig zu wissen ist, dass Pi4J auf der wiringPI Bibliothek aufbaut und diese nat&uuml;rlich mit installiert werden muss.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als Entwicklungsumgebung verwende ich BlueJ, weil man hier auch gleich noch ein Klassendiagramm mit bekommt.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Also Doku gibts genug, warum dann dieser Beitrag?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Ich m&ouml;chte nach und nach eine kleine FaQ erstellen mit den Problemen die ich w&auml;hrend der Nutzung dieser beiden Tools hatte, habe und haben werde.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Die_Ports_machen_nix\"><\/span>Die Ports machen nix<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In der alten Version vom BlueJ, scheint in den Einstellungen das Flag zur Auf&uuml;hrung als Root nicht richtig initialisiert zu sein. Nach dem Start von BlueJ einfach das Flag entfernen und wieder rein machen dann gehts. Dieses Problem scheint in der aktuellen Version behoben zu sein.<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"649\" height=\"233\" src=\"https:\/\/fambach.net\/wp-content\/uploads\/2017\/06\/BluejEinstellungRoot.png\" alt=\"\" class=\"wp-image-216\" srcset=\"https:\/\/www.fambach.net\/wp-content\/uploads\/2017\/06\/BluejEinstellungRoot.png 649w, https:\/\/www.fambach.net\/wp-content\/uploads\/2017\/06\/BluejEinstellungRoot-300x108.png 300w\" sizes=\"auto, (max-width: 599px) calc(100vw - 50px), (max-width: 767px) calc(100vw - 70px), (max-width: 991px) 429px, (max-width: 1199px) 637px, 354px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Sollte es dann immer noch nicht klappen einfach mal die IOs auf der Console testen. Hilfe gibts <a href=\"http:\/\/www.netzmafia.de\/skripten\/hardware\/RasPi\/RasPi_GPIO_Shell.html\">hier<\/a> oder <a href=\"https:\/\/sites.google.com\/site\/semilleroadt\/raspberry-pi-tutorials\/gpio\">hier<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Soweit ich weiss muss man zur Ansteuerung der GPIOs root (od. sudo) rechte besitzen. Der Benutzer pi ist ensprechend gut ausgestattet und eignet sich am Besten f&uuml;r erste Tests. (Man soll sich ja nicht mehr als root anmelden ;( ).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Nach_dem_Upgrade_geht_nix_mehr\"><\/span>Nach dem Upgrade geht nix mehr<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Ich habe meinen Raspberry auf die neuste Version aktualisiert. Hierbei wurde auch der Kernel auf die Version 4.9.32 aktualisiert. Danach gingen die GPIOs nicht mehr. Ein Downgrade des Kernels auf die Version 4.4.50 hat das Problem erstmal gel&ouml;st. Hilfe hierzu gibt es&nbsp;<a href=\"http:\/\/www.forum-raspberrypi.de\/Thread-tutorial-firmware-u-kernel-downgrade-mit-rpi-update\">hier<\/a>&nbsp;und <a href=\"https:\/\/github.com\/Hexxeh\/rpi-firmware\/commits\/master?page=1\">hier<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Software_PWM_beim_Servo\"><\/span>Software PWM beim Servo<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">F&uuml;r ca. 180&deg; stehen beim Software PWM leider nur 20 Stellungen\/Schritte f&uuml;r den Servo zur Verf&uuml;gung was ca. 9&deg; pro Schritt entspricht.<br>Weiterhin gibt es durch andere Funktionen im Betriebssystem oft gewackel am Servo (jitter). Man sollte ihn so programmieren, dass die entsprechende Stellung angefahren wird und dann den PWM wieder ausschalten.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eine bessere M&ouml;glichkeit ist nat&uuml;rlich einen Hardware PWM zu verwenden, wenn man noch einen frei hat ;).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Andere Bibliotheken die besser funktionieren sollen habe ich noch nicht getestet hier eine kleine Auflistung, diese m&uuml;ssten dann gegebenen Falls mit dem Java Native Interface angesteuert werden:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/github.com\/richardghirst\/PiBits\/tree\/master\/ServoBlaster\">ServoBlaster<\/a><\/li><li><a href=\"https:\/\/pythonhosted.org\/RPIO\/\">RPIO<\/a><\/li><li>&#8230;<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Weiteres zu PWM <a href=\"https:\/\/www.google.de\/url?sa=t&amp;rct=j&amp;q=&amp;esrc=s&amp;source=web&amp;cd=2&amp;cad=rja&amp;uact=8&amp;ved=0ahUKEwjar9vn9cLUAhWDQJoKHaLDA00QFgg0MAE&amp;url=https%3A%2F%2Fwww.elektormagazine.de%2Ffiles%2Fattachment%2F196&amp;usg=AFQjCNFirSKbORJqaIczHD0CXtGO5XLTGA&amp;sig2=3iFFhoPmbJ9xP7_sRjEiBQ\">[1]<\/a>&nbsp;<a href=\"https:\/\/tutorials-raspberrypi.de\/raspberry-pi-servo-motor-steuerung\/\">[2]<\/a>&nbsp;<a href=\"https:\/\/entwickler.de\/online\/iot\/raspberry-pi-2-gpio-java-256385.html\">[3]<\/a><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Weiter Probleme werden sicherlich folgen &#8230;.<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"Verwandte_Beitrage\"><\/span>Verwandte Beitr&auml;ge<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Da ich am liebsten im Java programmiere, verwende ich die Bibliothek Pi4J zur Ansteuerung der GPIOs am Raspberry Pi 2 und 3. Auf die Installation der Bibliothek werde ich nicht n&auml;her eingehen, da dies auf den folgenden Webseiten schon ersch&ouml;pfend beschrieben wurde. http:\/\/pi4j.com\/install.htmlhttp:\/\/pi4j.com\/utility\/pi4j.htmlhttp:\/\/www.forum-raspberrypi.de\/Thread-tutorial-ansteuerung-der-gpio-ports-mit-pi4j Auch wichtig zu wissen ist, dass Pi4J auf der wiringPI Bibliothek aufbaut &#8230;<\/p>\n<a href=\"https:\/\/www.fambach.net\/en\/pi4j-bluej\/\" class=\"read-more-link\">Carry on reading <span class=\"screen-reader-text\">\"Pi4J + BlueJ\"<\/span> <span class=\"meta-nav\">\u2192<\/span><\/a>","protected":false},"author":1,"featured_media":241,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_lmt_disableupdate":"","_lmt_disable":"","footnotes":""},"categories":[194,201,202,159,164,207],"tags":[15,92,16,14,4,3,13],"class_list":["post-215","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java","category-pi-projekte","category-pi4j","category-programmiersprache","category-raspberry-pi-3","category-servos","tag-java","tag-pi-projekte","tag-pi4j","tag-programmiersprache","tag-raspberry-pi-3","tag-roboter-hardware","tag-servos","penguin-post","penguin-post-not-sticky"],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/215","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/comments?post=215"}],"version-history":[{"count":7,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/215\/revisions"}],"predecessor-version":[{"id":3914,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/215\/revisions\/3914"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media\/241"}],"wp:attachment":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/media?parent=215"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/categories?post=215"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/tags?post=215"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}