산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

Intel Curie를 통한 동작 감지 회로 제어

구성품 및 소모품

아두이노 101
× 1

이 프로젝트 정보

목표

<울>
  • 발자국이 감지되면 조명을 자동으로 켜고 끕니다.
  • <울>
  • 점멸하는 불빛을 근처에서 춤을 추거나 탭핑하는 감지된 템포와 동기화
  • <울>
  • 지진 이벤트 감지를 위한 USB/Bluetooth를 통한 출력 가속도계/자이로스코프 판독값
  • GitHub 리포지토리

    https://github.com/ckuzma/arduino-101-sketches

    스케치

    TapFlashTest

    #include "CurieIMU.h" 무효 setup() { pinMode(LED_BUILTIN, OUTPUT); CurieIMU.begin(); CurieIMU.attachInterrupt(eventCallback); CurieIMU.setDetectionThreshold(CURIE_IMU_SHOCK, 1050); // 1.050g =1050mg CurieIMU.setDetectionDuration(CURIE_IMU_SHOCK, 75); // 75ms CurieIMU.interrupts(CURIE_IMU_SHOCK); } void loop() { // 메인 루프에 아무것도 넣을 필요가 없습니다... } static void eventCallback(void) { if (CurieIMU.getInterruptStatus(CURIE_IMU_SHOCK)) { digitalWrite(LED_BUILTIN, HIGH); 지연(50); digitalWrite(LED_BUILTIN, LOW); } }  
    <울>
  • 탭이 감지되면 온보드 LED가 깜박입니다.
  • <울>
  • 충동 감지의 변경 사항을 파악하는 데 사용
  • TapBeatMatch

    <울>
  • 온보드 LED의 깜박임을 Arduino 101 근처의 탁상 표면을 두드리는 템포에 동기화합니다.
  • <울>
  • 소음 완화를 위한 가중 평균 구현
  • <울>
  • 조정 가능한 충격 감지 임계값
  • SeismicReader + Python 시각화 스크립트

    <울>
  • Arduino 101 보드는 직렬을 통해 JSON 형식의 가속도계 및 자이로스코프 값을 출력한 다음 연결된 컴퓨터에서 읽습니다.
  • <울>
  • 보드에서 데이터를 읽고 터미널/명령 프롬프트에서 매우 간단한 라인에 그래프로 표시하는 작은 Python 스크립트 작성
  • <울>
  • Excel에서 열고 그래프로 표시할 수 있는 CSV에 결과를 저장합니다.
  • <울>
  • 다중 플랫폼 Python 2.x / 3.x 사용:
  • 진동 조명

    <울>
  • 원래 접근하는 발자국을 감지하고 누군가가 근처에 있을 때 조명을 활성화하도록 설계되었지만 신호 대 잡음비가 설치에 적합하지 않아 두 번 탭 감지로 축소되었습니다.
  • <울>
  • 미러를 연속으로 두 번 두드리면 현관 미러 아래에 테이프로 붙인 LED 스트립이 켜지고 꺼집니다.
  • 보너스

    Bogdan과의 대화를 통해 거의 모든 Arduino 장치에 연결된 독립형 가속도계 + 자이로스코프 센서와 함께 작동하도록 Arduino 스케치를 수정한 다음 CurieGraph.py를 사용하는 것이 매우 쉽다는 것을 깨달았습니다. 데이터를 시각화합니다. 지진 판독값을 수집하는 목적은 복잡하거나 전문적인 장비 없이도 데이터를 대규모로 크라우드 소싱할 수 있다는 것을 증명하는 것이므로 "ITG-MTU" / "GY-521" / "MPU-6050"을 위해 책상을 뒤졌습니다. 센서 보드에 대한 다음 스케치를 작성했습니다. CurieGraph.py는 몇 번 시작하지 못할 수 있지만 일반적으로 세 번째 시도에서는 제대로 시작됩니다.

    외부 자이로스코프

    #include const int MPU_addr=0x68; // ITG-MTU의 I2C 주소 int ax, ay, az, temp, gx, gy, gz; 무효 설정(){ Serial.begin(9600); Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(참); } String jsonEncodeValue(문자열 키, float keyVal){ return "\"" + 키 + "\":" + String(keyVal) + ""; } String assembleJson(String keysAndVals){ return "{" + keysAndVals + "}"; } 무효 루프(){ Wire.beginTransmission(MPU_addr); Wire.write(0x3B); Wire.endTransmission(거짓); Wire.requestFrom(MPU_addr, 14, true); 도끼 =Wire.read()<<8|Wire.read(); y =Wire.read()<<8|Wire.read(); az =Wire.read()<<8|Wire.read(); temp =Wire.read()<<8|Wire.read(); gx =Wire.read()<<8|Wire.read(); gy =Wire.read()<<8|Wire.read(); gz =Wire.read()<<8|Wire.read(); // 온도 =temp/340.00+36.53; // 임시 데이터를 섭씨로 변환 - 사용하지 않음 String keyVals =jsonEncodeValue("ax", ax) + ","; keyVals +=jsonEncodeValue("ay", ay) + ","; keyVals +=jsonEncodeValue("az", az) + ","; keyVals +=jsonEncodeValue("gx", gx) + ","; keyVals +=jsonEncodeValue("gy", gy) + ","; keyVals +=jsonEncodeValue("gz", gz); Serial.println(assembleJson(keyVals)); 지연(100); }  
    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    arduino-101-스케치
    Intel Curie의 가속도계 및 자이로스코프를 활용하여 Arduino 101용으로 특별히 작성된 스케치 모음입니다.https://github.com/ckuzma/arduino-101-sketches

    제조공정

    1. 모터 제어 회로
    2. 천장 선풍기에 Alexa 제어 기능을 사용하도록 설정
    3. Arduino를 통한 Atmel AT89 시리즈 프로그래밍
    4. Arduino, 1Sheeld 및 Android를 사용한 범용 원격 제어
    5. Arduino로 코인 억셉터 제어
    6. Arduino 제어 센터
    7. IoT를 사용하여 로봇 팔 원격 제어
    8. Bluetooth가 탑재된 Arduino로 LED 제어!
    9. Arduino 가습기 제어
    10. Arduino Nano:조이스틱으로 2개의 스테퍼 모터 제어