산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial Internet of Things >> 임베디드

시각 장애인을 위한 수준기 설계

이 기사는 시각 장애인을 위한 수평계의 전체 설계에 대해 설명합니다. ADXL312 가속도계를 사용하여 수평 및 수직 평면의 중력을 측정하고 가속도계가 정확히 수평 또는 수직일 때 부저를 울립니다.

또한 수평계가 기수 휠에서 멀리 떨어진 곳에 위치할 수 있는 자동차 애플리케이션의 트레일러와 같이 수평을 맞추는 틸트 센서로 사용할 수도 있습니다. 또한 자동차 안정성 시스템이나 드론의 하위 회로로도 사용됩니다.

소개

Amar Latif는 Celebrity MasterChef에 출연한 후 영국 요리계에 큰 반향을 일으키고 있습니다. . 그러나 Amar는 요리를 잘할 뿐만 아니라 자신의 여행사를 운영하고 있으며 동기 부여 연설가이며 남미 대부분을 여행했으며 TV 출연자이기도 합니다. 이 남자의 초능력은 끝이 없는 걸까?

안타깝게도 있습니다. Amar는 95% 시각 장애인입니다. 기술이 발전하고 세계가 그 속도를 따라잡기 위해 고군분투함에 따라 시각 장애인의 경우 전투가 훨씬 더 어렵습니다. 대부분의 기술 발전으로 인해 화면 앞에서 더 많은 시간을 보내야 합니다. 시각 장애인에게 과도한 화면 시간은 "만약에"로 남아 있습니다.

시각 장애가 있는 사람들의 삶을 풍요롭게 하는 데 기술이 사용될 수 있다면 이것은 좋은 일입니다. 등록된 맹인 인구의 18%만이 완전 맹인(또는 "검은 맹인")이므로 세부 사항을 구별할 수 없더라도 대다수가 최소한 약간의 시력을 갖게 됩니다. 그래서 시각 장애인을 위한 수준기의 아이디어가 탄생했습니다.

디자인 개요

기울기 센서 설계는 최대 ±1.5 g 측정할 수 있는 저전류 가속도계인 ADXL312를 기반으로 했습니다. SPI 버스를 통해 판독된 데이터와 함께 x, y 및 z 축에서. 이 부품은 5mm × 5mm 패키지로 제공되며 대기 모드에서 0.1μA를 소비합니다. 10비트 분해능으로 측정하므로 ADXL312는 ±2.9mg의 낮은 변화도 감지할 수 있습니다. 각 축에서. ADXL312는 각 축에 대한 중력 데이터를 최대 ±511의 2의 보수 값으로 저장하며, 마이크로컨트롤러는 이를 읽고 한 줄 16자 LCD 디스플레이에 표시합니다. 그림 1은 ADXL312의 감지 축을 보여줍니다.

전체 크기 이미지를 보려면 클릭하세요.

그림 1. ADXL312의 감지 축. (출처:Analog Devices)

부품의 전체 판독값은 1.5 g입니다. , 따라서 1 g의 중력 읽기 2 제공 / 3 이의. 따라서 ADXL312가 정확히 수평이면 z축 레지스터는 2 를 읽어야 합니다. / 3 전체 스케일이고 x 및 y 축은 0을 읽어야 합니다. 마찬가지로, ADXL312가 완전히 수직인 경우 x축 판독값은 2 여야 합니다. / 3 전체 스케일, y 및 z 축은 0을 읽어야 합니다. ADXL312가 임의의 축에서 멀어지기 시작하면 기울기 각도의 사인에 따라 다른 축의 판독값이 증가하기 시작하는 동안 최대 판독값이 감소하기 시작합니다.

ADXL312 내부

ADXL312는 실리콘 웨이퍼 위에 구축된 폴리실리콘 표면 미세가공 구조로 구성된 MEMS(Microelectromechanical System)입니다. 폴리실리콘 스프링은 웨이퍼 표면에 구조를 매달고 가속력에 대한 저항을 제공합니다.

고정된 실리콘 핑거는 특성을 측정할 수 있는 차동 커패시터를 생성하기 위해 움직이는 프루프 매스에 핑거와 끼워 넣습니다. 가속은 빔을 편향시키고 차동 커패시터의 불균형을 일으켜 진폭이 가속에 비례하는 센서 출력을 생성합니다. 구조는 그림 2에 나와 있습니다.

전체 크기 이미지를 보려면 클릭하세요.

그림 2. ADXL312의 내부 작동. (출처:Analog Devices)

ADXL312는 I 2 C 또는 SPI 및 x, y 및 z 데이터는 6개의 내부 8비트 레지스터에 저장됩니다. 또한 32레벨 FIFO, 2개의 다기능 인터럽트, 오프셋 레지스터, 기계적 자체 테스트 및 자동 절전 모드를 비롯한 많은 기능을 갖추고 있습니다.

정신 수준 디자인

기울기 센서의 전체 회로도는 그림 3에 나와 있습니다.

ADXL312의 최대 공급 전압은 3.6V인 반면 LCD 디스플레이와 부저는 5V를 필요로 하므로 회로에 대한 주 입력은 5V이며 이는 3.3V, 150mA 선형 레귤레이터(ADP121)를 사용하여 하향 조정됩니다. ADXL312, 마이크로컨트롤러 및 E2 메모리에 전원을 공급합니다.

마이크로컨트롤러의 포트 B, 핀 2(CAL 핀)는 10kΩ 저항에 의해 하이로 풀링됩니다. 또한 접지에 연결할 수 있는 점퍼가 있습니다. 시작 시 마이크로컨트롤러는 CAL 핀의 상태를 조사하고 이 핀이 점퍼에 의해 로우로 당겨지면 x, y 및 z 레지스터를 읽고 이 판독값을 0에서 뺀 다음 결과를 내부의 오프셋 레지스터에 로드합니다. ADXL312는 물론 외부 E2 메모리인 25AA040에 저장합니다. ADXL312는 프로세서 상호 작용 없이 오프셋 레지스터의 판독값을 향후 측정에 자동으로 추가하여 보정된 오프셋을 제거합니다.

점퍼가 제거되면 CAL 핀이 하이로 당겨지고 교정 루틴이 바이패스됩니다. 오프셋 판독값은 E2 메모리에서 직접 읽고 ADXL312의 오프셋 레지스터에 로드됩니다. 따라서 제조하는 동안 CAL 핀을 낮게 유지한 상태에서 증류기를 교정 지그에 장착하고 장치를 교정할 수 있으며 오프셋 값을 E2 메모리에 저장할 수 있습니다. 보정 후 점퍼가 제거되고 후속 전원이 켜질 때 E2 메모리가 조사되고 보정된 오프셋 판독값이 ADXL312의 오프셋 레지스터에 로드됩니다.

그런 다음 소프트웨어는 각 축에 대해 8회 판독을 수행하고 결과의 평균을 낸 다음 16자 LCD 디스플레이에 표시합니다. 디스플레이는 100ms마다 업데이트됩니다.

전체 크기 이미지를 보려면 클릭하세요.

그림 3. 시각 장애인을 위한 정신 수준의 전체 개략도. (출처:Analog Devices)

그림 4는 각 센서가 0 판독값에 가까울 때 최대 감도가 달성됨을 보여줍니다. 이것은 사인파의 기울기가 가장 가파른 곳이므로 기울기 변화에 대한 중력 판독값의 최대 변화를 제공합니다.


그림 4. 각도에 따른 g 힘의 사인파 변화를 보여줍니다. (출처:Analog Devices)

다행히 수평계는 각 센서가 완벽하게 수평이고 센서 판독값이 0에 가까울 때만 기울기를 측정하면 됩니다.

소프트웨어는 x 및 z 축 모두를 한 번에 보정할 수 있도록 작성되었습니다. 부품을 수평 플랫폼에 놓고 기울기 센서의 x축을 보정하는 것은 쉽습니다. 그러나 이 시점에서 z축은 1 g의 힘을 받게 됩니다. , 따라서 1 g의 전체 측정값과 비교하여 z 판독값을 취해야 합니다. , 오프셋 레지스터에 로드된 모든 오류. 기울기 센서의 각 축에 대한 보다 정확한 보정은 수평면과 수직면 모두에서 보정함으로써 달성할 수 있지만, 이를 위해서는 2단계 보정과 소프트웨어 수정이 필요합니다.

표 1은 2의 보수 데이터의 예를 보여줍니다. 양수는 기존의 이진 표기법을 따릅니다. 음수는 최상위 비트(MSB)를 부호 비트로 사용합니다. 따라서 양수는 MSB가 0이고 음수는 MSB가 1입니다.

표 1. 2의 보수 데이터의 예

소수점 바이너리 +51101 1111 1111+100 0000 0001000 0000 0000-111 1111 1111-51110 0000 0001

양수에 대한 2의 보수는 모든 비트를 반전한 다음 1을 추가하여 찾을 수 있습니다. 따라서 카운트 0에서 -1 카운트로 전환할 때 코드는 00 0000 0000에서 11 1111 1111로 변경됩니다.

소프트웨어는 x 및 z 레지스터를 읽고 레지스터 값이 0 또는 1023(11 1111 1111)이면 포트 B, 비트 5를 높게 설정하여 트랜지스터 Q1을 켜고 5V 부저를 울립니다. 기울기 센서가 완전히 수평일 때 x축은 0 또는 1023의 판독값을 가지며 완전히 수직인 경우 z축은 0 또는 1023의 판독값을 갖습니다. 두 레지스터가 모두 0 또는 1023과 같지 않을 때만 부저가 울리지 않습니다.

정확도 및 추가 개발

하나의 축만 고려하면 최대 판독값은 1 g 중력이 해당 축을 따라 작용할 때 도달하고 이 수치는 0 g으로 감소합니다. 그림 5와 같이 부품이 90° 기울어져 있기 때문입니다.


그림 5. 중력 판독값을 사용하여 기울기 각도 계산. (출처:Analog Devices)

따라서 가해지는 중력은 방정식에 의해 결정됩니다.

여기서 Ø는 수평에 대해 측정된 기울기 각도입니다. 부품을 2.9mg의 분해능으로 측정할 수 있는 경우 , 그러면 0.17°의 각도로 분해될 수 있습니다. 기포의 정확한 위치를 정하기 어렵기 때문에 표준 기포 수준기의 정확도에 대한 수치를 결정하는 것은 어렵습니다. 그러나 실험에서 1.2m 높이의 끝 부분은 거품이 중심에서 벗어나 보기 전에 약 3.2mm(채워지지 않은 두 개의 PCB 너비!) 이동할 수 있습니다. 이는 약 0.15°의 각도에 해당하며, 해상도 손실이 거의 없는 전자식 기울기 센서로 기포 수준기를 대체할 수 있음을 나타냅니다.

더 많은 정확도가 필요한 경우 ADXL313은 1g 스케일에서 11비트 분해능을 제공합니다. 인터페이스 및 레지스터 세트는 ADXL312와 매우 유사하므로 소프트웨어를 많이 수정할 필요가 없습니다. ADXL355는 상당히 낮은 노이즈와 높은 해상도를 제공합니다.

ADXL312의 노이즈 밀도는 340μg입니다. /√Hz이며 대역폭이 낮을수록 노이즈가 더 좋습니다. 부품의 대역폭은 프로그래밍 가능합니다(기본값은 50Hz로 3.125Hz ~ 1600Hz). 대역폭을 줄이면 노이즈가 개선되지만 디스플레이의 업데이트 속도도 감소합니다. 이 설계의 경우 대역폭은 6.25Hz로 설정되었으며, 이는 850μg의 rms 노이즈를 의미합니다. . 노이즈는 더 많이 읽고 평균화하여 줄일 수도 있습니다.

추가 개선 사항은 정도를 표시하는 LCD 판독값을 갖는 것입니다. 그러나 사인과 코사인이 소프트웨어에 포함되어야 하는 경우 이를 위해서는 C 라이브러리에서 수학 함수를 사용해야 합니다. 이러한 기능은 저가형 마이크로컨트롤러에 대해 너무 많은 코드 공간을 차지합니다. 사인 함수에 대한 근접한 근사는 Taylor 급수 확장을 사용하여 얻을 수 있으며 이는 상당히 적은 코드 공간을 차지해야 합니다.

결론

ADXL312는 저가형 마이크로컨트롤러에 쉽게 인터페이스할 수 있는 저렴한 전자 기울기 측정 시스템을 제공합니다. 이전에 설명된 디자인은 기존의 기포 수준기의 정확도에 필적할 수 있지만 전자 인터페이스가 있는 것으로 입증되었습니다. 이를 통해 트레일러 레벨링 시스템, 안정성 제어 시스템 및 드론과 같이 경사를 측정해야 하는 대형 설계에서 서브시스템으로 사용할 수 있습니다.

더 중요한 것은 시각 장애인의 독립성을 높이는 데 사용할 수 있으며 이 텍스트는 오디오 및 시각적 출력은 물론 하드웨어, 소프트웨어, 비휘발성 메모리를 포함한 완전한 시스템 수준 설계를 보여줍니다.


사이먼 브램블 1991년 런던의 브루넬 대학교에서 전기 공학 및 전자 학위를 취득하고 아날로그 전자 및 전력을 전문으로 졸업했습니다. 그는 아날로그 전자 분야에서 경력을 쌓았고 Linear Technology(현재는 Analog Devices의 일부)에서 근무했습니다. [email protected]으로 연락할 수 있습니다. .

관련 콘텐츠:

더 많은 Embedded를 보려면 Embedded의 주간 이메일 뉴스레터를 구독하세요.


임베디드

  1. 멀티 기가비트 캠퍼스 네트워크를 위한 보다 유연한 코어 설계
  2. Innodisk:의료 분야를 위한 AIoT 솔루션
  3. AI 컴퓨팅을 위한 뉴로모픽 칩 사례 만들기
  4. 로봇 시스템용 모터 제어 설계
  5. 시력:시각 장애인용
  6. 제조를 위해 설계할 때 피해야 할 일반적인 실수는 무엇입니까?
  7. Smart Factory의 최적화 및 조직화를 위한 최고 수준
  8. 인더스트리 4.0을 위한 5S 방식의 도전
  9. 추억에 감사드립니다!
  10. 항공 및 항공우주 PCB 설계를 위한 중요한 지침은 무엇입니까? - II