Git Product home page Git Product logo

ainomok's Introduction

author HitCount LICENSE

AINOMOK

πŸ“œ View Entire Documentation

2016년에 μ„±ν–‰ν•œ μ•ŒνŒŒκ³ μ™€ μ΄μ„ΈλŒκ³Όμ˜ κ²½κΈ° λͺ¨μŠ΅μ—μ„œ 영감λ₯Ό λ°›μ•„ 였λͺ©μ„ λ‘λŠ” 기계와 μ‚¬λžŒμ΄ 였λͺ© κ²Œμž„μ„ ν•  수 μžˆλ„λ‘ ν•œλ‹€. κΈ°κ³„λŠ” 인곡지λŠ₯이 λ‚΄μž₯된 λ°μŠ€ν¬νƒ‘κ³Ό ν†΅μ‹ ν•˜μ—¬ μ‹€μ œ κ³ μˆ˜μ™€ 같이 κ²Œμž„ν•˜λŠ” 것 같이 κ΅¬ν˜„ν•˜μ˜€λ‹€.

κ΅¬ν˜„μ„ μœ„ν•œ μ˜μƒ 처리 기술과 인곡 지λŠ₯은 Python 라이브러리 OpenCV와 Tensorflowλ₯Ό μ‚¬μš©ν•΄ μž‘μ„±ν•˜μ˜€μœΌλ©° 기계 μ œμ–΄μ™€ 톡신 ν”„λ‘œμ„ΈμŠ€λŠ” Arduino의 GRBLμ‰΄λ“œλ₯Ό μ‚¬μš©ν•˜μ—¬ 3D Printer와 ν‘μ‚¬ν•˜κ²Œ μž‘λ™ ν•  수 μžˆλ„λ‘ Cμ–Έμ–΄λ‘œ μž‘μ„±ν•˜μ˜€λ‹€. 물리적 μ„€κ³„λŠ” 3D λͺ¨λΈλ§μœΌλ‘œ Fusion 360을 μ‚¬μš©ν•˜μ˜€λ‹€.

πŸ“ŠPurpose

우리 학ꡐ νŠΉμ„± 상 μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ— μ§‘μ€‘λ˜μ–΄ μžˆμ–΄ μ‹€μ œ κΈ°κ³„μ—μ„œ μ†Œν”„νŠΈμ›¨μ–΄κ°€ μ–΄λ–»κ²Œ ν™œμš©λ˜λŠ”μ§€ μ•Œ 수 μ—†μ—ˆλŠ”λ° μ΄λ²ˆμ— ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ μ•Œκ³  μ‹Άμ–΄μ„œ λ‘œλ΄‡μ— 인곡지λŠ₯을 넣을 수 μžˆλ„λ‘ ν•˜μ˜€λ‹€.

그리고 μ‘°λ¦½ν•œ 기계 μ‚°μΆœλ¬Όμ΄ μ „μ‹œνšŒ 이후에 μ‚¬μš©λ˜μ§€ μ•Šκ³  λ²„λ €μ§€λŠ” λ¬Έμ œμ μ—μ„œ λ²—μ–΄λ‚˜κΈ° μœ„ν•΄ 보닀 더 μ‹€μš©λ„κ°€ 높은 μ‚°μΆœλ¬Όμ„ κ°œλ°œν•˜κ³  μ‹Άμ–΄μ„œ μ΅œλŒ€ν•œ ν₯미둜운 아이디어λ₯Ό μ ‘λͺ©ν•˜κ³  μ‹Άμ—ˆλ‹€.

β˜‘οΈFeatures

  • λ‘œλ΄‡μ€ 였λͺ©νŒμ˜ μ˜μƒ 처리λ₯Ό 톡해 ν˜„μž¬ μƒνƒœλ₯Ό λΆ„μ„ν•˜μ—¬ λ‘˜ 수 μžˆλŠ” 수 쀑 졜적의 수λ₯Ό μ „λ‹¬ν•œλ‹€.
  • κ΅¬μ„±ν’ˆμ˜ LCD νŒ¨λ„μ—μ„œ 좜λ ₯λ˜λŠ” 정보λ₯Ό 톡해 ν˜„μž¬ κ²Œμž„ μŠ€ν…Œμ΄μ§€μ˜ μƒνƒœλ₯Ό μ•Œ 수 μžˆλ‹€.

πŸ”˜Entire Design

Estimated Outputs

μ˜ˆμƒ μ™„μ„±λ³Έ

System Design

πŸ‘ͺContributors

Project Group

Others

πŸ”‘Stack

  • Python

    • Tensorflow(for C: Partically uses Ubuntu OS)
    • OpenCV
  • Arduino

  • 3D Printing & Modeling

πŸ•€Daily Progress

Day 1(12/27) - κ³„νšμ„œ μˆ˜μ • 및 개발 κ³Όμ • 섀계

1. κ³„νšμ„œ 버전 μˆ˜μ • 및 λΈŒλ‘œμŠˆμ–΄ μΆ”κ°€

doc λ””λ ‰ν† λ¦¬μ˜ κ³„νšμ„œλ₯Ό 10/24(Ver.1)μ—μ„œ 12/26(Ver.2)둜 Commitν•˜μ˜€λ‹€. 그리고 κ³„νš 수립 κ³Όμ • 쀑 νŒλ„¬ ꡬ성을 ν•˜κΈ°λ‘œ 결정함에 따라 λΈŒλ‘œμŠˆμ–΄ 원본을 μΆ”κ°€ν•˜μ˜€λ‹€.

2. μ‹œμŠ€ν…œ 섀계

μ‹œμŠ€ν…œ μ„€κ³„μ˜ 도식은 λ‚˜μ€‘μ— μ—…λ°μ΄νŠΈλ  μ˜ˆμ •μ΄λ‹€.

κ΅¬ν˜„μ€ 였λͺ© κ²Œμž„μ˜ μƒνƒœλ₯Ό μ €μž₯ν•˜κ³  μ œμ–΄ν•˜λŠ” λ°μŠ€ν¬νƒ‘κ³Ό 물리적인 μƒνƒœ μ €μž₯κ³Ό 좜λ ₯을 λ‹΄λ‹Ήν•˜λŠ” 아두이노 κ°„μ˜ ν†΅μ‹ μœΌλ‘œ μ΄λ£¨μ–΄μ§ˆ 것이닀. λ°μŠ€ν¬νƒ‘μ€ μ›ΉμΊ κ³Ό μ—°κ²°λ˜μ–΄ μ›ΉμΊ μ—μ„œ 주어진 였λͺ©νŒμ˜ 이미지λ₯Ό μ˜μƒ μ²˜λ¦¬ν•˜μ—¬ 였λͺ©νŒμ„ μ €μž₯ν•˜λŠ” λ°°μ—΄μ˜ 각 μƒνƒœλ₯Ό μ—…λ°μ΄νŠΈν•œλ‹€. 각 μ—…λ°μ΄νŠΈλ₯Ό Round둜 λ‚˜λˆ„μ–΄ 각 Roundλ§ˆλ‹€ λ°μŠ€ν¬νƒ‘μ— λ‚΄μž₯된 RL λͺ¨λΈμ΄ 컴퓨터가 λ‘˜ μ’Œν‘œλ₯Ό νŒλ‹¨ν•˜μ—¬ κ·Έ μ’Œν‘œλ₯Ό 아두이노에 μ „λ‹¬ν•œλ‹€.

μ•„λ‘μ΄λ…ΈλŠ” μ „λ‹¬ν•œ μ’Œν‘œμ— 따라 λͺ¨ν„°λ₯Ό μ œμ–΄ν•˜λŠ” ν”„λ‘œμ‹œμ €μ— 따라 λ°”λ‘‘νŒμ˜ μƒνƒœμ— μ•Œλ§žκ²Œ λ‘”λ‹€. μ•„λ‘μ΄λ…Έμ˜ LCD νŒ¨λ„μ— κ²Œμž„μ΄ 진행 쀑인지, λλ‚¬λŠ”μ§€ ν‘œμ‹œν•œλ‹€. 그리고 λ²„νŠΌμ„ 눌러 κ²Œμž„μ„ μ‹œμž‘ν•˜λŠ” μ‹ ν˜Έλ‚˜ μ€‘μ§€ν•˜λŠ” μ‹ ν˜Έλ₯Ό λ°μŠ€ν¬νƒ‘μœΌλ‘œ 보낸닀. λ°˜λŒ€λ‘œ λ°μŠ€ν¬νƒ‘μ€ 였λͺ© κ²Œμž„μ΄ λλ‚˜λŠ” Round에 κ²Œμž„μ΄ λλ‚¬λ‹€λŠ” μ‹ ν˜Έλ₯Ό μ•„λ‘μ΄λ…Έλ‘œ 보낸닀.

Day 2(12/28) - 개발 μ„ΈνŒ… 및 ν…ŒμŠ€νŠΈ 섀계(λ‹¨μœ„ ν…ŒμŠ€νŠΈ)

1. λΆ€ν’ˆ 쑰달 확인

λΆ€ν’ˆ 쑰달이 μ§€μ—°λ˜μ–΄ μ‹€μ „ ν…ŒμŠ€νŒ…μ€ μ‹œν˜„ 직전인 1μ›” 5일뢀터 1μ›” 7μΌκΉŒμ§€ ν•˜κΈ°λ‘œ κ²°μ •ν•˜μ˜€λ‹€. λΆ€ν’ˆμ΄ μ˜€λŠ” λ™μ•ˆ ν”„λ‘œμ„ΈμŠ€μ˜ κ΅¬ν˜„κ³Ό RL λͺ¨λΈ ν›ˆλ ¨μ„ ν•˜λŠ” κ²ƒμœΌλ‘œ κ²°μ •ν•˜μ—¬ Day 3λΆ€ν„° 본격적으둜 κ°œλ°œν•˜κΈ°λ‘œ ν•˜μ˜€λ‹€.

2. 개발 ν™˜κ²½ 및 ν…ŒμŠ€νŠΈ

μ˜μƒ 처리: ν…ŒμŠ€νŠΈλŠ” λΆ€ν’ˆμ΄ μ˜€μ§€ μ•Šμ•„ μž„μ‹œλ‘œ λ…ΈνŠΈλΆμ˜ μ›ΉμΊ μœΌλ‘œ λŒ€μ‹  ν…ŒμŠ€νŠΈν•  것이닀. μ΄λ―Έμ§€λ‚˜ μ˜μƒμ„ 띄웠을 λ•Œ 검은 돌과 ν•˜μ–€ 돌이 μ–΄λŠ μ’Œν‘œμ— μžˆλŠ”μ§€ CLI에 좜λ ₯ν•˜λŠ” κ²ƒμœΌλ‘œ λ‹¨μœ„ ν…ŒμŠ€νŒ…ν•  것이닀.

RL λͺ¨λΈ: μ‹œκ°„ 내에 κ΅¬ν˜„ν•˜μ§€ λͺ»ν•  κ°€λŠ₯성을 λ°©μ§€ν•˜κΈ° μœ„ν•΄ μ‹œμ΄ˆμ—λŠ” Python의 easyAI 라이브러리둜 λ¨Όμ € κ΅¬ν˜„ν•  것이닀. 그러고 λ‚˜μ„œ μ•Œλ§žκ²Œ λ¦¬νŒ©ν† λ§ν•˜μ—¬ Tensorflow 라이브러리둜 μž¬μž‘μ„±ν•  것이닀.

3D λͺ¨λΈλ§: λ‘œλ΄‡ ν•˜λ“œμ›¨μ–΄λ₯Ό κ΅¬μ„±ν•˜λŠ” λΆ€ν’ˆμ˜ ꡬ성을 λͺ¨λΈλ§ν•˜μ—¬ μ €μž₯μ†Œμ— μ»€λ°‹ν•˜μ—¬ λ³΄κ΄€ν•œλ‹€. 그러고 λ‚˜μ„œ 좜λ ₯ν•˜μ—¬ λΆ€ν’ˆμ΄ μ˜€λŠ” μ¦‰μ‹œ 쑰립을 μ‹œμž‘ν•  것이닀.

Day 3 ~ Day 5(12/29, 1/2 ~ 1/3) - 개발 μˆ˜ν–‰

1. Unperknown - Image Processing

μ˜μƒ 처리λ₯Ό ν†΅ν•œ λ°”λ‘‘λŒ 감지

μ˜μƒ 처리λ₯Ό 톡해 μž„μ‹œλ‘œ νŒŒλž€μƒ‰μ„ κ°μ§€ν•˜λŠ” 것을 μ„±κ³΅ν•˜μ˜€λ‹€.(12/29) 그러고 λ‚˜μ„œ 지속적인 색 감지 ν…ŒμŠ€νŠΈλ₯Ό 톡해 κ²€μ€λŒκ³Ό ν•˜μ–€λŒμ˜ μœ„μΉ˜λ₯Ό ν™”λ©΄μœΌλ‘œ 탐지할 수 있게 λ‚˜λŠ”λ° μ„±κ³΅ν•˜μ˜€λ‹€.(1/3) κ·ΈλŸ¬λ‚˜ ν˜„μž¬ ν•˜λ“œμ›¨μ–΄κ°€ μ™„μ„±λ˜μ§€ μ•Šμ•„ μ‹€μ œλ‘œ νƒμ§€λ˜λŠ”μ§€ ν…ŒμŠ€νŠΈλ₯Ό ν•  수 μ—†λŠ” μƒνƒœμ΄λ‹€. 색 탐지 값을 μ‘°μ •ν•˜λŠ”λ° ν•˜λ“œμ›¨μ–΄μ— μ„€μΉ˜λœ μŠ€νƒ λ“œμ˜ λΉ›μ˜ 밝기, μ›ΉμΊ μ˜ μœ„μΉ˜ 등에 따라 μƒλ‹Ήνžˆ λ‹¬λΌμ§ˆ 수 μžˆμ–΄ μ’Œν‘œμ˜ 색을 κ²€μΆœν•˜μ—¬ 였λͺ©νŒμ˜ μƒνƒœλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λŠ” AI λͺ¨λΈμ„ μ™„μ„±ν•˜κ³  κ²Œμž„ μ œμ–΄ ν”„λ‘œκ·Έλž¨μ„ κ΅¬μ„±ν•œ 후인 κ°€μž₯ λ§ˆμ§€λ§‰μ— ν•˜κΈ°λ‘œ κ²°μ •ν•˜μ˜€λ‹€.

ν˜„μž¬ κ²Œμž„ μ œμ–΄ ν”„λ‘œκ·Έλž¨κ³Ό AI λͺ¨λΈμ€ src 디렉토리λ₯Ό μ–΄λ–»κ²Œ ꡬ성할지에 λŒ€ν•œ νšŒμ˜κ°€ λλ‚˜κ³  λ‚˜μ„œ μ°¨κ·Όμ°¨κ·Ό 컀밋할 μ˜ˆμ •μ΄λ‹€.

2. ohseyoung123 - Arduino Programming

μ‹œλ¦¬μ–Ό 톡신을 C#둜 μž‘μ„±ν•˜μ˜€λ‹€. 기본적인 틀을 μˆ™μ§€ν•˜κ³  λ‚˜μ„œ 본격적으둜 λͺ©μ μ— μ•Œλ§žκ²Œ κ΅¬ν˜„ν•  것이닀. μ½”λ“œλ₯Ό μ§œλŠ”λ°μ— 어렀움을 κ²ͺμ–΄ 검색과 μΉœκ΅¬λ“€μ—κ²Œ 물어봐가며 C++둜 μž‘μ„±ν•˜λ €κ³  ν•˜μ˜€μœΌλ‚˜ 지속적인 였λ₯˜κ°€ 일어났닀.(~1/2)방법을 찾던 쀑 μ„ λ°°μ˜ 도움을 λ°›μ•„ C#으둜 μž‘μ„±ν•  수 μžˆλŠ” 방법을 μ°Ύμ•„ 각 아두이노 ν•€μœΌλ‘œ λ¬Έμžμ—΄μ„ 좜λ ₯ν•˜λŠ” 데에 μ„±κ³΅ν•˜μ˜€λ‹€.(1/3)

3. asphalt-alpha - 3D Modeling

λΆ€ν’ˆμ„ λͺ¨λΈλ§ν•˜μ˜€λ‹€. μ €μž₯μ†Œμ— μ»€λ°‹ν•˜κ³  λ‚˜λ¨Έμ§€ ν•„μš”ν•œ λΆ€ν’ˆμ„ μΆ”κ°€λ‘œ 더 ν•  것이닀.

Day 6 ~ Day 8(1/4 ~ 1/6) - 개발 μˆ˜ν–‰ 및 ν…ŒμŠ€νŠΈ

1. cdb0915 - Assistance of Arduino Programming

μ‹œλ¦¬μ–Ό 톡신을 κ΅¬ν˜„μ„ κ²€μ¦ν•˜λŠ” 쀑에 ohseyoung123과의 ν˜‘μ˜λ₯Ό 거쳐 기술 ν•œκ³„ 상 Python으둜 μž¬μž‘μ„±ν•˜μžκ³  κ²°μ •ν•˜μ˜€λ‹€.(1/4) κ·Έλž˜μ„œ ohseyoung123이 μž‘μ„±ν•œ μ†ŒμŠ€ νŒŒμΌμ„ λ¦¬λ·°ν•˜κ³  ν˜„μž¬ 였λͺ© μ œμ–΄ ν”„λ‘œκ·Έλž¨κ³Ό μ‹œλ¦¬μ–Ό 톡신 ν”„λ‘œκ·Έλž¨μ„ ν•©μΉ˜λŠ” μž‘μ—…μ„ μ§„ν–‰ν•˜κ³  μžˆλ‹€.

2. Unperknown - AI Development and Omok Program

ν•˜λ“œμ›¨μ–΄ μ•ˆμ˜ 였λͺ©νŒμ˜ μƒνƒœλ₯Ό 담은 데이터λ₯Ό 가져와 ν˜„μž¬ Round의 승리 μ—¬λΆ€λ₯Ό ν™•μΈν•˜κ³  턴을 λŒλ¦¬λŠ” μ œμ–΄ ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ˜€λ‹€.(12/28) κ·Έ μ œμ–΄ ν”„λ‘œκ·Έλž¨μ—μ„œ μ˜μƒ 처리λ₯Ό 톡해 ν”Œλ ˆμ΄μ–΄κ°€ λ‘” 돌의 μ’Œν‘œλ₯Ό κ°€μ Έμ˜€λŠ” λ©”μ„œλ“œμ™€ AI λͺ¨λΈμ„ μ‹€ν–‰ν•˜μ—¬ μ’Œν‘œλ₯Ό κ°€μ Έμ˜€λŠ” λ©”μ„œλ“œλŠ” ν˜„μž¬ μž‘μ—… 쀑이닀. ν˜„μž¬ λͺ¨λΈμ΄ ν›ˆλ ¨μ΄ 아직 λ˜μ§€ μ•Šμ•˜κ³  μƒκ²¨λ‚œ 버그λ₯Ό μˆ˜μ •ν•˜κ³  μžˆλ‹€. (1/2 ~) μ €λ²ˆμ— μ–ΈκΈ‰ν•œ λŒ€λ‘œ 내일(1/6)에 μ˜μƒ 처리λ₯Ό 톡해 μ’Œν‘œλ₯Ό λΆˆλŸ¬μ˜€λŠ” λ©”μ„œλ“œλ₯Ό μ‹€μ œ ν•˜λ“œμ›¨μ–΄μ— μ—°κ²°ν•΄ ν…ŒμŠ€νŠΈν•  μ˜ˆμ •μ΄λ‹€. κ·ΈλŸ¬λ©΄μ„œ κ·Έ λ©”μ„œλ“œ μ†ŒμŠ€ νŒŒμΌμ„ 컀밋할 것이닀.

3. asphalt-alpha - Assembling Robot

ν˜„μž¬ 섀계도에 κ³„νšν•œ λ„λ©΄λŒ€λ‘œ λŒ€λΆ€λΆ„μ˜ 물리적 κ΅¬ν˜„μ„ 마치고 μžˆλ‹€.(1/4 ~) κ·ΈλŸ¬λ‚˜ μ„Έμ„Έν•œ μž‘μ—…μ„ ν•˜λ©΄μ„œ μ›ΉμΊ κΉŒμ§€ λ‹€ μ„€μΉ˜ν•˜λŠ”λ° μ‹œκ°„μ΄ κ±Έλ € μ΅œμ’…μ μΈ ν…ŒμŠ€νŠΈλŠ” 내일(1/7) ν•˜κΈ°λ‘œ ν•˜μ˜€λ‹€.

Day 8 ~ Day 9(1/7 ~ 1/8) - ν”„λ‘œμ νŠΈ μΌμ‹œ 쀑단

ν•˜λ“œμ›¨μ–΄μ™€ ν”„λ‘œκ·Έλž¨ κ°„μ˜ λ„€νŠΈμ›Œν¬ κ΅¬ν˜„μ΄ μ›ν™œν•˜κ²Œ 이루어지지 μ•Šμ•˜κ³  μ˜μƒ 처리 κΈ°μˆ μ„ κ΅¬ν˜„ν•˜λŠ”λ° μ‹œκ°„μ΄ 맀우 μ΄‰λ°•ν•˜μ˜€λ‹€. κ·Έλž˜μ„œ ν”„λ‘œν† νƒ€μž…λ§Œ μ „μ‹œν•˜κΈ°λ‘œ κ²°μ •ν•˜μ˜€λ‹€.

Day 10(5/14? ~ ) - ν”„λ‘œμ νŠΈ 재개

각 νŒ€μ›μ˜ μŠ€μΌ€μ€„ 문제둜 2λΆ„κΈ° λ°©κ³Όν›„ ν”„λ‘œκ·Έλž¨μ— ν”„λ‘œμ νŠΈ λ°˜μ„ λ”°λ‘œ κ΅¬μ„±ν•˜μ—¬ κ·Έ μ‹œκ°„ λ™μ•ˆ μ™„μ„±ν•˜κΈ°λ‘œ κ²°μ •ν•˜μ˜€λ‹€. μ •ν™•ν•œ 재개 λ‚ μ§œλŠ” 아직 정해지지 μ•Šμ•˜λ‹€.

ainomok's People

Contributors

eungeon avatar magicallas avatar ohseyoung123 avatar unperknown avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar

ainomok's Issues

아두이노 ν”„λ‘œκ·Έλž˜λ° μš”κ΅¬μ‚¬ν•­

ν”„λ‘œκ·Έλž¨ μ‹œμž‘
->μ•„λ‘μ΄λ…Έμ—μ„œ 3λ²ˆν•€μ— μ—°κ²°λœ μŠ€μœ„μΉ˜λ₯Ό λˆ„λ¦„
-> μ•„λ‘μ΄λ…Έμ—μ„œ C++ ν”„λ‘œμ νŠΈλ‘œ Serial.Write λͺ…령을 μ΄μš©ν•˜μ—¬"start"λΌλŠ” λ¬Έμžμ—΄ 전솑

μ‚¬μš©μžμ˜ ν„΄ μΌλ•Œ
-> LCD둜 0행에 "Your Turn" 좜λ ₯. 1ν–‰μ—λŠ” 60초의 타이머가 흐λ₯΄λŠ” 것을 좜λ ₯
-> λ§Œμ•½ 50μ΄ˆκ°€ 지났닀면 LCD νŒ¨λ„ 0행에 "Hurry Up!" 좜λ ₯
-> λ§Œμ•½ 60μ΄ˆκ°€ μ§€λ‚˜κ±°λ‚˜ μŠ€μœ„μΉ˜κ°€ λˆŒλ Έλ‹€λ©΄ LCD νŒ¨λ„ 0행에 "com Turn" 좜λ ₯κ³Ό
μ•„λ‘μ΄λ…Έμ—μ„œ C++ ν”„λ‘œμ νŠΈλ‘œ Serial.Write λͺ…령을 μ΄μš©ν•˜μ—¬"over"λΌλŠ” λ¬Έμžμ—΄ 전솑

μ•„λ‘μ΄λ…Έμ—μ„œ C++ ν”„λ‘œμ νŠΈλ₯Ό 톡해 "endp" λΌλŠ” λ¬Έμžμ—΄μ„ λ°›μ•˜μ„ λ•Œ
-> LCD νŒ¨λ„ 0행에 "You Win!!" 좜λ ₯.

μ•„λ‘μ΄λ…Έμ—μ„œ C++ ν”„λ‘œμ νŠΈλ₯Ό 톡해 "endc" λΌλŠ” λ¬Έμžμ—΄μ„ λ°›μ•˜μ„ λ•Œ
-> LCD νŒ¨λ„ 0행에 "com Win" 좜λ ₯.

Round μ’…λ£Œ ν›„
-> LCD νŒ¨λ„ 0행에 "Try Again?" 좜λ ₯

λ‹€μ‹œ 처음으둜

λ°”λ‘‘νŒ ν¬κΈ°μ—κ΄€ν•΄μ„œ...

ν˜„μž¬ ν•˜λ“œμ›¨μ–΄ λͺ¨ν„° ꢝ이 μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.
μ™„λ£Œλ˜μ–΄ 확인 ν•΄ λ³΄λ‹ˆ λ‘œλ΄‡μ΄ λ°”λ‘‘λŒμ„ 놓을 수 μžˆλŠ” 곡간이 λ°”λ‘‘νŒμ˜ 19x19λ₯Ό λ„˜μ§€ λͺ» ν•  μˆ˜λ„ 이쓸것 κ°™μŠ΅λ‹ˆλ‹€. ν˜Ήμ‹œ 이에 κ΄€ν•΄μ„œ AI λͺ¨λΈμ—μ„œ μ—λŸ¬ μ‚¬ν•­μ΄λ‚˜ 문제점이 μžˆλ‹€λ©΄ ν™•μΈν•˜μ—¬ μ£Όμ‹­μ‹œμ˜€

λ°”λ‘‘νŒ μ˜μƒμ²˜λ¦¬ λ°˜ν™˜ 데이터 전솑 문제

ν˜„μž¬ OpenCV Python API둜 λ°”λ‘‘νŒ μ΄λ―Έμ§€μ˜ 각 ν”½μ…€μ˜ 색 값을 λΆ„μ„ν•˜μ—¬ 검은 돌의 μœ„μΉ˜μ™€ ν•˜μ–€ 돌의 μœ„μΉ˜λ₯Ό νŒλ³„ν•˜μ—¬ μ΅œμ’…μ μœΌλ‘œ λ°”λ‘‘νŒ μƒνƒœλ₯Ό λ³€κ²½ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΅¬ν˜„ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

그런데 웹캠을 μ„€μΉ˜ν•˜λŠ”λ° λ°μŠ€ν¬νƒ‘κ³Όμ˜ 연결이 잘 λ˜λŠ”μ§€ κΆκΈˆν•©λ‹ˆλ‹€. λ§Œμ•½ 그렇지 μ•ŠμœΌλ©΄ 이미지λ₯Ό μ „μ†‘ν•˜λŠ” 데 ν•„μš”ν•œ 톡신을 λ”°λ‘œ κ΅¬ν˜„ν•΄μ•Ό ν•΄μ„œ 이 뢀뢄에 λŒ€ν•΄μ„œ λ‹΅λ³€ν•΄μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€.

아두이노 μ œμ–΄ ν”„λ‘œμ„ΈμŠ€ ꡬ성 κ΄€λ ¨ 문제

cdb0915와 ν˜‘μ˜ν•œ λ’€λ‘œ 아두이노 μ œμ–΄ ν”„λ‘œμ„ΈμŠ€λ₯Ό μ›λž˜ C++둜 μž‘μ„±ν•˜λ €λ‹€ Python으둜 μž‘μ„±ν•˜κΈ°λ‘œ κ²°μ •ν•œ μ‚¬μ•ˆμ— λŒ€ν•΄μ„œ μ΄μ•ΌκΈ°ν•˜λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

아직 μ»€λ°‹ν•˜μ§€ μ•Šμ€ μ†ŒμŠ€ 파일이 λ‚¨μ•„μžˆμ§€λ§Œ μ–΄μ œ κΈ΄ ν˜‘μ˜λ₯Ό κ±°μ³€μœΌλ―€λ‘œ Python으둜 같이 νŽ˜μ–΄ ν”„λ‘œκ·Έλž˜λ°ν•˜λŠ” 것이 μ–΄λ €μš΄ μž‘μ—…μ΄ 아닐 κ²ƒμœΌλ‘œ μ˜ˆμƒν•©λ‹ˆλ‹€. μ΅œλŒ€ν•œ μ‹€μ „ ν…ŒμŠ€νŠΈλ₯Ό κ±°μΉ˜λŠ” λ‚΄μΌκΉŒμ§€ μ™„λ£Œν•΄μ£Όμ‹œκΈ° λ°”λžλ‹ˆλ‹€.

src 디렉토리 ꡬ성

μ•žμœΌλ‘œ μ €λ²ˆμ— 계속 μž‘μ„±ν•˜κ³  μžˆμ—ˆλ˜ μ†ŒμŠ€ νŒŒμΌλ“€μ„ 올리렀고 ν•©λ‹ˆλ‹€. 그런데 src 디렉토리 μ•ˆμ΄ ν˜„μž¬ μ΄λ ‡κ²Œ κ΅¬μ„±λ˜μ–΄ μžˆλŠ”λ°

src /
   AINOMOK /
        Arduino /
        Image_Processing /
        Q-Learning Omok /
        x64 /
        λ‚˜λ¨Έμ§€ Visual Studio ꡬ동에 ν•„μš”ν•œ νŒŒμΌλ“€
   AINOMOK.sin -> μ†”λ£¨μ…˜ 파일

μ§€κΈˆ μƒκ°ν•΄λ³΄λ‹ˆ ꡳ이 Visual Studio 라이브러리 ꡬ성에 얽맀일 ν•„μš” 없이 Python module둜 λ°”κΎΈλŠ” 것이 더 쒋을 것 κ°™μŠ΅λ‹ˆλ‹€. κ·Έλž˜μ„œ μ œκ°€ μΆ”μ²œν•˜κ³ μž ν•˜λŠ” 방식은

unittests.py
src /
    Game.py
    Board.py
    Player.py
    Computer.py
    detection /
         detectStone.py
         sendUpdate.py
    ai /
        SSS.py
    arduino /
        ???.cpp

이와 κ°™μŠ΅λ‹ˆλ‹€. 이에 λŒ€ν•΄μ„œ 리뷰λ₯Ό λ‚¨κ²¨μ£Όμ‹œκ³  ν† μ˜ν•œ λ°©μ‹λŒ€λ‘œ master branch에 μ˜¬λ¦¬λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€. 파일 μΆ©λŒμ„ 막기 μœ„ν•΄ 올리고 λ‚˜λ©΄ μžμ‹ μ˜ branch에 μžˆλŠ” 디렉토리λ₯Ό μ‘°μ •ν•˜μ‹œκΈ° λ°”λžλ‹ˆλ‹€.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.