Arşiv

Yazar Arşivi

Ekstra Scratch Uygulama Örnekleri

Bilgisayar Bilimi ile Bilişim Teknolojileri ve Yazılım derslerinde kullanmak amacıyla ekstra Scratch uygulama örnekleri:

Scratch Ekstra Örnekler

 

Kaynakça
Scratch Web Sitesi, scratch.mit.edu
Erkan DURAN, Bilişim Teknolojileri ve Yazılım Dersi Notları
Dr. Eray YILMAZ, Bilgisayar Bilimi Ders Notları
Scratch Team, https://www.youtube.com/c/ScratchTeam
Özgür ŞEREMET, https://ozgurseremet.com/scratch-ornekleri-14-labirent/ (Labirent görseli)

 

Kategoriler:Programlama, Scratch Etiketler:, ,

Basit Vektörel Çizim Uygulaması (SVG-Edit) Ders Notu ve Uygulamaları

SVG-Edit Logo

SVG-Edit, basit vektörel çizim yapılabilen Türkçe dil desteği de olan ücretsiz ve çevrimiçi bir editördür.  Dijital Sanatlar dersinde öğrenciler için hazırlamış olduğum ve kullandığım ders notları ve basit düzey uygulama örnekleri:

SVG-Edit Uygulama Örnekleri

 

Kaynakça
https://en.wikipedia.org/wiki/SVG-edit
https://svgedit.netlify.app/editor/index.html
http://ehmdunque.altervista.org/i-informatica/manuali/SVG-edit/SVG-Edit_2.6/Short_intro_SVG-edit.html
https://www.mevzuat.gov.tr/MevzuatMetin/2.5.859034.pdf (Türk Bayrağı Tüzüğü)
https://avys.omu.edu.tr/storage/app/public/abdulkerim.turkaya/136803/G%C4%B0G_5.%20Hafta.pdf
https://tr.wikipedia.org/wiki/Yaprak

Pardus’ta Başlatıcı (Launcher) Oluşturma ve Kullanma

Başlatıcılar, bir uygulamayı başlatmak, komut çalıştırmak, klasör açmak gibi belirli bir eylemi gerçekleştirmek amacıyla kullanılan nesnelerdir. Windows’taki kısayollara, görev çubuğuna eklenen uygulamalara, başlat menüsünde yer alan öğelere karşılık geldiği söylenebilir.

Birden fazla yol ile masaüstüne, panellere Windows’taki gibi kolayca başlatıcı eklenebilmektedir. Pardus XFCE’de masaüstünde boş bir alanda sağ tıkladığımızda “Başlatıcı Oluştur” ve “URL Bağlantısı Oluştur” ile 2 farklı türde başlatıcı oluşturulabilmektedir.

EBA web sitesi bağlantısı için masaüstüne başlatıcı oluşturalım. Ayrıca önceden mBlock programını çalıştırmak için masaüstüne eklenmiş başlatıcıyı sağ tıklayıp düzenleyerek karşılaştıralım.

Pardus - Create Link Launcher  Pardus - Create App Launcher

Başlatıcıların içeriği görüntülendiğinde başlatıcıların belirli bir formatta oluşturulduğu, masaüstü dosyaları listelendiğinde ise bu 2 başlatıcının (ve diğer başlatıcıların) .desktop uzantısı ile saklandığı görülmektedir.

eba.desktop launcher content mblock.desktop launcher content

Başlatıcıların [Desktop Entry] satırı ile başladığı ve sıklıkla aşağıdaki alanların başlatıcılarda kullanıldığı görülmektedir:

  • Name
  • GenericName (Uygulamanın ne tür bir uygulama olduğu, uygulamanın sınıfı)
  • Type
  • Comment
  • Categories
  • Exec
  • Icon
  • URL
  • Terminal

Pardus’ta ARandR Ekran Yerleşimi Düzenleyici Kullanımı konusunda PC ekran görüntüsünü monitör, etkileşimli tahta veya her iki birimi de aktarma ile ilgili 3 farklı profil için betik oluşturmuştuk.

Örnek olarak bu 3 profile hızlıca geçiş için masaüstüne 3 farklı başlatıcı oluşturalım. Kaydedilen betik dosyaları home dizini altında .screenlayout dizininde .sh uzantısı ile tutulmaktaydı. Bu betikler çalıştırıldığında istenen görüntü profiline geçilebilmekteydi.

Pardus - Launchers List

sadece_mon.desktop
[Desktop Entry]
Type=Application
Name=Sadece Monitör
Comment=Görüntüyü sadece monitöre aktarır.
Exec=sh /home/ogretmen/.screenlayout/sadece_monitor.sh
Icon=/home/ogretmen/Resimler/mon.png
Oluşan Başlatıcılar

Pardus - Creadted Launchers

sadece_et.desktop
[Desktop Entry]
Type=Application
Name=Sadece Etkileşimli Tahta
Comment=Görüntüyü sadece etkileşimli tahtaya aktarır.
Exec=sh /home/ogretmen/.screenlayout/sadece_et.sh
Icon=/home/ogretmen/Resimler/et.png
mon_ve_et.desktop
[Desktop Entry]
Type=Application
Name=Monitör ve Etkileşimli Tahta
Comment=Görüntüyü monitör ve etkileşimli tahtaya aktarır.
Exec=sh /home/ogretmen/.screenlayout/mon_ve_et.sh
Icon=/home/ogretmen/Resimler/mon_ve_et.png

İlgili başlatıcı çalıştırıldığında görüntü istenen cihaza hızlıca yansıtılmaktadır. Daha kullanışlı olması açısından XFCE’de panele başlatıcılar sürüklenebilir.

Pardus --- Panel-Ekli Başlatıcıları

XFCE’de panele boş öğe ekleyip (başlatıcı/isteğe bağlı menü ile program başlatıcısı türünde), oluşturduğumuz bu 3 başlatıcıyı buraya sürükleyip ekleyerek daha kolay bir kullanım sağlanabilir. Ben aynı zamanda ARandR uygulamasını da ekledim. ARandR simgesinin hemen yanındaki yukarı ok simgesi tıklandığında 3 ayrı profile  kolaylıkla geçiş sağlanabilmekte:

Pardus --- Boş Başlatıcı Ekleme Pardus --- Başlatıcı Menü

Kaynakça
https://specifications.freedesktop.org/desktop-entry-spec/latest/ar01s06.html
https://www.linuxtopia.org/online_books/linux_desktop_guides/gnome_2.14_user_guide/launchers.html
https://www.xmodulo.com/create-desktop-shortcut-launcher-linux.html
https://medium.com/@insomniocode/linux-creating-a-desktop-shortcut-launcher-2088d1e3c83e
https://icons8.com/ (Başlatıcı ikonları)

Kategoriler:GNU/Linux Etiketler:, , , , ,

Pardus’ta ARandR Ekran Yerleşimi Düzenleyici Kullanımı

arandr hakkında görseli

Bilgisayarın görüntüsünü hem PC ekranına hem de etkileşimli tahtaya (veya ikinci bir monitöre) aynı anda aktarmak için uğraşırken denk geldiğim sade, minik arayüzlü ve kullanışlı bir uygulama. Açıklamasında Another XRandR GUI (Bir başka XRandR Grafik arayüzü) diye belirtilmiş.

xrandr manuel sayfasında ise (man xrandr), xrandr’nin ekran çözünürlüğü ayarlama, görüntüyü döndürme, yansıtma vb amacıyla komut satırı arayüzü olarak kullanıldığı yazmakta.

ARandR ise xrandr ile uğraşmak yerine bu işi grafik arayüzünden yapabilmekte aynı zamanda da seçimlerinizi script (betik) olarak saklamanıza olanak vermekte. Sakladığınız bu betik dosyalarını istediğiniz zaman çağırabilirsiniz, kolayca komut satırından hızlıca çalıştırıp görüntüyü monitöre, etkileşimli tahtaya veya her ikisine aynı anda belirttiğiniz çözünürlükte aktarabilirsiniz. Aynı zamanda bu betik dosyalarından xrandr’nin temel kullanımı da kolayca öğrenilebilmekte.

arandr arayüz görseli

Uygulama Pardus Yazılım Merkezi > Depo kısmı, Synaptic Paket Yöneticisi veya komut satırından sudo apt install arandr komutu kullanılarak kurulabilir.

Okulda sıkça kullandığım 3 ayrı profil için ARandR’nin oluşturduğu betik dosyalarının içerikleri aşağıda gibi. Ekran kartında 3 çıkış bulunmakta. Akıllı tahta VGA’ya, monitör ise DVI çıkışına bağlı. HDMI çıkışı ise boş:

Görüntü Sadece Monitöre: (sadece_monitor.sh)

#!/bin/sh
xrandr --output DVI-I-1 --primary --mode 1280x1024 --pos 0x0 --rotate normal --output HDMI-1 --off --output VGA-1 --off

Görüntü Sadece Etkileşimli Tahtaya: (sadece_et.sh)

#!/bin/sh
xrandr --output DVI-I-1 --off --output HDMI-1 --off --output VGA-1 --mode 1024x768 --pos 0x0 --rotate normal

Görüntü Hem Monitöre Hem Etkileşimli Tahtaya: (mon_ve_et.sh)

#!/bin/sh
xrandr --output DVI-I-1 --primary --mode 1024x768 --pos 0x0 --rotate normal --output HDMI-1 --off --output VGA-1 --mode 1024x768 --pos 0x0 --rotate normal

Betik dosyaları uygulama tarafından varsayılan olarak home dizininin içindeki .screenlayout dizininde tutulmakta:

arandr .screenlayout folder

Pardus 2021’e mBlock 4 Kurulumu (Açılmama Sorunu ve Çözümü)

06/10/2022 2 yorum

Pardus Logo

https://www.mblock.cc/previous-versions/ sayfasında “Legacy versions of mBlock 4” başlığı altında bulunan mBlock4’ün Debian/Ubuntu sürümü; Pardus 17 yüklü bilgisayarlarda çalışmakta iken Pardus 2021.3’e yüklendiğinde mBlock4 çalışmamakta, ekrana hiç bir hata mesajı gelmemektedir.

Bir terminal penceresi açıp mBlock4’ü kurulu olduğu /opt/makeblock/mBlock dizininden çalıştırmaya çalıştığımızda; “Pango-ERROR” ile karşılaşmaktayız.

pango error gorseli

Bu hatanın çeşitli kaynaklarda pango kütüphanesinin versiyon farklarından kaynaklandığı, farklı uygulamalarda da benzer problemin yaşandığı belirtilmektedir. mBlock uygulamasının ldd komutu ile paylaşılan kütüphane/kitaplık bağımlılıklarına bakıldığında 3 adet libpango ile başlayan dosyaya link gösterildiği görülmektedir:

mBlock shared pango libraries

Bu dosyaların sistemde kurulu olan versiyonlarını dpkg -l ile öğrenebiliriz:

https://depo.pardus.org.tr/pardus/pool/main/p/pango1.0/ adresinden bu 3 paketin önceki versiyonlarından indirelim. Ben Pardus19 paket listesinde yer alan 1.42.4-8 versiyonlarını indirdim. (Pardus17 yüklü bir bilgisayarda hali hazırda bu dosyaların  1.40.5-1  versiyonları yüklü. /lib/x86_64-linux-gnu/ klasöründen bu 3 so.0 uzantılı dosya kolayca kopyalanabilir)

download libpangos

İndirilen .deb paketleri içinden ilgili kitaplık dosyasını (.so dosyasını) çıkaralım (data.tar.xz içinde => /usr/lib/x86_64-linux-gnu/ yolundan bulabilirsiniz):

extract libpangos

Dosyaların .so.0 kısmından sonraki kısımlarını silelim ve bu 3 .so.0 ile biten dosyayı mblock uygulamasının kurulu olduğu dizine kopyalayalım:

Bu işlemin ardından sanal makinede mBlock uygulaması çalıştı. Okuldaki bilgisayarlarda ise libgconf-2-4 paketinin yüklü olmadığı uyarısını verdi. Bu paket yüklendikten sonra (sudo apt install libgconf-2-4) mBlock4 karşımızda:

mBlock4

Kaynakça
https://unix.stackexchange.com/questions/589993/pango-error-harfbuzz-version-too-old
https://lightrun.com/answers/skevy-graphiql-app-pango-error-harfbuzz-version-too-old-127
http://www.pango.org/
https://en.wikipedia.org/wiki/Pango
https://depo.pardus.org.tr/pardus/pool/main/p/pango1.0/
https://gonullu.pardus.org.tr/
https://www.mblock.cc/previous-versions/

HC-06 Bluetooth Modülü Konfigürasyonunun Yapılması

05/04/2022 2 yorum

Bu çalışmada robotik çalışmalarda sıkça kullanılan bluetooth modülü temel konfigürasyonunun nasıl yapıldığı ele alınmaktadır. Modüllerde isim ve şifre gibi temel değişiklikler ile etraftaki diğer modüllerle/cihazlarla karışıklık önlenebilmektedir.

Bluetooth modülü konfigürasyonu için “Arduino Nano Tabanlı Eğitim Robotu: myNanoBot” çalışmasında tercih edilen HC-06 modülü ve bu modül üzerinde yapılan değişikliklere örnek olarak yer verilmiştir.

Burada anlatılanlar HC-06 için geçerli olup modül ayarlarında 3 değişiklik yapılmıştır:

  • Veri iletim hızı (baudrate) 115200 yapılmıştır
  • Modül ismi değiştirilmiştir: myNanoBot
  • Modül şifresi değiştirilmiştir: 5555

Bluetooth modülü ayarları “AT” komut modunda yapılmakta olup HC-05 modülü ile HC-06’nın “AT” modu geçişi ve “AT” komutları arasında farklılıklar vardır.

HC-06, “AT” modu ve iletişim modu olarak 2 moda sahiptir. HC-06 iletişim modunda değilken modül otomatik olarak “AT” modundadır. Yani modüle ilk güç verildiğinde üstündeki led sürekli yanıp sönüyor iken herhangi bir işleme gerek kalmadan “AT” komutları uygulanabilir.

“AT” komutları Arduino seri monitörden girilebilir ve sonuçları izlenebilir. HC-06 bluetooth modülü varsayılan baudrate değeri 9600‘dür. Modül Arduino’ya bağlandıktan sonra (detaylara şu çalışmadan bakılabilir) Arduino’ya yüklenecek kod şöyle olabilir:

//Arduino Uno, Nano vb için -Yazılımsal-
//Bluetooth RX => Arduino TX (Pin 11)
//Bluetooth TX => Arduino RX (Pin 10)

#include <SoftwareSerial.h>
SoftwareSerial myBluetooth(10, 11); // RX, TX

void setup()
{
  Serial.begin(9600);
  myBluetooth.begin(9600);
  Serial.println("AT Komutu Giriniz:");
}

void loop()
{
  if (Serial.available())
  {
    myBluetooth.write(Serial.read()); //AT komutunu bluetooth'a gönder
  }

  if (myBluetooth.available())
  {
    Serial.write(myBluetooth.read()); //Bluetooth'dan gelen yanıt
  }
}

Arduino Mega için diğer fiziksel seri portlardan biri de kullanılabilir:

//Arduino Mega için
//Bluetooth RX => Arduino TX2 (Pin 16)
//Bluetooth TX => Arduino RX2 (Pin 17)

void setup()
{
  Serial.begin(9600);
  Serial2.begin(9600); //Bluetooth'un bağlı olduğu fiziksel port
  Serial.println("AT Komutu Giriniz:");
}

void loop()
{
  if (Serial.available())
  {
    Serial2.write(Serial.read()); //AT komutunu bluetooth'a gönder
  }

  if (Serial2.available())
  {
    Serial.write(Serial2.read()); //Bluetooth'dan gelen yanıt
  }
}

“AT” komutları büyük harfle, çift tırnaksız, boşluksuz ve satır sonu karakterleri olmadan (\r\n) girilmelidir. Komutlar sınırlıdır, varsayılan modul ismi/veri iletim hızı görülmez. “AT” komutuna “OK” yanıtı; “AT” modunda çalışıldığını belirtir:

AT Modu

Aşağıdaki komutlar uygulanarak modül ayarları tamamlanmıştır:

Komut Beklenen Sonuç Açıklama
AT+NAMEmyNanoBot OKsetname Modül ismi myNanoBot olarak değiştirildi
AT+PIN5555 OKsetPIN Modül eşleşme pini 5555 oldu
AT+BAUD8 OK115200 Veri iletim hızı 115200 oldu

Tablodan görüldüğü gibi veri iletim hızını değiştirmek için sayılar kullanılmaktadır. 4 => 9600 (varsayılan) iken 8 => 115200’e karşılık gelmektedir. Diğer veri iletim hızı değerleri ve diğer bazı “AT” komutları için bu adresten yararlanılabilir.

Not: Modül ayarlarında tekrar değişiklik yapabilmek için bluetooth modülü seri iletişiminin artık 115200 bps üzerinden yapılması gerekir. ( myBluetooth.begin(115200); ) Aksi takdirde “AT” komutlarına yanıt alınmayacaktır.

Ayrıca modül ayarlarını tekrar değiştirmek için veri iletim hızının unutulmaması ve bilgisayarların desteklememesi nedeniyle 115200’den yüksek bir değere çekilmemesi birçok kaynakta belirtilmektedir.

Kaynakça
http://www.martyncurrey.com/hc-06-zg-b23090w-bluetooth-2-0-edr-modules/
https://www.instructables.com/id/AT-command-mode-of-HC-05-Bluetooth-module/
https://dergipark.org.tr/tr/download/article-file/1809070
https://erkanduran.wordpress.com/2018/01/04/arduino-seri-haberlesme-ve-bluetooth-uzerinden-led-yakma/
https://github.com/eduran10/myNanoBot
https://erkanduran.wordpress.com/2022/03/28/arduino-nano-tabanli-egitim-robotu-mynanobot/
https://erkanduran.wordpress.com/2022/03/28/arduino-nano-tabanli-bir-egitim-robotu-gelistirilmesi-mynanobot/

Arduino Nano Based Educational Robot: myNanoBot

Arduino Nano Based Educational Robot: myNanoBot

  • Easy to programmable as block-based with its own extension
  • Supports mBlock v3 Live/Scratch mode
  • Adapted Makeblock mBot serial port protocol and firmware
  • Low cost
  • Open source
  • Academic publication

Details: https://github.com/eduran10/myNanoBot

Arduino Nano Tabanlı Eğitim Robotu: myNanoBot

Arduino Nano Tabanlı Eğitim Robotu: myNanoBot

  • Kendi uzantısı ile blok tabanlı olarak kolay programlanabilir
  • mBlock v3 canlı/Scratch mod desteği
  • Uyarlanmış Makeblock mBot seri port protokolü ve aygıt yazılımı
  • Düşük maliyet
  • Açık kaynak
  • Akademik yayın

Detaylar: https://github.com/eduran10/myNanoBot

The Development of an Arduino Nano Based Educational Robot: myNanoBot

The Development of an Arduino Nano Based Educational Robot: myNanoBot
Research Article

Erkan DURAN

Ovakoy Secondary School, Altieylul, Balikesir, Turkey
duran.erkan@gmail.com
(Received:06.06.2021; Accepted:05.11.2021)
DOI: 10.17671/gazibtd.948478

Abstract— The aim of this study is to develop an alternative educational robot to generally preferred ready robot kits in basic coding and robotic educations. For this purpose, easy to supply and assemble by both teachers and students, a low-cost educational robot equipped with various sensors and actuators was developed using open source Arduino microcontroller. And again with written extension by the researcher, the robot can be easily programmed as block-based in mBlock software (version 3.4.12). At time same time, the robot can run applications simultaneously without the need for compilation and upload in mBlock software Scratch mode via USB and bluetooth connection. For this purpose, Makeblock mBot serial port protocol and firmwares of Makeblock electronic modules were adapted to the robot and the robot’s own firmware were created. In the development of the robot, Arduino Nano development card, bluetooth module, ultrasonic distance sensor, light sensor, sound sensor, RGB LED, buzzer, motor driver card and DC motor were used. Tested also with Arduino Uno and Arduino Mega development cards, the robot can be used in basic coding and robotic educations and can be developed by adding different sensors.

Keywords— Arduino, educational robot, mBlock, extension, Scratch mode

Click here to download the full text.

Note: This article was published in the Journal of Information Technologies of Gazi University. Vol: 15 – Issue: 1 / January – 2022

Arduino Nano Tabanlı Bir Eğitim Robotu Geliştirilmesi: myNanoBot

Arduino Nano Tabanlı Bir Eğitim Robotu Geliştirilmesi: myNanoBot
Araştırma Makalesi/Research Article

Erkan DURAN

Ovaköy Ortaokulu, Altıeylül, Balıkesir, Türkiye
duran.erkan@gmail.com
(Geliş/Received:06.06.2021; Kabul/Accepted:05.11.2021)
DOI: 10.17671/gazibtd.948478

Özet— Bu çalışmanın amacı, temel kodlama ve robotik eğitimlerinde genellikle tercih edilen hazır robot kitlerine alternatif bir eğitim robotu geliştirmektir. Bu amaçla hem öğretmenler hem de öğrenciler tarafından temin edilmesi ve montajı kolay; açık kaynak kodlu Arduino mikrodenetleyicisi ile çeşitli aktüatör ve sensörlere sahip düşük maliyetli bir eğitim robotu geliştirilmiştir. İlgili robot, yine araştırmacı tarafından yazılan uzantı ile mBlock yazılımı (3.4.12 sürümünde) blok tabanlı olarak kolayca programlanabilmektedir. Bununla birlikte robot, yapılan uygulamaları herhangi bir derleme ve yükleme işlemine gerek kalmaksızın mBlock yazılımı Scratch modunda USB ve bluetooth bağlantısı üzerinden eş zamanlı bir şekilde çalıştırabilmektedir. Bu amaçla Makeblock mBot seri port protokolü ile Makeblock elektronik modüllerine ait aygıt yazılımları robota uyarlanmış ve robotun kendi aygıt yazılımı oluşturulmuştur. Robotun geliştirilmesinde Arduino Nano geliştirme kartı, bluetooth modülü, ultrasonik mesafe sensörü, ışık sensörü, ses sensörü, RGB LED, buzzer, motor sürücü kartı ve DC motor kullanılmıştır. Arduino Uno ve Arduino Mega geliştirme kartları ile de test edilen robot, temel kodlama ve robotik eğitimlerinde kullanılabilir ve farklı sensörler eklenerek geliştirilebilir.

Anahtar Kelimeler— Arduino, eğitim robotu, mBlock, uzantı, Scratch mod

Tam metni indirmek için buraya tıklayınız.

Not: Bu makale, Gazi Üniversitesi Bilişim Teknolojileri Dergisi’nde yayımlanmıştır. Cilt: 15 – Sayı: 1 / Ocak-2022