본문 바로가기

아두이노/제품 검사 센서9

#9 제작 - 기능 개선 테스트 및 검수 과정에서 개선해야 할 사항들이 나왔다. 오류 발생 시의 부저 소리가 모두 동일해 구분이 어렵다는 것과, 센서 양 쪽에 물체가 감지돼 엔터키 출력이 가능해질 때 이를 사용자에게 알려줘야 한다는 점이었다. 그리고 아두이노 회로를 보호할 케이스도 필요했다. 우선 부저 소리를 다양하게 하기 위해 장착돼있던 능동부저를 떼어내고 수동부저로 교체했다. 수동부저를 이용하면 주파수를 달리해서 도레미파솔라시 음을 낼 수 있다. 사용한 주파수는 다음과 같다. 도 - 261, 레 - 294, 미 - 330, 파 - 349, 솔 - 392, 라 - 440, 시 - 494 부저 소리는 총 4가지 경우에 나오게 했다. 센서1에만 미감지된 경우 - 도 센서2에만 미감지된 경우 - 레 엔터키 출력 - 시 엔터키 출력 .. 2023. 7. 18.
#8 제작 제품에 사용되는 부품들이 여럿이다보니 한 곳에 모아 고정시켜 놓는 것도 쉽지 않았다. 인터넷을 찾아보니 만능기판이라는 것을 사용하는 거 같아 몇 가지 크기들로 구입했다. 우선 아두이노 Micro 보드를 만능기판에 납땜하고, 주변의 남는 공간에 부저와 로터리 딥 스위치, 터치 스위치 등을 납땜했다. 만능기판 덕분에 좀 더 수월하게 튼튼하고 효율적인 배선이 가능했다. 아두이노 IDE 에서 지금까지 테스트했던 코드들을 하나로 모아 업로드했다. 디지털 핀 번호를 순차적으로 사용하지 않고 뒤죽박죽으로 할당했는데, 만능기판에 납땜하면서 최대한 가까운 곳에 위치한 핀으로 연결하다보니 이렇게 됐다. 포토 인터럽터 센서 두 곳에 모두 물체가 감지되면 'PASS' 상태가 되고, 이 상태에서 터치 스위치를 누르면 엔터키 신.. 2023. 6. 12.
#7 기획 및 검토 - 로터리 딥 스위치 기존에는 3 states 토글 스위치를 사용해 대기 시간을 조정하는 기능을 구현했었는데, 크기가 너무 큰 데다가 3가지 선택 밖에 안 되서 좀 부족하다는 생각이 들었다. 다른 방식의 스위치를 찾아보던중 로터리 방식의 딥 스위치가 적당한 거 같아 이걸 테스트해보기로 했다. 내가 선택한 스위치는 SSR-04 라는 제품으로, 총 4가지 선택 값을 가지고 있다. SSR-10 이라고 총 10가지 선택 값을 갖는 제품도 있는데, 기본적인 사용법은 동일할 거 같아 우선 SSR-04 로 테스트 했다. 스위치의 바닥 부분을 보면 똑같이 생긴 핀이 6개나 있다. 설명서를 보면 가운데에 있는 2개의 "C" 핀은 전원 연결이고, 나머지 4개의 핀들 중에서 "1" 핀과 "2" 핀 2개만 사용하게 돼 있다. 스위치에서 선택 가능.. 2023. 6. 10.
#6 기획 및 검토 - 터치 스위치 엔터키 신호를 보낼 스위치는 터치 방식의 것으로 정했다. 장시간 동일 작업을 반복해야 하기 때문에, 누르는데 힘이 많이 들어가는 일반 스위치보다는 가볍게 접촉만 해도 되는 터치 스위치가 피로가 훨씬 덜할 거 같다. 준비한 터치 스위치 보드에는 3개의 핀이 있고, 각각 GND, VCC, IO 라고 표시가 돼 있어서 쉽게 아두이노 Micro 보드에 연결할 수 있었다. IO 핀을 보드의 2번 디지털핀에 연결했고, 이 상태에서 은색 원에 손가락 등을 접촉하면 HIGH 값을 출력한다. #include int touchButtonPin = 2; int buzzerPin = 3; void setup() { Serial.begin(9600); while(!Serial && millis() 2023. 6. 5.
#5 기획 및 검토 - 아두이노 Micro 제품에 대한 추가 요구사항을 받는 바람에, 몇가지 기능을 업그레이하게 됐다. 레이저 각인 기계는 USB 로 연결된 제어용 PC 의 키보드 엔터키를 눌러서 각인 작업을 시작하게 된다. 내가 만드는 제품 검사 센서가 단순히 오류 여부만 알려주는게 아니라, 오류가 나면 키보드 엔터키를 눌러도 각인 작업이 시작되지 않게 해야 한다. 아두이노 보드를 제어용 PC 와 USB 케이블로 연결해 놓고, 아두이노 쪽의 스위치를 누르면 USB 케이블을 통해 제어용 PC 에 엔터키 신호를 보내도록 하드웨어를 구성하면 될 거 같다. 그리고 포토 인터럽터 센서 두 곳에 모두 물체가 감지되는 "PASS" 상태에서만 신호를 보내게 하고, 그 외의 경우에는 스위치를 눌러도 엔터키 신호를 보내지 않도록 프로그램을 작성하려고 한다. 아두.. 2023. 6. 3.
#4 제작 지금까지 테스트한 것들을 하나로 모아 최종 테스트를 진행해본다. 아두이노 IDE 에 연결하고 지금까지 테스트 했던 코드들을 하나로 합쳐 업로드한다 대기시간 관련 부분은 코드가 중복될뿐만 아니라 개발/유지보수 단계에서 계속 변경될 확률이 높아서, 별도의 사용자정의 함수 get_delay() 를 만들어 분리했다. 지금은 테스트 단계라서 기본값 1초에 스위치 선택에 따라 0.5 초 또는 1.5초를 선택할 수 있게 해놨는데, 나중에 납품할 때는 시간을 줄일 생각이다. 한가지 주의할 점은 아두이노에서의 사용자정의 함수는 호출되기 전에 먼저 정의가 돼 있어야 하므로 loop() 함수보다 윗 줄에 코딩돼 있어야 한다는 것이다. int buzzerPin = 2; int switch1Pin = 3; int switch2.. 2023. 5. 30.
#3 기획 및 검토 - 3 states 토글 스위치 포토 인터럽트 센서 2개를 테스트할 때, 대기시간을 delaySeconds 변수에 0.5 초로 저장했었다. 이 값은 테스트하면서 최적의 값을 찾아 수정할 거긴 한데, 그럼에도 불구하고 현장에서 사용할 작업자 입장에서는 그 시간이 너무 짧거나 길다고 느낄 수 있다는 생각이 들었다. 그 때마다 내가 프로그램을 수정해 줄수는 없고, 대신 이 대기시간을 현장의 작업자가 쉽게 변경할 수 있도록 만드려고 한다. 내가 현재 가지고 있는 스위치 중에서 3 state 토글 스위치가 적당해 보였다. 스위치가 중앙에 위치하고 있으면 '표준' 이고, 양쪽으로 '빠름' 과 '느림' 으로 선택할 수 있도록 하려고 한다. 예를 들어 '표준' 으로 놓으면 0.5 초, '빠름' 으로 놓으면 0.3초, '느림' 으로 놓으면 0.8 초로.. 2023. 5. 29.
#2 기획 및 검토 - 포토 인터럽터 센서 지인이 요청한 검사기는 포토 인터럽터 센서가 두 개 필요하다. 센서 두 곳에서 물체가 감지되면 합격이고, 어느 한 쪽만 감지되면 불량품이라서 경보를 울려야 한다. 지난 번에 테스트한 회로에 동일한 포토 인터럽터 센서를 하나 더 추가했다. 추가된 센서의 값을 이용하여 아래의 결과 값이 나오도록 프로그램도 수정했다. 센서1 미감지 센서1 감지 센서2 미감지 대기 상태 유지 "Fail 2" 출력 센서2 감지 "Fail 1" 출력 "PASS" 출력 그런데, 센서가 두 개가 되면서 고려해야 하는 것이 생겼다. 센서에 물체를 넣는 게 사람이 하는 것이다보니 각각의 센서에 정확하게 동시에 넣을 수 없다는 것이다. 수백분의 1초의 아주 짧은 시간이지만, 어느 한쪽 센서에 먼저 넣는 것을 아두이노 프로그램에서는 충분히 .. 2023. 5. 27.
#1 기획 및 검토 - 포토 인터럽터 센서, 능동 부저 이번에는 지인의 공장에 있는 레이저 각인 기계에서 사용할 검사기를 만들기로 했다. 레이저로 글자나 그림을 각인해 넣으려면 먼저 대상이 되는 제품을 정확한 위치에 고정해야 하는데, 바쁘게 작업하다보면 잘못된 위치에 놓인 상태로 각인을 하는 바람에 해당 제품을 폐기해야 하는 일이 있다고 한다. 이로 인한 손실을 줄이고자, 제품이 정위치에 있지 않으면 경보를 울리는 장치를 만들어 설치하기로 했다. 우선 교재에 나온 예제들을 검토해서 응용 가능한 기술을 체크해보기로 했다. 40장 포토 인터럽터 센서 모듈 실습 40장 포토 인터럽터 센서 모듈 실습 실습키트에는 포토 인터럽터 센서가 없어서 따로 구매해야 했는데, 마침 지인이 사용하려는 센서를 지정해줘서 인터넷 쇼핑몰에서 구입했다. 제품명은 "BS5-L1M 포토마이.. 2023. 5. 24.