ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗GitHub Pages'te yayınlanan statik site (HTML, CSS, vanilla JavaScript; derleme adımı yok).
| Sayfa | İçerik |
|---|---|
index.html | Üniversite sistemleri, araçlar, günün menüsü, ÖSYM takvimi, alt bilgide ekip kedisi |
kedi-odasi.html | Ekip kedisinin odası: göstergeler, bakım, geçmiş, ad seçimi, ekip ve özlem |
ders-programi.html, ziyaret.html, yemek.html, sinavlar.html | Mevcut araçlar |
Ortak görünüm ortak.css, tema ve ayarlar paneli ayarlar.js, ÖSYM bildirimleri worker/ ve .github/workflows/osym.yml.
Anasayfanın alt bilgisinde, yalnızca kendisine ayrılmış bir şeritte dolaşan ortak bir kedi (Fındık). Kediye ya da Araçlar → Kedi Odası'na basınca odası açılır; orada beslenir, oynatılır, dinlendirilir ve temizlenir.
| Dosya | Görevi |
|---|---|
kedi/ayar.js | Oyun ayarları (oranlar, eşikler, sıklık sınırı), kedinin adı ve özlem süresi (ozlemGun). Tek yapılandırma yeri |
kedi/baglanti.js | Supabase adresi ve herkese açık anahtar. Boşsa yerel deneme modu |
kedi/baglanti.ornek.js | Doldurulmuş örnek (sayfalarda yüklenmez) |
kedi/kurallar.js | Geçen süreye göre ihtiyaç hesabı, eylemler, ruh hâli, özlenenler. DOM'suz; Node'da test edilir |
kedi/durum.js | Durumun kaynağı: yerel deneme (localStorage) ya da Supabase (RPC + Realtime) |
kedi/karakter.js | SVG kedi ve davranış seçimi (yürüme, bakınma, esneme, yalanma, uyuma) |
kedi/kedi.css | Pozlar ve animasyonlar |
kedi/ana.js, kedi/oda.js | Anasayfa şeridi ve Kedi Odası arayüzü |
kedi/bildirim.js | Anlık duyurular (başkası bakım yapınca/sevince), sekme başlığı uyarısı, masaüstü bildirimi |
kedi/sahne.js | Odanın gökyüzü (günün saati), süsleri (tatil, yılbaşı, mevsim) ve kazanılan eşyaları |
kedi/lazer.js | Lazer mini oyunu |
kedi/avatar.js, kedi/avatar.png | Odadaki piksel avatar ve kareleri (dur, iki yürüme, çömelip sevme, el sallama; 73×110) |
supabase/schema.sql | Tablolar, kısıtlar, indeksler, fonksiyonlar, RLS, Realtime |
supabase/test-rls.sql | Yetki ve fonksiyon sınaması (geri alınan tek işlem) |
supabase/guncelleme-etkilesim.sql | Kurulu şemaya oyuncakları, ödül mamasını, haftalık hedefi ve görünüş oylarını ekler |
supabase/guncelleme-uyandir.sql | Kurulu isimli şemaya 2 saatlik bakım oranlarını ve uyandırmayı ekler (tekrar çalıştırılabilir) |
supabase/eski-semayi-kaldir.sql | Eski e-postayla girişli şemayı kaldırır (yalnızca o kuruluysa) |
test/kedi-kurallar.test.js | Oyun kuralları birim testleri |
Bütün yollar görelidir (kedi/..., kedi-odasi.html); site bir depo alt dizininde (kullanici.github.io/depo/) yayınlansa da çalışır.
updated_at + resting_until).
Şimdiki değerler her okumada geçen süreden hesaplanır; sayfa kapalıyken de ihtiyaçlar ilerler. Sunucuya
periyodik istek gitmez; sayfa yalnızca açılışta, sekmeye dönüldüğünde ve bağlantı geri geldiğinde durumu okur,
değişiklikleri Realtime ile alır.rest_max_hours saat uyutur; bu sürede enerji
saatte energy_rest_per_hour artar, enerji 100 olunca kedi erken uyanır. Kedi uyurken "Dinlendir" düğmesi
Uyandır olur: uyandırılan kedi o ana kadar kazandığı enerjiyi korur. Uyurken oyun reddedilir; besleme ve
temizleme uykuyu bozmaz.transform/opacity animasyonları; yürüme tek bir CSS geçişi, sürekli JavaScript
döngüsü yok, sekme gizliyken davranış seçimi durur. Değerler 30–60 saniyede bir yeniden hesaplanır.prefers-reduced-motion) açıksa kedi yerinde durur, animasyonlar kapanır; pozu ve
balonu yine durumunu gösterir.favorite_toy_bonus kadar ek mutluluk ve "bayıldı" tepkisi gelir.max_game_bonus, sunucu da sınırlar).treat_hunger azalır, mutluluk treat_happiness artar.weekly_goal (60) bakım. Hedefin tuttuğu her hafta odaya sırayla bir eşya gelir:
kedi ağacı, saksı çiçeği, balık tablosu, halı, lamba, yumak sepeti. Kartta en çok bakanlar ve en çok oynanan oyuncak.| Yerel deneme | Ortak canlı | |
|---|---|---|
| Ne zaman | kedi/baglanti.js boş | kedi/baglanti.js dolu |
| Durum | Bu tarayıcının localStorage'ı | Supabase PostgreSQL |
| Kim bakım yapar | Bu tarayıcıyı kullanan | Ekip listesinden adını seçen herkes (giriş yok) |
| Eşitleme | Yok (yalnızca aynı tarayıcının sekmeleri) | Realtime ile bütün açık sayfalar |
| Arayüzde | "Yerel deneme" rozeti ve uyarı notu | "Ortak · canlı" rozeti |
Canlı modda bağlantı kurulamazsa sayfa yerel moda düşmez: hata gösterir, bakım düğmelerini kapatır, hiçbir şeyi yerelde kaydetmez.
Aşağıdaki adımları sizin yapmanız gerekir; bu depoda gerçek bir Supabase projesi yok.
supabase/schema.sql dosyasının tamamını yapıştırıp Run
(eski girişli şema kuruluysa önce 4. adıma bakın). Şema daha önce kurulduysa onun yerine sırayla
guncelleme-uyandir.sql ve guncelleme-etkilesim.sql'i çalıştırın.supabase/test-rls.sql'i çalıştırın. Çıktıda (Messages/Notices) yalnızca OK ... satırları ve
sonda Bütün denetimler geçti görünmeli. HATA: ... görürseniz canlıya geçmeyin.
Betik tek işlemde çalışır ve sonunda geri alınır; test kullanıcıları kalmaz.Giriş ya da kayıt yoktur; Supabase Authentication ayarlarına dokunmanız gerekmez. Kedi Odası'nı açan kişi Kediye kim bakıyor? kutusundan adını seçer ya da listede yoksa yazıp ekler. Seçim o tarayıcıda hatırlanır; her bakım bu adla geçmişe yazılır ve geçmişi herkes görür.
kedi/ayar.js → ozlemGun (varsayılan 3) gündür bakım yapmayan kişiyi kedi özler. Odada
"Fındık özledi: …" satırı ve Ekip listesinde etiket görünür; o kişi sayfayı açınca kedi onu karşılar, bakım
yapınca da özel bir tepki verir. Hiç bakım yapmamış kişi için süre listeye eklendiği andan sayılır.schema.sql sonundaki örnekler).Önceki sürümün e-postayla girişli şeması kuruluysa, schema.sql'den önce supabase/eski-semayi-kaldir.sql'i
çalıştırın. Kedinin değerleri ve geçmişi sıfırlanır. Authentication'daki eski kullanıcılar artık kullanılmaz;
isterseniz panelden silebilirsiniz. Allow new users to sign up ayarının bir önemi kalmaz.
Project Settings → API Keys: anon public (ya da publishable) anahtarını ve proje adresini alın.
kedi/baglanti.js'i doldurun (biçim için kedi/baglanti.ornek.js):
window.KEDI_BAGLANTI = { url: 'https://<proje>.supabase.co', anahtar: '<anon/publishable anahtar>' };
Commit edip main'e gönderin; GitHub Pages birkaç dakika içinde yayınlar (tarayıcılar dosyaları ~10 dakika
önbellekte tutabilir).
service_role / secret anahtarı (
"role":"service_role"içeren JWT ya dasb_secret_ile başlayan anahtar) RLS'yi atlar. Bu anahtarkedi/baglanti.js'e, depoya,.envdosyalarına ya da herhangi bir sayfaya girmemelidir. Herkese açık anahtarın görünmesi sorun değildir; verileri RLS ve fonksiyon yetkileri korur.
Canlı modda kurallar public.game_rules tablosundan gelir ve sunucuda uygulanır; yerel deneme kedi/ayar.js'i
kullanır. İkisini aynı tutun:
update public.game_rules set hunger_rise_per_hour = 6, updated_at = now() where id = 1;
Yeni oran son bakımdan bu yana geçen sürenin tamamına uygulanır; eski oranla geçen süreyi korumak için
değiştirmeden hemen önce bir bakım yapın. Hesabın kendisi kedi/kurallar.js ve private.pet_current() /
public.perform_pet_action() içinde aynıdır; birini değiştirirseniz ötekini de değiştirin ve testleri çalıştırın.
pets.id birincil anahtar ve check (id = 1); satır şemayla oluşur, istemci ekleyemez/silemez.anon ve authenticated rollerinin tablo yetkileri geri alınmış, yalnızca
okuma verilmiştir. Yazma iki fonksiyonla yapılır: add_team_member(ad) ve perform_pet_action(eylem, üye_id).
Tarayıcı değer göndermez; kedinin değerlerini ve zamanı sunucu belirler (clock_timestamp()), geçmişteki adı
ekip listesinden sunucu kopyalar.SELECT ... FOR UPDATE ile kilitler, durumu kilit
alındıktan sonraki sunucu saatine göre hesaplar, günceller ve geçmişi aynı işlemde yazar. Aynı anda gelen iki
bakım sıraya girer; ikincisi birincinin sonucunu görür, veri ezilmez.cooldown_seconds (3 sn) bekleme ve saatte max_actions_per_hour (60) bakım;
herkes toplamında dakikada max_actions_per_minute_total (30) bakım. Ekip listesi en çok 40 ad; saatte en çok
10 yeni ad. Bakım denetimleri satır kilidinin arkasında olduğundan paralel isteklerle aşılamaz..gitignore .env dosyalarını dışarıda tutar.node --test test/kedi-kurallar.test.js
Oyun kurallarını sınar: geçen süre, 0–100 sınırları, dört eylem, reddetme koşulları, süreli dinlenme ve erken uyanma, ihmalde ceza olmaması, göstergeler.
Yetkiler ve fonksiyonlar için supabase/test-rls.sql (yukarıda 2. adım).
pet_actions'ta iki satır olmalı ve
kedinin değerleri iki eylemin toplam etkisini göstermeli.supabase.createClient(url, anahtar).from('pets').update({ hunger: 0 }).eq('id', 1) hata vermeli.kedi/avatar.png