{"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_73 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\" title=\"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\" title=\"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\" title=\"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\" title=\"Verwandte Beitr\u00e4ge\">Verwandte Beitr\u00e4ge<\/a><\/li><\/ul><\/nav><\/div>\n\n<p>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>Auf die Installation der Bibliothek werde ich nicht n\u00e4her eingehen, da dies auf den folgenden Webseiten schon ersch\u00f6pfend beschrieben wurde.<\/p>\n\n\n\n<p><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>Auch wichtig zu wissen ist, dass Pi4J auf der wiringPI Bibliothek aufbaut und diese nat\u00fcrlich mit installiert werden muss.<\/p>\n\n\n\n<p>Als Entwicklungsumgebung verwende ich BlueJ, weil man hier auch gleich noch ein Klassendiagramm mit bekommt.<\/p>\n\n\n\n<p><strong>Also Doku gibts genug, warum dann dieser Beitrag?<\/strong><\/p>\n\n\n\n<p><strong>Ich m\u00f6chte nach und nach eine kleine FaQ erstellen mit den Problemen die ich w\u00e4hrend 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>In der alten Version vom BlueJ, scheint in den Einstellungen das Flag zur Auf\u00fchrung 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=\"(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>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>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\u00fcr 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>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\u00f6st. 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>F\u00fcr ca. 180\u00b0 stehen beim Software PWM leider nur 20 Stellungen\/Schritte f\u00fcr den Servo zur Verf\u00fcgung was ca. 9\u00b0 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>Eine bessere M\u00f6glichkeit ist nat\u00fcrlich einen Hardware PWM zu verwenden, wenn man noch einen frei hat ;).<\/p>\n\n\n\n<p>Andere Bibliotheken die besser funktionieren sollen habe ich noch nicht getestet hier eine kleine Auflistung, diese m\u00fcssten dann gegebenen Falls mit dem Java Native Interface angesteuert werden:<\/p>\n\n\n\n<ul><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>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><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\u00e4ge<span class=\"ez-toc-section-end\"><\/span><\/h2>\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\u00e4her eingehen, da dies auf den folgenden Webseiten schon ersch\u00f6pfend 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\">Continue reading <span class=\"screen-reader-text\">\"Pi4J + BlueJ\"<\/span> <span class=\"meta-nav\">&rarr;<\/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],"modified_by":"sfambach","_links":{"self":[{"href":"https:\/\/www.fambach.net\/en\/wp-json\/wp\/v2\/posts\/215"}],"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}]}}