Picproje Elektronik Sitesi

BİLGİSAYAR => Linux => Konuyu başlatan: polleme - 19 Mart 2014, 23:07:43

Başlık: Arduino Yun
Gönderen: polleme - 19 Mart 2014, 23:07:43
Arduino serisinin bu kartı hakkında ne düşünürsünüz? Alıp deneyen oldu mu acaba? Kart üzerinde bilinen Arduino'nun tüm özellikleri yanında Linux işletim sistemi de geliyor, Ethernet ve wifi erişim imkanları var, USB host port var ve Arduino ile Linux bir bridge port üzerinden haberleşebiliyor. Arduino'nun kendi kodlaması yanında Linux tarafında Python ile de programlama imkanı var.

Bu özellikleri ile gözüme şık göründü. Fiyatı epeyce tuzlu. Değer mi bilmiyorum.
Başlık: Ynt: Arduino Yun
Gönderen: muhendisbey - 19 Mart 2014, 23:18:36
Alternatif olarak şu ürün de var.
http://www.pcduino.com/ (http://www.pcduino.com/)
Aslında elimde olsun istiyorum.
Başlık: Ynt: Arduino Yun
Gönderen: polleme - 19 Mart 2014, 23:26:56
pcDuino neredeyse 100 TL daha ucuz. Yeni modelde wireless ve Arduino kartlarına göre dizili soketler var. Eski modelde Arduino uyumu vardı ama kartları doğrudan pcDuino üzerine takmak mümkün değildi, bir adaptör kullanmak gerekiyordu. Evet pcDuino bir alternatif olabilir. Aradaki fark gördüğüm kadarıyla şu: pcDuino üzerinde Linux çalıştırıp Arduino IDE'yi Linux üzerinden koşturup işlem yaparken Arduino Yun üzerinde Arduino ve Linux ayrı modüller halinde var, bunlar birbiri ile bir bridge üzerinden haberleşiyorlar. Yani bu şu demek: Yun üzerinde Linux ve Arduino tamamen bağımsız olarak ta kullanılabilir.
Başlık: Ynt: Arduino Yun
Gönderen: muhendisbey - 20 Mart 2014, 09:45:12
Evet
Ancak birşeyi merak ettiğimden hep almaktan uzak durdum.
Bunlar allwinner A10 kullanıyorlar
Cubieboard'ta öyle
Şimdi ben pcduino imajını istersem cubieboard'ta kullanamaz mıyım?
Başlık: Ynt: Arduino Yun
Gönderen: polleme - 20 Mart 2014, 10:00:31
Gördüğüm kadarıyla Cubieboard Lubuntu denilen özelleştirilmiş bir Ubuntu versiyonunu kullanıyor. pcDuino ise doğrudan Ubuntu çalıştırabiliyor. İmajlar birbiri yerine yüklenip çalıştırılabilir belki, ama her kartın üzerindeki port ve GPIO uçlarına ilişkin özelleştirilmiş eklentiler eksik olacaktır, bunların sonradan yüklenmesi gerekebilir, bunlar ciddi zaman da alabilir.
Başlık: Ynt: Arduino Yun
Gönderen: muhendisbey - 20 Mart 2014, 10:39:54
Alıntı yapılan: polleme - 20 Mart 2014, 10:00:31
özelleştirilmiş eklentiler
arduino'nun header yapısını mı kastediyorsunuz?

Bu aynen şuna benziyor kubuntu kde çalıştıran lubuntu lxde çalıştıran, ubuntu gnome çalıştıran... gibi. Hepsi aslında ubuntu farklı olan gui.
Başlık: Ynt: Arduino Yun
Gönderen: polleme - 20 Mart 2014, 10:44:56
Anlatamadım, kastettiğim o değildi. Bazı imajlarda o donanımın çalışması için gerekli bazı sürücüler gömülü geliyor. Farklı bir kartta gerekli sürücüler eksik olursa bazı fonksiyonlar çalışmayacak veya eksik işlevli olacaktır. Güncel sürücülerin yüklenmesi gerekebilecektir. Yoksa elbette hepsi aynı Ubuntu olabilir.
Başlık: Ynt: Arduino Yun
Gönderen: muhendisbey - 20 Mart 2014, 22:20:04
Dediğinizi anladım yani atıyorum birisinde wifi modülü var diğerinde yok aradaki sürücü meselesi...

Cubieboardun A10 serisi yaklaşık olarak Pcduino1 ile aynı donanıma sahip. İkisinde de ekstra donanım göremedim.
Kaldı ki olsa dahi respiratory'den yada diğer imajdan gerekli sürücüleri almak çokta zor olmasa gerek.
http://www.cutedigi.com/development-tools/pcduino/pcduino-an-minipc-with-arduino-headers.html (http://www.cutedigi.com/development-tools/pcduino/pcduino-an-minipc-with-arduino-headers.html)
Başlık: Ynt: Arduino Yun
Gönderen: polleme - 20 Mart 2014, 22:24:15
Linux'a hakim biri için konuştuğumuz konular çok zor değil. Ama ben öyle bir farklılık olursa altından kalkamam. Sürücüler, yükleme, derleme gibi konuları bilmek ve kernel'a belli derecede hakim olmak gerek.
Başlık: Ynt: Arduino Yun
Gönderen: muhendisbey - 20 Mart 2014, 22:33:29
Orası öyle. Biraz bilgi ister.
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 14 Eylül 2015, 15:37:47
HORT!

Bu kartın performansını test eden oldu mu?
Raspberry'e göre nasıl? Ben raspberry'den hiç memnun kalmadım, zora gelince spi'dan veri kaçırıyor(eksik okuyorum)
çevrebirimleri düzgün çalışıyor mu?
Başlık: Ynt: Arduino Yun
Gönderen: CoşkuN - 14 Eylül 2015, 16:13:51
Alıntı yapılan: Gökhan BEKEN - 14 Eylül 2015, 15:37:47
HORT!

Bu kartın performansını test eden oldu mu?
Raspberry'e göre nasıl? Ben raspberry'den hiç memnun kalmadım, zora gelince spi'dan veri kaçırıyor(eksik okuyorum)
çevrebirimleri düzgün çalışıyor mu?
SPI'dan veriyi nerede okuyorsun? Linux üzerinden mi yani?
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 14 Eylül 2015, 16:17:35
Evet hocam, wiring pi kütüphanesini kullanıyorum. Ethernetten bilgi alışverişi(ftp ile dosya gönderirken felan) yaparken spi okumalarım saçmalıyor ve harici kesmeler gecikiyor.
Zaten internette gördüğüm kadarıyla bu tarz sorunlar yaşayanlar varmış. 
Başlık: Ynt: Arduino Yun
Gönderen: CoşkuN - 14 Eylül 2015, 16:20:07
Linux çalıştırırken böyle olması normal gibi geliyor bana, real time çalışma konusunda bir söz vermiyor çünkü linux.
Arduino Yun kartının yapısı biraz daha farklı. Üzerinde bir tane Atmega mikrodenetleyici bir tane de Linux koşturan ayrı bir işlemci var. Atmega ile Linux İşlemci UART üzerinden bağlantı kuruyor. Yani linux ayrı çalışıyor mikrodenetleyici işleri ayrı.
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 14 Eylül 2015, 16:38:23
Yani bir şey farketmez diyorsunuz sanırım.
Akım sorunum olmasa raspberry a+ yerine daha güçlü bir SBC seçeceğim ama raspberry a+ kadar akım dostu başka bir SBC bulamadım.
Akım çok önemli projem için.
Başlık: Ynt: Arduino Yun
Gönderen: CoşkuN - 14 Eylül 2015, 16:55:13
Aynı olmuyor aslında. Yun'da SPI haberleşme gibi işleri Atmega'da yapıp Linux tarafında da server vs.. işleri yapabilirsin.
Rasperry'deki SPI problemlerinden şurada bahsetmişler biraz: https://www.raspberrypi.org/forums/viewtopic.php?t=19489 (https://www.raspberrypi.org/forums/viewtopic.php?t=19489)
Başlık: Ynt: Arduino Yun
Gönderen: mehmet - 14 Eylül 2015, 17:01:25
http://radxa.com/Rock (http://radxa.com/Rock)
Biraz pahalılar.

Ek: Bir monitör/tv içerisine yerleştirilip LVDS bağlantısı ile
medya-monitör yapmak mümkün... (Pro versiyonu ile)
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 14 Eylül 2015, 17:03:47
Onu da düşündüm Coşkun hocam , bir tane stm32 bağlayım spi ve kesme işleri o yapsın dedim ama sorun yine dataları raspberry'e aktarmada.
FTP işleri sırasında data aktarmada yine sorun çıkacak.

İnceliyorum Mehmet hocam.
Başlık: Ynt: Arduino Yun
Gönderen: leblebitozu - 14 Eylül 2015, 17:52:47
Yun clone shield olarak

http://www.aliexpress.com/item/Free-Shipping-Linux-WiFi-Ethernet-USB-All-in-one-Yun-Shield-Compatible-with-Arduino-Leonardo-UNO/32276884418.html?spm=2114.01020208.3.2.KArc36&ws_ab_test=201407_5,201444_6_3_2_1_5_4,201409_3 (http://www.aliexpress.com/item/Free-Shipping-Linux-WiFi-Ethernet-USB-All-in-one-Yun-Shield-Compatible-with-Arduino-Leonardo-UNO/32276884418.html?spm=2114.01020208.3.2.KArc36&ws_ab_test=201407_5,201444_6_3_2_1_5_4,201409_3)
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 18 Eylül 2015, 18:11:56
Sorun ethernet ile ilgili değilmiş. Raspberry a+ ve b+ ikisinde denedim(aslında aynı sayılırlar)
işlemci gücü(700mhz) kullanan bir program çalıştığı an bu bahsettiğim sorunlar yine oluyor.
Demekki bana işlemci gücü daha yüksek bir kart lazım.
Raspberry pi 2 'yi deneyeceğim yarın, 900mhz 4 çekirdekli işlemcisi varmış. Akımı çok artmazsa ve performans sorunu yaşamazsam bu projeyi de böyle atlatmış olacağım.
Başlık: Ynt: Arduino Yun
Gönderen: muhendisbey - 18 Eylül 2015, 22:59:59
Gökhan mesele işlemci gücünde değil. 2GHz lik kartta kullansan benzer sorunla karşılaşabilirsin. Bunu şuna benzetebiliriz: elimizin altındaki bilgisayar yoğun iş yaptığında donuyor ve klavyeye basınca yazmıyor. sonrasında yazdıklarımız ekranda bir anda görünebiliyor. Kaldı ki bilgisayarda bu problemleri ekarte etmek için özel bir birim var: south bridge.

Senin yapman gereken bir işlemci ile i/o işlerini yaptırıp karta aktarmak. Karta da aktarırken doğrulama kodlu (örneğin CRC) yada handshake'li veri göndermen gerek. UART kullanılabilir bu noktada.

Bir de problemlerini daha hızlı bir SD kart kullanarak aşma ihtimalin de var. Bazen class 4 SD kartlar donma problemine neden olabiliyor.
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 18 Eylül 2015, 23:59:33
Hocam kullandığım sd kart sandisk'in class 10 ultra speed kartı.
IO işlerinde dediğiniz gibi düşündüm ben de ama doğrulama yapılmadığında tekrar göndermeye kalkarsam veri kaçırırım.
RF den canlı ses geliyor ve bu sesi kaçırmamam gerekiyor. Kaçırdığımda tekrar göndermesini sağlarsam sonrasında gelmesi gereken verileri kaçırırım.
10ms'de bir 1kbyte veri geliyor, denedim, usart baut ratesi: 2,5 mbaud olduğunda bütün veriler gidebiliyor ancak. Daha aşağısında süre yetişmiyor. (okuma işini stm32 ile yapıp dma'lı usart kurup göndermekten bahsediyorum)

linux'da cpulimit diye bir program varmış onu kurup, ftp gibi diğer önceliksiz işlemlerin olduğu programların işlemci kullanım yüzdelerini %1'e kadar kıstım, arada fark oldu ama yine de veri kaçırıyorum.

south bridge yi bilmiyordum bi araştırayım.

Bu arada kernelin etkisi çok büyük.
Raspberry'nin orjinal raspbian(900 küsür mb) işletim sisteminde durum daha vahim, çalışan başka hiç bir ek uygulama açmasam bile, veri kaçırıyorum çok.
Ama özellikleri kırpılmış sadece zaruri ihtiyaçlar olan bir kernel(15-20mb bir şey) kurduğumda şu an ki kadar düzgün çalışıyor.
Başlık: Ynt: Arduino Yun
Gönderen: tekosis - 19 Eylül 2015, 00:08:01
Gökhan hocam konu ile çok ilgili değil kusura bakmayın ama merak ediyorum raspberry ile yaptığınız bu projelerin kopyalanma ihtimali nedir? normal mcu ile yapılan programlarda protect iş görüyor ama bilgisayar yazılımında durum nasıl olacak?
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 19 Eylül 2015, 00:15:06
Teknik olarak kopyalanmasına engel bir korumamız yok.
Ancak, cihazın olduğu alana yetkisiz kimse giremez.
Yine de SD kart söküp takılır cinsten olmayacak, kartın içine lehimli olacak ve kolay kolay ulaşılamayacak.
Başlık: Ynt: Arduino Yun
Gönderen: muhendisbey - 19 Eylül 2015, 00:25:53
Güvenilirlik için içerisindeki yazılımı cpu id'sine çakılı yapabilirsin. ID tutmazsa exitcode yada kill döndürürsün. Kırılmaz olmaz belki ama işi zora sokar.

Ben dediğin olayı senkron olması gereken bir işte yakaladım. Başta senkron giden iş, işlemci yüküyle bozuluyordu.

South bridge'in temel görevi şu:
Normalde işlemci 3GHz
klavyenin veya mouse'un 3GHz'de çalışması problem. Çalışırsa tekrarlı veri okuma bir o kadar fazla olur. Örneğin "A" tuşuna bastın, bunun işlemciye 1sn'de 100 kez gitmesi var 1 milyon kez gitmesi var.Bu durumda alt donanımları kontrol eden daha yavaş çalışan bir birim olsun. İşte bu noktada daha düşük hızdaki işlemlerin gerçekleşmesi için south bridge'e ihtiyaç duyulur. North bridge ile de yüksek hız gerektiren işlemler (CPU-RAM veri transveri, veya CPU-PCI... gibi) için merkez oluşturulmuştur. Hocamızın dediği buydu. SoC içinde bu yapı var mı emin değilim.
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 20 Eylül 2015, 02:54:32
Raspberry pi 2 ile sorunlar biraz çözüldü.
Bir şey daha keşfettim wiringpi kütüphanesinde piHiPri diye bir fonksiyon var, bu fonksiyonu main fonksiyonun tepesinde sıfır değeri vererek çağırdığımda program daha az kesintiye uğruyor.
Benim programımın kullanımı raspberry pi A+'da %60 larda idi, raspberry pi 2'de %5 civarında işlemciyi kullanıyor.
Fakat az da olsa kesilmeler devam ediyor. Bu durumda işlemci kullanma oranının doğrudan etkilemediğini düşünmeye başladım.

Bir kaç sorum var:
Şu raspberry'nin ikinci seri portunu bir türlü çalıştıramadım çalıştırabilsem başka şeyler de deneyeceğim, sistem hiç görmüyor ikinci seriportu, kullanabilen var mı?

4 çekirdekli sistemi verimli kullanmak için yöntem ne olmalı? Thread oluşturuyorum ama performansta artış olmuyor. Tek program yerine birden fazla task olması için 2-3 programa mı bölmeliyim? Eğer bölersem aynı değişkenleri nasıl kullandıracağım? Ram'deki adreslerini otomatik bulup hepsine göndermem mi lazım?
Oluşturduğum thread'ler hangi çekirdekte çalışıyor, daha doğrusu hangi çekirdek ne kadar yoğun, hangi çekirdekte ne çalışıyor görebilir miyim?

Bu raspberry'i yapan adamlar hangi kafayla yapmış anlamıyorum, bunu kullanan adam hiç mi seriport spi kullanmayacak,
veri kaçırmayı geçtim, iki tane spi var biri komple sorunlu, iki tane seriport var birini hiç görmüyor.

Raspberry'nin tek beğendiğim yanı az akım çekmesi , wiringpi kütüphanesinin kolaylığı ve ucuz olması.
Başlık: Ynt: Arduino Yun
Gönderen: sovalye - 20 Eylül 2015, 10:34:27
Thread oluşturmanız diğer çekirdekleri kullanacağını garantiye almaz. Kesin bir şekilde bunu sağlayan bir yol var mı emin değilim. İşlemcinin kullanımı işletim sisteminin sorumluluğunda. Şu an baktım windows ta +1000 civarı thread çalışıyor. Tabi ki sizin program linux'ta çalışırken sayı çok daha düşük olacaktır ama yine de işletim sistemi olunca bol miktarda yabancı thread olacak. Programınızın kullandığı protokoller falanda çalışacak.
2-3 programa bölmek işe yarayabilir ama bu seferde iletişime geçmeleri için beklemeniz gerekebilir. Denemeniz lazım.
Sizin oluşturacağınız thread den ziyade daha profesyonel sistemlere bakabilirsiniz. Mpi yada OpenMP ' ye bakabilirsiniz. Multi processor işlemlerde çok daha iyi iş çıkardıklarından bahsediliyor.

Ram 'deki adresler aslında gerçek ram'deki adresler değildir. İşletim sistemi her programa sanal bir ram alanı verir. İşletim sistemi dışında kimse nereye ne yazdırdığını bilemez. Programlar kayıt yaparken aslında nereye ne yaptıklarını bilmezler, bu işi işletim sisteminden beklerler. İki programın haberleşmesini istiyorsanız "mmap" kullanabilirsiniz . ( RAM adreslerine erişmeniz legal olmayan yollardan mümkün en azından windows'ta ( linux'ta nasıl olur bilmiyorum.) ama açıklar kullanıp, sistemle uğraşmanız lazım. )

top veya htop kullanabilirsiniz ram ve cpu kullanımına bakmak için (pi2 im yok. multi process gösteriyor mu bilmiyorum) ama hangi çekirdekte ne çalıştığını görebilecek bir yapının olduğu sanmıyorum. Yine tamamen işletim sistemin anlık kararı.
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 21 Eylül 2015, 12:31:54
Arkadaşlar sorun USB'de. USB'den yapılan her hareket diğer kısımların aksamasına neden oluyor, flash bellek taktığımızda da bahsettiğim donmalar aynen oluyor.
Raspberry'de ethernet, usb üzerinden bağlı olduğu için otomatikman ethernette'de donmalar oluyor.
USB'yi high speed'den full speed'e geçirdik donmalar ethernet bayağı yavaşladı, dosya transfer hızı çok düştü. Bu donmaları azalttı, ancak en ufak bir usb hareketi bile az da olsa donmaya sebep oluyor.
Benim ilacım şu olmalı, etherneti usb'den kurtarmak. Bu yüzden spi'dan enc28j60 bağladım ama linux ayarlarından ethernet için enc28j60 seçtim, spi clock'unda en ufak bir hareket olmuyor, yani enc28j60'ı bir türlü kullanamadım.
Ayrıca şöyle bir sorun olacak, eğer spi'ı ethernet için kullanırsam, benim diğer işlerimi spi'dan halledemeyeceğim çünkü 1 tane spi kullanabiliyoruz, 2.spi kanalı çalışmıyor(daha önce bahsetmiştim).

Dileğim o'dur ki hayat kimseyi raspberry'nin ve linux'un eline düşürmesin.
Hele ki son projesini yapıp, işten çıkıp, hayatına başka bir şekilde yön vermek isteyen birisine...
Başlık: Ynt: Arduino Yun
Gönderen: engerex - 21 Eylül 2015, 13:13:54
Pc de thread oluştururken hangi çekirdekte çalışacağını seçebiliyorsun. Mutlaka bu vardır. Tabi kullanılan kütüphaneye göre değişebilir.
Senkron ve asenkron thread ile ortak değişken kullanım durumu farklılık gösterir.

Uygulama işletim sisteminde çalıştığı için şöyle bir durum var. Ön plan arka plan ne kadar çalışan uygulama varsa işlemci sırasıyla belli süre uygulamaları teker teker çalıştırıyor. Portlarında sürücüleri olduğuna göre onlarda bu döngüye dahil. Uygulamaların işlemci önceliklerinle oynayarak bu duruma müdahale edebilirsin. Yada daha detaya inip real time gerekli.
Tabi bir şeylerde terslikte olabilir. Daha düşük donanımla video kayıt mümkünse yöntem değiştirmen gerekli.
Başlık: Ynt: Arduino Yun
Gönderen: Gökhan BEKEN - 01 Ekim 2015, 16:12:16
Sorunun ilk kısmını çözdük. Çözmenin tek yolu kernel modülü yazmak. Kernel modülünün insmod yapıp cat komutu ile çalıştırınca verilerde kayma, gecikme veya bozulma olmadan alıyorum. Sırada user space kısmı yani aldığım verileri işleme ve kaydetme kısmı kaldı. Kernelde doldurduğum buffere erişebilirsem ve user kısmında bozulma olmazsa proje bitecek.