제조공정
| × | 1 |
|
RC 송신기는 무선 링크가 필요한 프로젝트에 매우 적합합니다. 좋은 범위의 암호화된 링크가 있기 때문입니다.
모든 RC 수신기는 서보 모터를 구동하도록 만들어졌습니다. 따라서 각 채널에는 접지, Vcc 및 신호의 3개의 핀이 있습니다. 여기서 특별한 종류의 신호가 사용됩니다. 일정 간격으로 펄스를 보냅니다. 서보가 1.5ms 펄스를 받으면 90도로 설정되고 이 값을 1-2ms에서 변경하여 서보가 최소값과 최대값으로 이동합니다. (위 사진에서 6채널 수신기는 PPM 핀으로 보여집니다)
그래서 쉬운 방법은 각 핀에서 펄스 폭을 측정하고 요구 사항에 따라 해당 데이터를 매핑하는 것입니다. 하지만 여기서 문제는 다음과 같습니다.
<울>이 문제를 해결하기 위해 많은 수신기에는 PPM이라는 추가 핀이 있습니다. 이 PPM 핀은 단일 신호로 모든 채널의 데이터를 전송합니다.
PPM 핀 신호는 어떻게 구성됩니까? 그림>
이 신호는 공백으로 구분된 데이터 패킷으로 구성됩니다. 여기서 피크 사이의 공간은 채널의 값을 나타냅니다. 이 경우 6채널 수신기를 사용했기 때문에 펄스가 7개입니다.
따라서 코드에서 먼저 분리 공간을 감지한 다음 각 채널의 펄스에서 데이터 기록을 시작해야 합니다.
두 번째 이미지에서 볼 수 있듯이
모든 데이터는 약 11500마이크로초의 시간으로 분리됩니다. 각 채널에 대해 6개 이상의 값이 있습니다.
코드 사용:
여기 read_me() 함수로 지정됨:
a=micros(); c=a-b; b=아; x[i]=c; i=i+1; if(i==15){for(int j=0;j<15;j++) {ch1[j]=x[j];} i=0; } }코드>
이 부분은 인터럽트 핀에서 실행되고 15개의 시간 값을 취하여 배열에 저장합니다.
다른 함수 read_rc()
이 부분은 10000마이크로초보다 높은 모든 공간을 찾습니다. 우리의 경우 분리 공간을 감지하고 공간 코드가 다음 섹션으로 이동하는 것을 감지하면 됩니다.
이 공간 이후에 다음 6개의 값은 각 채널 위치에 대해 ch[ channel no]라는 배열에 저장됩니다. 여기에서는 ch[1], ch[2], ch[3], ch[4], ch[5 ], 채널[6] 각 채널의 가치를 나타냅니다.
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">unsigned long int a,b,c;int x[15],ch1[15],ch[7],i;//값을 저장할 배열 및 변수 지정 void setup() {Serial.begin(9600); 핀모드(2, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(2), read_me, FALLING); // 핀 2에서 인터럽트 활성화}void loop() {read_rc();Serial.print(ch[1]);Serial.print("\t");Serial.print(ch[2]);Serial.print ("\t");Serial.print(ch[3]);Serial.print("\t");Serial.print(ch[4]);Serial.print("\t");Serial.print (ch[5]);Serial.print("\t");Serial.print(ch[6]);Serial.print("\n");delay(100);}무효 read_me() { // 이 코드는 PPM 핀(핀 2 또는 3)에서 RC 수신기의 값을 읽습니다. // 이 코드는 0-1000 값의 채널 값을 제공합니다. // -:ABHILASH :- //a=micros(); //핀 값이 떨어질 때 시간 값 a를 저장 c=a-b; //두 피크 사이의 시간 계산b=a; // x[i]=c; // arrayi=i+1에 15개의 값 저장; if(i==15){for(int j=0;j<15;j++) {ch1[j]=x[j];} i=0;}}//복사는 임시 배열의 모든 값을 다른 배열로 저장 15 읽기 void read_rc(){int i,j,k=0; for(k=14;k>-1;k--){if(ch1[k]>10000){j=k;}} //다른 배열에서 분리 공간 10000us 감지 for(i=1;i<=6;i++){ch[i]=(ch1[i+j]-1000);}} //분리 공백 뒤에 6개의 채널 값 할당섹션>
제조공정
구성품 및 소모품 Arduino 윤 × 1 초음파 센서 × 1 서보(타워 프로 MG996R) × 1 점퍼 와이어(일반) × 10 앱 및 온라인 서비스 Arduino IDE MATLAB 이 프로젝트 정보 1단계:이론 이 프로젝트에서는 초음파 거리 센서를 사용하고 있습니다. 사람이 들을 수 없는 범위의 음파를 생성하고 이 음파가 장애물에 부딪치고 되돌아오는 데 필요한 시간을 계산하여 거
로봇이나 장난감 자동차를 설계하려는 경우 모터에 대한 지식이 가장 중요합니다. 이러한 모터를 제어하는 매우 비용 효율적이고 쉬운 방법은 L293D 드라이버 모터 실드를 사용하는 것입니다. 더 나은 방법은 Arduino와 같은 마이크로 컨트롤러와 인터페이스에서 사용하는 것입니다. 그 중에서도 L293D 모터 드라이버는 동종 칩셋 중 가장 인기 있는 칩셋 중 하나입니다. 더욱이 서보, 스테퍼 및 DC 모터와 같은 전자 제품의 다양한 응용 분야에 적합합니다. 그러나 그것의 중요한 속성은 두 개의 독립적인 DC 모터에서 방향과 속도