제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 2 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
| ||||
|
| ||||
| ||||
| ||||
| ||||
|
"새를 위한 것입니다!" Arduino 101로 에코 모니터링의 미래 재창조
소개 및 동기:
기후와 우리가 살고 있는 생태계의 건강을 측정하는 한 가지 방법은 동식물 개체군의 크기와 다양성을 측정하는 것입니다. 1987년부터 매년 겨울, Cornell Lab of Ornithology는 Project FeederWatch라는 대규모 시민 과학 활동을 수행합니다.
“Project FeederWatch는 북미의 뒤뜰, 자연 센터, 커뮤니티 지역 및 기타 지역에 있는 모이통을 방문하는 새에 대한 겨울 기간의 조사입니다...FeederWatch 데이터는 겨울마다 대륙 전역의 수천 곳에서 모이통을 방문하는 새 종을 보여줍니다. . 데이터는 또한 각 종의 개체 수를 나타냅니다. 이 정보는 겨울 범위의 변화와 시간 경과에 따른 조류 종의 풍부함을 측정하는 데 사용할 수 있습니다. "
올해로 참여하는 첫 해이며 제작 및 해킹에 대한 관심과 자연에 대한 관심 및 Project FeederWatch 참여를 결합하고 싶었습니다. 그래서 우리는 Arduino 101로 조류 관찰 및 환경 모니터링의 미래를 재창조하기로 결정했습니다!
Arduino 101은 Arduino IDE의 단순성을 결합하여 Bluetooth LE와 같은 온보드 기능과 풍부한 센서 및 브레이크아웃 보드를 쉽게 사용할 수 있는 임베디드 프로그래밍을 쉽게 해주기 때문에 이 프로젝트에 이상적입니다. 집에서 만든 새 모이통에 Arduino 101을 내장하여 날씨 매개변수를 측정하고 모이통에서 새의 활동을 모니터링하는 실험 플랫폼을 개발했습니다. Cloudinary 및 PubNub의 흥미로운 IoT 기술을 추가하여 환경 및 생태계 상태 모니터링의 미래를 재창조하는 데 도움이 되었습니다!
프로젝트 개요:
우리 프로젝트의 핵심은 집에서 만든 새 모이통에 내장된 Arduino 101입니다. 우리는 2개의 샤프 적외선 거리 센서를 사용하여 피더의 양쪽을 통과하는 나무 못에 앉은 새를 감지합니다. 힘 감지 저항기(FSR)는 피더에 존재하는 종자의 양을 감지하는 데 사용됩니다. Adafruit Si7021 온도 및 습도 센서 브레이크아웃 보드는 i2c 핀에 부착되어 물리적 날씨 데이터를 제공하는 데 사용됩니다. Arduino 101은 BLE 주변 장치로 작동하고 BLE를 통해 이러한 센서에서 BLE 중앙으로 데이터를 보내도록 설정됩니다. 장치. 전원은 4개의 AA 배터리로 제공됩니다. 이러한 모든 구성 요소는 맞춤형 3D 인쇄 인클로저에 들어 있습니다.
Arduino Breakout Board의 Intel Edison을 BLE 중앙 및 인터넷 게이트웨이로 사용합니다. 로지텍 c270 USB 웹캠은 보드의 USB 포트에 연결되어 있으며, 퍼치 중 하나에서 활동을 나타내는 BLE 알림이 수신될 때 사진을 찍는 데 사용됩니다. 이 이미지는 브레이크아웃 보드의 SD 카드 슬롯에 삽입된 SD 카드에 로컬로 저장됩니다.
Intel Edison의 WiFi 기능을 활용하여 인터넷 게이트웨이로 사용합니다. 이를 통해 실시간 데이터 스트리밍을 위한 PubNub 및 클라우드에서 이미지 저장 및 조작을 위한 Cloudinary와 같은 슈퍼 기술을 사용할 수 있습니다.
새 모이통은 빈 소다병과 나무 은못으로 만들어 우리 마당의 기둥에 걸었습니다.
프로젝트 구축:
Arduino 101 내장 조류 피더
이 프로젝트의 기초는 새 모이통에 내장된 Arduino 101입니다. 새 모이통은 야외에 있어야 하며 야외에서의 물리적 혹독함을 견딜 수 있어야 합니다. 데이터를 실시간으로 무선으로 전송할 수 있는 방법이 필요합니다. 송신하는 Arduino 101과 수신하는 Edison 사이의 거리는 불과 몇 피트에 불과하고 Arduino 101에는 이미 BLE가 탑재되어 있으므로 BLE를 사용할 것입니다!
대부분의 회로는 fritzing 다이어그램을 따라 구성할 수 있지만 이 회로를 만들고 테스트하는 동안 몇 가지 문제가 발생했습니다. 우리가 여기서 집중할 것은 다음과 같습니다.
<울>또 다른 사소한 문제는 FSR을 Arduino 101에 안전하고 신뢰할 수 있는 방식으로 연결하는 것입니다. 이것은 2핀 3.5mm 단자대를 사용하면 쉽게 해결됩니다. 터미널 블록의 간격이 보드의 간격과 일치하는지 확인하십시오.
나머지 Arduino 101 하드웨어는 간단합니다. Adafruit Si702 브레이크아웃 보드를 I2C 버스 핀()에 연결하고 빈 +3.3V를 전원으로 사용했습니다. 전체 패키지의 전원은 메인 인클로저 아래에 있는 4XAA 전환 가능 배터리 팩을 통해 제공됩니다.
IR 및 FSR 센서를 Adafruit Perma-Proto 1/4 크기 Breadboard PCB에 납땜하고 양면 테이프로 Arduino 101의 아래쪽에 부착했습니다. 전체 패키지는 소다병 새 모이통 안에 넣어지고 영하의 영하의 영하의 온도, 안개와 가벼운 비와 눈(가짜 눈보라 'Stella'!)을 견뎌냈습니다.
Arduino 101 스케치:
스케치의 주요 작업은 연결된 센서를 모니터링하고 BLE를 통해 센서 값을 보고하는 것입니다. BLE의 모든 데이터는 바이트 패키지로 전송됩니다. 원본 데이터가 char 배열의 int float인지 여부에 관계없이 BLE를 통해 전송하려면 바이트 표현으로 분해해야 합니다. 내가 아는 가장 쉬운 방법은 데이터 유형의 합집합을 만드는 것입니다. Union을 사용하면 두 개의 서로 다른 데이터 유형 간에 동일한 메모리 위치를 공유할 수 있습니다. 우리의 경우 SI7021 온도 및 습도 센서는 데이터를 부동 소수점 숫자로 제공합니다. Arduino C 언어는 부동 소수점을 4바이트로 나타내므로 온도 부동 소수점과 습도 부동 소수점 사이에 4바이트 배열을 만듭니다.
/** * Union 지시문을 사용하면 이러한 변수가 동일한 메모리 위치를 공유할 수 있습니다. * 내 튜토리얼 Imu to You!(https://www.hackster.io/gov/imu-to-you-ae53e1?team=18045) 튜토리얼을 참조하십시오. */ 합집합 { float t; 서명되지 않은 문자 바이트[4]; } 임시 데이터; 유니온 { float h; 서명되지 않은 문자 바이트[4]; } 습도 데이터; 합집합 { 정수 f; 서명되지 않은 문자 바이트[2]; } 피드 데이터; 코드>
유니온에 부동 소수점 값을 저장하면 바이트 배열도 채워집니다. 데이터를 전송하기 위해 이러한 특성의 setValue() 함수에 바이트 배열을 전달합니다.
임베디드 응용 프로그램의 경우 delay() 함수를 사용하면 문제가 발생할 수 있습니다. 첫째, 지연 함수가 호출되는 동안 지연 기간 동안 모든 프로세서 활동이 중지됩니다. 이것은 새들이 언제든지 횃대에 올 수 있을 때 이상적이지 않습니다. 두 번째 문제는 delay() 함수가 BLE 알림 메커니즘에 문제를 일으킬 수 있다는 것입니다. 이것을 피하는 방법은 스케치에서 delay()를 사용하지 않는 것입니다. 그러나 코드 프로그램의 지연이 필요한 경우가 많습니다. 이를 극복하기 위해 Adafruit의 Bill Earl이 작성한 이 3개의 슈퍼 튜토리얼 세트에서 방법 개요를 사용할 것입니다.
개요에서 우리는 임베디드 장치를 나타내는 객체를 생성합니다. 이 장치에 연결된 센서를 폴링할 간격 또는 간격 집합을 결정합니다. 그런 다음 Update() 함수를 만듭니다.
void Update() { // Serial.print("피드 센서:");Serial.println(analogRead(A0)); // 퍼치 활동 업데이트/알림은 시간 및 근접 센서에 따라 다릅니다. currentPerchMillis =millis(); if ((currentPerchMillis - previousPerchMillis)> perchInterval ) { 이전PerchMillis =currentPerchMillis; currentLeftPerch =디지털 읽기(LEFT_PERCH); currentRightPerch =디지털 읽기(RIGHT_PERCH); if ((currentLeftPerch ==0) &&(previousLeftPerch ==1)) { // leftperch의 새 활동 // BLE에 perchCharacteristic.setValue(1); Serial.println("왼쪽 퍼치 활동"); 이전 왼쪽 퍼치 =0; } ...}
이 기능은 센서의 시간 간격이 지났는지 확인하는 역할을 합니다. 그렇다면 센서를 무시하지 않고 업데이트합니다. Update() 함수는 스케치의 loop() 섹션에서 반복적으로 호출됩니다.
void loop() { // 여기에 기본 코드를 넣어 반복적으로 실행합니다. blePeripheral.poll(); 버드피더.업데이트(); } 코드>
따라서 센서로 실시간 멀티태스킹 효과를 에뮬레이트합니다.
Intel Edison 및 Arduino 브레이크아웃 보드:
Intel Edison으로 작업할 때 가장 어려운 부분은 설정하는 것입니다. 이에 대해 내가 찾은 최고의 튜토리얼은 Vincent Wong의 Intel Edison 및 Intel XDK IoT Edition 101입니다. 이 프로세스를 진행하고 일부 JavaScript 예제를 시도하는 것이 그만한 가치가 있음을 장담할 수 있습니다!
Intel XDK IoT 에디션을 사용하여 Edison으로 작업하면 명령줄에서 상호 작용하고 구성할 수 있습니다. 또한 많은 JavaScript/Node 예제 프로그램 및 템플릿을 활용할 수 있습니다. JavaScript/Node를 배우고 사용하여 프로그래밍하면 PubNub, Noble.js 및 Cloudinary와 같은 사용하기 쉽고 강력한 API가 많이 열립니다.
Edison을 설정하고 WiFi 네트워크에 대한 활성 연결을 확인했으면 이 프로젝트에 필요한 라이브러리를 설치할 수 있습니다.
npm 설치 노블
npm 설치 pubnub
npm 설치 클라우드
USB 웹캠
"intel edison webcam"을 Google에서 검색하면 몇 가지 훌륭한 예제와 자습서를 얻을 수 있습니다. 그러나 일부 혼란스러운 자료가 있는데, 이는 주로 Yocto OS에서 사용할 수 있는 모듈의 일부 변경 때문이라고 생각합니다. Yocto는 Intel edison을 실행하는 임베디드 버전의 Linux입니다. Logitech c270은 uvcvideo 호환 웹캠입니다. Edison에 uvcvideo 드라이버/모듈이 설치되어 있는지 확인하는 방법에 대한 많은 자습서가 있습니다. 이것이 없으면 카메라와 상호 작용하고 사진을 찍을 수 없습니다.
Intel Edison의 웹 카메라에서 다음 단계를 사용하여 s3에 업로드하여 내 Edison에서 웹캠이 작동하도록 했습니다. 혹시라도 부실해질 경우를 대비하여 아래에 이 블로그 게시물의 지침을 게시했습니다.
Edison을 사용하면 XDK 직렬 터미널 탭의 명령줄에서 다음 지침이 실행됩니다.
"opkg를 사용하여 설치할 수 있는 몇 가지 추가 패키지를 사용할 것입니다. 패키지 관리자. vi가 있는 저장소의 편집 목록 시작:
vi /etc/opkg/base-feeds.conf
파일에 다음 행이 모두 있는지 확인하십시오.
src/gz all http://repo.opkg.net/edison/repo/all src/gz edison http://repo.opkg.net/edison/repo/edison src/gz core2–32 http://repo. opkg.net/edison/repo/core2-32 src 인텔-iotdk http://iotdk.intel.com/repos/3.0/intelgalactic/opkg/i586
이제 패키지 캐시 업데이트:
opkg 업데이트
그리고 USB uvc 카메라를 지원하는 커널 모듈을 설치합니다.
opkg install kernel-module-uvcvideo
이제 웹캠을 USB 포트에 연결하고 이 명령을 실행하십시오.
ls -l /dev/video*
카메라가 성공적으로 감지되면 출력은 다음과 같습니다.
crw-rw---- 1 루트 비디오 81, 0 7월 25일 09:35 /dev/video0
웹캠으로 작업하고 일정에 따라 사진을 찍으려면 2개의 추가 패키지를 설치해야 합니다.
opkg 설치 fswebcam 크로니
*** 이 프로젝트에 cronie를 설치하지 않았으며 opkg 설치 fswebcam만 수행했습니다. 시간이 지정된 일정이 아니라 횃대에 있는 새가 IR 센서를 밟을 때마다 fswebcam을 호출하므로 cronie가 필요하지 않습니다. ***
카메라 작업
카메라를 테스트하려면 다음 명령을 실행하세요.
fswebcam -r 1280x720 --jpeg 100 -D 3 -S 13 "test.jpg"
<울>Edison에서 웹캠을 사용하는 것과 다른 정말 멋진 프로젝트에 대한 추가 정보는 Dr. Kim의 github 페이지에서 찾을 수 있습니다. 그녀는 또한 Hackster.io에도 멋진 프로젝트를 게시합니다!
적절한 모듈이 있는지 확인하는 것 외에도 microusb 케이블과 USB 포트 사이의 스위치를 USB 포트 방향으로 뒤집고 Arduino 실드를 전원 공급 장치에 부착해야 했습니다. 컴팩트 스위칭 전원 공급 장치 - 선택 가능한 출력 3-12VDC(Adafruit 제품 ID:1448)를 사용했습니다.
이제 SD 카드를 SD 카드 슬롯에 넣습니다. 직렬 터미널 사용 Intel XDK에서 명령줄을 사용하여 다음 명령을 입력하여 카드를 확인합니다.
cd /media/sdcard
이
이것은 카드에 있는 모든 파일을 표시하거나 파일이 없는 경우 아무 것도 표시하지 않습니다. 오류 메시지가 표시되지 않아야 합니다. 오류 메시지가 표시되면 다음 명령을 입력하여 SD 카드를 제거하지 않고 Edison 보드를 재부팅하는 것이 좋습니다.
재부팅
그런 다음 Edison에 다시 로그인한 후 위의 명령을 반복합니다.
이제 Edison이 Bluetooth에 액세스하도록 허용하려면 다음 명령을 입력하십시오.
rfkill 블루투스 차단 해제
블루투스가 켜져 있고 작동하는지 확인하려면 다음을 입력하십시오.
블루투스 ctl
그런 다음 입력하십시오.
스캔
다음과 같이 BLE 장치에 표시되어야 합니다.
이제 bluetoothctl을 종료하고 Intel XDK IoT 탭을 클릭한 다음 보드에 연결하십시오. BLESCAN과 같은 왼쪽 메뉴에서 프로젝트를 선택합니다. index.js의 내용을 제거하고 package.json 파일에서 종속성을 제거합니다.
여기에서 index.js의 내용을 github 저장소의 프로그램으로 바꿉니다. 이 코드를 Edison에 업로드하십시오. Arduino 101이 켜져 있는지 확인하고 Edison 코드를 실행합니다. Edison이 Arduino 101을 감지하면 다음과 같이 표시되어야 합니다.
코드:
Edison에서 실행되는 코드는 JavaScript 또는 더 적절하게 Node.js로 작성됩니다. 가져온 라이브러리에서 필요한 개체를 만든 후 Arduino 101에서 실행 중인 BLE 서비스를 나타내는 변수를 만듭니다.
noble.js
// BLE 서비스 및 귀족을 위한 특성 // 이는 주변기기의 서비스 및 특성 UUID에 해당해야 합니다. // (이 경우 Arduino 101에서) var LOCAL_NAME ='bird'; var SERVICE_UUID ='917649a0d98e11e59eec0002a5d5c51b'; //대시 없음!!!! var PERCH_UUID ='917649a1d98e11e59eec0002a5d5c51b'; var TEMPERATURE_UUID ='917649a2d98e11e59eec0002a5d5c51b'; var HUMIDITY_UUID ='917649a3d98e11e59eec0002a5d5c51b'; var FEED_UUID ='917649a4d98e11e59eec0002a5d5c51b'; 코드>
이러한 UUID는 noble.js에서 사용됩니다. Arduino에서 UUID를 변경하는 경우 여기에서도 변경해야 합니다. noble.js가 제대로 작동하려면 대시가 없는지 확인하는 것이 중요합니다.
noble.js로 작업하려면 주변 BLE 장치를 검색한 다음 검색한 다음 연결해야 합니다. 연결되면 위에서 정의한 UUID를 사용하여 사용 가능한 특성을 실행합니다. 특성은 모두 읽기/알림 특성입니다.
noble.on('discover', function(peripheral){ console.log('발견된 BLE 장치:[' + peripheral.id + '] ' + peripheral.advertisement.localName); if(peripheral. 광고.localName ==LOCAL_NAME){ console.log('찾음:' + peripheral.advertisement.localName); } peripheral.connect(function(error) { console.log('주변기기에 연결됨:' + peripheral.uuid); noble.stopScanning(); // "스트레이" 서비스를 선택하지 못하도록 합니다. peripheral.discoverServices([SERVICE_UUID], function(error, services) { console.log('services:' + services.length); var feederService =services [0]; console.log('새 지류 서비스!'); feederService.discoverCharacteristics([], function(error, properties) { properties.forEach(function(characteristic) { console.log('characteristic UUID:' + 특성 .uuid);characteristic.on('data', function(data, isNotification) { transformRawData(characteristic.uuid,data); });characteristic.notify('true', function(error) { if (error) throw e 오류; }); }); }); }); }); }); 코드>
위의 코드 섹션에서 지적해야 할 2가지 핵심 요소가 있습니다. 먼저, noble.js에 읽기/알림 특성을 알리는 방식이 변경되었습니다. Sandeep Mistry의 github 페이지에서:
데이터
특성 읽기가 완료되면 발생합니다. characteristic.read(...)
의 결과 또는 특성 값이 알림 또는 표시를 통해 주변 장치에 의해 업데이트되었습니다 - notify(true[, callback(error)])
로 활성화된 후 .
특성.on('데이터', 콜백(데이터, isNotification));
특성.once('읽기', 콜백(데이터, isNotification)); // 레거시
'읽기'에서 '데이터'로 변경됩니다. 우리는 이전 버전의 노블을 실수로 사용한 다음 최신 버전을 변경하는 몇 가지 문제에 부딪쳤습니다. 무슨 일이 일어났는지 파악하는 데 많은 시간이 걸렸으므로 이 문제를 방지하는 데 잠재적으로 도움이 되고자 합니다.
여기서 또 다른 핵심은 transformRawData(characteristic.uuid,data) 함수입니다. 이 함수는 읽기에서 전달된 uuid와 데이터를 가져와서 크고 다루기 힘든 함수로 전달합니다. 특성 변경으로 인해 BLE 알림 메커니즘이 활성화될 때마다 이 함수가 호출되고 수신된 데이터를 처리합니다. 여기에서 모든 흥분이 발생합니다.
tranformRawData는 어떤 특성이 수신되었는지 확인합니다.
Arduino가 농어에 활동이 있다고 알려주면 사진을 찍고 싶습니다. 이 경우, 우리는 Yocto(linux) 시스템에 있는 fswebcam 프로그램을 호출하기 위해 child_process 라이브러리를 사용합니다. child_process 라이브러리를 사용하면 node.js 코드 내에서 명령줄 기능을 실행할 수 있습니다. 이것은 매우 강력한 기능입니다.
childProcess.execFile('fswebcam',['-r 1280x720',fileName],function(error,stdout,stderr) { console.log(stdout); ); 코드>
PubNub 및 Cloudinary:
이 기능은 PubNub 및 Cloudinary가 작동하는 곳이기도 합니다! PubNub은 애플리케이션에 실시간 데이터 스트리밍 네트워크를 제공합니다. 이것이 의미하는 바는 인터넷 연결을 통해 애플리케이션이 전 세계 어디에서나 데이터를 실시간 스트리밍할 수 있다는 것입니다. 게시된 스트림에 대한 구독 키가 있는 다른 모든 앱 또는 프로그램은 데이터를 나타내는 JSON 페이로드에 액세스할 수 있습니다. 우리의 경우 현재 종자 수준, 온도, 습도 및 농어 방문 횟수를 보냅니다. 또한 피더의 최신 사진 3장에 대한 링크를 보내드립니다! 이것은 우리 프로그램과 함께 Cloudinary에 업로드된 jpeg입니다. 서버를 실행할 필요가 없습니다! JavaScript가 포함된 간단한 HTML 파일은 PubNub에서 제공하는 새 모이통에 대한 실시간 인터페이스 역할을 합니다.
위의 그림에서 나는 단순히 PubNub을 통해 새 모이통과 인터페이스하기 위한 코드가 포함된 HTML 파일을 나 자신에게 이메일로 보내고 로컬 디렉토리에서 Chrome 브라우저로 각 파일을 로드했습니다. Edison에서 이 페이지를 제공하기 위해 서버를 코딩할 필요가 없습니다.
Cloudinary는 이미지 업로드, 저장 및 변환 서비스입니다. 그것은 사용하기 매우 간단한 API를 가지고 있습니다. 이 프로젝트를 개발하면서 사용하기에 더 쉽고 간단한 API를 찾을 수 없었습니다. 거기에는 비교할 수 있는 것이 없습니다. 그들의 헬프 데스크도 환상적입니다. 그것은 확실히 당신이 당신의 프로젝트에 대해 확인하고 싶은 것입니다!
아래 코드에서 Cloudinary API를 사용하여 로컬 SD 카드에서 3개의 최신 이미지를 업로드합니다. 이 업로드에서 반환된 URL은 배열에 저장됩니다. 그런 다음 이러한 URL은 JSON 페이로드의 일부로 PubNub에 전송되어 표시할 HTML 페이지에서 액세스할 수 있습니다. 미인, 응?!
index.html
이 index.html 파일은 무엇에 관한 것입니까? index.html 파일은 우리의 UI입니다. PubNub를 사용하여 데이터를 스트리밍하고 Cloudinary를 사용하여 공개적으로 액세스할 수 있는 URL에 이미지를 배치하기 때문에 Javascript/HTML/CSS 파워 트리오를 활용하여 이식 가능한 UI를 만들 수 있습니다. PubNub과 Cloudinary는 모두 사용하기 쉽고 강력합니다. 자바스크립트 API. 사용하기 위해 html 파일로 가져오기만 하면 됩니다.
<사전><코드> <스크립트 src="https://cdn.pubnub.com/sdk/javascript/pubnub.4.5.0.js"> <스크립트 유형="텍스트/자바스크립트" src=" https://pubnub.github.io/eon/v/eon/1.0.0/eon.js">PubNub 개체를 생성할 때 데이터 스트림에 대한 구독 키를 제공하고 이 스트림을 게시할 때마다 실시간으로 데이터 스트림에 액세스할 수 있습니다.
제조공정
공구 및 커터 그라인더는 밀링 커터, 공구 비트 및 기타 여러 절삭 공구를 날카롭게 하는 데 사용됩니다. 공구 연삭은 공작 기계를 다시 연마하기 위해 연마제 또는 맞춤형 연삭 휠이 필요한 더 넓은 연삭 기술 분야의 하위 전문 분야입니다. 공구 및 커터 그라인더는 표면, 실린더 또는 복잡한 모양과 같은 다양한 연삭 작업을 수행합니다. 건설 그림. 1 일반 구성, 최고의 기계 공학 공구 및 커터 그라인더의 일반적인 구성은 그림 1과 같다. 기본 구조는 선반과 비슷하지만 터닝 헤드에 죠 척 대신에 그라인딩 휠이 장착되어 있다. 고정
USB 케이블이 어떻게 만들어지는지 궁금하신가요? 실제로 USB 케이블뿐만 아니라 우리가 매일 보는 모든 전자 케이블은 두 부분으로 나눌 수 있습니다. 케이블 및 커넥터 . 사용할 수 있는 USB 케이블을 만드는 것은 케이블과 커넥터를 연결하기만 하면 됩니다. 따라서 모든 전자 케이블은 유사한 공정을 통해 만들어집니다. 다음 단락에서 프로세스가 무엇인지 보여드리겠습니다. 1단계:케이블 절단 원시 케이블은 종종 매우 길기 때문에 적절한 길이로 절단해야 합니다. 고객의 요구 사항을 충족하기 위해 1미터 또는 2미터. 2단계:내부 도