Turinys:

„Arduino“šachmatų laikrodis: 6 žingsniai
„Arduino“šachmatų laikrodis: 6 žingsniai

Video: „Arduino“šachmatų laikrodis: 6 žingsniai

Video: „Arduino“šachmatų laikrodis: 6 žingsniai
Video: Как использовать SSD1306 128x32 OLED-дисплей I2C с кодом Arduino 2024, Liepa
Anonim
„Arduino“šachmatų laikrodis
„Arduino“šachmatų laikrodis

Neradau instrukcijų apie gerą „Arduino“šachmatų laikrodį, todėl sukūriau savo, kurį aprašysiu čia.

1 žingsnis: dalių sąrašas

Dalių sąrašas
Dalių sąrašas

štai ko jums reikės: „Arduino nano“(ar bet kuris „arduino UNO“tipas tiks) lituoklio lituoklio PCB plokštė arba „vero“plokštė 2 dvigubi AA baterijų laikikliai 3 X 10 k OHM rezistorių saugiklių laikiklis Skaitmeninis 7 segmentų ekranas signalizatorius 1 perjungimo jungiklis 1 mygtukas mažas (paspauskite, kad padarytumėte tipą) USB 1 kabelis (arba bet kas, kas tinka jūsų „Arduino“) turi mikrofoną ir veržles. Už tai aš pasiūliau ir laimėjau „mekano“rinkinį „ebay“ir panaudojau tai, ką radau, korpuso (pasirinktinai) duonos lentos ir trumpiklius kabelius (neprivaloma, bet rekomenduojama iš pradžių sukurti prototipą), daug laiko! Pridėjau vaizdą, bet tai buvo iš mano atsarginių dalių po to, kai sukūriau, todėl kai kurių komponentų trūksta, kaip nurodyta.

2 žingsnis: prototipų kūrimas

Prototipų kūrimas
Prototipų kūrimas
Prototipų kūrimas
Prototipų kūrimas

Visas projektas gali būti suskirstytas į šias dalis: 1. tinkamos grandinės sukūrimas 2. programa 3. fizinis išdėstymas Šis žingsnis yra neprivalomas, nes pateiksiu jums grandinės schemą, bet labai rekomenduoju išbandyti duonos lentą, nes ji patvirtins (ar ne), kad turite visas jums reikalingas dalis, ir leis jums galvoti apie fizinį visų korpuso ar pagrindo dalių išdėstymą. Čia pridedu savo prototipo nuotrauką duonos lentoje ir schemą. Keletas pastabų apie grandinę: 1. Grandinės schemos viršuje kairėje rodomas kaištis ekrane, prijungtas prie segmento (katodai) arba skaitmuo (anodai). 2. Atkreipkite dėmesį, kad kiekvieno ekrano segmentai (katodai) yra prijungti prie atitinkamo segmento kitame ekrane. Taip yra todėl, kad ekranas yra multipleksuotas, kad būtų rodomi teisingi skaičiai 3. atstatymo jungiklis ir svirtis yra sujungti su nuleidžiamais rezistoriais, kad įvestis būtų LOW, kai atitinkamas mygtukas nėra nuspaustas. daugiau informacijos apie tai rasite https://www.arduino.cc/en/tutorial/button. 4. Maitinimo grandinė yra visiškai atskira, bet paprasta. Tai yra 4 nuoseklios AA baterijos su jungikliu, kurios yra lituojamos į raudoną ir juodą USB kabelio laidus. Tada USB kabelis patenka į arduino.

3 žingsnis: programa

Programa
Programa
Programa
Programa

Kai turite jį ant duonos lentos, turite parašyti valdiklį. Laimei, aš čia pridėjau savo kodą, bet raginčiau išbandyti arba pataisyti šį kodą. Jei ketinate rašyti nuo nulio, pirmiausia išsiaiškinkite, kuriuos smeigtukus nustatyti, ką padaryti visus 10 skaitmenų, tada aš užkodavau papildomus 2 modelius, vieną, kai laikas baigiasi, o kitą - 10 viename skaitmuo (žr. paveikslėlį). Kitas žingsnis yra daugybiniai skaitmenys, kad galėtumėte rodyti skirtingą skaičių ar modelį kiekviename iš 8 skaitmenų. Keičiau multipleksavimo greitį, kol atrodė teisingai, per greitai, o skaičiai susilieja tarp kaimyninių skaitmenų ir per lėtai, o plika akimi galima pastebėti multipleksavimą. Kitas žingsnis yra suskaičiuoti skaičius iki 2 4 skaičių rinkinių, reiškiančių 2 atgalinius skaičiavimus. Aš nusprendžiau naudoti pirmąjį skaitmenį minutėms, kitus 2 - sekundėms, o paskutinį - dešimtosioms sekundėms, bet jūs galite pasirinkti, kad 2 būtų minučių ir 2 sekundžių. Atgalinės atskaitos laiką galima kalibruoti naudojant paprastą ciklą, kuris nieko nedaro, todėl „sekundės“varnelė ekrane iš tikrųjų yra tikra sekundė. Mane priėmė gana arti, bet supratau, kad neformaliam šachmatų žaidimui tai nėra labai svarbu, jei kiekviename žaidime yra vienodas vienetų skaičius. Manau, galbūt norėsite tai padaryti tiksliau, jei norite naudoti savo šachmatų laikrodį turnyrui ar net laiko kiaušiniui! Įjungus laikrodį įkeliamas į atstatymo režimą. Tada laukiama, kol rokeriai bus pataikyti iš abiejų pusių, ir skaičiuojama nuo (numatytosios) 5 min. Kodas klauso atstatymo mygtuko, kai svirtis yra subalansuota. jei jis paspaudžiamas, laikrodis vėl pereina į atstatymo režimą. Šiuo metu atstatymo mygtukas gali būti naudojamas kiekvienam grojimui pageidaujamoms minutėms nuo 1 iki 10. kai rodomas norimas laikas, vėl galima paspausti svirtį ir pradėti laikrodį. galiausiai jums reikia ką nors padaryti, kad parodytumėte, jog laikas pasibaigė, mano atveju rodomi visi brūkšneliai (-) ir skamba keli pyptelėjimai, tada viena pusė rodoma kaip 0000 (pralaimėjusioji), o kita pusė kaip bet koks laikas nugalėtojas nepanaudojo.

4 žingsnis: fizinis kūrimas

Fizinis statymas
Fizinis statymas

Kitas etapas yra fizinis statymas. Svirtinis jungiklis Pirmasis gabalas yra svirties jungiklio sukūrimas. Šis jungiklis turi uždaryti vieną iš dviejų jungčių, bet niekada ne abu. Be to, jis turi sugebėti balansuoti viduryje, kur neuždaromas nei vienas ryšys. Tai sustabdo laikrodį. Čia aš panaudojau nedidelį medienos ilgį ir prisukau JK įžemintą kaištį į bet kurį galą. Tada viduryje pastatomas šarnyras, skirtas pakelti svirtį nuo lentos. Vėlgi šiam bitui plačiai naudojau savo „ebay“mekano. Kai svirtis sumontuota ant plokštės, įžeminimo kaiščiai turi patekti į saugiklių laikiklius, kad uždarytų jungtį. Kad tai būtų sklandžiai, aš nuleidau įžeminimo kaiščių kraštus, kad patekimas į saugiklių laikiklį lengvai judėtų (žr. Paveikslėlį). Išdėstymas Pirmiausia tuščias PCB sumontavau ant perspex lapo, kuriame yra tarpas sukimo rankenėlės pasukimui jungiklis. Tada aš jį nuėmiau ir lituodavau komponentus ir vielą tuo pačiu tarpu. Jei to nepadarysite, jums gali būti sunku atsukti varžtus atgal į pagrindo kampą. Pirmiausia nubrėžkite išdėstymą ant popieriaus ir atminkite: - kokio aukščio bus kiekviena svirtis, skirta korpusui - kai kurie komponentai, pvz., Akumuliatoriaus laikikliai ir „Arduino“USB prievadas, turi būti prieinami po to, kai baigsite. būti sumontuoti ant korpuso dangčio, tada prijunkite jų laidus prie jungčių, kad dangtelis būtų visiškai nuimamas. (manasis turi tik vyrį, bet aš vis tiek tai padariau) - pakreipiau 7 segmentų ekranus, iš vienos pusės ištraukdamas kaiščius su saugikliu, kuris leidžia šiai pusei sėdėti aukščiau iš lentos. galų gale neturėjau pakankamai laiko ir perspexą sunku iškirpti, todėl nusipirkau dėžutę, kurios dydis buvo panašaus į tai, ko man reikėjo, ir šiek tiek pakeičiau. Manau, kad gerai turėti skaidrų korpusą, kad būtų matomas jo veikimas, tačiau įsitikinkite, kad baterijos ir USB prievadas lieka prieinami programoms keisti. Štai ir linksmybių ir sėkmės!

5 veiksmas: kitos parinktys…

Galimi patobulinimai ar parinktys: - paleiskite skirtingą pyptelėjimų seką, priklausomai nuo to, kuri pusė laimi - paleiskite melodiją, kai baigsite. Manau, kad tai įmanoma naudojant analoginius kaiščius ir atitinkamą signalą. - skirtingi oficialūs šachmatų laiko modeliai (pavyzdžiui, pridėti laiko kiekvienam žaidimui) - naudokite 7 segmentą, kad jis būtų 2 skaitmenys minutėms ir 2 sekundėms

6 žingsnis: 2019 m. Atnaujinimas

2019 metų atnaujinimas!
2019 metų atnaujinimas!
2019 metų atnaujinimas!
2019 metų atnaujinimas!
2019 metų atnaujinimas!
2019 metų atnaujinimas!

todėl grįžau prie savo pirmojo „Instructable“ir vėl padariau šachmatų laikrodį!

Aš daugmaž atlikdavau tuos pačius veiksmus, bet su šiais patobulinimais:

Fizinis statymas

  • Visa konstrukcija yra kompaktiškesnė ir ant medinio pagrindo (žr. Nuotraukas)
  • Perjungtas į vieną 9 V bateriją, jungikliu tiesiogiai prijungtą prie VIN ir GND
  • Svirtinis jungiklis yra mechaninis, kai kiekviena pusė laikoma nuspausta, kai paspaudžiami stiprūs magnetai.

Kodas

Taip pat patobulinau čia pridėtą kodą. patobulinimai yra šie:

  • Atsisakė 10 sekundės dalių rodinio ir perskaitė skaitmenis į dešinę
  • Pridėti žingsniai. Pridėtos 5 minutės plius 5 sekundės per judesį ir 10 minučių plius 5 sekundės per judesį

Pridėta kupė linijų, kad būtų galima perjungti ekranus (L R), jei po konstravimo pastebėsite, kad svirtinis jungiklis nepradeda teisingo laikrodžio

Grandinė

Rekomenduojamas: