mbed NXP LPC1768 (örnek uygulama)

Başlatan MC_Skywalker, 24 Ocak 2011, 20:34:48

MC_Skywalker

Bir zamanlar piyasada BASIC STAMP adında PIC 16F84 ile yapılmış ve BASIC dili ile programlana MCU lar vardı. daha sonra bu BASIC gelişerek tüm PIC leri destekleyen bir dil olmuş bu arada da BASIC STAMP SX chipleri ile yola devam etmişti.

BASIC STAMP bir çok çizgi izleyen robot ve/veya Sumo robot gibi projelerde kullanılmıştı. 32bit ARM çekirdekli  MCU ların yaygınlaşması ile BASIC STAMP benzeri bir geliştirme ortamı NXP desteği ile çıkmış oldu.

WEB tabanlı kurulum gerekmeyen, Keil nin C/C++ derleyicisi ile desteklenen ve sağlam hazır kütüpanesi ile kolay kullanım olan mbed elektor tarafından yeni başlayanlar için 35 ARM projesi adında kitap ile de desteklenmekte.

#include "mbed.h"

DigitalOut myled(LED1);

int main() {
    while(1) {
        myled = 1;
        wait(0.25);
        myled = 0;
        wait(0.25);
    }
}


yukarıda görüleceği gibi kolayaca ilk program oluşturula bilmekte. kit üzerinde NXP LPC1768 nin tüm fonksiyonları hemen hemen tüm pinlere antanmış durumda.



yeni başlayanlar için kullanımı gayet basit. hızlıca çalışma yapıla bilinmekte.

Kiti ilk edindiğinizde yapmanız gereken USB portuna takmak ve kiti USB bellek olarak görmesini beklemek. Bu ilemden hemen sonra kitin flash bellek bölgesibde bulunan MBED.HTM sayfasını açıp siteye üye olarak kullanmaya başlamak.

Kit üzerindeki USB üzerinde porogramlanan bin dosyasının flash hafızaya alınması ve üzerindeki buton ile restlendikten sonra NXP LPC1768 programlanıyor ve çalışıyor. Aynı USB üzereinde sanal seri port olarak PC ile haberleşilmekte.

http://mbed.org/media/downloads/drivers/mbedWinSerial_16466.exe adersinden indireceğimiz sürücüyü bilgisayarımıza kurup aşağıdaki kodu derleyip, PC mizde terminal programımız çalıştırdığımızda sanal seri porttan üzerinden kitimiz gelen mesajı ekranda görebiliriz.

#include "mbed.h"

Serial pc(USBTX, USBRX); // tx, rx

int main() {
    pc.printf("Merhaba Dünyalı Biz Dostuz :)");
    while(1) {
        pc.putc(pc.getc() + 1);
    }
}


Aşağıda PWM out ile RGB led animasyonu denemesi. FxDev'in sitesindeki kodların kit üzerindeki ledlerden pin çıkışlarana yönledirilmiş hali

#include "mbed.h"                   //Bütün giriş çıkış ve ayarların tanımının olduğu Header (başlık) dosyası
 
int main()
{
    int i=0, t=0;
    float j=0, k=0;
    while(1)                    // Sonsuz döngü girişi
    {
        PwmOut LEDRPWM(p22);     // PWM çıkış pinlerinin tanımlan
        PwmOut LEDGPWM(p21);
        PwmOut LEDBPWM(p23);
 
        for(t=0;t<10;t++)
        {
            for(i=0;i<500;i++)
            {
                LEDRPWM = 1-j;
                LEDGPWM = 0.060-k;
                LEDBPWM = 0.010+k;
 
                j=j+0.02;
                k=k+0.01;
                wait_ms(10);
             }
            j=0; k=0;
            for(i=0;i<500;i++)
            {
                LEDRPWM = j;
                LEDGPWM = 0.010+k;
                LEDBPWM = 0.060-k;
 
                j=j+0.02;
                k=k+0.01;
                wait_ms(10);
            }
            j=0; k=0;
        }
   }     
}




death_free

hocam güzel bi çalışma olmuş..emeğine sağlık:)

bende lpc2378den  lpc1768 e geçmeyi düşünüyorum..72mhz zar zor yetti cünkü sistemime..lpc1768 in 100mhzi yeticek gibi..yetmezsede lpc1769 sipariş edicem çünkü 120mhz miş..

bugun kiti siparişini vericem
www.expkits.com 'dan.. 1768 i bi kurcalayalım bakalım..Sonuçlar tatmin edici olacakmı.
<<<<<Aslana sormuşlar ensen niye kalın ? Aslan : "Kendi işimi kendim görürüm " demiş>>>>  World Of Warcraft Cataclysm  /// REalm : Frostmane  Nightwalkér

MC_Skywalker

Geliştirici olmadığım (bakımcıyım) için benim için öğrenemek yavaş gidiyor. Bu mbed kiti çok iyi geldi benim için. bu kit ile birşeyler yapabilidikten sonra hedefim  LPCExpresso kitim ile çalışmak

size tavsiyem http://www.embeddedartists.com/ şuarda ki kitleri incelemeniz.

zira bu firma LPCExpresso kitlerini tasarlayan ve üreten ve mbed kiti fiziksel olarak üreten firma.



death_free

kiti sipariş ettik www.expkits.com dan yarın inşallah elimizde..inceleyelim bi lpc2378 le kıyaslıyayım (proje bazında) sonuclar ne olucak görücez..
<<<<<Aslana sormuşlar ensen niye kalın ? Aslan : "Kendi işimi kendim görürüm " demiş>>>>  World Of Warcraft Cataclysm  /// REalm : Frostmane  Nightwalkér

rree

Bende spariş ettim 27.2 Euro tuttu   Posta ile gönderi seçtim. problem çıkmıyordur inşallah.Sizin sayenizde Lpc geçeceğim.Gerçi Lpc ile bir projemde yok. Pic serileri yetiyor. Şu proje olur belki.Pic de multi tasking program yazmıştım.Pic 18 serisi idi hız 40 kat düşmüştü dolaysıyla türkçesi Çoklu program çalıştırma olması lazım. Kullandığım deyim cümller standar dışı ise şimdiden özür dilerim.Konuya dönersek bizim için aynı zaman çalışan programlar  (işlemciler için sırayla yürütülen) lpc hızınla avantajlı hale gelebilir. Bir yandan lcd ye bilgi aktarırken
bir yandan motor sürer diğer taraftan girişlerden gelen bilgileri toplar.Düşünce böyle ama hazır kütüphaneler
multi tasking işleminde çalışırmı?. Lpc yi daha elimi sürmeden   hayele bak. ;D

death_free

Hayırlı akşamlar öncelikle...
picle kac tane işlemciyle yapıyordun bunu..
bizde 9 tane 8051le 5 eksen 320x240 grafik lcdli makina imaltı yapıyoruz ...
arm ye gecme isteğimiz yeni teknoloji yüksek hız kompak ürünler imal etmek..bu yüzden kendimi arm üzerinde geliştirmek için picprojeyi incik cinccik ediyorum bişeyler yakalarım diye.şuan lpc2378 le 5 eksen bi program olusturduk sonuclar güzel.armda  multitasking oluyor aslında sıralı calısıyor ama okadar hızlıki ben multitasking diyorum buna..gercek multi taskingi ama siemensin simotion d435 inde görmüştüm..gercekten iyidi  :)
<<<<<Aslana sormuşlar ensen niye kalın ? Aslan : "Kendi işimi kendim görürüm " demiş>>>>  World Of Warcraft Cataclysm  /// REalm : Frostmane  Nightwalkér

rree

Kitler gelsin forum da multi tasking uygulaması bölümü açalım.CNC deney amaçlı bende yapmıştım.Programı visual 5 ile yazmıştım.Motorları parelel porttan sürmüştüm.Kullandığım makina intel 486dx 4x100Mhz işlemcili idi. Aynı programı pentium makinalarda calistırdım. İşlemciler çok hızlı çalıştığından şimdi program düzgün çalışmıyor.Gecikmeleri döngüler ile yapmıştım.  Motor kontrolu lpc ile yaparsak istediğin pcyi bağla.

MC_Skywalker

ADC ve PC ile haberleş kısmını beraber içeren bir örnek eklemek isterim. amaç sadece PC ye kit dışından alına bir değeri yorumlayıp hyper terminal aracılığı ile görüntülemek.

#include "mbed.h"

Serial pc(USBTX, USBRX);
AnalogIn potans(p20);

float i = 0;
 
int main()
{
    pc.printf("\x1B\x48\x1B\x4A");                             //imlec satirbasina ve ekrani temizle VT52 komutlari
    pc.printf("*****[ VOTLTMETRE]*****");             // :)
    while(1)                                                               //Sonsuz dongu 
           {                                
           pc.printf("\x1B\x48");                                   //imlec satirbasina VT52 komutlari
           i = potans.read();
           pc.printf("\n\n\rOkunan %4.2f  ",i);              //ADC den okunan degeri gosterir. %4.2f kayan 
           pc.printf("\n\n\rVoltaj %4.2f volt ", i*3.3);   //nokta degeri noktadan once 4 basamak noktadan 
                                                                               //sonra 2 basakmak goster ----> 1234.12
           wait(0.5);                                                    //Yeni isme yapmadan once bekleme yapiyoruz
           }
}                                               

MC_Skywalker


death_free

görmüştüm güzel olmuş gercektende.bende makinayı canlandırayım videosunu paylasıcam sizlerle  ;)
<<<<<Aslana sormuşlar ensen niye kalın ? Aslan : "Kendi işimi kendim görürüm " demiş>>>>  World Of Warcraft Cataclysm  /// REalm : Frostmane  Nightwalkér

MC_Skywalker

Bende step motor çalışmama geri dönmeye kara verdim. PIC ile uğraşırken sıkılmıştım. ST nin GS-D200S step sürücü modülü ile denemeler yapıyordum. Hatta ozamnlar burada konu açmıştım

SANYO DENKI 103-770-6 Step-Syn motor ( BI/UNI Polar) datasheet --> http://www.rta-deutschland.de/pdf/103-770.pdf
Adet ST SG-THOMSON GS-D200S 2/2.5A Bipolar Stepper Motor Drive modüle  datasheet --> http://www.st.com/stonline/products/literature/ds/2666.pdf

tekrar bir el atayım. sorun olduğunda fikir alışverişinde bulunmak isterim. mbed (ARM) step güzel ikili olacak

death_free

Neden olmasın hocam konusuruz her konuda   :)   kesinlikle arm + step süpper olacak

Bizde step sürücümüzü kendimiz yapıyoruz.yıllardır da masallah herhangi bi sıkıntı olmadı..motorlarıda ya EVER kullanıyoruz..



<<<<<Aslana sormuşlar ensen niye kalın ? Aslan : "Kendi işimi kendim görürüm " demiş>>>>  World Of Warcraft Cataclysm  /// REalm : Frostmane  Nightwalkér

MC_Skywalker

#13
ARM kurcalmaya devam.




sadece motor dönüşünü görmek için yazmış olduğum kod. :)

#include "mbed.h"

DigitalOut  mot1yon(p17);        //1. motor icin yon
DigitalOut  mot1en(p19);         //1. motor icin enable pwm kullanılacagi zaman p21 nolu uc kullanlacak 2khz.
DigitalOut  mot1ledF(LED1);
DigitalOut  mot1ledR(LED2);

int main()
{
    while(1)
    {
        mot1yon = 0;
        mot1en = 1;
        mot1ledF = 1;
        mot1ledR = 0;
        wait(5);
        mot1yon = 1;
        mot1en = 1;
        mot1ledF = 0;
        mot1ledR = 1;
        wait(5);
    }
}      
       


DEno_12

güzel çalışma kullandığın motorlar nerden??