İçeriğe geç

Banana Pi: Gömülü Sistemlerde Pratik Maceralarım

Geçen hafta sonu kamp yapmaya gittik ailecek Uludağ’ın eteklerine doğru. Eşim ve oğlumla çadırı kurduk havuz başında otururken ben de yanımda getirdiğim küçük bir elektronik devreyle uğraşıyordum. Banana Pi kartı üzerine basit bir sensör devresi tasarlamıştım hava durumunu ölçmek için ama nedense bağlantıları yaparken bir hata yaptım sanırım. Kartı çalıştırdığımda sensör verisi yerine rastgele sayılar geliyordu ekrana. Neyse efendim saatlerce debug ettim oracıkta kamp ateşinin yanında ama sonunda topraklama kablosunu unuttuğumu fark ettim. Klasik bir fail oldu tabii 🙂

Evet o an aklıma geldi ki gömülü sistemlerde bu tür hatalar ne kadar sık oluyor. Ailemle vakit geçirirken kodlama yapamıyorum ama fikir üretmek için ideal zamanlar bunlar. Dağcılık veya kamp anlarında böyle teknik işlere dalmak bazen ilham veriyor bana.

Şimdi gelelim asıl konuya banana pi’ye. Bu arada banana deyince herkes muz sanıyor ama tech dünyasında Banana Pi diye bir şey var biliyorsunuz değil mi? Gömülü sistemler için tasarlanmış küçük bir kart Raspberry Pi’ye alternatif olarak çıkıyor karşımıza. Ben elektronik devre tasarımıyla uğraşırken bu kartı keşfettim ve birkaç proje yaptım üstünde. Aslında çok popüler bir trend haline geldi son zamanlarda search’lerde banana diye aratınca tech kategorisinde üst sıralara çıkıyor.

Banana Pi’nin en güzel yanı açık kaynak olması ve ucuz fiyatı. Sanırım 20-30 dolar arası bir maliyeti var tam hatırlamıyorum ama erişilebilir yani. Gömülü sistem projelerinde kullanıyorum ben özellikle IoT işleri için. Mesela bir keresinde ev otomasyonu için LED kontrolü yaptım bu kartla. PHP ile basit bir web arayüzü ekledim jquery kullanarak butonlara tıklayınca devre yanıyor sönüyor. Eğlenceliydi valla.

Fakat tabii ki her şey güllük gülistanlık değil. Bazen driver’lar uyumsuz çıkıyor Windows’ta falan. Ben C# ile rest api geliştirirken bu kartı entegre etmek istedim bir projede PostgreSQL veritabanına veri göndermek için. Dapper kullanıyorum normalde ama gömülü tarafta mysql kurdum kart üzerine. Bağlantı kurarken firewall sorunu yaşadım ilk başta. Neticede portları açtım ve çalıştı ama uğraştırdı doğrusu.

Bu arada aklıma geldi geçen ayki dağcılık turunda benzer bir şey olmuştu. Zirveye çıkarken telefonumun GPS’si sapıttı ama o an banana pi gibi bir cihaz olsaydı harita verisini offline işleyebilirdim belki. Neyse efendim tech hayatı böyle işte.

Banana Pi’nin işlemcisi Allwinner serisi genelde A20 veya H3 gibi modeller. Bunlar ARM tabanlı yani performanslı ama güç tüketimi düşük. Ben vue.js ile bir dashboard yaptım bir projede kartın verilerini göstermek için. Jquery ajax çağrılarıyla rest api’den veri çekiyor frontend. Pratik bir çözüm oldu bence. Eğer siz de gömülü sistemlere meraklıysanız banana pi ile başlayın derim. Kolay programlanıyor Linux dağıtımlarıyla.

Kurulum ve İlk Adımlar

Kurulumu yapmak için önce kartı alıyorsun siteden. Resmi sitede imaj dosyaları var indirmek için. SD karta yazıyorsun balena etcher gibi bir tool’la. Sonra güç veriyorsun USB’den ve boot oluyor. Ben postgresql ile veri saklama projesi yaptım üstünde. C# backend’inde dapper sorguları yazdım api için. Bağlantı string’ini şöyle ayarlıyorsun: Server=banana-pi-ip;Database=mydb;User Id=user;Password=pass; Ama ip’yi static yapmayı unutma yoksa her seferinde değişiyor.

Evet gayet basit aslında. Fakat bazen ethernet bağlantısı kopuyor benim deneyimime göre. WiFi modülü ekledim bir keresinde devreye ama anten uyumsuzluğu yüzünden sinyal zayıf kaldı. Sonuç olarak kabloyla devam ettim 🙂

Şimdi pratik bir örnek vereyim. Diyelim ki bir sensör verisi okuyorsun DHT11 gibi sıcaklık için. Python script’i yazıyorsun kartta gpio pinlerinden oku diye. Sonra php ile web servisi açıyorsun veriyi json olarak dön. Jquery ile frontend’de poll yapıyorsun her 5 saniyede. İşte bu kadar. Benzerini vue ile de yaptım reactive hale getirdim.

Bu arada bir sitede görmüştüm banana pi projeleri hakkında detaylı rehber ama linkini unuttum. Google’da ‘banana pi gömülü sistem projeleri’ diye aratın bol örnek çıkar.

Avantajlar ve Dezavantajlar

Avantajları mı? Ucuz, topluluk desteği var forumlarda. Dezavantajı da yazılım desteği bazen gecikiyor yeni os’lar için. Mesela Android portu var ama stabil değil sanırım. Ben mysql kullandım projelerimde postgresql’e alternatif olarak. Dapper ile crud işlemleri hızlı oluyor C#’ta.

Neticede banana pi benim gibi elektronik meraklıları için ideal. Ailemle Bursa’da yaşarken evde atölyemde bu kartlarla vakit geçiriyorum. Oğlum da merak ediyor bazen yardım ediyor bana. Ne güzel değil mi?

Konudan biraz sapayım mı? Geçenlerde şehir turuna çıktık ailece Gemlik’e doğru. Yolda trafik sıkıştı ama o sırada aklıma yeni bir api fikri geldi banana pi için. Kod yazamadım tabii ama not aldım telefona.

Şimdi gelelim stock durumuna hayır banana pi’nin popülerliğine. Search volume’ü artıyor tech kategorisinde. Gelecekte daha çok proje göreceğiz bence. Eğer devre tasarımı yapıyorsanız bu kartı deneyin. Benim gibi rest api entegre edin mysql ile.

Fakat dikkat edin overheat sorunu olabiliyor yoğun kullanımda. Soğutucu ekleyin heatsink falan. Ben unuttum bir keresinde kart ısınıp kapandı proje ortasında. Kendi hatam 🙂

Bu konuda TechRadar’da bazı incelemeler var banana alternatifi board’lar hakkında bakabilirsiniz. Veya reddit’te r/embedded subreddit’inde tartışılıyor community.

Sonuç olarak bana göre banana pi eğlenceli bir araç. Gömülü sistemlere giriş için mükemmel. Siz de deneyin derim pratik ipuçlarımla. Eğer sorun yaşarsanız yorum bırakın paylaşalım deneyimimizi. Neticede tech dünyası paylaşmakla güzelleşiyor.

Açıkçası ben memnunum bu karttan. Gelecek projelerimde vue ve jquery ile daha karmaşık şeyler yapacağım. Belki bir blog serisi olur bundan. Neyse efendim şimdilik bu kadar.