회원가입 ID/PW 찾기
AA
로봇제품을 사보니 크게 두가지로 나뉘더라고요 (실제로 산것은 로봇청소기이지만 이족보행을 상상해서 씁니다.)

기체 = 몸통 이랑 배터리나 모터나 기계적인 물체 와 센서

메인보드 = 어떻게 움직이라고 하는 프로그램이 입련된 장치,인공지능 같은거


기체는
1.기계부품은 재료들을 가공하여 만들어 조립한것이  이를 테면 사람의 뼈
이 기계가 움직였을때 충격에 견딜수 있는지 필요한 학문은 재료역학
충격으로 자세의 안정감이 있는지 필요한 학문은 동역학
가만히 있을때의 중심을 잡을수 있는지 필요한 정역학
2.관절들을 움직이게 해주는 모터는 이를테면 사람의 근육
모터의 구조와 동작원리는 이해하고 회전속도로 기체의 움직임의 민첩함을 이해하는 전기공학
3.적외선 센서는 이를테면 사람의 환경파악지능 같은것
센서의 구조와 동작원리는 이해하는 센서공학
4.기계를 움직이게 해주는 전기에너지 충전소 배터리 이를 테면 사람의 에너지
배터리의 구조와 동작원리 재료에 따라 달라지는 배터리 종류를 이해하는 전기화학

같은것의 공학이 필요할것 같고
로봇을 자세히 봤는데 기계로만 된 부품에는 포트라는것이 안 달려 있었는데 모터나 센서에는 달려있었습니다.
즉 실제 구동하는 모터나 센서로 기계를 끌어당기면서 움직이는 것처럼 보인다고 생각합니다.

메인보드는
1.소자의 종류를 파악하는것 이를테면 사람의 두뇌의 대뇌나,소뇌,전두엽같은
각 소자의 특성과 구조 종류와 용도의 대해 이해하는 전자공학
2.이런 소자들은 어떻게 나열할것인지 이를테면 뇌 퍼즐조각같은 보드게임
회로를 설계하는데 필요한 기초이론 회로이론
복잡한 연산이 가능하게 회로를 설계하는 고급이론 임베디드 시스템
3.설계하여 길이 열리면 전기(또는 전자)가 어떻게 동작하는것인지 이를테면 두뇌의 신경물질
전기의 전자 하나하나가 디지털 값으로 변환되는 것을 이해하는 디지털공학



지난 답변에서 MCU라는 메모리에 어떻게 프로그램을 넣는지에서 예물레이터를 이용한다고 들었습니다. 그래서 혹시해서 로봇이 아닌 컴퓨터에 넣는 프로그램 즉 운영체제 같은 것도 비슷하다고 생각합니다. 그런데 그 운영체제라는 프로그램은 회사마다 다르고 대표적 운영체제를 만드는 빌게이츠의 마이크로소프트에서 만든다고 생각에서 저는 MCU에 프로그램을 넣는 예물레이터를 이해하는 것을 나중으로 미루도록 했습니다. 옛날에 이 같은 질문을 교수님께 물어보니 회사에서 만든다라고 간단히 말했습니다. 처음에는 농담인줄 알았는데 사실 일반인이 이해하기에 기밀 같은것이라는 생각이 들더군요.

여기서 궁금증이 있다면 운영체제라는 프로그램이 입력된 MCU가 내장된 로봇의 인터페이스를 어떻게 구성하는건가요?
예를 들면 로봇뿐만아니라 일반적인 스마트 폰이나 갤럭시 폰의 스크린에 뜨는 바탕화면 같은 환경은 회사가 똑같아도 다르고 심지어 개인이 만들기도 하더라고요.  혹시 아트워크 같은건가요?
댓글 2
  • No Profile
    제가 알고 있는 범위내에서 조심스럽게 답변을 드려봅니다.

    운영체제라는 프로그램이 입력된 MCU가 내장된 로봇의 인터페이스를 어떻게 구성하는건가요?
    --> 결론부터 말씀드리면 MCU로 로봇을 제어한다고 하였을 때 사용자(설계자)가 인터페이스를 구성하게 됩니다.
          이것은 운영체제를 설계자가 만든다고 생각하시면 이해하시기 쉬울 듯 합니다.

    일반적으로 사용하는 windows 계열 컴퓨터들은 범용목적의 DSP(MCU)라고 할 수 있습니다. 범용이라는 말은 사용 목적이 다양하다는 것으로 해석할 수 있겠죠. 하지만 특수 목적(예를 들어 공장에서 사용하게 될 IC를 기판에 부착하는 한가지 목적을 가진 로봇등..)의 제어계(기계나 전기 혹은 기계와 전기계를 모두 포함하는)를 구성하게 될 경우. 범용 CPU를 사용하기에는 비용의 측면의 문제가 발생하게 되죠, 물론 로봇의 팔을 제어하기 위해 Intel이나 AMD계열의 범용 CPU를 사용할 수도 있습니다. 두 가지의 경우에서, MCU를 이용하여 설계를 할 경우, 로봇의 팔(로봇의 기계관절을 움직이기 위한 모터에서 발생하는 위치 신호)에서 오는 신호를 MCU의 어느 포트를 이용하여 입력받을 것인가는 사용자(설계자)가 정해주는 것입니다. 보통 DSP 내에 입력되는 프로그램에서 이를 정해주게 되는 것이죠.

    일반적인 OS(윈도우즈나 리눅스, 혹은 스마트 폰에들어가는 안드로이드나, 아이폰 오에스 등...)는 그 핸드폰에 있는 하드웨어를 사용할 수 있게끔 설정이 되어 있답니다. 이를 통해 만약 사용자가 아이폰의 가속도 센서(예)를 사용하기 위해서는 애플사에서 제공하는 데이터 규격을 이용하여 사용하면 되는 것이구요. 하지만 이것은 한가지 과정을 더 거치게 되겠죠, 가속도 센서에서 오에스로 무언지 모르지만(데이터 시트를 참조하기 전에는) 신호가 발생한다는 것을 의미하고, 이 신호를 사용하려면 애플사에서 제공하는 언어 함수 혹은 라이브러리를 사용하여 한번더 가공하여 프로그램에서 계산을 하고 다시 라이브러리나 함수를 이용하여 하드웨어(가속도 센서로) 신호를 가공하여 보내줘야 하는 반면, MCU에서는(가속도 센서를 이용한다고 하였을 때) 가속도 센서에서 오는 신호를 바로 가공하여(프로그램 상에서 원하는 계산을 거친뒤) 원하는 포트로 출력을 해주면 끝나게 됩니다. 물론 가속도 센서에서 오는 신호가 MCU의 어느 포트에 연결되어 있는지는 설계하면서 정해지는 것입니다.

    MCU의 프로그램을 한다는 것은 MCU의 어떤 포트로 어떤 신호를 받을 것인가를 설계자가 정하여 이 것을 이용하면 되는 것이기 때문에 사용자가 인터페이스를 만들어 준다고 생각하면 되겠습니다.

    마지막에 예을 들어주신 바탕화면에 다른 배경을 띄우는 것도, MCU와 스마트폰의 예를 들자면.

    스마트폰
    바탕화면 데이터를 준비합니다. --> 프로그램(각 스마트 폰의 운영체제에서 정해놓은 함수나 라이브러리)을 통하여 이 데이터를 LCD에 보내주는 신호 규격으로 변환합니다. --> 오에스는 이 함수에서 변환된 신호를 이용하여 LCD로 데이터를 보내게 됩니다. --> LCD에 출력이 됩니다.

    MCU(MCU와 LCD를 어떻게 연결할 것인지 결정이 되었고, 회로가 구성되어 있다고 가정하면.)
    바탕화면(LCD에 출력하고 싶은 데이터)를 준비합니다. --> 데이터를 설계한 인터페이스(다양한 종류의 LCD 패널이 있고 이에 맞는 데이터 전송 규격이 있습니다.)를 이용하여 LCD로 보내게 됩니다. --> LCD에 출력이 됩니다.

    답변이 되었나 모르겠습니다. 그리고 제가 설명한 부분도 틀린점이 있을 것으로 보여집니다. (설명은 제가 알고 있는 내용을 기준으로 하였습니다.) MCU프로그램한다는 것은 시스템(하드웨어)에 직접 접근한다는 것으로도 설명할 수 있기 때문에 보통 시스템 프로그래밍이라고도 합니다.

    틀린 부분이 있으면 답글로 수정 부탁드립니다.~ ^^;
  • No Profile

    그냥 넘어가려다..

    조금은 답답한 마음이 있어 한마디 하렵니다.

    질문하신 분은 우선 자신의 레벨에 맞는 학문을 먼저 공부하시는 것이 좋으리라 생각합니다.

    로봇 공학을 하시고 싶으신 모양인데.. 해당 커리큘럼이 짜여져 있는 곳으로 가서 기초 공부를 하심이 좋을듯 싶네요.

     

    글쓴분 처럼 로봇 몸통, 처리부분 나눠서 정의할 수 있는 것이면,

    왜 그 많은 사람들이 연구하고 공부하고 고생하겠습니까?

     

    굳이 나누자면, 하드웨어(기구), 제어부(회로), 처리부(SW) 로 나누어야 하구요.

     

    MCU와, CPU와, OS와, Firmware에 대해서 어느정도는 개념을 잡으시길 바랍니다.

    위에 말씀 드린 부분은 기초 공부를 더 하신다는 내용을 전제로 끝에 질문하신 내용에만 답변해 봅니다.

     

    하드웨어의 난이도, 사용하는 MCU의 능력에 따라 처리 방법이 달라집니다.

     

    8bit 정도의 AVR로 간단한 포트 제어만 하려면 C 언어만으로도, 혹은 어셈블리 언어만으로도 제어가 가능합니다.

    본인이 말한 인터페이스 라는 것은 기판에서 버튼 누르고, LED에 불 들어오고 정도겠지요.

     

    인텔이나, AMD 모토롤라, 삼성 등의 ARM Core를 쓰는 CPU나, OS를 사용하는 것의 경우

    하드웨어의 제어는 OS 에서 합니다.

    사용자 인터페이스는 OS에서 제공하는 명령어세트를 이용하여 프로그래밍 합니다.

     

    그럼 학과 공부 열심히 하세요

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
1 Sensor 설계 HOT사진에 있는 tr 제품명이 먼지 알고 싶습니다 ㅡㅜ5 텐지무용 1153 2010.11.22
  • 돈은 빌리지도 말고, 빌려주지도 말라. 빌려주면 흔히 돈과 친구 모두를 잃는 수가 있기 때문이다.
    - 세익스피어
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.