[Raspberry][i2c] Sterowanie PCF8574 przez pi4j

W tym poście przedstawię sposób kontrolowania naszego ekspandera PCF8574 przez raspberry.
Sam wpis spowodowany jest tym że wbudowana w bibliotekę pi4j klasa do obsługi powyższego ekspandera uniemożliwiała mi ustawienie pinu 07 jako wyjścia.


[Debian][LMS] Instalacja krok po kroku

Tak by na przyszłość już była:)

[Debian][Linux] Serwer www i niedziałający phpmyadmin

Chciałem sobie postawić serwer www i bazę do niego, jednak nie obeszło się bez problemu z instalacją phpmyadmin. Strona główna działała poprawnie, natomiast gdy wpisałem w przeglądarce adres_serwera/phpmyadmin to nie znajdowało mi strony. Rozwiązaniem było dodanie linijki:

Include /etc/phpmyadmin/apache.conf

do pliku:

sudo nano /etc/apache2/apache2.conf

Raspberry - dodanie skrótu do aplikacji napisanej w javie

Aby w naszym środowisku LXDE dodać skrót do aplikacji napisanej w Javie, musimy wykonać parę czynności:
1. Zapisać grafikę ikony/lub użyć istniejących. Aby dodać własną ikonę, wystarczy pobrać ją np. z internetu, dropboxa i wkleić do jakiegoś folderu. Proponuje dodać ją do folderu gdzie znajduje się nasz projekt/aplikacja w javie, i gdzie mamy zmienione chmod na umożliwiające zapis obrazka.

2. Musimy utworzyć nowy pusty plik: klikamy p.p.m -> utwórz nowy -> Pusty plik. Podajemy nazwę, może to być nazwa aplikacji.

3. Edytujemy plik jakimś edytorem. Klikamy p.p.m -> Leafpad i wpisujemy poniższy skrypt:

[Desktop Entry]
Encoding=UTF-8
Type=Application
Terminal=false
Name=PiZone
Comment=PiZOne
Icon=/home/pi/javaPi/dist.java.png
Exec=sudo java -jar /home/pi/javaPi/dist/PiZone.jar
StartupNotify=true

Oczywiście w miejscu: /home/pi/javaPi/dist/PiZone.jar podajemy lokalizacje naszej aplikacji, to samo tyczy się ikony. Te ustawienia są ustawione dla aplikacji okienkowej np. w swing`u

Java i Raspberry - Integracja z NetBeans

W poniższym poście przedstawię sposób integracji NetBeans zainstalowanym na naszym Windowsie z RaspberryPi. No może nie tyle dosłownej integracji co po prostu sposobu aby to co skompilujemy na pc, trafiało od razu do naszego raspberry. Ułatwiając sobie tym sposobem niewdzięczne zadanie przerzucania plików.

BattleShip v1.1

Dzisiaj zakończyłem pracę nad nową wersją mojej gry. Prócz przepisania sporej ilości kodu, udało mi się także znacząco poprawić wydajność, już nie tnie przy sporej liczbie wrogów. I naprawić kilka bugów.
Aplikację powinna czekać jeszcze jedna aktualizacja, bo kilka kwestii nadal pozostaje do zrobienia, ale deadline kończy się dzisiaj i dzisiaj aplikacja trafia na market SlideMe.

[libGDX] Szybka notka: Zapisywanie plików w pamięci local

O ile na deskopie można używać folderów w pamięci lokalnej o tyle na androidzie musimy pamiętać o tym że nasze dane lokalne w żadnym folderze nie mogą się znajdować.
Czyli poprawny będzie taki kod:
FileHandle file = Gdx.files.local("score.txt");
a jakbyśmy chcieli te pliki umieścić w folderze "data":
FileHandle file = Gdx.files.local("data/score.txt");
 to na Androidzie otrzymamy błąd i nasza aplikacja się zatrzyma.

[libGDX] Scene2d Obracanie obiektów, mających rodzica Group

Szybka notka: Jeśli mamy jakiś swój obiekt w przestrzeni stage, obrócony pod jakimś kątem i chcemy aby z jego działka wyleciał pocisk odwrócony w odpowiednią stronę musimy
a) Obliczyć gdzie należy zrespawnować strzałę, ja to robię dla Origin(0,0):

Vector2 vec = new Vector2(master.getX() + (master.getWidth() / 2) - (tx.getWidth() / 1.5f) + 1, master.getY() + master.getHeight() - 30);
             vec = master.localToStageCoordinates(vec);    
            
           

             this.setOrigin(0, 0);

Czyli biorę lokalne położenie respawnu strzały dla naszego statku gdy stoi nie obrócony(rotacja == 0) a następnie przekształcam ja koordynaty stagowskie, bo nasz strzał nie będzie należał do statku tylko do świata:)
b) Pobrać obrót ale NIE z statku bezpośrednio, bo jeśli nasz statek ma parenta, to musimy pobrać rotację własnie jego rodzica, czyli odwołujemy się do obiektu naszStatek.getParent().getRotation(), a nie bezpośrednio np. naszStatek.getRotation();

[Java] Spraw kilka do wglądu i Wstęp: Nieblokujące sockety(buffory, idea Socketów)

Ostatnim czasu trochę zaniedbałem blogga, wiele postów jest zaczętych ale brak mi czasu/weny(tak to nazwijmy) by je dokończyć. Rozwojowo idę w programowanie sieci i wykorzystanie wielowątkowości w libGDX i być może niedługo ukaże się jakiś kolejny topik opisujący chociaż pobieżnie te zagadnienie. Mógłbym napisać także co nieco o tworzeniu UI(graficznego interfejsu) dla naszej gry. Bo mimo iż od początku tworzyłem własny system, to jednak na chwilę obecną przekonałem się do tego zawartego w libGDX scene2d.ui. Który na potrzeby sporej liczby produkcji powinien w zupełności wystarczeć. A że programować menusy nie lubię, to z niego korzystam i niedługo zastąpię nim moje własne gui; oczywiście trochę je usprawniając(uniwersalny styl, domyślna konfiguracja i dodatkowe bonusy). Także tyle wstępu, zapraszam do lektury, którą przygotowałem.

BattleShip beta v0.6


Jako galaktyczny pirat wiodłeś "spokojne" życie kapitana galaktycznego okrętu pirackiego o epickiej nazwie "Carrier", aż tu nagle podczas jednego z rajdów zostałeś zaatakowany przez galaktyczne siły porządkowe, które atakują ciebie swoimi viperami i galaktycznymi minami. Twój napęd okrętowy został unieruchomiony przez hakerów i teraz możesz się tylko obracać<sic!> Wiesz że to już twój koniec i nic nie powstrzyma twojej porażki, jednak nie dasz tak tanio sprzedać swojej skóry...