JAVA ile Raspberry Pi Programlama

Başlatan polleme, 21 Ekim 2013, 23:02:30

polleme

Son zamanlarda gömülü sistemlerde C ve Python'u incelerken dünyada mobil cihazlarda kullanımı çok yaygın olan Java'yı da görme şansım oldu. Özellikle embedded sistemlerde Java programlama standart Java'ya göre daha kolay. Raspberry Pi (veya Beaglebone) üzerinde Java ile uğraşan bir arkadaşımız oldu mu? Bana kaynak veya link tavsiye edebilecek olan var mı?

swearer

takip. bende bu sıralar gömülü sistemlere dadandım belki işe yarar birşeyler çıkar  8)

Tagli

Alıntı yapılan: polleme - 21 Ekim 2013, 23:02:30
Özellikle embedded sistemlerde Java programlama standart Java'ya göre daha kolay.
Niye? Gömülü Linux içindeki Java zaten standart Java değil mi? Cep telefonlarındaki Java Micro Edition (J2ME veya Java ME olarak da bilinir) daha farklı ve Java bilen biri olarak bana garip ve yabancı gelmişti, muhtemelen pek zaman harcayıp uğraşmadığım için.

Beaglebone veya RPi üzerinde Java uygulaması yazmanın normal bilgisayardan pek farklı olacağını sanmıyorum. Belki çipin donanımına erişme açısından farklılık olabilir ama bildiğim kadarıyla Java zaten donanıma rahat erişimiyle bilinen bir dil değil. Bu tür şeyler için JNI (Java Native Interface) diye birşeyi kullanarak C veya C++ kodları (veya derlenmiş programları, tam emin değilim) çağırıyor diye biliyorum. Zamanında seri porta erişmek için bile türlü maymunluk yapmıştım. Harici bir kütüphane yüklemek gerekiyordu.
Gökçe Tağlıoğlu

polleme

Ben başlığa Raspberry Pi yazınca Java'ya Raspberry Pi üzerindeki olanaklar açısından baktım. RPi üzerinde standart Java ile yazılabiliyor, ancak Pi4J adlı kütüphane ile uzun ve sıkıcı kodlamalar nispeten çok azalmış durumda. Pi4J sitesine bakarsanız ne demek istediğimi anlayacaksınız. Tabii ki donanıma erişim hala bir Python kadar kolay değil. Java'nın applet yaratma ve RPi üzerinde Apache ile çalışabilme gibi güzel yönleri var. Ben Java derken herşeyi Java ile yapmayı değil, değişik amaçlar için değişik dilleri kullanmayı düşünüyorum. Belki web tabanlı uzaktan erişilen bir kontrol uygulaması için Java, basit lokal kontrol için Python, biraz daha karmaşık uygulamalarda C gibi.

yamak

Alıntı yapılan: polleme - 21 Ekim 2013, 23:53:09
Ben başlığa Raspberry Pi yazınca Java'ya Raspberry Pi üzerindeki olanaklar açısından baktım. RPi üzerinde standart Java ile yazılabiliyor, ancak Pi4J adlı kütüphane ile uzun ve sıkıcı kodlamalar nispeten çok azalmış durumda. Pi4J sitesine bakarsanız ne demek istediğimi anlayacaksınız. Tabii ki donanıma erişim hala bir Python kadar kolay değil. Java'nın applet yaratma ve RPi üzerinde Apache ile çalışabilme gibi güzel yönleri var. Ben Java derken herşeyi Java ile yapmayı değil, değişik amaçlar için değişik dilleri kullanmayı düşünüyorum. Belki web tabanlı uzaktan erişilen bir kontrol uygulaması için Java, basit lokal kontrol için Python, biraz daha karmaşık uygulamalarda C gibi.
Qt framework kullanın pişman olmazsınız.Hem müthiş arayüz tasarımları yapabilirsiniz hem de C++ gibi bi dilin gücünden faydalanmış olursunuz.

polleme

C kodlamada çok iyi olduğumu söyleyemem, bu durumda C++ hakimiyeti sağlamam da zor olacaktır. Benim yaptığım programlar genelde IO ve iletişim konularına dayanıyor, bu konuya maalesef harcayacak çok zamanım da yok. O nedenle anlaşılması ve programlaması nispeten basit diller daha çok ilgimi çekiyor. Arduino üzerinde kullanılan C, embedded Java, Python gibi dillerle uğraşmam bu yüzden. Ama Qt dil bağımsız olması nedeniyle ilgimi çekti, bir incelemem lazım.

galenga

Alıntı yapılan: polleme - 21 Ekim 2013, 23:53:09
Belki web tabanlı uzaktan erişilen bir kontrol uygulaması için Java, basit lokal kontrol için Python, biraz daha karmaşık uygulamalarda C gibi.

Python ile RPİ , BBone veya windowsta sadece basit uygulama yada projeler mi geliştirebiliriz ? yani python embedded projelerde yaya mı kalıyor ? konunun açılması iyi oldu tamda pyhton öğrenmek için kolları sıvamıştım , aklımda gerçekleştirmek istediğim bir kaç proje var en kolay öğrenip hayata geçireceğim dil olarak python bana uygun gibi geldi ama , yanlış bir izlenimemi kapıldım acaba ?

polleme

Alıntı yapılan: galenga - 22 Ekim 2013, 21:22:32
Python ile RPİ , BBone veya windowsta sadece basit uygulama yada projeler mi geliştirebiliriz ? yani python embedded projelerde yaya mı kalıyor ? konunun açılması iyi oldu tamda pyhton öğrenmek için kolları sıvamıştım , aklımda gerçekleştirmek istediğim bir kaç proje var en kolay öğrenip hayata geçireceğim dil olarak python bana uygun gibi geldi ama , yanlış bir izlenimemi kapıldım acaba ?

Python öğrenmekten vazgeçmeyin, öğrenilmesi kolay ve güçlü bir dildir. Çok hızlı yazılım gellştirme ve prototipleme işleri için çok idealdir. Ancak yorumlama esaslı bir dil olduğundan derlemeli dillere göre büyük kodlarda ciddi performans kaybına yol açabilir.

Mr.Java

Programcı dil ayrımı yapmaz.Ne kadar çok bilirseniz o kadar iyi.C temelini sağlam atan kişi zaten Javada zorlanmayacaktır.Javanın donanımlara erişim zorluğu diye birşey de yok artık.C bilen Javayı çok rahat kavrar,Javayı kavrayan C#'ı çok iyi kavrar (Aralarında 5 tane komut farkı ya var ya yok)  diye uzar gider bu.Hepsiyle ugrasin,işinize yarayani kullanın.

polleme

Alıntı yapılan: Fkarizmatik - 22 Ekim 2013, 22:44:47
Programcı dil ayrımı yapmaz.Ne kadar çok bilirseniz o kadar iyi.C temelini sağlam atan kişi zaten Javada zorlanmayacaktır.Javanın donanımlara erişim zorluğu diye birşey de yok artık.C bilen Javayı çok rahat kavrar,Javayı kavrayan C#'ı çok iyi kavrar (Aralarında 5 tane komut farkı ya var ya yok)  diye uzar gider bu.Hepsiyle ugrasin,işinize yarayani kullanın.

Benim de her zaman vurguladığım bu işte. Yerine göre uygun dili kullanmak. Donanım veya MCU'lar için de aynı görüşteyim. Yerine göre uygun işlemci veya kart.

galenga

Alıntı yapılan: polleme - 22 Ekim 2013, 22:10:47
Python öğrenmekten vazgeçmeyin, öğrenilmesi kolay ve güçlü bir dildir. Çok hızlı yazılım gellştirme ve prototipleme işleri için çok idealdir. Ancak yorumlama esaslı bir dil olduğundan derlemeli dillere göre büyük kodlarda ciddi performans kaybına yol açabilir.

performans kaybı derken ? ne gibi performans kaybı olur yada ne gibi uygulamalarda donanım konusunda yüksek kapasite gerekir . kusura bakmayın bu bu bilgileri nette araştırmayla öğrenilmiyor ondan soruyorum .

polleme

Python ile yazılan bir programda yorumlayıcı da bilgisayarda yüklü olur ve program çalıştırıldığında yazılan kod satır satır okunarak uygulanır. Her komut ayrı ayrı işlendiğinden kodun toplam işlem süresi artar. Ama bir C veya C++ programında yazılan kodlar derleyici tarafından doğrudan makine koduna çevrilir ve artık ortaya çıkan programın yazılan kod satırları ile ilişkisi kalmaz. Bu kodlar, işlemci tarafından çok daha hızlı işlenir ve çalıştırılır. Bu nedenle aynı işi yapan iki programdan C'de yazılan Python'da yazılandan çok daha hızlıdır.

galenga

hmmm , şimdi çok iyi anladım hocam , çok sağolun teşekkür ederim .

polleme

Alıntı yapılan: galenga - 23 Ekim 2013, 00:02:19
hmmm , şimdi çok iyi anladım hocam , çok sağolun teşekkür ederim .

Ama verdiğim bu bilgiler Python'dan vazgeçmenizi sağlamasın, ben de birçok uygulamamda Python kullanıyorum ve özellikle basitliği beni çok cezbediyor. Linux, Windows gibi ortamlarda kullanabiliyoruz.

ttg

raspinin adindaki pi python dan geliyor. Onla calisacakken python kullanmanizi oneririm. python3 ve javanin hiz karsilastirmasini gormustum, bircok islemde javadan iyiydi. hizi cok dert ederseniz scipy kullanin. siz python kodu yazarsiniz ama kutuphane c ile hazirlandigi icinderlenmis kod calisir. bilimsel islerde python kullanilmasinin bas sebeplerinden.

java da hem derleniyor hem yorumlaniyor arada bir dil. arm icin olan deb dosyasini apt cache de bulabilirsiniz. openjdk olarak aratin.

python ogrenmek isteyenler imzadaki linke de bakabilirler
4 Buçuk Saatlik Python Eğitimi [Ücretsiz] www.youtube.com/gryyldrm