{"id":24310386,"url":"https://github.com/hisarcs/piwars2023","last_synced_at":"2026-04-20T00:32:35.456Z","repository":{"id":234884505,"uuid":"666734421","full_name":"HisarCS/PiWars2023","owner":"HisarCS","description":null,"archived":false,"fork":false,"pushed_at":"2023-09-16T20:06:14.000Z","size":67,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-11-01T14:25:22.740Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HisarCS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-07-15T11:56:36.000Z","updated_at":"2023-11-27T08:24:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"7d729064-167e-475d-b5fa-d5dd9aefaacf","html_url":"https://github.com/HisarCS/PiWars2023","commit_stats":null,"previous_names":["hisarcs/piwars2023"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HisarCS/PiWars2023","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HisarCS%2FPiWars2023","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HisarCS%2FPiWars2023/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HisarCS%2FPiWars2023/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HisarCS%2FPiWars2023/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HisarCS","download_url":"https://codeload.github.com/HisarCS/PiWars2023/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HisarCS%2FPiWars2023/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32028050,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"ssl_error","status_checked_at":"2026-04-20T00:17:31.068Z","response_time":55,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-01-17T06:14:38.269Z","updated_at":"2026-04-20T00:32:35.444Z","avatar_url":"https://github.com/HisarCS.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PiWars2023\nBu python kütüphanesi, HisarCS tarafınndan hazırlanan PiWars Türkiye 2023 robot kitlerindeki ultrasonik mesafe sensörü, pololu-drv8835 ve kamera gibi parçaların kullanımlarını kolaylaştırmak amacıyla yapılmıştır.\n\n## Library'yi İndirme\nGithub'dan Pi23 library'sini indirmek de mümkün.\n```bash git clone https://github.com/HisarCS/Pi20.git\n$ git clone https://github.com/HisarCS/PiWars2023.git\n$ cd Piwars-2023-Library\n$ sudo python setup.py install\n```\nBurada komutları terminale kopyalayarak Pi23 kütüphanesini kullanmak mümkğn\ngit clone kütüphaneyi Raspi 4'ünüze indirirken\ncd Pi23 bu dosyaya erişip içinde dosyaları import etmeniz ve kullanmanızı sağlar\nsudo python setup.py install ise kütüphanenin setup kısmını halleden komuttur\n\n## Ultrasonik_S\nUltrasonik_S sınıfı GPIO modu olarak BCM kullanır\n\n**Fonksiyonlar**\n\n```python\n\nOlcmeyeBasla()\n\n```\n\nArka planda ultrasonik sensörü aktif hale getirir.\n\n```python\n\nOku()\n\n```\nArka planda aktif hale getirilen sensörün ölçtüğü mesafeyi geri verir.\n\n**Ultrasonik Örnek Kullanım**\n```python\nfrom time import sleep\n\n\nsensor = Ultrasonik_S(20,21)\nsensor.OlcmeyeBasla()\n\nwhile True:\n    anlikDeger = sensor.Oku()\n    print(anlikDeger)\n    sleep(0.1)\n\n```\n```sensor``` nesnesini oluştururken kullandığımız ```Ultrasonik_S(20,21)```, nesenenin ultrasonik sensör olduğunu belirtir ve parantez içindeki kısım (constructor) ise ultrasonik sensörun hangi GPIO numaralı pine takılı olduğununu gösterir. Daha sonrasında ise ```OlcmeyeBasla()``` komutu ile arka planda aktif hale getirdiğimiz sensör ```whlie True``` loopu ile ölçtüğü mesafeyi 0.1 saniye aralıklarla ekrana basar.\n\n\n## HizlandirilmisPiKamera\n\n**Fonksiyonlar**\n\n```python\n\nveri_okumaya_basla()\n\n```\nAyrı bir thread oluşturarak kamera ile veri okumaya başlar.\n\n\n```python\n\nonizlemeyi_baslat()\n\n```\nKameranın ön izlemesini başlatır.\n```python\n\nonizlemeyi_durdur()\n\n```\nKameranın ön izlemesini durdurur.\n\n```python\n\nkapat()\n\n```\nKamerayı kapatır.\n\n\n\n**HizlandirilmisPiKamera Örnek Kullanım**\n```python\nfrom time import sleep\n\nk = HizlandirilmisPiKamera()\nk.veri_okumaya_basla()\nk.onizlemeyi_baslat()\nk.resize(240, 240)\nwhile True:\n\tk.kareyi_goster()\n\t\n\n```\nBu kod Picamera'nın preview'ını gösterir ve bu imageları boyutunu küçülterek ekran boyutuna uygun hale getirir.\n\n## Motor\n**Fonksiyonlar**\n```python\n\nhiz(hizsag,hizSol)\n\n```\nPololu-drv8835'in kütüphanesini kullanarak her iki motorun da hızını ayarlar. Hız -480 ile 480 arasında atanabilir. Pozitif değerler ileriyi, negatif değerler de geriyi temsil eder. ```sagHiz``` pololu üzerinde birinci motora, ```solHiz``` ise ikinci motora denk gelir.\n\n```python\n\nsagHiz()\nsolHiz()\n```\n```hiz``` fonksiyonu gibi Pololu-drv8835'in kütüphanesini kullanır. ```hiz``` fonksiyonundan farklı olarak bu iki fonksiyon sadece tek bir motora (sağ veya sol) hız değeri atanmasına olanak sunar.\n```python\nktm()\n```\n\n**Değer Vererek Motor Döndürme**\n```python\nfrom time import sleep\n\n\nm = Motor()\n\nwhile True:\n  \n    m.hiz(200,200)\n    sleep(3)\n    m.solHiz(200)\n    sleep(5)\n    m.solHiz(-247)\n    sleep(5)\n```\n**Kumanda Verisiyle Motor Döndürme**\n```python\nmotorlar = Motor()\n\njoystik = Kumanda()\njoystik.dinlemeyeBasla()\n\nwhile True:\n\tlx, ly = joystik.sol()\n\tsagHiz, solHiz = motorlar.ktm(lx, ly)\n\n\tmotorlar.hiz(sagHiz, solHiz)\n```\n\nKumanda'nın sol joystick axis'lerinden veri alarak bu verileri motorr verisine çevirir ve motorlar kumanda verisine göre güçte gider\n\n## Servo\nServo sınıfı GPIO modu olarak BCM kullanır\n\n**Fonksiyonlar**\n```python\nsurekliDonme()\n```\nServoyu sürekli dönmeye ayarlar.\n```python\nsecilenAci()\n```\nServoyu tek bir açıya dönmeye ayarlar.\n```python\naciAyarla(aci)\n```\nİstenilen açı değerini belirtir.\n```python\nuyu()\n```\nTüm aktiviteyi durdurur.\n\n**Açı Değeri Vererek Servo Döndürme**\n```python\nfrom time import sleep\n\nservo = Servo()\nservo.secilenAci()\nwhile True:\n\tsecilenAci(0)\n\tsleep(1)\n\tsecilenAci(180)\n\tsleep(1)\n```\nBu kod servonun set edilen iki açı arasında sürekli gidip gelmesini sağlar.\n\n**Sürekli Servo Döndürme**\n```python\nfrom time import sleep\n\nservo = Servo()\nservo.surekliDonme()\n\naci = 0\nekle = 0\n\nwhile True:\n\tservo.aciAyarla(aci)\n\n\tif(aci == 180):\n\t\tekle = -1\n\telif(aci == 0):\n\t\tekle = 1\n\taci += ekle\n\tsleep(0.05)\n\n```\nBu kod servonun sürekli dönmesini sağlar.\n\n## Kumanda\n\n\n**Fonksiyonlar**\n```python\ndinlemeyeBasla()\n```\nKumanda'dan arkada veri almaya başlamasını sağlar.\n```python\nsol()\n```\nSol joystick verilerini okur.\n```python\nsağ()\n```\nSağ joystick verilerini okur.\n```python\nbutonlar()\n```\nButon verilerini okur.\n```python\noku()\n```\nTüm verileri okur.\n\n**Kumanda Örnek Kullanım**\n```python\njoystik = Kumanda()\njoystik.dinlemeyeBasla()\n\nwhile True:\n\tlx, ly = joystik.sol()\n\trx, ry = joystik.sag()\n\tbuttons = joystik.butonlar()\n\n\tprint(\"Sağ joystik değerleri: \", lx, ly)\n\tprint(\"Sol joystik değerleri: \", rx, ry)\n\n\tif(1 in buttons):\n\t\tprint(\"1'inci Butona basıldı!\")\n\n```\nBu kod kumanda verilerini okur ve bu verileri console'a print fonkisyonun kullanarak gösterir\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhisarcs%2Fpiwars2023","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhisarcs%2Fpiwars2023","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhisarcs%2Fpiwars2023/lists"}