Fiziksel bir ortam kurmak yerine simulasyon üzerinde çalışmak neyi sağlar? Dezavantajları nelerdir?
FPGA Tabanlı Kontrol
FPGA ve MCU arasındaki farklar nelerdir? FPGA ne zaman tercih nedeni olmalıdır?
FPGA’e bağlı 10 bitlik bir ADC çipi kulunmaktadır. Bu ADC çipinin çıktı sinyalleri clk, data[9:0], dataValid’dir. Bu sinyalleri kullanarak bir sıcaklık sensörü verisini okuyup eğer sıcaklık 50 derece’nin üzerinde ise FPGA’e bağlı bir LED’i aktif yapan, değil ise pasif yapan bir verilog tasarımı geliştiriniz. Sıcaklık sensörü 0-100 derece arasında çalışmaktadır.
FPGA’e bağlı motor sürücü entegresini kontrol edecek bir verilog tasarımı gerçekleyiniz. Entegrenin clock çıkışı, 8 bitlik dIn girişi ve direction isimli bir bitlik girişi bulunmaktadır. Bu sinyaller ile aşağıda verilen pattern’i oluşturan bir tasarım yapınız. Clock frekansı 10MHz’dir.
Durma Yarı Hız ileri Tam Hız ileri Yarı Hız geri Tam Hız geri Durma Çeyrek Hız ileri
Aşağıda Atmel Atmega328 MCU’sunun mimarisi verilmektedir.
Mimaride görülen;
* USART * SPI * Flash * Oscillator * AVR CPU
bloklarının görevlerini açıklayınız
Aşağıda Atmel Atmega328 MCU’sunun CPU Core Mimarisi verilmektedir.
Bu mimariye göre;
* ALU * Program Counter * General Purpose Register * Instruction Register * Instruction Decoder
bloklarının görevlerini açıklayınız.
Ardunio IDE’sinde geliştirilen bir uygulamada kullanılan temel setup ve loop fonksiyonlarını görevlerini açıklayınız.
Aşağıda Ardunio Nano’nun pinlerini gösteren bir figür verilmektedir.
Ardunio’nun Dijital 5 ve 6. pinlerine butonlar, 7. pinine ise LED bağlanmıştır. Her iki butona da basılı iken LED saniyede bir yanıp sönecek bir uygulama geliştiriniz.
MCU’nun UART arayüzünden ‘A’ paketi geldiğinde 1. LED’i 2 saniyeliğine yakan, ‘B’ paketi geldiğinde ise 2. LED’i 10 saniyeliğine yakan bir uygulama geliştiriniz.
Interfaces and Sensors
Analog ve dijital pin’lerin okuma/yazma kabiletleri nedir? Farkları nelerdir?
MCU’nun 0. analog girişine bir uzaklık sensörü bağlanmıştır. Bu sensör 50 cm’de iken maksimum değer olan 1023’ü, 2 cm’de ise 0 değerini geri döndürmektedir. Buna göre sensör 20 ile 30cm arasında bir nesne tespit ettiğinde UART üzerinden ‘Aralik Icerisinde’ mesajını gönderen bir uygulama geliştiriniz.
MCU’nun 0. analog girişine bir sıcaklık sensörü bağlanmıştır. 1. analog girişine ise bir duman sensörü bağlanmıştır.
Sıcaklık sensörü 0 derece için 0; 50 derece için 1023 sayısını döndürmektedir. 0-50 derece arasındakiler 0-1023 arasında lineer olarak değişmektedir.
Duman sensörü ise duman olmaması durumunda 0, duman olması durumunda ise geriye 1023 sayısını döndürmektedir.
Buna göre 40 derece üstü ve duman olması durumunda MCU’nun dijital 3. pinine bağlı LED’i aktif edip UART üzerinden “Yangin” mesajını gönderen bir yazılım geliştiriniz.
Sensör nedir? Analog ve dijital sensörler nedir? Farkları nelerdir?
Motor Control
Fırçasız motor nedir?
Servo motor nedir?
Step motor nedir?
5V gerilim uygulandığında 200 RPM ile çalışan bir fırçasız motor’a çevresi 2 cm olan bir tekerlek takılıyor. Robota bağlı olan bu motor ile 1 metre hareket etmek için gerekli olan MCU kodunu geliştiriniz. Tekerlek 3cm olması durumu için 2. bir kod geliştiriniz.
Fırçasız bir motorun 3V altında 200 RPM, 5V altında ise 300 RPM yaptığı dökümanında belirtilmiştir. Buna göre MCU’nun ADC pinleri kullanılarak bu motor’a 2 sn 250 RPM, 3 sn 275 RPM hıza çıkaracak bir kod geliştiriniz. Not: 3V-5V arasındaki RPM değişiminin lineer olacağı varsayılabilir. MCU’nun ADC’si 0 verisi için 0V, 1023 verisi için ise 5V üretmektedir. Ara değerler lineer olarak değiştiği varsayılabilir.
Bu ders kapsamında mikrokontrolör mimarisi kullanılarak robot kontrol algoritmaları geliştirilecektir. Ders kapsamında bir sumo robot kiti üzerinde deneyler gerçekleştirilecektir. Dönem projesi olarak sumo robot gerçeklenip, verilecek 5 adet hedefin 60 saniye içerisinde platformdan atabilecek bir sumo robot algoritması geliştirilecektir.
Ders Saatleri (Teorik + Lab)
Cuma 9.00-14.00
Öğretim Elemanları ve Ofis Saatleri
Dr. Öğr. Üyesi Vecdi Emre Levent, Ofis 311 – Salı 16.00-17.00
Arş. Gör. Uğur Özbalkan, Ofis 311 – Salı 16.00-17.00
Ön Gereksinimler
Yok
Yardımcı Kaynaklar
Dersin referans kaynakları aşağıda listelenmektedir.
Programming Arduino: Getting Started with Sketches, Second Edition, Simon Monk, McGraw Hill, 2016
Exploring Arduino: Tools and Techniques for Engineering Wizardry 2nd Edition, Jeremy Blum, 2019
Yazılımlar
Arduino IDE
Dersler
Dersin haftalık 2 saat teorik, 2 saat laboratuvar bölümü bulunmaktadır. Öğretim üyesi tarafından verilen ders materyallerinin ders öncesi incelenip, ders sonrasında ise tekrar edilmesi beklenmektedir.
Öğrenim Çıktıları
Microcontrollers
Robotic
Sensors
Low power algorithm design
Quizler
Dönem içerisinde iki adet quiz yapılacaktır. 30 dk süre verilecektir. Quiz tarihi bir hafta önceden duyurulacaktır.
Notlandırma
Derslere %80 oranında devam zorunludur.
Dönem notu; vize, lablar, ödevler, proje ve final sınavı ile belirlenecektir. Değerlendirme yüzdeleri aşağıdaki tabloda verilmiştir.
Faaliyetler
Oranlar
Vize
%20
Ödev/Quiz
%10
Lab
%15
Proje
%25
Final
%30
Bonus
5 Puan’a kadar
Ödev ve quizlerin teslim saati üzerinden her geçen saat için 5 puan kesilecektir.
Dönem sonu notunun karşılık geldiği ağırlık ve harf notu aşağıdaki tabloda verilmiştir.
Dönem Notu
Ağırlık
Harf Notu
90-100
4.00
AA
85-89
3.50
BA
80-84
3.00
BB
75-79
2.50
CB
65-74
2.00
CC
50-64
1.50
DC
45-49
1.00
DD
0 -44
0
FF
Beklenen Efor
Öğrencinin dönem içinde göstermesi beklenen efor tablosu aşağıda verilmiştir.
İçerik
Saat
Kaç Defa
Ara Toplam
Derse Hazırlık
2
14
28
Ders Tekrarı
2
14
28
Ödev
4
6
24
Proje
48
1
48
Sınıf Dersi
4
14
56
Ara Sınav ve Final
24
2
48
Öğrenciler dersten başarılı olmak için dönem boyunca ortalama 232 saat harcamaları beklenmektedir.
Verilecek her bir ödev için test girişi ve beklenen çıkışlar paylaşılacaktır. Ancak ödev kontrolü yapılırken sizinle paylaşılmamış başka test durumları da denenecektir. Çalışma zamanı, beklenenden çok uzun süren kodlar yanlış olarak değerlendirilebilir.
Teori
Kod, istenen algoritmanın tasarımı olmalıdır. En optimum çözüm beklenmemektedir. Ancak bellek ve çalışma zamanı beklenenden çok fazla olmamalıdır.
Yazılı Ödevler
Ödev kendi el yazınız ile yazılmalıdır. Ödev cevap kağıtının üzerinde, dersin adı, öğrenci adı ve soyadı, öğrenci numarası ve tarih bulunmalıdır.
Akademik Dürüstlük
Ödevin amacı, ders hakkında derinlemesine araştırma yapmayı öğrenmek ve pratik bilgiler kazanmayı sağlamaktır. Verilen ödevler hakkında, diğer öğrenciler ile birlikte çalışma teşvik edilmektedir. Çalışma grubu oluşturan öğrenciler, kendi başına çalışan öğrencilere göre sınavlarda daha başarılı olmaktadırlar.
Ancak bir ödevi çözmek için başkaları ile birlikte çalışsanız bile, her bir sorunun çözümünü yardım almadan kendiniz yapmalısınız. Çözümünüzü bir araştırma yolu ile elde ederseniz (örn. bir internet araması), çözümü kendi cümle ve/veya kodunuz ile ifade etmelisiniz. Çözümü sözlü olarak sorulduğunda, öğrencinin açıklayabilmesi beklenmektedir.
Verilen ödev bir kod ise, kendinizin yazması gerekmektedir. Hata ayıklamada başkalarından yardım alabilirsiniz. Kodda intihal tespiti için manuel ve otomatik mekanizmalar kullanılacaktır. İntihal, sınav içi kopya ve benzeri davranışlar disiplin yönetmeliğine göre cezalandırılır.
Öğrencilerin soru sorup yanıt alabileceği bir soru cevap sistemi sunulmaktadır. Ders duyuruları, öğrenci soruları ve cevapları için bir platformdur. Aşağıdan erişebilirsiniz.
Engel Kaldırıcı Sumo Robot: Sumo robot gerçeklenip, verilecek 5 adet hedefin 60 saniye içerisinde platformdan atabilecek bir sumo robot algoritması geliştirilecektir. Robot’un diğer bir modu ise çizgi izlemektir. Bu modda ise kensine bağlı olan sensörleri kullanarak çizgi üzerinde takip etmesi beklenmektedir.