Proteus Isis ile Arduino Simülasyonu Yapmak
UÄŸurcan Bastık // 28 AÄŸustos 2012 // 27 yorum // kategori: Devre Tasarımı ve SimülasyonMerhaba ben UÄŸurcan bu benim arduinoturkiye.com‘daki ilk makalem umarım beÄŸenirsiniz.
Bu makalemde size Proteus Isis ile arduinonuzu nasıl kolay bir ÅŸekilde simüle edeceÄŸinizi anlatacağım. Devrelerinizi tasarladıktan sonra onları simüle etmek gerçekten önemli. Size zaman kazandırır. Yaptığınız hataları daha kolay görürsünüz. Yazdığınız programın düzgün çalışıp çalışmadığını kontrol edersiniz. Bunun için aklımıza gelen devreleri anında protoboardlara veya delikli plaketlere yapmak yerine isis’te çizip simüle edip denemek size zaman kazandırır. Ve boÅŸa kaynak harcamazsınız.
Yapacaklarımız kısaca şunlar:
Yeni bir isis tasarımı açıp sayfamıza bir ATmega328 mikrokontrolör ekliyoruz çalışması için gerekli olan cristali ve kapasitorleri baÄŸlıyoruz ATmega’nın çalışması için minumum devreyi hazırlıyoruz. Bu arada simülasyon yapmak için elimizde programımızın .hex dosyası olması gerek maalesef arduino idesi bunu doÄŸrudan bize vermiyor. Ama .hex dosyasını arduino idesinde yazdığımız programı upload ettiÄŸimizde temp klasöründen bulabiliyoruz. Son olarakta isiste kurduÄŸumuz devredeki ATmega kontrolörüne programı yüklediÄŸimizde, boom herÅŸey mükemmel çalışıyor:) . AÅŸağıda size herÅŸeyi adım adım resimler ile anlatayım.
- Device kısmımıza ATmega328 mikrokontrolörü, CRYSTAL kristal ve CAP kapasitör yani kondansatör ekliyelim. Sonra sayfamıza bir ATmega328 mikrokontrolörü , bir adet kristal ve 2 adet te kondansatör yerleştirelim. Aşağıdaki gibi yerleştirir iseniz bağlantıları çizerken daha kolay olabilir.
- Şimdi kristal ile ATmega arasındaki bağlantıyı resimdeki gibi yapalım. Dikkat edin kristalin bir ucu PB6/XTAL1 bacağına diğeri ise PB7/XTAL2 bacağına bağlanılacak. Ardından kutupsuz kondansatörlerimizin bir bacağını kristalin bir bacağına diğerine ise toprağa şekildeki gibi bağlayalım.
(görselde ufak bir hata var. C2 kondansatörünün değeri 22pf olacak!)
- Sonrasında devremize bir power terminali ekleyelim. Kontrolörümüzün çalışması için minumum gerekli devre için PC6/RESET, AREF ve AVCC bacaklarını VCC olarak ayarlanmış olan Power terminalimize bağlayalım.
- Åžimdi yazdığımız programı simüle edebilmek için devremizdeki ATmega328 mikrokontrolörü üzerinde birkaç ayar yapmamız gerek çünkü kullandığımız ayarlar standart ayarlar deÄŸil ve simülasyonda ATmega’nın çalışması için osilatör ayarlarının doÄŸru yapılması gerek. Devremizdeki ATmega’nın üzerine çift tıklatarak açtığımız ayar penceresini aÅŸağıdaki resimdeki gibi düzeltin. CLKDIV8 yazan bölümü “(1) Unprogrammed” olarak deÄŸiÅŸtirin. Ardından CKSEL Fuses bölümünü de “(1111) Ext. Crystal 8.0-Mhz” olarak deÄŸiÅŸtirin. Clock frequency bölümünündeki “(Default)” yerine “16Mhz” yazın. Ä°ÅŸte tamamdır.
- Åžimdi sıra devremizi simüle etmek için yazdığımız programı mikrokontrolörümüze yüklemeye geldi. Öncelikle ÅŸunu bilmeliyiz ki Isis’te simüle etmek için programımızın hex olarak derlenmiÅŸ olması gerekiyor. Arduino idesi bize doÄŸrudan .hex dosyasını vermiyor. Ama programı upload ettiÄŸimizde program hex olarak derlenip arduinoya yükleniyor bu sırada da hex geçici dosya olarak temp klasörüne gidiyor. Biz .hex dosyasını oradan alacağız. Temp klasörü windows 8 ve windows 7 için “C:\Users\<kullanıcı_adı>\AppData\Local\Temp”  yolunda, windows xp için “C:\Documents and Settings\<kullanıcı_adı>\Local Settings\Temp” yolunda olması gerek eÄŸer yanlışım varsa lütfen düzeltin. Unutmayın Arduino idesinin programı derleyeceÄŸi boardın Arduino Uno olduÄŸundan emin olun.
- Ben Arduino örneklerinden Blink’i upload ettim Biliyosunuz blink’te 13.pine baÄŸlı olan ledi yakıp söndürüyorduk. Tabii arduino bilgisayarıma baÄŸlı deÄŸildi ve baÄŸlı olmasınada gerek yok, com.. Port bulunamadı diye bir hata alabilirsiniz hiç önemli deÄŸil es geçin lütfen. Sizde programınızı yazdıktan sonra upload tuÅŸuna basın. Sonra temp klasörüne girip son deÄŸiÅŸtirilen klasöre girelim karşımıza Sketch_ismi.cpp.hex gibi bir dosya çıkacak muhakkak oradadır. Onu kopyalayıp istediÄŸimiz bir yere yapıştıralım temp klasöründe durması sakıncalı çünkü silinebiliyor bir süre sonra. Ardından tekrar isis’teki sayfamıza dönelim ATmega’nın üzerine çift tıklayıp açtığımız düzenleme penceresinden Program file bölümündeki tuÅŸa tıklayalım yapıştırdığımız yoldan .hex dosyamızı seçelim ve ok diyip çıkalım.
- Vee neredeyse herşey bitti şimdi sadece play tuşuna basıp devremizi simüle etmek kaldı.
Eğer tüm adıları doğru takip edip uyguladıysanız devreniz mutlu mesut çalışacaktır. Eğer bir sorun varsa tekrar tekrar denemekten vazgeçmeyin hatanızı bulmak için en baştan başlayabilirsiniz. Birde şunu söylemem gerek hangi bacak hangi pin oluyor diye soracak olursanız aşağıdaki resimde ben her bir pini ifade eden terminaller bağladım sizde yapabilirsiniz. Hatta aşağıda makalede yer alan tüm dosyaları (isis tasarımı, .hex dosyası ve makale görsellerinin yer aldığı bir klasör) ekliyorum. İstediğiniz gibi kopya çekin, üzerinde yapın, değiştirin, geliştirin.
Makale dosyalarını Skydrive’ıma attım buda http://sdrv.ms/OqnLMY
linki. (isis tasarımı, .hex dosyası ve makale görsellerinin yer aldığı bir klasör)
Umarım makalem hoşunuza gitmiştir, eğer hatalarım varsa nolur mazur görün bu benim ilk makalem ve hatalarımı belirtmekten çekinmeyin:) Siz söylediğinizde benim düzeltmem için fırsatım olur. Kendinize iyi bakın:).
Etiketler: arduino > arduino ide > Arduino sümülasyonu > Arduino Türkiye > Arduino Uno > blink > LED > Proteus > Proteus isis > Proteus Isis İle Arduino Simülasyonu > Proteus Isis İle Arduino Simülasyonu Yapmak > simülasyon
Çok ilgi çekecek bir yazı olmuş, eline sağlık. Aramıza hoşgeldin Uğurcan.
Teşekkür ederim. Hoşbuldum:)
Tebrikleri Aurdino ile uğraşanlar için güzel bir makale olmuş 🙂
teşekkürler gerçekten faydalı bir paylaşım.
döküman çok güzel olmuş, fakat yaptığın tasarladığın küçük devreleri veya robotları bu simulator üzerinde anlatırmısın? video hiç fena olmaz 🙂
şimdiden teşekkürler..
öncelikle paylaşımın benim için çok yararlı oldu çok teşekkür ederim. benim bir sorum olucak arduinoda analog giris denediğimde simulasyon çalışmıyor analog giriş yokmuş gibi davranıyor neden olabilir ?
Merhaba kodunuzda o pinleri Setup metodunda analog giriş olarak ayarladınız mı acaba? Geç cevap verebildiğim içinde çok özür dilerim.
merhabalar , öncelikle size ve tüm site yetkililerine bu paylaşımcı ve özverili çalışmalarınız için teşekkür etmek istiyorum. bu konuyla ilgili bir sorum var , win8-64 bit kullanıyorum . Aynı şekilde uno yu seçtim blink uygulamasını upload ettim fakat temp klasöründe hiçbir değişim olmadı. hex dosyası nerede olabilir ?
ek olarak temp klasörüm ÅŸurada ” C:\Windows\Temp ” bilmiyorum fark eder mi .p
“win 7 -64 bit” olcaktı
arduino 1.0 ingilizce versiyonda üst menüde File -> Preferences e girdikten donra Show verbose output during [x] compilation seçeneğini işaretleyin. programı/sketch i compile ettiğinizde alttaki operasyonu izleme ekranının en alta yakın yerinde programaadı.cpp.hex şeklinde dosyanın yerini path i le beraber görebilirsin.
çözüldü teşekkür ederim
“Tabii arduino bilgisayarıma baÄŸlı deÄŸildi ve baÄŸlı olmasınada gerek yok, com.. Port bulunamadı … upload tuÅŸuna basın.”. Elimde ÅŸu an için aurdinio kart olmadığı için, driver kuramadım. Yani önceden cihaz kurulu deÄŸil. Bu yüzden upload hiç olmuyor. (processing.app.SerialNotFoundException: Serial port ‘COM1’ not found. Did you select the right one from the Tools > Serial Port menu?) uyarısı alıyorum. Cihaz elimizden olmadan çalıştırmamız mümkün deÄŸil mi?
Ä°yi günler o hatayı boÅŸverin temp klasörüne gidin ve oluÅŸturulan en yeni klasörün içinde “build5793092950515551698.tmp” gibi bir klasördür bu onu içinde “sketch_adi.cpp.hex” gibi bir hex dosyası var onu alıp isiste kullanmanız gerek iÅŸlemde bir arduino boarduna ihtiyaç yok yani.
Ä°lk önce Temp klasörleri arasında bulamamıştım. Özellikle win7 oldukça fazla var. En sonunda “cpp.hex” ÅŸeklinde aratınca buldum. Yardımlarınız için çok teÅŸekkür ederim.
Çok faydalı bir paylaşım teşekkürler.
Merhaba,
Güzel bir anlatım olmuÅŸ. Benim merak ettiÄŸim baÅŸka birÅŸey var: Arduino YUN aldım ve onun çipini kullanmak istiyorum. Ancak üzerindeki ATmega32u4 iÅŸlemci sanırım proteusda yok. Hatta adında ‘u’ olan diÄŸer iÅŸlemcilerde yok gibi. U’lu iÅŸlemcilerin olayı nedir bir fikriniz var mıdır acaba?
Ä°yi günler geç cevap yazdığım için kusura bakmayın. Siz söyleyene kadar fark etmemiÅŸtim ancak baktım ki http://www.labcenter.com da isis de desteklenen denetleyiciler arasında yok ne yapabiliriz diye düşündüm. Şöyle bir simulatör var http://virtronics.com.au/Simulator-for-Arduino.html. bu simulatörün tam sürümünü alırsanız veyahut bir yerlerden edinirseniz sketchlerinizi simule edebiliyor ancak isis gibi beklememek lazım arduinonun çıkışlarına led fln baÄŸlayamıyorsunuz ancak herbir çıkışın ne durumda olduÄŸunu ne geldiÄŸini görebiliyorsunuz. Açıkçası atmega 32u4 desteklenmemesine ÅŸaşırdım. Kütüphane araÅŸtırdım ancak oda yok. Ayrıca Yun alıp nasıl bir simulasyon yapacaksınız onuda anlamış deÄŸilim pek. Çünkü Yun’u Yun yapan ÅŸeyleri zaten kullanamayacaksınız simulatörde, eÄŸer daha basit uygulamalar yapacaksanız uno üzerinde koda hakim olun simulasyonlar yapın kodda fark olmadan yani çok fark olmadan kodu diÄŸer boardlara uyarlayabilirsiniz. Nasıl bir uygulama yapmak istiyorsunuz?
Merhabalar, ISIS de arduino uygulamalarını yapmaya bu şekilde başladım ben de yeni bulduğum bir library ile artık arduino kartını direk olarak ISIS ee çağırabiliyoruz. Buradan okuyabilirsiniz.
http://mvaslan.blogspot.com/2014/01/proteus-isisde-arduino-simulasyonu-nasl.html
verdiğiniz bilgiler için çok teşekkür ederim
gerçekten faydalı bir makale olmuş
8.1 versiyonuyla Arduino importu da mümkün artık. hiçbirşey yapmadan tüm arduino kartı ekleyebiliyorsunuz.
isis de ardino buton ygulamasında butonu görmüyor.problem ne olabilir?
merhabalar isiste attiny85 ile simülasyon yapmak istiyorum ama bir türlü çalıştıramadım bredboard üzerinde yaptığım çalışmaları çalıştırıyorum ama isiste yapamıyorum bana bu konu hakkında yardımcı olabilirmisiniz? şimdiden teşekkürler.
şurada da anlatılmış kayıtlarımızda dursun http://www.elektrikport.com/teknik-kutuphane/proteus-ile-arduino-simulasyonu/12005#ad-image-0
yazılım kısmıyla ilgili bir sorum olucak blink 13. pin ama burda ledi 19.pine bagladık nasıl çalışıyor
proteusta entegrenın gerçek bacak numarası belirtilmiş. 13 nolu konnektor 19 nolu işlemci bacağına bağlı. utku araştırsaydın keşke.
UÄŸur”can” kadreÅŸim;
Önce eline ve aklına saÄŸlık, bileÄŸine kuvvet. Herzaman söylemeye çalıştığım gibi, “bilginin bir sır gibi saklandığı” bir zamanda, böylesine güzel ve faydalı bilgiler verdiÄŸin için teÅŸekkürler.
Ben bir “elektronik amatör”üyüm. Zaman zaman bilgi konusunda sıkıntılara düşüyorum. Son uÄŸraÅŸtığım konu, pic programlama. Bu konuda size “yazıp yazamayacağımı” belirtebilirseniz, çok memnun olurum.
Bu yazıyı “elinize saÄŸlık” demek için yazdım. Kalın saÄŸlıcakla.
tabi tabi neden olmasın buyrun e-posta adresim ugurcanb@outlook.com elimden geldiğince yardımcı olmaya çalışırım.