* 트윈콥터 ì œìž‘ ì „ 연습삼아서 ZeroPageì—ì„œ ë†€ê³ ìžˆëŠ” ë¼ì¦ˆë² 리파ì´2(ë¼íŒŒì´)를 ì´ìš©í•˜ì—¬ ZPì‹¤ë¬¸ì„ ì—¬ëŠ” 아주 간단한 IOTë„ì „ == ê¸°íš == * Slack-ZeroBotì—게 문열ë¼ëŠ” ëª…ë ¹ì–´ë¥¼ 주면 ë¬¸ì„ ì—´ 수 있ë„ë¡ í•¨(ex- ZeroBot OpenDoor) == ì‚¬ìš©ëœ ë¶€í’ˆ == * ë¼íŒŒì´2(테스트용으로 ë¼íŒŒì´B+) * 서보모터 - 한양대 ìžë™ì°¨ 대회때 ì‚¬ìš©í•˜ê³ ë‚¨ì€ 1ê°œ 사용(아래 ë°ì´í„°ì‹œíŠ¸ 첨부) attachment:sample.png * UTPì„ (약 10m) - ì›ëž˜ëŠ” 8ê°œ ì„ ì¤‘ 4개는 ëžœì„ 3개는 서보모터 ì»¨íŠ¸ë¡¤í•˜ë ¤ë‹¤ê°€ 귀찮아서 3개만 사용 * ë¹µíŒ(ë¸Œë ˆë“œë³´ë“œ) - 납땜하기 ê·€ì°®ê³ ë‚˜ì¤‘ì— ë˜ ì¶”ê°€í• ì§€ 몰ë¼ì„œ... == 설계 == * 사용 언어 : 파ì´ì¬(해보니 C보다 훨~~~~~~~~~~~~~~~~씬 쉬움) * ìž…êµ¬ì— ìžˆëŠ” 버튼 하나만 눌러주면 ë¬¸ì´ ì—´ë¦¬ë¯€ë¡œ 스위치는 서보모터 하나로 단순하게 ì œìž‘ * ì„¸ì½¤ì´ ë©ì²í•˜ê²Œ 버튼 ëœ¯ì„ ìˆ˜ 있게 해놨ì„ë¦¬ë„ ì—†ê³ ê·¸ëž˜ì„œ ì§ì ‘ì—°ê²° ì•ˆí•˜ê³ ì´ë ‡ê²Œ 하는ê²ë‹ˆë‹¤ * ë¬´ì„ ë™ê¸€ì„ ì´ìš©í•˜ê¸°ì—는 êµ¬ìž…ì´ ê·€ì°®ê¸°ë„ í•˜ê³ ë‹¤ë¥¸ ë¬´ì„ ì‹ í˜¸ê°€ ë§Žì€ 6í”¼ì˜ íŠ¹ì„±ìƒ ìœ ì„ ìœ¼ë¡œ í• ì˜ˆì • * ì¶”í›„ì— ê¸°ëŠ¥ì„ ì¶”ê°€ í• ìˆ˜ 있ë„ë¡ ë¼íŒŒì´ëž™ì— ë¼íŒŒì´ë¥¼ ë‘ê³ UTPì„ ì„ ê¸¸ê²Œ 뽑아서 서보모터만 입구버튼 ìƒë‹¨ì— 장착 * 7.24 ì „ì›ë¬¸ì œë¡œ ì¸í•´ 별ë„ë¡œ 외부 ì „ì› ì—°ê²°í• ì˜ˆì • * í”„ë¡œê·¸ëž¨ì€ ì„œë³´ëª¨í„°ë¥¼ íšŒì „ì‹œì¼œ 입구 ì•žì— ìžˆëŠ” ì—´ë¦¼ë²„íŠ¼ì€ ëˆŒë €ë‹¤ê°€ ì›ìœ„치 시킴 attachment:Example.jpg == 구현 == * ip는 ZPì— í• ë‹¹ë°›ì€ ëŒ€ì—í 중 하나를 사용 * 코드{{{ ì•„ì§ì•ˆí•¨ã…‹ }}} * ZeroBotì´ëž‘ì€ ì–´ë–»ê²Œ ì—°ë™í• 까? - 천천히 ìƒê°í•´ë´…시다 * Raspberry piì—ì„œ Python으로 Web Server를 만들어 ë†“ê³ ê·¸ ì›¹ì„œë²„ì— ì ‘ì†í•˜ë©´ 열리는 ë°©ì‹ìœ¼ë¡œ í•´ë‘ë©´ ZeroBotì´ í•´ë‹¹ URLë¡œ HTTPì ‘ì†ì„ 하면 ë¨. 만약 ë³´ì•ˆì„ ì‹ ê²½ì“°ê³ ì‹¶ë‹¤ë©´ ì¸ì¦ì„ 달면 ë˜ê³ . -bluemir- === 7.24 === * 약 10mì˜ ê±°ë¦¬ì—ì„œ 파워를 ì œê³µë°›ë‹¤ë³´ë‹ˆ 파워부족으로 ì»¨íŠ¸ë¡¤ì´ ìž˜ì•ˆë¨ * 0 ~ 180ë„ë¡œ ë°˜ë³µí• ë•Œ 10번 중 2번 ì •ë„ê°€ ì¤‘ê°„ì— ë˜ëŒì•„옴 * ì˜ˆì œ 코드{{{ 0 ~ 180ë„ ë°˜ë³µí•˜ëŠ” 코드 1 import RPi.GPIO as GPIO 2 import time 3 pin = 18 4 GPIO.setmode(GPIO.BCM) 5 GPIO.setup(pin, GPIO.OUT) 6 p = GPIO.PWM(pin, 50) 7 8 p.start(7.5) 9 try: 10 while True: 11 p.ChangeDutyCycle(7.5) 12 time.sleep(2) 13 p.ChangeDutyCycle(12.5) 14 time.sleep(2) 15 p.ChangeDutyCycle(2.5) 16 time.sleep(5) 17 except keyboardInterrput: 18 p.stop() 19 GPIO.cleanup() }}} * 별ë„ì˜ ì „ì›í•„ìš”í• ë“¯(4.8~6v) - ìžë™ì°¨ëŒ€íšŒìš© 배터리 사용하면 ë 듯 * ë³„ë„ 5V(íœ´ëŒ€í° ì¶©ì „ê¸°) ì“°ê³ ëª¨í„°ë“œë¼ì´ë¸Œë¥¼ 사용하는건? -bluemir * ë³„ë„ ì „ì›ì´ 들어가서 모터드ë¼ì´ë¸Œ ë„£ì–´ì¤˜ì•¼í•˜ëŠ”ë° IC칩하나만 쓸지 ìžë™ì°¨ëŒ€íšŒë¡œ 준거 쓸지 ê³ ë¯¼ì´ë„¤ìš” -[김한성] === 7.27 === * ì´ê±° 하러 온 ê±´ ì•„ë‹Œë° ë‹¤ì‹œ ìƒê°í•´ë´„ * 별ë„ì˜ ì „ì›(5v) 추가 ì˜ˆì • - í•¸ë“œí° ë°°í„°ë¦¬ ì¶©ì „ê¸° * ì´ìœ - 24ì¼ì— 기ë¡í•œê±°ì²˜ëŸ¼ 파워 부족(ì „ì••ì€ ì ì •ì¹˜ì´ë‚˜ ê¸°ë³¸ì¶œë ¥ ì „ë¥˜ê°’ì´ ë„ˆë¬´ ì ìŒ....)으로 ì»¨íŠ¸ë¡¤ì´ ìž˜ ì•ˆë¨ * 모터드ë¼ì´ë¸Œë„ 추가 ì˜ˆì • * IC칩 사용(SN754410NE) - http://html.alldatasheet.com/html-pdf/28616/TI/SN754410NE/24/1/SN754410NE.html attachment:sample1.png * 모터드ë¼ì´ë¸Œì˜ ì—í• {{{ 1. 별ë™ì˜ 외부 ì „ì› ê³µê¸‰ 가능 2. í•˜ë‚˜ì˜ ì•ˆì •ìž¥ì¹˜?(ë¼íŒŒì´ ëŒ€ì‹ ì–˜ê°€ ëŒ€ì‹ íƒ€ì¤Œã…‹) 3. 열차단 회로 내장 4. ê³¼ì „ë¥˜ 보호회로 내장 5. ì—ê¸°ì „ë ¥ í¡ìˆ˜ìš© 다ì´ì˜¤ë“œ 내장 }}} * ì´ì˜ê²Œ ë§Œë“¤ì–´ì•¼í• ë“¯ * 대충 ë‹¬ë ¤ê³ í–ˆëŠ”ë° ì• ë§¤í•©ë‹ˆë‹¤(ê±¸ì¹ ê³³ì´ ì—†ì„œì„œ ã„·ã„·) * IOTê°€ 불가능한 ìƒí™©ì¼ë•Œ 물리ì 으로 ë²„íŠ¼ì— ì ‘ê·¼ì´ ê°€ëŠ¥í•˜ë„ë¡ ì œìž‘ === 8.5 === * PWM(Pulse Width Modulation) * ì•„ë‚ ë¡œê·¸ ì‹ í˜¸ë¥¼ 디지털 형태로 나타낸 것. * ì „ì›ì´ onë˜ëŠ” ì‹œê°„ì„ íŽ„ìŠ¤ í * 펄스 íì„ ì¡°ì •í•¨ìœ¼ë¡œì¨ on/off사ì´ì˜ ì „ì••ì„ í‰ë‚´ë‚¼ 수 있다. attachment:pwm.png === 9.11 === * [kjm] 삽질중. * scapyë¡œ 하면 ë˜ëŠ”ê±´ê°€... * http://www.secdev.org/projects/scapy/doc/installation.html * ì´ë ‡ê²Œ ì¹œì ˆí•œ 설명서를 ì œëŒ€ë¡œ ì½ì§€ ì•Šì€ ìžì˜ 최후.. * ë야 ë¼ì´ë¸ŒëŸ¬ë¦¬ 설치 ë‹¤í•´ë„ ì•ˆë˜ìžë‚˜ * tcpdumpì— ê¶Œí•œì„ ì¤˜ì•¼ ëœë‹¤ê³ 한다? ë˜ ì—¬ê¸°ì„œ setcap까지.. permission 어쩌구... * https://github.com/byt3bl33d3r/MITMf/issues/49 * ì¼ë‹¨ ìžì•¼ì§€ === 9.12 === * [김한성] 삽질중....... * 추가ì ì¸ í™•ìž¥ì„±ì„ ê³ ë ¤í•˜ì—¬ ë‚©ë•œ 중...... * í•€ì…‹ì´ ì—†ì–´ì„œ ì†ì´ ë¶ˆíƒ€ì˜¤ë¥´ê³ ìžˆìŠµë‹ˆë‹¤. * 회로는 ì¶”í›„ì— ê³µê°œ...... === 9.15 === * scapyê°€ ì—†ì–´ë„ ë˜ìž–.... * 그냥 파ì´ì¬ì˜ socket ë¼ì´ë¸ŒëŸ¬ë¦¬ë¡œ 코딩. * 잘ë˜ëŠ”거같네요. * ì´ë”° 한성ì´í˜•êº¼ëž‘ í•©ì³ì•¼ì§€.. * ì—¥? httpë¡œ 해야지 * flask를 ì¨ë³´ê³ 있습니다. ì–‡ì€ê·€ì˜ ê¹€ì •ë¯¼ === 9.15 === * ë¼ì¦ˆë² ë¦¬íŒŒì´ íŒŒì´ì¬ 위키 : http://sourceforge.net/p/raspberry-gpio-python/wiki/Home/ === 9.17 === * 어찌어찌 플ë¼ìŠ¤í¬ë¡œ post ë°›ê³ í•˜ëŠ”ê±´ 만들었습니다. í•©ì³ë´ì•¼ì•Œë“¯.. === 9.18 === * 모터드ë¼ì´ë¸Œì—ì„œ EN와 A ìƒê´€ì—†ì´ Yë¡œ ê³„ì† High만 뜸(설마 나갔나??) * ì¼ë‹¨ 모터드ë¼ì´ë¸Œ ì œì™¸í•˜ê³ ì§„í–‰ * 서보가 ì „ë ¥ì„ ìƒê° 외로 ë§Žì´ ì†Œëª¨í•˜ì—¬ ì„œë³´ì— pwm ì‹ í˜¸ë¥¼ 주면 ë¼íŒŒì´ê°€ 꺼ì§ã…‹ã…‹ã…‹ã…‹ã…‹ã…‹ 현재 0.7A짜리 ë§ê³ 2A짜리 ì¶©ì „ê¸°ê°€ í•„ìš”í• ë“¯ * 실행코드{{{ import RPi.GPIO as GPIO pwm_pin = 23 GPIO.setmode(GPIO.BCM) GPIO.setup(pwm_pin, GPIO.OUT) p = GPIO.PWM(pwm_pin, 50) p.start(0) p.ChangeDutyCycle(12.5) time.sleep(2) p.ChangeDutyCycle(0.5) time.sleep(2) p.stop() GPIO.cleanup() }}} * 서버랑 gpio를 ê°™ì´ ë„£ê³ sleep했다가 서버가 사ë§, 그래서 íŒŒì¼ ë¶„ë¦¬í•´ì¤Œ * 여러분 ì„œë²„ì— sleep하지마세요. ì €ê±° í• ë•Œ 옆ì—ì„œ ì•ˆë³´ê³ ìžˆì—ˆìœ¼ë©´ ì •ë¯¼ì´ ë©˜íƒˆ ë˜ ë‚˜ê°ˆë»”. - [김한성] * 와! ë¬¸ì´ ì—´ë¦°ë‹¤. * ì´ê±° 하나 í•œë‹¤ê³ .... == ë¬¸ì œì == * ZeroBotì´ ì£½ì—ˆì„ ê²½ìš° * ì§ì ‘ ë¼íŒŒì´ì— ì ‘ê·¼í•˜ì—¬ ë¬¸ì„ ì—°ë‹¤ * Slackì´ ë§‰íž ê²½ìš° * 설마;;; * 불순한 ì˜ë„ë¡œ ë¼íŒŒì´ì— sshë¡œ ì ‘ê·¼í•˜ì—¬ íŠ¸ë¡¤ë§ í•´ë†“ëŠ” 경우 * ë…¸ë ¥ì´ ê°€ìƒí•´ì„œ ë´ì¤€ë‹¤ * 물리ì 으로 ë¼íŒŒì´ ì „ì› or ì¸í„°ë„·ì„ 사용 못하게 하는 경우 * 현장범ì´ë©´ ë¹ ë”°ë¡œ.... * 다시 연결해야지.... {{{그냥 귀찮아서 í•™ìƒì¦ìœ¼ë¡œ ì—´ê³ ë§Œë‹¤;;}}} --------------------------------- [엔진소리죽ì´ëŠ”ë°], [ë¼ì¦ˆë² 리파ì´]