24 Mayıs 2022 Salı

Tinkercad alternetifi olabilir mi? wokwi.com

https://wokwi.com/ da  Başlangıç aşamasında Arduino devrenizi kurup C ile kodlaryarak simule edebilirsibiz. Farklı uygulamalarda var.  Bu not da burada dursun :)

21 Eylül 2020 Pazartesi

Compute it - bu sefer bilgisayarsınız!

 

Saha

Rolleri değiştirelim: bu sefer bilgisayarsınız! Doğru yörüngeyi bulmak ve zorlukları kazanmak için programları okuyun ve yorumlayın. Bazı temel programlama kavramlarını anlamak için sezgisel yeteneklerinize odaklanmanız ve kullanmanız gerekecek.

Amaç

Bu oyunun ana odak noktası kod okumadır. Compute it'i bitirdikten sonra, bir bilgisayarın bazı kodları nasıl okuduğu konusunda iyi bir alıştırma yapacaksınız. Başkaları tarafından yazılan kodları keşfederken faydalı bir beceri olacaktır.

Ancak kendi kodunuzu yazarken de önemli bir beceridir:

  • Bilgisayarın onu nasıl anlayacağını akılda tutarak, daha az hata yapacaksınız
  • Okuyucunun konumunda olduğunuzda, anlamlı adlandırma ve dikkatli boşluk bırakarak daha net kod yazmayı önemsersiniz.

Hedef

Hiç kodlamayan yeni başlayanlar için uygundur

Eğitimciler İçin Uyarı!

"Compute it" i sıfır bilgiye sahip, hatta eğitimci olmadan eğitimciler tarafından kullanılabilecek şekilde tasarladık. Bir sınıfta veya arkadaşlarınızla “Hesaplayın” ı kullanmayı planlıyorsanız ve kullandığımız kavramlardan zaten memnunsanız, çok fazla açıklama yapmamaya çalışın ve oyuncuların kendi başlarına çözmelerine izin verin.

Yeni başlayanlar için soyut kavramları pratik yaparak tanıtmak karmaşık kelimeler kullanmaktan daha kolaydır. Bunu anlamak onları bir "evreka" anı ile ödüllendirecek ve daha fazla etki yaratacaktır.

Test seanslarımızda buna birkaç kez tanık olduk: uzman bir arkadaşın yardım ettiği yeni başlayanlar genellikle daha yavaş bir ilerlemeye sahiptir.

Bir rehber olarak olumlu bir etkiye sahip olmak için: yalnızca oyuncu bunu istediğinde veya takılıp kalmış göründüğünde  sadece küçük ipuçları verin.


Link:
http://compute-it.toxicode.fr/

13 Mart 2019 Çarşamba

Servo

/*
 Controlling a servo position using a potentiometer (variable resistor)
 by Michal Rinott <http://people.interaction-ivrea.it/m.rinott>

 modified on 8 Nov 2013
 by Scott Fitzgerald
 http://www.arduino.cc/en/Tutorial/Knob
*/

#include <Servo.h>
Servo myservo;  // Servo sınıfından bir myservo nesnesi oluştur.
int potpin = 0;  // Potansiyometreyi bağlamak için kullanılan analog pin
int val;    // Analog pimden değeri okumak için değişken
void setup() {
  myservo.attach(9);  // Servoyu 9 nolu pimin üzerine servo nesnelere bağlar
}
void loop() {
  val = analogRead(potpin);            // Potansiyometrenin değerini okur (0 ile 1023 arasındaki değer)
  val = map(val, 0, 1023, 0, 180);     // Servo ile birlikte kullanmak için ölçekle  (0 ile 180 arasındaki değer)
  myservo.write(val);                  // Servo konumunu ölçeklenmiş değere göre ayarlar
  delay(15);                           // 15 ms bekle
}

20 Temmuz 2018 Cuma

Bluetooth

#include <SoftwareSerial.h>

SoftwareSerial bt_iletisim(0, 1);

#define sol_ileri 8
#define sol_geri 9
#define sol_hiz 10

#define sag_ileri 13
#define sag_geri 12
#define sag_hiz 11

int motorlar_hiz = 255;
byte son_islem;

void setup()
{
  pinMode(sol_ileri, OUTPUT);
  pinMode(sag_ileri, OUTPUT);
  pinMode(sol_geri, OUTPUT);
  pinMode(sag_geri, OUTPUT);
  pinMode(sol_hiz, OUTPUT);
  pinMode(sag_hiz, OUTPUT);

  Serial.begin(9600);
  bt_iletisim.begin(9600);
}

void loop()
{
 // if (!!Serial.available()){
  if (bt_iletisim.available())
  {
    char data = bt_iletisim.read();
    Serial.println(data);

    if (data == '1')
    {
      dur();
      delay(10);
      ileri();
      son_islem = 1;
    }
    else if (data == '2')
    {
      dur();
      delay(10);
      geri();
      son_islem = 2;
    }
    else if (data == '3')
    {
      dur();
      delay(10);
      sol();
      son_islem = 3;
    }
    else if (data == '4')
    {
      dur();
      delay(10);
      sag();
      son_islem = 4;
    }
    else if (data == '6')
    {
      dur();
    }
    else if (data == '0')
    {
      motorlar_hiz = motorlar_hiz + 25;
      if (motorlar_hiz > 255)
      {
        motorlar_hiz = 255;
      }
      Serial.print("motorlar hiz= ");
      Serial.println(motorlar_hiz);
      son_isleme_devam_et();
    }
    else if (data == '5')
    {
      motorlar_hiz = motorlar_hiz - 25;
      if (motorlar_hiz < 0)
      {
        motorlar_hiz = 0;
      }
      Serial.print("motorlar hiz= ");
      Serial.println(motorlar_hiz);
      son_isleme_devam_et();
    }
  }
}
//}
void ileri()
{
  digitalWrite(sol_ileri, 1);
  digitalWrite(sag_ileri, 1);
  digitalWrite(sol_geri, 0);
  digitalWrite(sag_geri, 0);
  analogWrite(sol_hiz, motorlar_hiz);
  analogWrite(sag_hiz, motorlar_hiz);
}

void geri()
{
  digitalWrite(sol_ileri, 0);
  digitalWrite(sag_ileri, 0);
  digitalWrite(sol_geri, 1);
  digitalWrite(sag_geri, 1);
  analogWrite(sol_hiz, motorlar_hiz);
  analogWrite(sag_hiz, motorlar_hiz);
}

void sol()
{
  digitalWrite(sol_ileri, 1);
  digitalWrite(sag_ileri, 0);
  digitalWrite(sol_geri, 0);
  digitalWrite(sag_geri, 1);
  analogWrite(sol_hiz, motorlar_hiz);
  analogWrite(sag_hiz, motorlar_hiz);
}

void sag()
{
  digitalWrite(sol_ileri, 0);
  digitalWrite(sag_ileri, 1);
  digitalWrite(sol_geri, 1);
  digitalWrite(sag_geri, 0);
  analogWrite(sol_hiz, motorlar_hiz);
  analogWrite(sag_hiz, motorlar_hiz);
}
void dur()
{
  digitalWrite(sol_ileri, 0);
  digitalWrite(sag_ileri, 0);
  digitalWrite(sol_geri, 0);
  digitalWrite(sag_geri, 0);
  analogWrite(sol_hiz, 0);
  analogWrite(sag_hiz, 0);
}

void son_isleme_devam_et()
{
  if (son_islem == 1)
  {
    ileri();
  }
  else if (son_islem == 2)
  {
    geri();
  }
  else if (son_islem == 3)
  {
    sol();
  }
  else if (son_islem == 4)
  {
    sag();
  }
}

19 Temmuz 2018 Perşembe

LCD Ekran Merhaba Dünya

#include <LiquidCrystal_I2C_AvrI2C.h>

LiquidCrystal_I2C_AvrI2C lcd(0x3f,16,2);  // 16 karakter 2 satır için - 20x4 satır için (0x27,20,4) yazın

void setup()
{
  lcd.begin();                        // LCD Başlat
  lcd.backlight();                    // Arka ışığı aç..
  lcd.setCursor(0,0);                // 0. sütun, 0. satır
  lcd.print("Merhaba, dunya!");      //İlk satıra yazalım
  lcd.setCursor(0,1);                 // 0.sütun, 1.satır
  lcd.print("Arduino Maltepe");       //İkinci satıra yazalım
}

void loop()

   
}


Kütüphaneyi indir...

13 Temmuz 2018 Cuma

Yerli platform Hacker Can ile programlamaya hemen başlayın!

Hacker Can öğrencilerin ana dilde kodlamayı öğrenme ve Türkçe kod yazarak yazılım geliştirme becerisi kazandırmak için hazırlanan Türkiye'nin ilk eğitim platformudur. Bu platformda okuma yazmayı bilen her öğrenci, kendi yaş grubu ve seviyesine göre programlama alanında kendini geliştirebilir. Hem Türkçe, hem İngilizce olarak kullanılabilen platformumuz öğrencilere algoritma, problem çözme yeteneği ve programlama (gerçek kod yazma) eğitimi vermeyi hedeflemektedir.

Oyun tabanlı öğrenme modeli üzerine kurgulanmış macera serisi, çizim ve stüdyo ekranları ile 6-9 yaş ve 9 yaş üstü her öğrencinin kolaylıkla istifade edebileceği keyifli bir platformdur. Eğitmenler için özel paneller, öğretim planları, sunumlar ve gerekli tüm akademik materyali sunan Hacker Can; eğitimlerin sonunda noktalama işaretlerinin ve yabancı karakterlerin en aza indirildiği CoffeeScript modelinde bir dil öğretir. Öğrenciler almış oldukları eğitimle, istedikleri dile rahatlıkla adapte olup web ve masaüstü yazılımları, mobil uygulamalar ve oyun geliştirebilirler.


Talim Terbiye Kurulu tarafından 13 Ocak 2017'de yayınlanan Bilişim Teknolojileri ve Yazılım dersi öğretim programı müfredat çalışmasında önerilen kaynaklar arasına girmeyi başaran ilk yerli yazılım olmuştur.


8 Temmuz 2018 Pazar

Google Santa Tracker ile Kodlama

Google Santa Tracker çocuklara eğlenceli şekilde kodlama öğretmek için tasarlanmış platform. İlkokul öğrencileri ve başlangıç seviyesinde ortaokul öğrencileri sürekle bırak yöntemi ile bloklarla kodlama yapabilir.

1- Code Lab



Bu uygulama 14 seviyeden oluşuyor. Seviye ilerledikçe döngü koşul gibi yeni bloklar ile karşılaşıyoruz. Bu bloklar ile daha az adımla daha çok iş yaptırma algoritmasını kurmanız isteniyor.  Kuklayı hedefe ulaştırmak için blokları birbirine eklemeniz gerekiyor.

Uygulama ulaşmak için tıklayın..

2- Code a Snowflake



Bu uygulama ile sürükle bırak yöntemi ile kendi tebrik kartınızı çizmeniz isteniyor. Eğlenceli bir uygulama.. Hangi blok ile yaparsanız bir çizim elde ediyorsunuz..
Uygulamaya ulaşmak için tıklayın..

3- Code Boogie (Dans Uygulaması)


Code Boogie uygulamasında "Dace class" ile yeşil kostümlü karakter önce dans ediyor. Sizden dans figürlerini aklınızda tutmanız isteniyor ve sürükle bırak yöntemi ile blokları yerleştirerek mor kostümlü karakter ile  aynı anda aynı figürleri birlikte yapmasını sağlıyorsunuz. Dansı akılda tutmak ve sonrasında blokları bir araya getirmek oldukça eğlenceli.. Biraz hafızanızın kuvvetli olması lazım..

"Dance freestyle" de ise özgürsünüz istediğiniz dans figürlerini kendiniz tasarlayabiliyorsunuz.. 

Denemek için tıklayın..

4 Temmuz 2018 Çarşamba

Kod yazmayı (kodlama) öğrenebileceğiniz ücretsiz kaynaklar

Merhaba arkadaşlar, uzun zamandır kod yazmak isteyenler, yeni öğrenmek isteyenler için yazı derleyeyim diyordum bugün o günmüş :)

Sizlere kodlamaya başlamak veya bu konuda  kendinizi geliştirmek için bazı kaynaklar önereceğim. Eğer bildiğiniz ve benim yazıma eklememi istediğiniz kaynaklar var ise lütfen yorumlarda belirtin.

A- BLOK Kodlama 


1-  code.org


code.org, Microsoft, Facebook, Google gibi şirketlerin desteklediği çocuklara programlamayı keyifli ve eğlenceli bir şekilde öğretmeyi amaçlayan, Türkçe dil desteği de bulunan çevrimiçi bir platformdur.

2- Scratch



Hem çevrimdışı -programı bilgisayarınıza yükleyerek-, hemde çevrimiçi olarak -internet ortamında bilgisayara yüklemeden-  blok kodlama öğrenebileceğiniz ve projeler geliştirebileceğiniz güzel bir kaynak.

 Eğitim Videoları Sitesi: Eba.gov.tr

"Arduino veya MBot kodlamalarını Scratch tabanlı yapabileceğiniz Mblock programı  mevcut. Scratch öğrendiğinizde Mblock programı ile Arduino ve Mbot'unuz da block kodlama ile kodlayabileceksiniz. "

3-   Blockly Games



Blockly Games, geleceğin programcılarını teşvik etmek için  Google tarafından yürütülen bir projedir. Blockly Games programlamayı öğreten bir dizi eğitici oyundur. Oyunlar, oyuncunun hızını kendi ayarlayabileceği ve kendi kendine öğrenebileceği şekilde tasarlanmıştır.

Blockly Games Eba Linki burada
Blockly Games linki burada  

4- AppInventor ile Android Mobil Uygulama Geliştirme



App Inventor, Massachusetts Institute of Technology(MIT) tarafından geliştirilen, blok programlama bilgisine sahip kişilerin  Android uygulama geliştirmesine olanak sağlayan çevrimiçi bir ortamdır. Dili İngilizce olup blok kodlama ile program yapılabildiğinden çocuklar içinde uygundur. Ancak uygulamaya girebilmeniz için bir google hesabınızın (gmail) olması gerekmektedir. 

Nasıl yapıldığı ile ilgili nette birçok video ve yazı var.

AppInventor sitesine buradan ulaşabilirsiniz..

5- Thunkable iel Android ve IOS Mobil Uygulama Geliştirme



Thunkable, blok tabanlı sürükle-bırak mantığı ile  bir mobil uygulama geliştirme aracı. Tek platformda Android ve IOS cihazlar için uygulama geliştirilebiliyor. Kodlama ve tasarım deneyimi olmayan herkes için tasarlanmış.. 

Thunkable sitesine buradan ulaşabilirsiniz..
Thunkable ingilizce eğitim videolarıda burada..


Devam edecek... 

9 Şubat 2018 Cuma

mBlock ile Arduino Kodlama-Temel Seviye Uygulamaları

Merhaba arkadaşlar, bu sayfada  "mBlock ile Arduino" etiketi (kategorisi) altında mBlock ile Arduino Kodlama Temel Seviye (yeni başlayanlar için) uygulamalar paylaşacağım.

Bu uygulamalar şu şekilde olacak,


  • Ardino nedir? Giriş Çıkış Pinleri nelerdir?
  • BreadBoard Kullanımı
  • Temel Elektronik Bilgisi 
  • mBlock Programı kurulumu
  • Led Uygulamaları
    • Blink -1 sn ara ile Yanan Sönen Led
    • Karaşimşek Uygulaması - Yürüyen ışık
    • Trafik Işıkları  
  • Buton - Led Uygulamaları
    • Butona basınca yanan led  uygulaması 
    • Butona basınca 3 sefer yanıp sönen led   uygulaması
    • 2 Buton 1 Led uygulaması (bir buton ile led yak. bir buton ile söndür.)
  • Buton - Buzzer Uygulaması
    •  Farklı tonlarda ses üretme
  • Sensör Uygulamaları
    • LDR (Işık Sensörü) Uygulaması
    • LDR - Panda Gece/Gündüz  Uygulaması
    • Sıcaklık sensörü Uygulaması (LM35)
    • Ultrasonik Sensör (Mesafe Sensörü) Uygulaması - Led/Buzzer ile
  • Potansiyometre ile Panda Hareketi Uygulaması
  • Potansiyometre ile Led Parlaklığı Uygulaması
  • Potansiyometre ile Servo Motor Uygulaması
  • RGB Led Uygulaması
  • DC Motor Sürme Uygulaması
  • 2x8  I2C LCD Ekran Uygulaması
    • Merhaba Dünya
    • Kayan Yazı 
    • Sıcaklık Gösterme
  • Bluetooth Uygulamaları
    • Bluetooth ile Seri iletişim
    • Bluetooth ile RGB led Kontrolü
  • Telefondan Bluetooth ile 2 DC Motorlu Araba Kontrolü

Yukarıda bahsettiğim uygulamaları Arduino IDE ile de yaparak paylaşmayı düşünüyorum. 

Görüşmek üzere.. 

9 Kasım 2016 Çarşamba

C Programlama - Switch - Case yapısı basit örnek

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {
   
    char secim;
   
    printf("a veya b veya c ye basiniz : ");   scanf("%c",&secim);
   
    switch (secim)
    {
    case 'a': {
printf("a ya bastiniz...\n");
break;
}
   
    case 'b':{
printf("b ye bastiniz...\n");
break;
}
   
    case 'c': {
printf("c ye bastiniz...\n");
break;
}
   
    default: printf("a veya b veya c ye basmadiniz!");
}
   
return 0;
}

3 Kasım 2016 Perşembe

for kullanımı basit örnek - C Programlama

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {

int i,sayi,toplam=0;

printf("kaca kadar saysin :"); scanf("%d",&sayi );
for(i=1;i<=sayi;i++)
{
toplam=toplam+i;
printf("%d \n",i);
}

printf("toplam sonucu = %d ",toplam);
       return 0;
}

26 Ekim 2016 Çarşamba

İki Sayının Not Ortalaması - C Programlama

#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[]) {

int not1,not2;
float ort;

printf("not 1 i giriniz.. :");  scanf("%d",&not1);
printf("not 2 i giriniz.. :");  scanf("%d",&not2);

ort = (not1+ not2)/2;

printf("Ortalama : %2.2f   \n",ort);
if (ort>=0 && ort<=25)
printf("yatti");
else if(ort>25 && ort<=45)
printf("Kaldi");
    else if (ort>45 && ort<=55)
        printf("orta");
    else if (ort>55 && ort<=70)
    printf("idare eder");
    else if (ort>70 && ort<=85)
        printf("iyisin");
    else if (ort>85 && ort<=100)
        printf("Hmm Pek iyi");
           
return 0;
}