Michael Schwarz gerçekten harikalar yaratıyor. Tahoe-II üzerine basit bir web server geliştirmiş ve bunuda http://www.control-my-world.com/. üzerinden yayınlıyor.

Ayrıca web server Digi'nin RF ile haberleşen(XBee) bir sıcaklık sensorunden bilgi alıp onuda gösteriyor.

Michael 'ın bir çok toolkiti bulunmakta, bu web serverinde kaynak kodlarını bulabileceginiz mschwarztoolkit ini indirebilirsiniz. Micro Framework ile ilgili yaptıgı diger çalışmaları netmicroframework.blogspot.com adresinden takip edebilirsiniz.
Ben ne kadar arzulasamda katılmak kısmet olmadı bu yarışmaya. Aklıma gelen hiç bir projeyi begenmedim ama şuan yarışmaya katılan projeleri görünce keşke ben hiç bu kadar detaylı düşünmeseydim diyorum.

Herneyse artık geçti. Size yarışmaya katılan bir kaç projeyi bildirmek istedim.

 1. Blair Leduc un projesi çok hoş kendisi projesine "a bedside digital assistant" diye isim vermiş. Yatagınızın baş ucunda bir cihaz düşünün;

- Dijital resim çerçevesi
- FM Radio
- Alarm
- RSS feedler üzerinden haberleri okusun, hava durumunu, günlük kurları görüntülesin

İstemez miydiniz? Hatta e-maillerinizi bile okuyabilir (bunu ben uydurdum Smile)

Cihazın prototipini geliştirmeye devam ediyor, buyrun şekli şemali

HardwareProto1

 2. Bu proje Paul Hubner a ait. Proje ise bir GSTaTS - gökyüzündeki nesneleri (uçak, balon, uydu, gezengenler, yıldızler, vb.) izleme ve takip etme. Adım adım anlatmış projesini. Oldukca teferruatlı işin yazılım kısmından hariç, donanım kısmı daha çok efor ister bence. Donanımda hem mekanik hem elektronik oldugu için ekstra zorluk.  

 

 

 3. Proje ise Ian Lee ye ait. Projenin adı  "invisible dog fence"  yani eviniz için "görünmez köpek çiti". Köpeginize arazinizdeki hangi alanlara izin verdiyseniz oralarda kalmasını saglıyor. Bahçeli bir eviniz varsa ve siz evinizin bahçesinde parti verecekseniz, köpegi sabit bir yerde tutabiliyorsunuz.

Red Zone is Alive!


Karşılaştıkca buraya yazmaya devam edecegim.

 

Yıllık olarak yapılan takvimde istenilen gün ve zamanlarda GPIO portunu açan ve kapatan uygulama. LED yerine Röle kullanılarak 220v ile çalışan cihazları kontrol edilebilir.

Açılış ve kapanış saat leri arasında GPIO pininde elektrik vardır, kapanış saati geldiginde pinden keser. İstenilirse toplam çalışma zamanlarını tesbit edip, aylık olarak raporlaya bilir.4'erli grup halindeki butonlarla başlangıç ve bitiş zamanlarını ayarlıyorsunuz.

 

micro framework

 

 

Timer methodu için http://blogs.msdn.com/netmfteam/archive/2008/03/04/using-the-dispatcher.aspx  deki yöntemi kullandım. Tabii bizim uygulama için bir kaç yerini özelleştirmek gerekti. İsteyene tam kaynak kodlarını verebilirim.

public class Timer
{
      public  string zaman="";
      private Text textView;
      private DateTime start;
      private DispatcherTimer dispatchTimer;
      public Timer(Text text)
      {
      textView = text;
      textView.TextContent = new TimeSpan(0).ToString();
      start = DateTime.Now;
      }

      public void Start()
      {
          dispatchTimer = new DispatcherTimer(textView.Dispatcher);
          dispatchTimer.Tick += new EventHandler(UpdateTimerText);
          dispatchTimer.Interval = new TimeSpan(0, 0, 5);
          dispatchTimer.Start();
      }

     public void UpdateTimerText(object sender, EventArgs e)

     {
        textView.TextContent = DateTime.Now.ToString();
        int acsaat = 0, acdak = 0,kasaat=0,kadak=0;
        kasaat = Convert.ToInt16(zaman.Substring(19, 5).Substring(0, 2));
        kadak = Convert.ToInt16(zaman.Substring(19, 5).Substring(3, 2));
        acsaat=Convert.ToInt16(zaman.Substring(12, 5).Substring(0,2));
        acdak = Convert.ToInt16(zaman.Substring(12, 5).Substring(3, 2));
        if (DateTime.Now.Hour == acsaat && DateTime.Now.Minute == acdak)
           Kontrol.Write(true);

        if (DateTime.Now.Hour == kasaat && DateTime.Now.Minute == kadak)
           Kontrol.Write(false);
      }
} 

Video su aşagıda

.Net Micro Framework cihazlar ile yapılaca bilecek örnek uygulamaların sayısı her geçen gün artmakta. Elze Kool un sitesinde Dare to Dream Different Challenge yarışması için hazırladıgı prototipde kullanacagı GSM modülü için hazırladıgı sınıfı yayınlamış. Cihazın özellikleri burada.
Açıkcası bende test etmek için can atıyorum, bu kart sayesinde 

-GPS Tracking
-GPS DataLogger
-Telemetri (uzaktan veri okuma)
-GPS ile üzerinde GSM modulu sayesinde online izleme ve çeşitli tetikleme işlemleri gerçekleştirilebilir.

GPS üzerinden alınan verilerle, yerleştirildigini nesnenin

-Belirli bir hızı geçtiginde
-Belirli bir mesafesi kat ettiginde
-Belirli bir bölgeden başka bölgeye nakil oldugunda 
-Veya ayarlanmış periyotlarda düzenli şekilde veri gönderimi gibi durumlarda

GSM modülündeki SMS veya GPRS ile online haber verebilir, çeşitli bilgileri iletebilir. Bu iki modülün tek çatıda birleşmesi kartın yeteneklerini elbette arttırıyor.
Elze nin örnek uygulaması heyecanla bekliyorum.

 

Telit firmasının ürünlerini Türkiye'de Epsilon Teknoloji Ltd. Şti. firmasından temin edebilirsiniz.


.Net Micro Framework Serial Port

Merhabalar, bu uygulamada micro framework platformunda seri port haberleşmesinin nasıl gerçekleştigini görecegiz.

Bunu görmek için 2 uygulamamız var birisi PC mizde çalışan veri gonderip almaya yarayan uygulamamız, digeri ise TahoeII üzerinde çalışan yine seri porttan veri geldiginde gösteren ve sag tuşa( SW8) bastıgımızda DateTime.Now dan saniye bilgisini gönderen uygulama.

Masa üstünde klasik aşagıdaki kodla COM portu açar ve veri bekleriz

        private void Form1_Load(object sender, EventArgs e)
        {
            sp1 = new SerialPort("COM6", 9600, Parity.None, 8, StopBits.One);
            sp1.Open();
            sp1.DataReceived += new SerialDataReceivedEventHandler(verigeldi);
        }

Açtıkdan sonra veri geldiginde 

string okunan = sp1.ReadLine();

okuruz ve textboxda görüntüleriz.

textBox2.Text = okunan;

PC gönderme işleminde ise sp1 açık iken

sp1.WriteLine(textBox1.Text);

ile göndermek mümkün. Masa üstünde işlem bu kadar, MF tarafındada aynısının yapılması gerekiyor.

CreateWindow fonksiyonundan önce 

SerialPort c1 = new SerialPort("COM1", 9600);
public Window CreateWindow()
        {
            mainWindow = new Window();
            mainWindow.Height = SystemMetrics.ScreenHeight;
            mainWindow.Width = SystemMetrics.ScreenWidth;
            mainWindow.Background = new SolidColorBrush(Colors.Black);

            text = new Text();
            text.Font = Resources.GetFont(Resources.FontResources.calibri);
            text.TextContent = "Seri Test Deneme v0.1";
            text.HorizontalAlignment = Microsoft.SPOT.Presentation.HorizontalAlignment.Center;
            text.VerticalAlignment = Microsoft.SPOT.Presentation.VerticalAlignment.Center;
            text.Width = 200;

...

...

...

            c1.ReadTimeout = 800;
            c1.Open();
            c1.DataReceived += new SerialDataReceivedEventHandler(okumaoldu);
       }

ile COM1 üzerinden okumaya hazır hale geliriz. Gelen veri bufferda tutulur. Onu göstermek için

switchlerden aşagıya basıldıgında görüntülemek için

        private void OnButtonUp(object sender, ButtonEventArgs e)
        {
            try
            {
                switch (e.Button)
                {
                    case Button.VK_DOWN:

  //alınan veriyi görüntülemek için
                        text.TextContent = "";
                        byte[] okunanb = new byte[20];
                        c1.Read(okunanb, 0, 20);
                        char[] okunanc = System.Text.UTF8Encoding.UTF8.GetChars(okunanb);

                        for (int i = 0; i < okunanc.Length; i++)
                            text.TextContent += okunanc[i];

                        c1.Close();
                        break;

                    case Button.VK_RIGHT:
//gönderim için
                        if(!c1.IsOpen)
                            c1.Open();

                        byte[] gond = System.Text.UTF8Encoding.UTF8.GetBytes("Saniye : "+DateTime.Now.Second.ToString()+"\n");
                        c1.Write(gond, 0, gond.Length);
                        //c1.Close();                       

                        break;
                }
            }
            catch (Exception ex)
            {
                text.TextContent ="HATA : "+ex.Message;
                //text.Invalidate();
            }
        }

 

Yukarıdaki kodda saga basınca veriyi gönderirir, alt tuşa baılınca görüntüler. Buradaki onemli nokta veri alırkende gönderirkende COM1 portu açık olmalı. En başta Open olarakda set edebilirsiniz. Diger onemli nokta bazı developer kitlerde SerialDataReceivedEventHandler handlerini COM portunu Open ettikten sonra Set etmeniz gerektigi.

Tahoe2 de ben bunu yaşamadım ama yinede belirteyim dedim AUG devkitlerde bu mevcut.

PC ile MF board arasındaki baglantıyı ise cross yaparak sagladım. Tıpkı şu şekilde 



Hepinize başarılar, sormak istedikleriniz olursa e-mail ile sorabilirsiniz.

Kolay gelsin...

 


Birinci resmin büyük hali için tıklayınız. İkinci resim için buraya. Ekran görüntüsü içinse buraya.

 



Windows 7 The Sensor and Location Platform

9 Şub 2009 In: .net

Aşagıdaki adresde şubat 2009 .NET Micro Framework SDK 3.0 ın döküman güncellemesi var.

.NET MF 2/2009 Doc Update

RTM Releasede eksik olan bazı sınıflar ve bir kaç güncel bilgilendirme içerir.

Download ettikten sonra,
WinXP de
- C:\Program Files\Microsoft .NET Micro Framework\v3.0\Documentation\NET MicroFramework Docs
Vistada ise
- C:\Program Files (x86)\Microsoft .NET Micro Framework\v3.0\Documentation\NET MicroFramework Docs

Ve VS yi yeniden başlatıyorsunuz.

Ben Kimim ?

Celiker BahceciMerhabalar, ben Çeliker BAHÇECİ. 2004 den beri özel sektörde bilgisayar mühendisligi ve egitmenlik yapıyorum. Yine aynı yılın Ekim ayından beri sitemde .Net ile programlama ve hayat görüşüm ile ilgili makalelerimi yayınlıyorum. Blogum dışında Yazgelistir.com, mobilnedir.com gibi ineta kapsamındaki bir çok siteye Microsoft teknolojileri ile ilgili yazılar yazmaktayım.
Bu site ile sizinde hayatınızı anlamlandırmanızda bir parça katkımın olması dilegiyle...


Arşiv