Bloklar ve C

Her bloğun tam olarak bir C fonksiyonu karşılığı vardır. Aşağıdaki liste özettir; tam liste editörün içindedir ve internetsiz açılır.

⟨sayı⟩ ne demek

Bloklardaki köşeli boşluklar senin dolduracağın yerlerdir.⟨sayı⟩ bir sayı yazacağını, ⟨yazı⟩ bir metin,⟨seçim⟩ ise listeden bir şey seçeceğini gösterir. Editörde bunlar tıklanıp doldurulan küçük kutulardır.

Tipler neden int

Robotun başlık dosyası cpal.h gömülü sistemlere uygun sabit genişlikli tipler kullanır (uint32_t gibi). Çocuğa gösterilen kodda ve bu listede int yazıyor: fark öğretici değil, yalnızca korkutucu olurdu.

Hareket

BlokCNe yapar
ileri git hız ⟨sayı⟩void cpal_forward(int speed)İki motor ileri.
geri git hız ⟨sayı⟩void cpal_backward(int speed)İki motor geri.
sağa dön hız ⟨sayı⟩void cpal_turn_right(int speed)Yerinde sağa döner.
sola dön hız ⟨sayı⟩void cpal_turn_left(int speed)Yerinde sola döner.
sür sol ⟨sayı⟩ sağ ⟨sayı⟩void cpal_drive(int left, int right)Tank sürüş.
durvoid cpal_stop(void)Rampayla yavaşlar.
frenvoid cpal_brake(void)Anında durur.

Algıla

BlokCNe yapar
mesafe (mm)int cpal_distance_mm(void)Ölçüm yoksa 65535.
⟨sayı⟩ mm’den yakın engel var mıbool cpal_obstacle(int mm)Engel yakınsa doğru.
çizgi konumuint cpal_line_position(void)-100 sol, 0 orta, +100 sağ; çizgi yoksa -128.
çizgi üstünde mibool cpal_on_line(void)Herhangi bir sensör çizgi görüyorsa.
ışıkint cpal_light(void)Ortam ışığı 0..1000.
kaldırıldı mıbool cpal_is_picked_up(void)Robot havadaysa (motorlar kesilir).
⟨seçim⟩ tuşu basılı mıbool cpal_button_pressed(cpal_button_t b)Tuş şu an basılıysa.

Işık ve ekran

BlokCNe yapar
LED ⟨sayı⟩ rengi kırmızı ⟨sayı⟩ yeşil ⟨sayı⟩ mavi ⟨sayı⟩void cpal_led(int i, int r, int g, int b)Tek LED’i boyar.
tüm LED’ler kırmızı ⟨sayı⟩ yeşil ⟨sayı⟩ mavi ⟨sayı⟩void cpal_led_all(int r, int g, int b)Sekiz LED aynı renk.
LED parlaklığı ⟨sayı⟩void cpal_led_brightness(int percent)Tavan %70 (güvenlik).
ekrana yaz ⟨yazı⟩void cpal_print(const char *text)Metni ekrana yazar.
yüz göster ⟨seçim⟩void cpal_show_face(cpal_face_t face)Mutlu / üzgün / şaşkın / uykulu.

Ses ve zaman

BlokCNe yapar
ses çal ⟨seçim⟩void cpal_play(cpal_sound_t sound)Gömülü ses efekti.
⟨sayı⟩ Hz ton çal ⟨sayı⟩ msvoid cpal_tone(int hz, int ms)Süre bitene kadar bekler.
alkış duydu mubool cpal_hear_clap(void)Dinlerken hoparlör susar.
⟨sayı⟩ ms beklevoid cpal_wait(int ms)Belirtilen süre bekler.
geçen süre (ms)int cpal_millis(void)Robot açıldığından beri.

Sistem

BlokCNe yapar
pil yüzdesiint cpal_battery_percent(void)0..100.
şarj oluyor mubool cpal_is_charging(void)USB takılıysa.
robotu kapatvoid cpal_shutdown(void)Güvenli kapanış (geri dönmez).

Akış blokları

BlokC
⟨sayı⟩ kez tekrarlafor (…) { … }
sürekli tekrarlacpal_loop() gövdesi
eğer … iseif (…) { … }
eğer … değilseelse { … }
başlangıçtacpal_setup() gövdesi