<div>멘탈을 다시 부여잡고..</div> <div>오늘의 주제는 <b>임베디드 제품의 설계 및 부품선정</b> 입니다.</div> <div><br></div> <div><br></div> <div>임베디드 장치는 앞서 이야기 했듯, 특화된 장치 입니다.</div> <div>주어진 목적에 대해서(<b>요구사항</b>)</div> <div>정해진 입력에 정해진 출력을 정해진 시간내에 주면 됩니다.</div> <div><br></div> <div> <div>만약 자전거에 무선 자동 변속기를 달았는데</div> <div>버튼을 눌렀고 버튼의 신호를 읽어 무선으로 전송하여</div> <div>기어를 변속 시작하는데 까지 사람이 인지하기 힘든 시간(~10ms) 이내에 전송 이 완료되어 변속이 시작되면 된다고 가정하였을때</div> <div><br></div> <div>이에 적절한 부품을 선정해 보도록 하겠습니다.</div> <div><br></div> <div>작동에 필요한 행동들을 정의하면</div> <div>-기어를 올린다, 내린다(1단)</div> <div>-기어를 올린다, 내린다(2단)</div> <div>-기어를 최대로 올린다, 최저로 내린다(끝-끝)</div> <div>-변속기의 배터리 상태 측정</div> <div>-단별 기어 위치 미세 조정</div> <div><br></div> <div>으로 변속기 쪽의 모터 제어를 제외하면 상태정보 정도이기 때문에<b> 연산량</b>이 많이 필요를 하지는 않습니다.</div> <div>그리고 변속기나 레버쪽은 무선/휴대용이기 때문에<b> 배터리</b>가 오래 가야 합니다.</div> <div><br></div> <div>그럼 CPU는 <b>저전력의 저사양</b>이라도 상관이 없으므로</div> <div>cortex-m3나 avr atmega 혹은 attiny, 8051 어떤것을 쓰던 상관이 없습니다.</div> <div><br></div> <div><br></div> <div>그리고 자전거에서 핸들과 변속기의 <b>거리가 1m 이내</b> 이므로</div> <div>802.11과 같은 WiFi는 단가도 비싸고 올라가야 할 내용들이 많아서 무겁기 때문에 사용자가 구매할 경우 가격이 많이 올라가게 됩니다.</div> <div>또한 패킷을 만들어서 보내는데 여러단계를 거치므로 10ms 이내에는 들어오겠지만 cpu 성능이 느리거나 복구시 오래 걸릴 수 있으므로</div> <div>그리 좋은 선택은 아닙니다.</div> <div><br></div> <div>그렇다면 1m 정도의 거리를 <b>통신</b>할 수 있는 최적의 솔루션은 bluetooth나 zigbee 정도겠군요.</div> <div>(그 외에 제가 모르는 다른 통신 방법도 있겠지만..)</div> <div><br></div> <div><br></div> <div>그럼 현재까지 필요한 정보로는</div> <div>stm32(cortex-m3)나 atmega128 정도의 마이크로 프로세서에</div> <div>bluetooth나 zigbee를 장착하면 되는 것으로 보여집니다.</div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;">그럼 micom과 무선장치를 연결하는 방법으로 </span></div> <div>bluetooth나 zigbee 모두 uart를 통해 접속하는 법을 제공하므로</div> <div>micom에는 uart 포트가 1개 이상만 있으면 됩니다(대개 2~3개 지원하니 멀 선택하던 상관이 없군요)</div></div> <div><br></div> <div>stm32가 좋다고는 하지만 웬지 전 STMicro를 싫어하니(어?) Ti로 가던가</div> <div>만만하다고 알려진 ATmega 시리즈(아두이노 로도 유명한)를 골라보도록 합니다.</div> <div>(새로운 칩이 싸다고 하도 개발의 난이도가 있기 때문에 개발자가 좋아하는 칩을 고르기도 합니다.)</div> <div><br></div> <div>그럼 ATmega + bluetooth가 확정되었고</div> <div><br></div> <div>기어를 변속하기 위해서 모터가 필요한데 <span style="font-size:9pt;line-height:1.5;">모터의 종류를 보니 먼가 드럽게 많습니다!!! 듀듕!</span></div> <div> <div style="text-align:left;"><img src="http://thimg.todayhumor.co.kr/upfile/201507/1438153265qQ9OWJpe.png" width="408" height="411" alt="2.png" style="border:none;"></div><br></div> <div>일단 기어 변속을 위해서는 당겨지는 <b>힘이 세어야하고</b>, <b>위치를 제어</b>할 수 있어야 하니</div> <div>서보 모터나, 엔코더 모터 정도가 선택지 입니다.</div> <div>스텝모터는 V(전압)이 높아서 배터리로 작동시키는 좋지 않은 녀석이고, 부피가 큰데다 전기도 많이 먹습니다</div> <div>DC 기어드는 써본적은 없지만.. 제어를 위해서는 엔코더가 필요하고(위치제어) 그러면 엔코더 모터와 동일해지게 되니 제외</div> <div>아무튼 결론은 만만한 <b>서보 모터</b>가 선택되어지는군요</div> <div><br></div> <div>그럼</div> <div>ATmega + bluetooth + Servo</div> <div>로 제품에 들어갈 핵심 부품들은 선정이 완료 됩니다.</div> <div><br></div> <div>그 이후에는 프로그램의 크기등에 의해 ATmega168 -> 128 -> 96 -> 64 -> 32 등으로</div> <div>가격 다운(물론 용량도 다운) 시킬수 있으며</div> <div><br></div> <div>bluetooth 에서 SPP(Serial Port Profile)을 쓰지 않고 GPIO 포트를 제어하게 된다면</div> <div>변속 레버쪽은 GPIO 전송 + bluetooth slave</div> <div>기어 쪽이 bluetooth master + GPIO 수신 + servo 제어 등으로 더욱 간소화 하여 사용이 가능합니다.</div> <div><br></div> <div><br></div> <div>그리고 변속기는 앞 / 뒤 두개를 제어야 해야 하니</div> <div>입력 키는</div> <div>앞 기어 + / - 키 2개</div> <div>뒷 기어 + / - 키 2개</div> <div>총 4개의 키가 필요하며</div> <div>추가 기능을 위해서는 오래 눌러서 작동을 시키거나 펑션 키가 필요하니</div> <div>영업과의 협의를 통해 어떤 시나리오로 작동 시킬지 결정을 합니다</div> <div>이 단계에서는 개발자의 편의를 위해(최악 시나리오) 가장 많은 키인 경우로 상정하고 추가키가 있는 경우 총 6개의 버튼을 가정합니다</div> <div><br></div> <div>그리고 변속에 필요한 모터는 앞기어 / 뒷기어 로 총 2개가 독립적으로 제어되어야 하니</div> <div>2개의 PWM 채널이 있으면 가장 편리할 것으로 생각됩니다.</div> <div><br></div> <div>고로</div> <div>atmega (2 pwm / 1 serial) / 2 servo / bluetooth 정도가 현재로서 선택된 사양입니다.</div> <div><br></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;"><br></span></div> <div><span style="font-size:9pt;line-height:1.5;">결론 : 그러니까 그냥 시마노 Di2 지르세요 (어?)</span></div> <div><br></div> <div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"> <hr></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, ë‹ì›€, Dotum, Helvetica, AppleGothic, sans-serif">임베디드란 무엇인가</font></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"> <ul><li><span style="line-height:21.6000003814697px;font-family:'굴림', gulim, 'ë‹ì›€', Dotum, Helvetica, AppleGothic, sans-serif;font-size:9pt;"><a target="_blank" href="http://todayhumor.com/?programmer_12362" style="color:#0000ff;text-decoration:none;">임베디드의 정의</a></span></li> <li><a target="_blank" href="http://todayhumor.com/?programmer_12395" target="_blank">임베디드의 구조</a></li></ul></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, ë‹ì›€, Dotum, Helvetica, AppleGothic, sans-serif"><br></font></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, ë‹ì›€, Dotum, Helvetica, AppleGothic, sans-serif"><br></font></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, ë‹ì›€, Dotum, Helvetica, AppleGothic, sans-serif">프로그래밍 언어란</font></div> <ul style="line-height:21.6000003814697px;font-family:'굴림', gulim, 'ë‹ì›€', Dotum, Helvetica, AppleGothic, sans-serif;"><li><a target="_blank" href="http://todayhumor.com/?programmer_12065" style="color:#0000ff;text-decoration:none;font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;font-size:9pt;line-height:1.5;">프로그래밍 언어란</a></li> <li><font face="굴림, gulim, 돋움, Dotum, Helvetica, AppleGothic, sans-serif"><a target="_blank" href="http://todayhumor.com/?programmer_12087" style="color:#0000ff;text-decoration:none;">프로그래밍 언어의 종류와 구성</a></font></li> <li><a target="_blank" href="http://todayhumor.com/?programmer_12115" style="color:#0000ff;text-decoration:none;">프로그래밍 언어의 식별자</a></li> <li><a target="_blank" href="http://todayhumor.com/?programmer_12145" style="color:#0000ff;text-decoration:none;">프로그래밍 언어의 변수</a></li> <li><a target="_blank" href="http://todayhumor.com/?programmer_12167" style="color:#0000ff;text-decoration:none;">프로그래밍 언어의 제어문</a></li> <li><a target="_blank" href="http://todayhumor.com/?programmer_12212" style="color:#0000ff;text-decoration:none;">프로그래밍 언어의 함수</a></li></ul><div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, ë‹ì›€, Dotum, Helvetica, AppleGothic, sans-serif"><br></font></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, ë‹ì›€, Dotum, Helvetica, AppleGothic, sans-serif">개발의 길로 들어서려는 분들을 위한 오늘의 조언</font></div> <div style="font-family:gulim, Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"> <ul><li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11379" style="color:#0000ff;text-decoration:none;line-height:21.6000003814697px;font-size:9pt;">처음부터 쪼개지 마라. 하나로 못둘때 쪼개라</a></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11364" style="color:#0000ff;text-decoration:none;line-height:21.6000003814697px;font-size:9pt;">input - output 을 먼저 정해라</a></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11414" style="color:#0000ff;text-decoration:none;line-height:21.6000003814697px;font-size:9pt;">손은 눈보다 빠르다</a></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11488" style="color:#0000ff;text-decoration:none;line-height:21.6000003814697px;font-size:9pt;">자신만의 템플릿을 만들어라</a></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11526" style="color:#0000ff;text-decoration:none;line-height:21.6000003814697px;font-size:9pt;">문법을 넘어서라</a></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11551" style="color:#0000ff;text-decoration:none;">공부는 셀프</a></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, 돋움, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11596" style="color:#0000ff;text-decoration:none;">컴퓨터는 똥 멍청이다</a></span></font></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, 돋움, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11633" style="color:#0000ff;text-decoration:none;">먼저 자신을 의심해라</a></span></font></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11719" style="color:#0000ff;text-decoration:none;">메뉴얼 먼저!!</a></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, 돋움, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11773" style="color:#0000ff;text-decoration:none;">읽고 읽고 또 읽어라</a></span></font></li> <li style="font-family:'굴림', gulim, '돋움', Dotum, Helvetica, AppleGothic, sans-serif;line-height:21.6000003814697px;"><font face="굴림, gulim, 돋움, Dotum, Helvetica, AppleGothic, sans-serif"><a target="_blank" href="http://todayhumor.com/?programmer_11806" style="color:#0000ff;text-decoration:none;">근원으로 돌아가라</a></font></li> <li><font face="굴림, gulim, 돋움, Dotum, Helvetica, AppleGothic, sans-serif"><span style="line-height:21.6000003814697px;"><a target="_blank" href="http://todayhumor.com/?programmer_11836" style="color:#0000ff;text-decoration:none;">여긴 오지마 지옥이야</a></span></font></li></ul></div></div>
질문은 블로그 방명록에
minimonk.net/guestbook
댓글 분란 또는 분쟁 때문에 전체 댓글이 블라인드 처리되었습니다.