Menu

DIYSAT Model Uydu Uçuş Bilgisayarı (IHU-2)

Model uydu çalışmasında IHU’nun projede ne amaçlı kullanıldığına daha önceki yazımızda değinmiştim. Bu yazının konusu ise prototip olarak üretimini tamamladığım ve çalışan IHU olacak. DIYSAT-IHU’nun belkemiğini oluşturan mikrodenetleyicimiz bir adet ATmega328P entegresidir. Bunun tercih edilmesinin sebebine gelince, Arduino Uno üzerinde aynı işlemcinin bulunması, mikrodenetleyiciyi programlamak için ayrıca bir ara birime gerek kalmadan mevcut imkânlarla programlanabilmesiydi.

Buna ek olarak IHU devre şemasına ayrıca tümleşik bir de TTL Seri Haberleşme bağlantısı ekledim ki, kart üzerinden sökülmeden programlanabilsin…

Resim-1. ATmega328P Mikrodenetleyicinin genel görünümü.

Resim-1. ATmega328P Mikrodenetleyicinin genel görünümü.

Öncelikle bu mikrodenetleyicinin özelliklerini yakından tanıyalım.

ATmega328P, aynı zamanda IHU’nun Mikrodenetleyici Özellikleri

• High Performance, Low Power AVR® 8-Bit Microcontroller

Advanced RISC Architecture

– 131 Powerful Instructions – Most Single Clock Cycle Execution
– 32 x 8 General Purpose Working Registers
– Fully Static Operation
– Up to 20 MIPS Throughput at 20 MHz
– On-chip 2-cycle Multiplier

High Endurance Non-volatile Memory Segments

– 32K Bytes of In-System Self-Programmable Flash progam memory
– 1K Bytes EEPROM
– 2K Bytes Internal SRAM
– Write/Erase Cycles: 10,000 Flash/100,000 EEPROM
– Data retention: 20 years at 85°C/100 years at 25°C(1)
– Optional Boot Code Section with Independent Lock Bits

In-System Programming by On-chip Boot Program True Read-While-Write Operation

– Programming Lock for Software Security

Peripheral Features

– Two 8-bit Timer/Counters with Separate Prescaler and Compare Mode
– One 16-bit Timer/Counter with Separate Prescaler, Compare Mode, and Capture Mode
– Real Time Counter with Separate Oscillator
– Six PWM Channels
– 6-channel 10-bit ADC in (PDIP Package)

Temperature Measurement

– Programmable Serial USART
– Master/Slave SPI Serial Interface
– Byte-oriented 2-wire Serial Interface (Philips I2C compatible)
– Programmable Watchdog Timer with Separate On-chip Oscillator
– On-chip Analog Comparator
– Interrupt and Wake-up on Pin Change

Special Microcontroller Features

– Power-on Reset and Programmable Brown-out Detection
– Internal Calibrated Oscillator
– External and Internal Interrupt Sources
– Six Sleep Modes: Idle, ADC Noise Reduction, Power-save, Power-down, Standby, and Extended Standby

I/O and Packages

– 23 Programmable I/O Lines
– 28-pin PDIP, 32-lead TQFP, 28-pad QFN/MLF and 32-pad QFN/MLF

Operating Voltage:

– 1.8 – 5.5V for ATmega48PA/88PA/168PA/328P

Temperature Range:

 -40°C to 85°C

Speed Grade:

– 0 – 20 MHz @ 1.8 – 5.5V

Low Power Consumption at 1 MHz, 1.8V, 25°C for

– Active Mode: 0.2 mA
– Power-down Mode: 0.1 μA
– Power-save Mode: 0.75 μA (Including 32 kHz RTC)

Şimdi, zaten elimizde bir adet Arduino Uno varken IHU için ikincisinin alınmasına gerek yok. Bunun yerine biz sadece mikrodenetliyici edinerek bu işlemi tamamlayacağız ve programlama için bu Arduino Uno ve USB kablosunu kullanacağız. Bu USB kablo ya da standart bir USB şarj kablosu da DIYSAT’a doğrudan takılarak hem güç sağlama hem de güç katı (EPS) üzerinden bataryaların şarjını sağlayacak.



Yeni mikrodenetleyicimizin işlemlerine başlayalım. Yeni mikrodenetleyicimizi kullanmadan önce üzerinde küçük bir çalışma yapmamız gerekiyor.

Resim-2. Arduino Üzerinde bulunan bir ATmega328P mikrodenetleyicisi.

Resim-2. Arduino Üzerinde bulunan bir ATmega328P mikrodenetleyicisi.

Yeni Mikrodenetleyicimiz İçin Niçin Ön İşlem Gerekiyor?

Yeni aldığınız bir Arduino Uno hemen kod yazmaya ve yüklemeye hazır haldedir. Ancak DIYSAT için haricen ve yeni bir ATmega328P mikrodenetleyicisi kullanacağımız için küçük bir ön hazırlık yapmamız gerekmektedir. Kısacası yeni aldığınız ATmega328P mikrodenetleyicisini Arduino Uno üzerinde bulunan ATmega328P entegresi ile doğrudan değiştirip kullanmanız mümkün değildir. Bunun sebebi henüz yeni mikrodenetleyici üzerinde bir önyükleyici “Bootloader” bulunmamasıdır. O halde bu işlemi bizim yapmamız gerekiyor.

Bunun için aşağıda resmi görülen devreyi kurmanız gerekiyor. Bu konuda bir breadboard pratikliği işimizi oldukça hızlandıracaktır. Bu konuda Internet’e arama yaptığınızda iki devre şeması göreceksiniz ki; biri aşağıdaki, diğeri ise direnç ve kristal olmayandır. Diğerini boş yere tercih edip zaman kaybetmeden doğrudan bu devreyi kurmanızı öneririm.

Resim-

Resim-3. Bağlantı şeması

Kullanılacak Malzemeler

  • 1 Adet ATmega328P mikrodenetleyici
  • 1 Adet 16MHz kristal
  • 2 Adet 22pF seramik kondansatör
  • 1 Adet 10K direnç (Direnç Rengi: Kahverengi-Siyah-Turuncu)

Bu işlem yapılırken Arduino Uno üzerinde kendi ATmega328P mikrodenetleyici, breadboard üzerinde ise yani yeni aldığınız ATmega328P mikrodenetleyici takılı olmalıdır.

Resim-4. Arduino IDE üzerinde Arduino ISP menüsü.

Resim-4. Arduino IDE üzerinde Arduino ISP menüsü.

 

Kablo bağlantılarının tamamlanmasından sonra Arduino Uno’nun USB kablosunu takalım. Araçlar / Port menüsünden bağlantı portumuzun aktif olup olmadığını kontrol edelim. Sonra sırayla;

– Arduino IDE penceresinden, “Dosya / Örnekler / 11.ArduinoISP / ArduinoISP“yi seçelim.
– Arduino IDE penceresinden, “Araçlar / Programlayıcı: “Arduino as ISP” / Arduino as ISP“yi seçelim.
– Arduino IDE penceresinden, “Araçlar / Önyükleyiciyi Yazdır“ı seçelim.

Yeni bir pencere açılacak ve yüklenmiş kodlar karşımıza gelecektir. Kodlara hiç dokunmadan sadece bir kez kodlarımızı Arduino Uno’ya yükleyelim. (ArduinoISP kodlarını içeren dosyayı yazının sonundan indirebilirsiniz.) Bunu için Arduino IDE’de bulunan yükleme butonunu kullanabilir veya kısayoldan “CTRL-U” ile de yapabilirsiniz.

Eğer alt siyah kısımda turuncu renkli herhangi bir hata kodu görünmüyor ve alt bar üzerinde “Yükleme Tamamlandı…” bilgisini görüyorsanız işlem başarıyla tamamlanmış demektir. Artık sırayla USB bağlantısını çıkarıp Arduino Uno ile breadboard üzerindeki bağlantıyı ayırabilirsiniz.

Buraya kadar olan çalışmayı tamamlamakla Arduino Uno’yu bir nevi programlayıcı olarak kullanıp, yeni ATmega328P entegremizi programladık, daha doğrusu programlamaya hazır hale getirmek için Bootloader yükledik. Daha teknik anlatımla; yaklaşık olarak 2KB hafıza kaplayan bu Bootloader uygulaması ile ATmega328P entegremizi alma (RX) ve gönderme (TX) portlarını kullanarak yeni yazılım yüklenmesine hazır hale getirmiş olduk.

Aslında buraya kadar olan işlemleri yapmakla artık oldukça ekonomik kendi Arduino’nuzu üretebilir halde gelmiş sayılırsınız. IHU’da bir anlamda yapay bir Arduino gibi verilen görevleri yerine getirmektedir.

IHU’nun Tanıtımı

DIYSAT IHU’nun genel (prototip) görünümü aşağıdaki şekildedir. Bir model uçuş bilgisayarı olmasına rağmen plaket üzerinde çok fazla bileşen bulunmamaktadır. Bu haliyle el yapımı bir Arduino Uno olarak da tanımlanabilir. Mikrodenetleyicinin üst kısmında bulunan (6-7 nolu) birimler ATmega328P’nin harici kristal ile çalıştırılması için, hemen sağ kısımda görünen iki direnç ve bir kondansatör ise TTL Seri Haberleşme için kullanılacak olan pinler içindir.

Resim-5. DIYSAT prototip PCB çizim.

Resim-5. DIYSAT prototip PCB çizim.

Resim-6. DIYSAT prototip PCB 3D görünüm.

Resim-6. DIYSAT prototip PCB 3D görünüm.

Planlanan yapıda mikrodenetleyicinin besleme ve GND uçları ile analog ve dijital pinlerinin tümü gerektiğinde kullanılabilmek için BUS üzerindeki iletim hatları ile pinlere taşınmıştır.

Resim-7. DIYSAT IHU prototipinin genel görünümü.

Resim-7. DIYSAT IHU prototipinin genel görünümü.

1. Güç açık LED’i,
2. Reset butonu,
3. On/Off mini anahtar,
4. 2×32 pinlik BUS,
5. Programlanmış ATmega328P mikrodenetleyicisi,
6. 16MHz kristal,
7. 22pf seramik kondansatörler.

IHU gücünü EPS kartından BUS (1 ve 63 nolu pin:Vcc) aracılığı ile almakta ve regüle edilmiş 5V ile beslenmektedir. Sağ tarafta görülen LED ve direnç ikilisi prototip tasarımda karta güç taşınıp taşınmadığının görülmesi içindir. Normal PCB’de bulunmayabilir ve sistemin çalışması bundan etkilenmeyecektir.

Resim-8. DIYSAT IHU kristal yerleşimi.

Resim-8. DIYSAT IHU kristal yerleşimi.

Hatırlatma

Gerek delikli plaket (pertinaks) ve gerekse PCB üzerinde yerleşim yaparken kristalin ve kondansatörlerin olabildiğince mikrodeneyleticiye yakın yerleştirilmesine önem verilmelidir.

DIYSAT üzerinde çalışma yapmak isteyen arkadaşlarımız için ihtiyaç duyabilecekleri pin paritası (pin map) aşağıda indirilebilir dosya bölümünde yer almaktadır, Bu haritada hangi pinin hangi pine karşılık geldiği (Arduino Uno BUS ve ATmega328P pin karşılıkları dahil) numaraları ile birlikte verilmiştir. Diğer analog ve dijital pinler kullanıcı tarafından kullanılmak üzere boş bırakılmıştır.

model-kup-uydu-ihu-obc-malzeme-listesi

Resim-9. DIYSAT-IHU malzeme listesi.

Makale içinde geçen indirilebilir dosyalar

Beğen  2
Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Yapılan Yorumlar ( 6 )