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.
- Ş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.