【전자 공작】 사람이라면 3 일이 걸리는 평가를 자동화하여 3 시간 만에 끝낸 이야기

14126 단어 전자 공작자동화
이것은 근무하는 회사에서 일어난 실화이다.
(다른 회사에서도 비슷한 사례는 있을 것 같지만, 꼭 없어지길 바란다)

왜 이렇게 됐어



「토일일 나오는(휴일 출근한다)밖에 없는가」라는 상사의 한마디로 시작되었다.

진행하고 있던 상품의 개발 과정에서 문제가 발각되어 긴급하고 추가평가를 해야 했다.
이때 금요일 오후 3시에 평가 결과를 다음 주 월요일 오후 1시 회의까지 보고할 필요가 있었다.
(어째서, 이런 단납기 뭐야!!...라고는 말할 수 없고···)

발생한 문제



문제란, 상품 중의 어떤 부품에 대한 내구성의 확인이 새고 있었던 것.
(실제와는 다르지만) LED와 같이 전류를 흘리면 상태가 바뀌는 부품에 대해, 동작의 ON/OFF를 1만회 실시해도 상품 자체의 동작에 이상이 없는 것을 나타낼 필요가 있었다 하지만 왠지 새고 있었다. . .
(왜, 여기까지 아무도 눈치채지 못했는가. 라는 문제는 있지만, 일단 두어 둔다)

이것에 대해···?



이 문제에 대해 상사도 초조했기 때문이라고 생각하지만, 안정화 전원 (Amazon)을 이용해 수동으로 ON/OFF를 반복해 실시할 수밖에 없다는 제안이 올랐다.

이때, 나는 무표정이었다(라고 생각한다)가, 마음속에서는↓의 느낌이었음에 틀림없다.


「1만회 ON/OFF한다=안정화 전원의 스위치를 2만회 누른다」이며, 평가하는 부품수도 1개가 아니고, 최저라도 10개는 확인해야 했기 때문에, 총 20만 시간 조작이 필요합니다.

스위치 ON 동작이 1초/회에서도, 20만초(약 56시간) 필요하고, 기본 업무 시간이 8시간이므로 공수로서는 7인일 필요하므로, 월요일에 보고하기 위해서는 3~ 네 명이라도 소중한 휴일에 출근해야 한다.

나도 이 시험에 휘말릴 것 같았기 때문에, 자연스럽게 제안해 보았다.

「그것, 아마 자동화할 수 있어요」・・・라고.

했던 일


  • Arduino UNO, 릴레이 스위치 및 안정화 전원을 연결하고 0.5 초마다 ON/OFF를 반복했습니다.
  • 부품은 병렬로 정렬하여 동시에 평가합니다
  • 자작 시험기가 작동 한 후 오실로스코프로 부품의 동작을 10 분 정도 감시하고 나머지 시간은 로그를 두어 시험기에 문제가 없음을 확인했다.

    소요된 시간:
    - 준비 : 1시간 정도
    - 시험: 3시간 미만

    오후 8시 정도에 결과를 보고하고 다음 주 월요일 아침에 결과를 정리했다.

    스케치



    매우 간단하기 때문에 생략하려고 생각했지만, 만약을 위해 게재.
    (이 코드에 1만회 ON/OFF하면, 동작 종료해 LINE에 통지가 오는 명령을 추가했다)

    [추기]
    LINE 통지부에 대해서도 기재.
    자신의 메모로서・・・.
    #include <WiFi.h>
    #include <WiFiMulti.h>
    #include <ssl_client.h>
    #include <WiFiClientSecure.h>
    #include <HTTPClient.h>
    #include <Wire.h>
    
    const char* ssid = "xxx";
    const char* password = "xxx";
    
    int relay = 21;
    int count = 0;
    
    void send_line(String message) {
      const char* host = "notify-api.line.me";
      const char* token = "DJzodtuk2lEUlm5UuFPqsztwH3YKw3RP9d58BYMuXjX";
      WiFiClientSecure client;
      Serial.println("Try");
      //LineのAPIサーバに接続
      if (!client.connect(host, 443)) {
        Serial.println("Connection failed");
        return;
      }
      Serial.println("Connected");
      //リクエストを送信
      String query = String("message=") + message;
      String request = String("") +
                   "POST /api/notify HTTP/1.1\r\n" +
                   "Host: " + host + "\r\n" +
                   "Authorization: Bearer " + token + "\r\n" +
                   "Content-Length: " + String(query.length()) +  "\r\n" + 
                   "Content-Type: application/x-www-form-urlencoded\r\n\r\n" +
                    query + "\r\n";
      client.print(request);
    
      //受信終了まで待つ 
      while (client.connected()) {
        String line = client.readStringUntil('\n');
        Serial.println(line);
        if (line == "\r") {
          break;
        }
      }
    
      String line = client.readStringUntil('\n');
      Serial.println(line);
    }
    
    void wifiConnect(void) {
      Serial.println("\nwifiConnect");
      WiFi.disconnect();
      WiFi.mode(WIFI_STA);
      WiFi.begin(ssid, password);  // Wi-Fi接続
    
      while (WiFi.status() != WL_CONNECTED) {  // Wi-Fi 接続待ち
        delay(100);
        Serial.printf(".");
      }
      Serial.println("\nwifi connect ok");
    }
    
    void wifiConnect(void) {
      Serial.println("\nwifiConnect");
      WiFi.disconnect();
      WiFi.mode(WIFI_STA);
      WiFi.begin(ssid, password);  // Wi-Fi接続
    
      while (WiFi.status() != WL_CONNECTED) {  // Wi-Fi 接続待ち
        delay(100);
        Serial.printf(".");
      }
      Serial.println("\nwifi connect ok");
    }
    
    void setup() {
      Serial.begin(115200);
      pinMode(relay, OUTPUT);
    
     // put your setup code here, to run once:
      wifiConnect();
    }
    
    void loop() {
      digitalWrite(relay, HIGH);
      delay(1000);
      digitalWrite(relay, LOW);
      delay(1000);
    
      count += 1;
    
      if (count == 10000){
        // LINEに送る
        send_line("Complete!!");
      }
    }
    

    알다시피


  • 취미로 전자 공작을하고 있었기 때문에 허들이 낮았던 것
  • 지식이 있어도, 사용한 적이 없으면 발상이 나오지 않는 것
  • 10,000 번 스위치를 포치 포치하는 것보다 공작 쪽이 절대적으로 즐거웠다.

    취미만으로 사용하고 있던 Arduino를 일로 사용하는 날이 올 것이라고는 생각하지 않았지만, 덕분에 제 휴일은 지켜졌다.
  • 좋은 웹페이지 즐겨찾기