감시제어로봇
본 자료는 5페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
해당 자료는 5페이지 까지만 미리보기를 제공합니다.
5페이지 이후부터 다운로드 후 확인할 수 있습니다.

목차

Ⅰ. 서 론 ·······························3
1.필요성과 영향력 · · · · · · · · · · · · · · · · · · · · ·3
Ⅱ. 구성요소
1. Architecture ·········ㆍㆍㆍㆍ·············4
1.1 하드웨어 architecture ·····················4
1.2 소프트웨어 architecture ·················· ·4
2. 사양 및 요구조건 ·······ㆍㆍㆍㆍ············ ·5
2.1 H/W ·······ㆍㆍㆍㆍ··············· ·5
2.2 S/W ·······ㆍㆍㆍㆍ··············· ·5
Ⅲ. 제 작 ······························6
1.공정 및 제작내용 ·························6
1.1 작품구상 자료수집 ······················6
1.2 하드웨어 모듈제작,포팅작업 ··················6
1.3 각종 디바이스 드라이버 제작 ·················9
2.주요 개발 소스 ·························10
2.1디바이스 드라이버관련·····················10
2.2 웹서비스관련·························15
Ⅳ.운용 및 시험요구조건 ························15
1 운용 ······························15
2 시험요구조건···························15
Ⅴ. 결 론 ·······························16
Ⅵ. 참고 문헌······························16

본문내용

_t count, loff_t *f_pos)
{
char data[8];
copy_from_user(data, buf, count);
printk("data is >>>> %s",data);
return(count);
}
int motor_ioctl(struct inode *inode, struct file *filp, unsigned int cmd, unsigned long arg)
{
switch(cmd)
{
case 1:
{
printk("motor Turn Left\n");
for(seq=0; seq for(step=0; step<8; step++) {
MOTOR_Set = one_two_phase1[step];
udelay(DELAY_COUNT);
}
}
break;
}
case 2:
{
printk("motor Turn Right\n");
for(seq=0; seq for(step=7; step>=0; step--) {
MOTOR_Set = one_two_phase1[step];
udelay(DELAY_COUNT);
}
}
break;
}
case 3:
{
printk("motor Turn Left\n");
for(seq=0; seq for(step=0; step<8; step++) {
MOTOR_Set = one_two_phase2[step];
udelay(DELAY_COUNT);
}
}
break;
}
case 4:
{
printk("motor Turn Right\n");
for(seq=0; seq for(step=7; step>=0; step--) {
MOTOR_Set = one_two_phase2[step];
udelay(DELAY_COUNT);
}
}
break;
}
case 5:
{
printk("motor Turn Left\n");
for(seq=0; seq for(step=0; step<8; step++) {
MOTOR_Set = one_two_phase12[step];
udelay(DELAY_COUNT);
}
}
break;
}
default:
return 0;
}
return 0;
}
struct file_operations motor_fops = {
read: motor_read,
write: motor_write,
open: motor_open,
ioctl:motor_ioctl,
release: motor_release,
};
static int __init motor_init(void)
{
int result;
result = register_chrdev(MOTOR_MAJOR, "MOTOR", &motor_fops);
if (result < 0) {
printk(KERN_WARNING " can't get major \n");
return result;
}
if(MOTOR_MAJOR == 0)
MOTOR_MAJOR = result;
printk("MOTOR_MAJOR = %d\n", MOTOR_MAJOR);
return 0;
}
static void __exit motor_exit(void)
{
unregister_chrdev(MOTOR_MAJOR, "MOTOR");
}
module_init(motor_init);
module_exit(motor_exit);
2.2 웹서버 소스





archive = 'cambozola.jar width = "400" height = "400">





감시제어로봇




<영상화면 출력 부분>
Ⅳ.운용 및 시험 요구조건
1 운 용
- Web
: 인터넷으로 접속해 인증, 작동여부 확인 후 동작, 정지 클릭
->steping motor control
2 시험 요구조건
-xhyper255 보드포팅.
(1) 커널컴파일시, Kernel/2.4.18-rmk7-pxa1-~~xhyper255/arch/arm/mach-pxa/pxa255.c 에 주소 추가.
//{ 0xf4000000,ox16000000,0xxx1000,1,1,0,0}
Ⅴ.결 론
무엇보다 pxa255a보드를 이용해서 하드웨어를 제어한다는 것은 리눅스를 얼마나 잘
다룰줄 아느냐와, 리눅스라는 운영체제가 어떠한 시스템으로 연동되는지, 그리고
c프로그래밍능력이 어떠한지에 의해서 작업의 성패가 갈린다고 해도 과언이 아닐 것이다.
작업을 하면서, 어려웠고 시간이 많이 걸렸던 부분은
다른게 아니라, 리눅스 커널이 어떤식으로 운용되는지에 관한 부분들...
디바이스를 제어하기 위해 드라이버가 커널에 어떻게적재되고 적재되는 조건은 어떠한지관한것들...이렇게 기초적인 학습이 되어 있는 상태 여야만 무리 없이 작업이 이루어 질 수가 있다. 그럼에 있어서 팀구성원들의 공통된 심사는 무엇보다 그기초를 먼저 학습해야한다란
필요성을 절실히도 느꼈고, 거기에 투자된 시간이 너무나 많았다.
처음 임베디드를 이용한다는 계획으로 인해 무엇보다 리눅스와 c프로그래밍능력,
그리고 웹서버의 기본기등 다양한 부분에서 필연적으로 배워 질 수 밖에 없는
상황이 만들어 져 버렸다.
그로인해 예상했던 시간보다 많은 부분들이 개발 환경의 구축과 기초지식 습득에 투자되어져 계획했던 감시제어로봇의 무선화를 이루지 못하였다.
참 고 문 헌
[1] 김정보, 책제목, pp. 1~10, 1997. 8.
[2] 하이버스 웹페이지 (255A USB 관련 커널컴파일)
[3] HTML & 자바스크립트
[4] php 무작정 따라하기
:
:
:
:

키워드

감시,   제어,   로봇
  • 가격2,000
  • 페이지수15페이지
  • 등록일2011.07.18
  • 저작시기2008.3
  • 파일형식한글(hwp)
  • 자료번호#690226
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니