<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>자파리</title>
    <link>https://zapari.tistory.com/</link>
    <description>취미생활 관련 제품 사용기나 팁, 활용법 등을 소개하는 블로그입니다. 드론, RC, 드로잉, 자전거, 여행 등을 주제로 합니다.</description>
    <language>ko</language>
    <pubDate>Sun, 12 Apr 2026 21:15:46 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>드워프의 자파리</managingEditor>
    <image>
      <title>자파리</title>
      <url>https://tistory1.daumcdn.net/tistory/3160069/attach/4698414c6e164e79a1c59d007ef42bb6</url>
      <link>https://zapari.tistory.com</link>
    </image>
    <item>
      <title>수도요금 체납자 관리를 위한 원터치락 수도밸브 봉인기 소개</title>
      <link>https://zapari.tistory.com/357</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;제품사진전체.png&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;592&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIQAcw/dJMcadO2qmN/fUoj2EWKGBKm8GgtNDPz9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIQAcw/dJMcadO2qmN/fUoj2EWKGBKm8GgtNDPz9K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIQAcw/dJMcadO2qmN/fUoj2EWKGBKm8GgtNDPz9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIQAcw%2FdJMcadO2qmN%2FfUoj2EWKGBKm8GgtNDPz9K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;350&quot; height=&quot;143&quot; data-filename=&quot;제품사진전체.png&quot; data-origin-width=&quot;1452&quot; data-origin-height=&quot;592&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;특허제품인 &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;원터치락&lt;/span&gt;&lt;span&gt;' &lt;/span&gt;&lt;span&gt;수도 밸브 봉인기는&lt;/span&gt;&lt;span&gt;,&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;한손으로 열쇠 없이 잠기는 편리한 작업성과 맞춤 생산 및 각인을 통한 커스터마이징을 특징으로 하는 가장 확실하고 간편한 단수 솔루션을 제공하도록 설계되었습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;span&gt;Specification&lt;/span&gt;&lt;/h4&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;재질 &lt;/span&gt;&lt;span&gt;: PC(&lt;/span&gt;&lt;span&gt;폴리카보네이트&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;생산방식 &lt;/span&gt;&lt;span&gt;: FDCM 3D&lt;/span&gt;&lt;span&gt;프린팅&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;특허 &lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;밸브봉인장치&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;특허 제&lt;/span&gt;&lt;span&gt;10-2871904&lt;/span&gt;&lt;span&gt;호&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;하자보수 &lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;납품 후 &lt;/span&gt;&lt;span&gt;1&lt;/span&gt;&lt;span&gt;년 무상보증&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;납품기간 &lt;/span&gt;&lt;span&gt;: &lt;/span&gt;&lt;span&gt;발주일로부터 &lt;/span&gt;&lt;span&gt;40&lt;/span&gt;&lt;span&gt;일 이상&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;수량별 상이&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;제품구분 &lt;/span&gt;&lt;span&gt;: 15mm &lt;/span&gt;&lt;span&gt;볼밸브용&lt;/span&gt;&lt;span&gt;, 15~25mm&lt;/span&gt;&lt;span&gt;호환 게이트밸브용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;(*&lt;/span&gt;&lt;span&gt;겸용 키 별매&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;그동안 수도요금 체납자를 관리하기 위해&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;각 지자체에서는 계도&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;밸브 잠금&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;밸브 탈거&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;관 막음&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;계량기 탈거 등의 조치를 해 왔으나 이러한 방법은 얻는 효용 대비 지나치게 행정력을 낭비하는 단점이 되었습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;따라서 요금 체납 수용가&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;수도를 사용하는 가정&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;관리를 위해 수도 밸브 봉인기가 필요하나 기존 제품들은 철판의 절곡&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;절삭&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;용접&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;도색등의 과정을 거쳐 단가가 비싸며 부식의 위험이 있고 열고 잠그기 위한 열쇠뭉치를 가지고 다녀야 하는 번거로움이 있었습니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;이제 &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;원터치락&lt;/span&gt;&lt;span&gt;' &lt;/span&gt;&lt;span&gt;수도 밸브 봉인기로 모든 번거로움과 작별을 고하세요&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;(단점) &lt;/b&gt;&lt;/span&gt;&lt;span&gt;자물쇠와 열쇠를 지참 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;b&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;개선&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;/b&gt;&lt;span&gt;열쇠만 지참&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; &lt;b&gt;(단점)&lt;/b&gt;&lt;/span&gt; &amp;nbsp;&lt;/span&gt;&lt;span&gt;각인 불가 또는 어려움 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;b&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;개선&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;/b&gt;&lt;span&gt;뚜렷한 각인 및 글자 마킹&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt; &lt;b&gt;(단점)&lt;/b&gt;&lt;/span&gt; &amp;nbsp;&lt;/span&gt;&lt;span&gt;복잡한 생산 공정과 높은 단가 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;b&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;개선&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;/b&gt;&lt;span&gt;단일 공정과 낮거나 비슷한 단가&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;(단점) &lt;/b&gt;&lt;/span&gt;&lt;span&gt;제품 호환성 부족 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;b&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;개선&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;/b&gt;&lt;span&gt;맞춤 생산으로 설계 변경 생산 용이&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;(단점) &lt;/b&gt;&lt;/span&gt;&lt;span&gt;무거움 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;b&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;개선&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;/b&gt;&lt;span&gt;가벼움&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;(단점) &lt;/b&gt;&lt;/span&gt;&lt;span&gt;부식 &lt;/span&gt;&lt;span&gt;&amp;rarr; &lt;/span&gt;&lt;b&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;개선&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;/b&gt;&lt;span&gt;부식 없음&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1184&quot; data-origin-height=&quot;245&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/668SM/dJMcafF9N2g/9Cv4dNqdTw1d6dkTswElF0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/668SM/dJMcafF9N2g/9Cv4dNqdTw1d6dkTswElF0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/668SM/dJMcafF9N2g/9Cv4dNqdTw1d6dkTswElF0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F668SM%2FdJMcafF9N2g%2F9Cv4dNqdTw1d6dkTswElF0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1184&quot; height=&quot;245&quot; data-origin-width=&quot;1184&quot; data-origin-height=&quot;245&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span&gt;충분한 강도와 높은 활용성&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;재질인 폴리카보네이트는 뛰어난 기계적 강도와 내열성을 바탕으로 엔지니어링 플라스틱으로 널리 사용되는 고성능 소재입니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;일반 플라스틱인 &lt;/span&gt;&lt;span&gt;PLA&lt;/span&gt;&lt;span&gt;나 &lt;/span&gt;&lt;span&gt;PETG &lt;/span&gt;&lt;span&gt;대비 높은 열 안정성을 제공하며 반복하중과 외부 충격에 강해 기능성 부품 제작에 최적화된 재료입니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;제품은 체결 상태에서 손과 공구로 조작하기 어려우며 철&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;스테인레스 제품들과 유사한 수준의 보호를 제공합니다&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;관리부서 등 행정정보 각인을 통해 행정자산임을 분명히 하고 재물 손괴에 대한 심리적 부담을 줌으로써 &lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;수도 밸브의 임의 조작 금지&lt;/span&gt;&lt;span&gt;'&lt;/span&gt;&lt;span&gt;라는 행정 목적을 달성하는데 뛰어난 역할을 수행할 수 있을 것으로 기대됩니다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;a href=&quot;https://dwarfzapari.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;https://dwarfzapari.com&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1775468111701&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;DWARF(드워프) | 원터치 락 수도 밸브 봉인기&quot; data-og-description=&quot;특허(제10-2871904호) 기반 원터치 락 단수 솔루션. 관공서/아파트/설비업체 맞춤 각인 지원.&quot; data-og-host=&quot;dwarfzapari.com&quot; data-og-source-url=&quot;https://dwarfzapari.com&quot; data-og-url=&quot;https://dwarfzapari.com/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/iFAfi/dJMb8Z3rYnB/LNt0ungAelVksp5Ul1b7Yk/img.jpg?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536,https://scrap.kakaocdn.net/dn/jvdTJ/dJMb8YpV4vM/qRwU3DeS6hCRdNVNKq0DVK/img.jpg?width=1002&amp;amp;height=1417&amp;amp;face=0_0_1002_1417&quot;&gt;&lt;a href=&quot;https://dwarfzapari.com&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://dwarfzapari.com&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/iFAfi/dJMb8Z3rYnB/LNt0ungAelVksp5Ul1b7Yk/img.jpg?width=2752&amp;amp;height=1536&amp;amp;face=0_0_2752_1536,https://scrap.kakaocdn.net/dn/jvdTJ/dJMb8YpV4vM/qRwU3DeS6hCRdNVNKq0DVK/img.jpg?width=1002&amp;amp;height=1417&amp;amp;face=0_0_1002_1417');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;DWARF(드워프) | 원터치 락 수도 밸브 봉인기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;특허(제10-2871904호) 기반 원터치 락 단수 솔루션. 관공서/아파트/설비업체 맞춤 각인 지원.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;dwarfzapari.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>제품리뷰 Product review</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/357</guid>
      <comments>https://zapari.tistory.com/357#entry357comment</comments>
      <pubDate>Mon, 6 Apr 2026 18:35:30 +0900</pubDate>
    </item>
    <item>
      <title>[크몽 전자책] 드론 제작과 운용</title>
      <link>https://zapari.tistory.com/356</link>
      <description>&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;드론 제작을 위한 기획, 구매, 설계, 제작, 임무 비행, 편집, 유지 보수를 다루는 &lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: center;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f89009;&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #ffffff;&quot;&gt;ALL IN ONE 패키지를 전자책으로 만나보세요.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;표지(시인성 강화).png&quot; data-origin-width=&quot;1064&quot; data-origin-height=&quot;975&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bzCNDF/btsPJXSvrMJ/QROX3VK5nx4NAfMke0bjo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bzCNDF/btsPJXSvrMJ/QROX3VK5nx4NAfMke0bjo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bzCNDF/btsPJXSvrMJ/QROX3VK5nx4NAfMke0bjo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbzCNDF%2FbtsPJXSvrMJ%2FQROX3VK5nx4NAfMke0bjo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;250&quot; height=&quot;229&quot; data-filename=&quot;표지(시인성 강화).png&quot; data-origin-width=&quot;1064&quot; data-origin-height=&quot;975&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h4 style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size20&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333;&quot;&gt;다른 드론 도서를 읽으며 이런 생각이 들지 않으셨나요?&lt;/span&gt;&lt;/h4&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333;&quot;&gt;1. 역사와 법률 같이 드론 제작에 써먹지 못할 지식에 대한 분량이 너무 많음&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333;&quot;&gt;2. 현황에 대한 이야기만 길게 늘어놓아 지식의 깊이가 얕고 공부할 것이 없음&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333;&quot;&gt;3. 특정 분야에만 집중되어 있어 폭넓은 시야를 가지기 힘듬&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333;&quot;&gt;4. 실제 제작 사례를 중심으로 설명해 주지 않음&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333;&quot;&gt;5. 필자의 경험이 책에 반영되지 않음&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333;&quot;&gt;본 도서 '드론 제작과 운용'은 단순한 드론 조종을 넘어&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333;&quot;&gt;드론에 사용된 자재와 코딩의 원리를 탐구하고 직접 만들어 봄으로써&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size18&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #333333;&quot;&gt;궁극적으로는 독자만의 것을 창조하는 과정으로 안내합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #303441; text-align: justify;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #f89009;&quot;&gt;&lt;a style=&quot;color: #ffffff; background-color: #f89009;&quot; href=&quot;https://youtu.be/cPqdMr-MLt8&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;(자작 드론 시연) https://youtu.be/cPqdMr-MLt8&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure data-ke-type=&quot;video&quot; data-ke-style=&quot;alignCenter&quot; data-video-host=&quot;youtube&quot; data-video-url=&quot;https://www.youtube.com/watch?v=cPqdMr-MLt8&quot; data-video-thumbnail=&quot;https://scrap.kakaocdn.net/dn/ef0d86/hyZuHTrqTQ/emvRIaWJFMCByDYkD9aVeK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720,https://scrap.kakaocdn.net/dn/DmWmW/hyZqVTpgJq/Owtu778ZvTvdsjEkrhVRZK/img.jpg?width=1280&amp;amp;height=720&amp;amp;face=0_0_1280_720&quot; data-video-width=&quot;860&quot; data-video-height=&quot;484&quot; data-video-origin-width=&quot;860&quot; data-video-origin-height=&quot;484&quot; data-ke-mobilestyle=&quot;widthContent&quot; data-video-title=&quot;대테러 훈련 연막드론 시연&quot; data-original-url=&quot;&quot;&gt;&lt;iframe src=&quot;https://www.youtube.com/embed/cPqdMr-MLt8&quot; width=&quot;860&quot; height=&quot;484&quot; frameborder=&quot;&quot; allowfullscreen=&quot;true&quot;&gt;&lt;/iframe&gt;
&lt;figcaption style=&quot;display: none;&quot;&gt;&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;color: #ffffff; background-color: #f89009;&quot;&gt;&lt;a style=&quot;color: #ffffff; background-color: #f89009;&quot; href=&quot;https://kmong.com/gig/689383&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;(전자책 구매처) https://kmong.com/gig/689383&lt;/a&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;figure id=&quot;og_1754403858615&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;드론 제작을 위한 궁극의 가이드 - 크몽&quot; data-og-description=&quot;자파리 전문가의 전자책 서비스를 만나보세요. &amp;lt;p&amp;gt;다른 드론 도서를 읽으며 이런 생각이 들지 않으셨나요?&amp;lt;/p&amp;gt;&amp;amp;...&quot; data-og-host=&quot;kmong.com&quot; data-og-source-url=&quot;https://kmong.com/gig/689383&quot; data-og-url=&quot;https://kmong.com/gig/689383&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bPRVDd/hyZuBMucCx/KoCNQbDBvNNBKaklSoLNXk/img.jpg?width=652&amp;amp;height=488&amp;amp;face=0_0_652_488,https://scrap.kakaocdn.net/dn/Do9sL/hyZrna4tfV/Is2JKJ0qWamglIWfja1z2K/img.jpg?width=652&amp;amp;height=488&amp;amp;face=0_0_652_488&quot;&gt;&lt;a href=&quot;https://kmong.com/gig/689383&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://kmong.com/gig/689383&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bPRVDd/hyZuBMucCx/KoCNQbDBvNNBKaklSoLNXk/img.jpg?width=652&amp;amp;height=488&amp;amp;face=0_0_652_488,https://scrap.kakaocdn.net/dn/Do9sL/hyZrna4tfV/Is2JKJ0qWamglIWfja1z2K/img.jpg?width=652&amp;amp;height=488&amp;amp;face=0_0_652_488');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;드론 제작을 위한 궁극의 가이드 - 크몽&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;자파리 전문가의 전자책 서비스를 만나보세요. &amp;lt;p&amp;gt;다른 드론 도서를 읽으며 이런 생각이 들지 않으셨나요?&amp;lt;/p&amp;gt;&amp;amp;...&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;kmong.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #666666; color: #ffffff;&quot;&gt;* 종이책은 8월 전국 서점에 출판 예정이며 전자책은 스탠다드 버전과 풀버전이 있습니다. 전자책 스탠다드 버전은 초보자들을 위해 일부 어려운 내용들을 편집해 제공하며, 전자책 풀버전은 종이책과 내용이 같습니다. 전자책은 복사와 공유가 쉽기 때문에 종이책에 비해 높은 비용이 책정되어 있습니다. 개인적으로 보시기에는 종이책이 출판되면 보시는 것을 추천드립니다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>도서 리뷰 Book</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/356</guid>
      <comments>https://zapari.tistory.com/356#entry356comment</comments>
      <pubDate>Tue, 5 Aug 2025 23:53:09 +0900</pubDate>
    </item>
    <item>
      <title>드론 제작과 운용 4장 연막탄 코딩</title>
      <link>https://zapari.tistory.com/355</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 저서 '드론 제작과 운용'의 연막탄 코딩입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;연습해보기 위한 코드 카피의 목적으로 다운로드 파일이 제공되며 설명은 책의 내용과 같습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/bniRNh/btsO1CnZrXV/CwlIpZ3F95Yy2RqCmbugn1/%EC%97%B0%EB%A7%89%ED%83%84.docx?attach=1&amp;amp;knm=tfile.docx&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;연막탄.docx&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.01MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1751382992227&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;const int inputPin = 15; 
unsigned long startTime; 
unsigned long delayTime = 30000; 
unsigned long currentTime;
unsigned long pulseWidth;
unsigned long trigger = 0;
int changeCount = 0; 

unsigned long totalPulseWidth = 0; 
int numMeasurements = 10; 

void setup() {
  pinMode(5, OUTPUT); 
  pinMode(6, OUTPUT); 
  pinMode(7, OUTPUT); 
  pinMode(4, OUTPUT); 
  pinMode(inputPin, INPUT);
  digitalWrite(5, HIGH); 
  digitalWrite(6, HIGH); 
  digitalWrite(7, HIGH); 
  digitalWrite(4, HIGH); 
  startTime = millis(); 
  Serial.begin(9600); 
}

void loop() {
  
  totalPulseWidth = 0; // totalPulseWidth 초기화

  for (int i = 0; i &amp;lt; numMeasurements; i++) {
    pulseWidth = pulseIn(inputPin, HIGH); //펄스의 지속시간을 마이크로초로 측정
    totalPulseWidth += pulseWidth;
    delay(50); // 각 측정 사이에 50ms의 딜레이를 줌
  }
  unsigned long averagePulseWidth = totalPulseWidth / numMeasurements; 

  Serial.print(&quot;15pin value: &quot;);
  Serial.print(averagePulseWidth);
  Serial.print(&quot;  trigger value: &quot;);
  Serial.print(trigger);
  Serial.print(&quot;  changecount value: &quot;);
  Serial.println(changeCount);
  
  if (abs(averagePulseWidth - trigger) &amp;gt;= 500) { 

    trigger = averagePulseWidth; // trigger를 새로운 값으로 업데이트
    changeCount++; // 변경된 횟수를 증가
  }
   if(averagePulseWidth &amp;lt; 1800 or averagePulseWidth &amp;gt;2000) {changeCount=0;}

  if (averagePulseWidth &amp;gt;= 1800 &amp;amp;&amp;amp; averagePulseWidth &amp;lt;= 2000 &amp;amp;&amp;amp; changeCount&amp;gt;=1) {
    digitalWrite(5, LOW); // 5번 핀에 LOW 출력
    currentTime = millis(); //현재시간을 입력
    
    if (currentTime - startTime &amp;gt;= delayTime &amp;amp;&amp;amp; changeCount&amp;gt;=1 &amp;amp;&amp;amp; averagePulseWidth &amp;gt;= 1800) {  

      digitalWrite(6, LOW); // 6번 핀에 LOW 출력
    }
   }
  if(averagePulseWidth &amp;lt; 1800) {
    startTime = currentTime;
    digitalWrite(5, HIGH); // 5번 핀에 HIGH 출력
    digitalWrite(6, HIGH); // 6번 핀에 HIGH 출력
    digitalWrite(7, HIGH); // 7번 핀에 HIGH 출력
    digitalWrite(4, HIGH); // 8번 핀에 HIGH 출력
  }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>무선조종장치(RC device)</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/355</guid>
      <comments>https://zapari.tistory.com/355#entry355comment</comments>
      <pubDate>Wed, 2 Jul 2025 00:16:57 +0900</pubDate>
    </item>
    <item>
      <title>드론 제작과 운용 예제(MPU9250과 GPS)</title>
      <link>https://zapari.tistory.com/354</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래 예제는 저서 '드론 제작과 운용' 에서 설명한 코딩 예제입니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;fileblock&quot; data-ke-align=&quot;alignCenter&quot;&gt;&lt;a href=&quot;https://blog.kakaocdn.net/dn/3s1Gg/btsOCf1LGKY/JJbyuAwVSGujHofdlk64P1/%EC%BD%94%EB%93%9C%20%ED%8C%8C%EC%9D%BC.hwpx?attach=1&amp;amp;knm=tfile.hwpx&quot; class=&quot;&quot;&gt;
    &lt;div class=&quot;image&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;desc&quot;&gt;&lt;div class=&quot;filename&quot;&gt;&lt;span class=&quot;name&quot;&gt;코드 파일.hwpx&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;size&quot;&gt;0.05MB&lt;/div&gt;
&lt;/div&gt;
  &lt;/a&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1750002588008&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;Wire.h&amp;gt;
#include &amp;lt;MPU9250_asukiaaa.h&amp;gt;
#include &quot;HT_SSD1306Wire.h&quot;
#include &quot;HT_TinyGPS++.h&quot;

// 핀 정의 (예시, 실제 연결된 핀 번호로 변경 필요)
#define SDA_PIN 41 
#define SCL_PIN 42 
#define CALIB_SEC 20 // 캘리브레이션 지속 시간 설정 (20초)

// I2C를 사용하여 OLED 디스플레이 초기화, RST_OLED도 반드시 적어주어야함
static SSD1306Wire display(0x3c, 400000, SDA_OLED, SCL_OLED, GEOMETRY_128_64, RST_OLED);

float accelXOffset = 0, accelYOffset = 0, accelZOffset = 0;
float gyroXOffset = 0, gyroYOffset = 0, gyroZOffset = 0;   

TwoWire myWire = TwoWire(1); 
MPU9250_asukiaaa mySensor;   
TinyGPSPlus gps; // GPS 객체 생성

void VextON(void) {
  // 외부 전원 켜기 (예: 센서 또는 주변 장치)
  pinMode(Vext, OUTPUT);
  digitalWrite(Vext, LOW); // Vext 핀을 LOW로 설정하여 전원 공급
}

void VextOFF(void) {
  // 외부 전원 끄기
  pinMode(Vext, OUTPUT);
  digitalWrite(Vext, HIGH); // Vext 핀을 HIGH로 설정하여 전원 차단
}

void calibrateAccel() {
  float sumX = 0, sumY = 0, sumZ = 0;
  int samples = 500;
  for (int i = 0; i &amp;lt; samples; i++) {
    mySensor.accelUpdate();
    sumX += mySensor.accelX();
    sumY += mySensor.accelY();
    sumZ += mySensor.accelZ();
    delay(10);
  }
  accelXOffset = sumX / samples;
  accelYOffset = sumY / samples;
  accelZOffset = sumZ / samples;
  Serial.print(&quot;accelXOffset : &quot;); Serial.println(accelXOffset); 
  Serial.print(&quot;accelYOffset : &quot;); Serial.println(accelYOffset); 
  Serial.print(&quot;accelZOffset : &quot;); Serial.println(accelZOffset);
}

void calibrateGyro() {
  float sumX = 0, sumY = 0, sumZ = 0;
  int samples = 500;
  for (int i = 0; i &amp;lt; samples; i++) {
    mySensor.gyroUpdate();
    sumX += mySensor.gyroX();
    sumY += mySensor.gyroY();
    sumZ += mySensor.gyroZ();
    delay(10);
  }
  // 아래 자이로 옵셋은 수평 상태에서 모두 0이 나오는 것이 이상적
  gyroXOffset = sumX / samples;
  gyroYOffset = sumY / samples;
  gyroZOffset = sumZ / samples;
  Serial.print(&quot;gyroXOffset : &quot;); Serial.println(gyroXOffset); 
  Serial.print(&quot;gyroYOffset : &quot;); Serial.println(gyroYOffset); 
  Serial.print(&quot;gyroZOffset : &quot;); Serial.println(gyroZOffset);
}

void setMagMinMaxAndSetOffset(MPU9250_asukiaaa* sensor, int seconds) {
  unsigned long calibStartAt = millis(); // 캘리브레이션 시작 시간 기록
  float magX, magXMin, magXMax, magY, magYMin, magYMax, magZ, magZMin, magZMax;
  
  // 초기 최소/최대값 설정
  sensor-&amp;gt;magUpdate();
  magXMin = magXMax = sensor-&amp;gt;magX();
  magYMin = magYMax = sensor-&amp;gt;magY();
  magZMin = magZMax = sensor-&amp;gt;magZ();
  
  // 캘리브레이션 루프
  while(millis() - calibStartAt &amp;lt; (unsigned long) seconds * 1000) {
    delay(100); // 데이터 갱신 간격
    sensor-&amp;gt;magUpdate();
    magX = sensor-&amp;gt;magX();
    magY = sensor-&amp;gt;magY();
    magZ = sensor-&amp;gt;magZ();
    // 최소/최대값 업데이트
    if(magX &amp;gt; magXMax) magXMax = magX;
    if(magY &amp;gt; magYMax) magYMax = magY;
    if(magZ &amp;gt; magZMax) magZMax = magZ;
    if(magX &amp;lt; magXMin) magXMin = magX;
    if(magY &amp;lt; magYMin) magYMin = magY;
    if(magZ &amp;lt; magZMin) magZMin = magZ;
  }
  
  // 오프셋 설정 (최소/최대값의 중간값 기준)
  sensor-&amp;gt;magXOffset = - (magXMax + magXMin) / 2;
  sensor-&amp;gt;magYOffset = - (magYMax + magYMin) / 2;
  sensor-&amp;gt;magZOffset = - (magZMax + magZMin) / 2;
  
  // 오프셋값 출력
  Serial.println(&quot;Magnetometer Offsets:&quot;);
  Serial.print(&quot;X Offset: &quot;); Serial.println(mySensor.magXOffset);
  Serial.print(&quot;Y Offset: &quot;); Serial.println(mySensor.magYOffset);
  Serial.print(&quot;Z Offset: &quot;); Serial.println(mySensor.magZOffset);
}

void calculateTiltCompensatedHeading() {
  const int MEASUREMENTS = 20;
  float sumRollX = 0.0, sumRollY = 0.0;
  float sumPitchX = 0.0, sumPitchY = 0.0;
  float sumYawX = 0.0, sumYawY = 0.0;
  unsigned long prevMillis = millis();

  for (int i = 0; i &amp;lt; MEASUREMENTS;) {
    unsigned long currentMillis = millis();

    // 0.005초(5ms) 경과 확인
    if (currentMillis - prevMillis &amp;gt;= 5) {
      prevMillis = currentMillis;

  mySensor.accelUpdate();
  float ax = mySensor.accelY();
  float ay = -mySensor.accelX();
  float az = mySensor.accelZ();

  // 자이로 데이터 업데이트
  mySensor.gyroUpdate();
  float gx = mySensor.gyroY();
  float gy = -mySensor.gyroX();
  float gz = mySensor.gyroZ();

  // 지자기계 데이터 업데이트
  mySensor.magUpdate();
  float mx = mySensor.magY();
  float my = -mySensor.magX();
  float mz = mySensor.magZ();

      // 2) 롤, 피치 라디안 계산
      float rollRad = atan2(-ax, az);
      // 0~2&amp;pi; 범위로 만들기
      if (rollRad &amp;lt; 0) rollRad += 2.0f * PI;

      float pitchRad = atan2(-ay, sqrt(ax*ax + az*az));
      // 아래 if문 등은 원래 코드에서 pitch 조정하는 부분을 상황에 맞게 변환
      // 예: pitch가 음수면 2&amp;pi; 더하는 식으로 0~2&amp;pi; 만들 수도 있음
      if (pitchRad &amp;lt; 0) pitchRad += 2.0f * PI;

      // 3) 야우(heading) 라디안 계산
      float yawRad = atan2(my, mx);
      // atan2() 결과가 -&amp;pi; ~ +&amp;pi; 이므로, 0~2&amp;pi; 맞추려면
      if (yawRad &amp;lt; 0) yawRad += 2.0f * PI;

      // (선택) 샘플별 오프셋/특별 보정이 꼭 필요하다면,
      // 여기서 yawRad에 +-, rollRad에 +- 하는 식으로 처리 가능.

      // 4) (cos, sin)으로 변환하여 누적
      sumRollX  += cos(rollRad);
      sumRollY  += sin(rollRad);

      sumPitchX += cos(pitchRad);
      sumPitchY += sin(pitchRad);

      sumYawX   += cos(yawRad);
      sumYawY   += sin(yawRad);

      i++; // 카운트 증가
    }
  }

// -- 모든 샘플을 누적한 뒤 평균 백터 계산 --

  // 롤
  float avgRollRad = atan2(sumRollY, sumRollX);
  float avgRollDeg = avgRollRad * 180.0 / PI;
  if (avgRollDeg &amp;lt; 0) avgRollDeg += 360.0;
  
  float rollOffset = 171.7; // 수평일 때 172도인 문제를 보정
  avgRollDeg -= rollOffset;
  if (avgRollDeg &amp;lt; 0) {
  avgRollDeg += 360.0;
  } 
  else if (avgRollDeg &amp;gt;= 360.0) {
  avgRollDeg -= 360.0;
  }

  // 피치
  float avgPitchRad = atan2(sumPitchY, sumPitchX);
  float avgPitchDeg = avgPitchRad * 180.0 / PI;
  if (avgPitchDeg &amp;lt; 0) avgPitchDeg += 360.0;

  float pitchOffset = 350.2; // 수평일 때 피치가 350.2도인 문제를 보정
  avgPitchDeg -= pitchOffset;
  if (avgPitchDeg &amp;lt; 0) {
  avgPitchDeg += 360.0;
  } 
  else if (avgPitchDeg &amp;gt;= 360.0) {
  avgPitchDeg -= 360.0;
  }

  // 요
  float avgYawRad = atan2(sumYawX, sumYawY);
  float avgYawDeg = avgYawRad * 180.0 / PI;
  if (avgYawDeg &amp;lt; 0) avgYawDeg += 360.0;

  float yawOffset = 270; // 270도가 북쪽인 문제를 보정
  avgYawDeg -= yawOffset;
  if (avgYawDeg &amp;lt; 0) {
  avgYawDeg += 360.0;
  } 
  else if (avgYawDeg &amp;gt;= 360.0) {
  avgYawDeg -= 360.0;
  }
  
  // 결과 출력
  Serial.print(&quot;Roll: &quot;); Serial.print(avgRollDeg);
  Serial.print(&quot; Pitch: &quot;); Serial.print(avgPitchDeg);
  Serial.print(&quot; Yaw: &quot;); Serial.println(avgYawDeg);  

  // 디스플레이에 출력
  char rollStr[32];
  snprintf(rollStr, sizeof(rollStr), &quot;%.1f&amp;deg;&quot;, avgRollDeg);
  display.drawString(30, 15, &quot;Roll: &quot;);
  display.drawString(60, 15, rollStr);
  char pitchStr[32];
  snprintf(pitchStr, sizeof(pitchStr), &quot;%.1f&amp;deg;&quot;, avgPitchDeg);
  display.drawString(95, 15, &quot;Pitch: &quot;);
  display.drawString(125, 15, pitchStr);

  char yawStr[32];
  snprintf(yawStr, sizeof(yawStr), &quot;%.0f&amp;deg;&quot;, avgYawDeg);
  display.drawString(30, 30, &quot;Yaw: &quot;);
  display.drawString(60, 30, yawStr);
  display.display();
}

void setup() {
  Serial.begin(115200);
  Serial1.begin(9600, SERIAL_8N1, 34, 33); // GPS 모듈과 통신 시작
  
  // I2C 설정 및 센서 초기화
  myWire.begin(SDA_PIN, SCL_PIN, 400000);
  mySensor.setWire(&amp;amp;myWire);
  mySensor.beginAccel(); 
  mySensor.beginMag(MAG_MODE_CONTINUOUS_100HZ);   
  mySensor.beginGyro();  
  
  VextON(); // 외부 전원 켜기
  delay(100); // 전원이 안정될 때까지 짧은 지연

  display.init(); // 디스플레이 초기화
  display.setFont(ArialMT_Plain_10); // 디스플레이의 기본 폰트 설정

  // DWARF 로고 송출
  display.setTextAlignment(TEXT_ALIGN_CENTER);
  display.setFont(ArialMT_Plain_16);
  display.drawString(display.getWidth()/2, 24, &quot;DWARF&quot;);
  display.display();
  delay(3000);
  display.clear();
  display.display();

  // 가속도 및 자이로 캘리브레이션 준비 메시지 표시
  display.setFont(ArialMT_Plain_10);
  display.drawString(display.getWidth() / 2, 5, &quot;Start scanning&quot;);
  display.drawString(display.getWidth() / 2, 20, &quot;values of Accel &amp;amp; Gyro&quot;);
  display.drawString(display.getWidth() / 2, 35, &quot;to get offset values.&quot;);
  display.drawString(display.getWidth() / 2, 50, &quot;DO NOT TOUCH OR MOVE&quot;);
  display.display();
  
  // 가속도 및 자이로 캘리브레이션
  calibrateAccel(); 
  calibrateGyro();  

  display.clear();
  display.display();
  display.setFont(ArialMT_Plain_16);
  display.drawString(display.getWidth() / 2, 10, &quot;Calibration&quot;);
  display.drawString(display.getWidth() / 2, 30, &quot;1/2 finished&quot;);
  display.display();
  delay(2000);
  display.clear();
  display.display();

  display.setFont(ArialMT_Plain_10);
  display.drawString(display.getWidth()/2, 5, &quot;Now, Rotate your device&quot;);
  display.drawString(display.getWidth()/2, 20, &quot;360 degrees&quot;);
  display.drawString(display.getWidth()/2, 35, &quot;in every direction for&quot;);
  display.drawString(display.getWidth()/2, 50, String(CALIB_SEC) + &quot; seconds.&quot;);
  display.display();

  // 방위각 변화를 감지하여 캘리브레이션 시작
  mySensor.magUpdate();
  float initialDirection = mySensor.magHorizDirection();
  unsigned long startTime = millis(); // startTime 선언
  bool significantChange = false;

  while(millis() - startTime &amp;lt; (unsigned long)(CALIB_SEC * 1000)) {
    delay(100); // 0.1초 간격으로 방위각 측정
    mySensor.magUpdate();
    float currentDirection = mySensor.magHorizDirection();

    if(abs(currentDirection - initialDirection) &amp;gt; 15.0) {
      significantChange = true; // 15도 이상의 변화 감지
      break;
    }
  }

  if(significantChange) {
    setMagMinMaxAndSetOffset(&amp;amp;mySensor, CALIB_SEC); // 캘리브레이션 함수 호출
    // 캘리브레이션 완료 메시지 표시
    display.clear();
    display.display();
    display.setFont(ArialMT_Plain_16);
    display.drawString(display.getWidth() / 2, 10, &quot;Calibration&quot;);
    display.drawString(display.getWidth() / 2, 30, &quot;Finished.&quot;);
    Serial.println(&quot;Calibration Finished.&quot;);
    display.display();
    delay(4000);
    display.clear();
    display.display();
  }
  else {
    // 방위각 변화가 없을 경우 기본 오프셋값 설정
    mySensor.magXOffset = -81;
    mySensor.magYOffset = 47;
    mySensor.magZOffset = 81;
    display.clear();
    display.display();
    display.setFont(ArialMT_Plain_10);
    display.drawString(display.getWidth()/2, 5, &quot;No significant direction&quot;);
    display.drawString(display.getWidth()/2, 20, &quot;change detected.&quot;);
    display.drawString(display.getWidth()/2, 35, &quot;Using default offsets.&quot;);
    display.display();
    delay(4000);
    display.clear();
    display.display();
    Serial.println(&quot;No significant direction change detected. Using default offsets:&quot;);
  }
  
  display.clear();
  display.display();
  Serial.println(&quot;Initialization complete.&quot;);
}

void loop() {

  // GPS 데이터 수신
  unsigned long start = millis(); // 현재 시간 기록
  static unsigned long lastUpdate = 0;
  if (millis() - lastUpdate &amp;gt; 100) { // 마지막 업데이트 이후 100ms가 지났는지 확인
    lastUpdate = millis(); // 마지막 업데이트 시간 갱신
    display.clear();  // 디스플레이 내용 초기화
    display.setTextAlignment(TEXT_ALIGN_LEFT);
    display.setFont(ArialMT_Plain_10);
    // GPS 위치 데이터 확인 및 출력

/*
    char gpsInfo[64];
      snprintf(gpsInfo, sizeof(gpsInfo), &quot;Lat: %.6f\nLng: %.6f\nAlt: %.2f m&quot;,
        gps.location.lat(),  // 위도 정보 가져오기
        gps.location.lng(),  // 경도 정보 가져오기
        gps.altitude.meters());  // 고도 정보 가져오기
      display.drawString(0, 45, String(gpsInfo));  // GPS 정보를 디스플레이에 그리기
*/

    if (gps.location.isValid()) {  // GPS 위치 데이터가 유효한지 확인
      display.drawString(0, 0, &quot;GPS OK&quot;);
      Serial.println(&quot;GPS OK&quot;);
    } 
     else {
      display.drawString(0, 0, &quot;GPS Data Invalid&quot;); // GPS 데이터가 유효하지 않은 경우
      Serial.println(&quot;GPS Data Invalid&quot;);
     }

    // 프로그램 시작 이후 경과 시간을 시:분:초 형식으로 표시
    unsigned long seconds = millis() / 1000;  // 초 단위로 경과 시간 계산
    unsigned int hours = seconds / 3600;  // 시간 계산
    unsigned int minutes = (seconds % 3600) / 60;  // 분 계산
    unsigned int secs = seconds % 60;  // 초 계산
    char timeString[9];
    sprintf(timeString, &quot;%02u:%02u:%02u&quot;, hours, minutes, secs);  // 시간 형식 문자열 생성
    display.setTextAlignment(TEXT_ALIGN_RIGHT);  // 오른쪽 정렬
    display.setFont(ArialMT_Plain_10);
    display.drawString(128, 0, String(timeString)); // 디스플레이에 경과 시간 표시
  
   // 방향호출
  calculateTiltCompensatedHeading();
  
 
  delay(100); // 100ms 대기
 }
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>무선조종장치(RC device)</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/354</guid>
      <comments>https://zapari.tistory.com/354#entry354comment</comments>
      <pubDate>Mon, 16 Jun 2025 01:19:03 +0900</pubDate>
    </item>
    <item>
      <title>DJI OSMO MOBILE 7P 와 MIC MINI 단점 중심 리뷰</title>
      <link>https://zapari.tistory.com/352</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;간략하게 두 제품을 사용하고 나서 느낀 단점을 적어봅니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. MIC MINI&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DJI 어플을 사용해서 녹음이 안됨. 세팅만 가능.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;삼성 갤럭시 S22울트라 기준 기본 카메라 어플에서 작동이 다소 힘듬. 프로 모드 동영상 촬영 필수&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;기타 녹음만 이용하기 위해선 별도 어플(서드파티) 필요&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내부저장 기능이 없어 무선연결만 지원하기 때문에 송수신기의 안정적 연결이 필수.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;휴대폰 녹음 시 전화가 오면 어떻게 될지 모르겠음(아직 미경험).&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;음질은 256kbps 비트레이트 2채널 샘플링 속도 48kHz 가능(송수신기 직접 연결 시)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;수신기 없이 운용 시(블루투스) 음질 저하&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자석이 세서 클립 사용안하고 부착할 수 있는데 역동적인 상황에서는 여전히 분실 우려 존재.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제로 키즈카페에서 분실했다가 겨우 찾음. 자석 분실하면 따로 살 수 있을까??? 따로 안파는 것 같은데???&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. DJI OSMO MOBILE7P&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;갤럭시 S22울트라 기준 짐벌 회전시 각도에 따라 살짝 걸리는 부분 있음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가로 촬영시는 걸리는 부분은 적어지고 MIC MINI 수신기 부착 가능. 세로 촬영은 힘들 것 같음&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7P다기능 모듈은 DJI MIC수신기 역할도 하지만 음질은 196kbps로 떨어짐.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 사용할 때마다 바인딩을 해주어야 함. 한번 바인딩하면 저장되지 않음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;즉 재부팅시마다 바인딩해야해서 매우 번거로움. 결론은 가로모드로 촬영해야 하지만&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MIC MINI 수신기 쓰는게 여러모로 편함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;DJI MIMO 앱에서 카메라와 동영상 촬영을 할 수 있는데 세팅이 제한적임&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안드로이드 기본 카메라 어플에서 촬영을 하려고 하면 촬영 버튼이 안먹힘&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조이스틱으로 화면 이동은 가능함. 줌도 안되는것 같음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;미모앱 기능이 너무 별로임. 오토포커스도 엉망임. 자동 조도기능도 엉망임.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매뉴얼 촬영으로 노출 고정도 못함.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론은 블로그로 자신을 찍거나 야외 촬영용은 쓸만할지 몰라도 거리가 멀거나 조도가 변하거나 하는 상황에서는 너무 별로. 짐벌의 반응성도 그리 빠르지 않아서 흔들림을 완벽히 잡지 못함. 안쓰는 것보단 낫다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동영상은 4K 60fps&amp;nbsp; 까지만 지원. 미모앱에서. (삼성 갤럭시 s22울트라 기준 프로모드에선 8k영상도 가능)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;조명이나 가로모드 세로모드 변경 전후면 카메라 변경, 위치 제자리 기능 등 버튼을 여러번 눌러서 조작하는 기능들이 많은데 익숙해지려면 외워야 하는 기능들이라서 그렇게 유저친화적인 인터페이스는 아님.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 결론적으로 효과적으로 사용하기 위해서&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 일상 카메라 사진은 왠만하면 그냥 기본 어플로 사용. 오스모모바일 사용할 필요 없음.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 동영상은 4k 60fps로 촬영하고 가로모드 촬영. 마이크 미니 수신기를 부착. 미모앱 사용.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; &amp;nbsp;줌을 사용하면 오토포커스 기능이 떨어지고 자동노출로 화면이 변하므로 피사체가 멀거나 대상과 배경의 조도 차이가 심하다면 줌 사용 주의&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 미모앱으로 동영상 편집하고 나니 음원의 끊김 및 손상 발생. 어플의 오류인것 같음. 미모 편집 앱 사용 시 주의 필요. 원본 동영상 날아갔는데 원래 덮어씌우기가 디폴트 값인지 잘 모르겠음.&lt;/p&gt;</description>
      <category>제품리뷰 Product review</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/352</guid>
      <comments>https://zapari.tistory.com/352#entry352comment</comments>
      <pubDate>Sun, 2 Mar 2025 04:03:28 +0900</pubDate>
    </item>
    <item>
      <title>로지텍 G903 사무용 단축키 매크로 세팅 가이드</title>
      <link>https://zapari.tistory.com/351</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;1. 창이동 좌(윈도우키+방향키좌)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 창이동 우(윈도우키+방향키우)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. * 계산기 (윈도우키+숫자2)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 설명 : 다소 세팅이 어렵다. 아래 그림과 같이 계산기를 작업표시줄에 가져다 놓아야 하며 두번째 순서에 있기 때문에 숫자 2로 누르는 것이다. 세번째이면 숫자 3을 해야함&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;90&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/embcAR/btsCAiiPI61/WtY8UY8w4MtOEuiPKglYsK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/embcAR/btsCAiiPI61/WtY8UY8w4MtOEuiPKglYsK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/embcAR/btsCAiiPI61/WtY8UY8w4MtOEuiPKglYsK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FembcAR%2FbtsCAiiPI61%2FWtY8UY8w4MtOEuiPKglYsK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;90&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;90&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 패스워드&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. Exit active app&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. hede/show desktop&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. redo&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;8. undo&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;880&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d7x7I5/btsCKPfjIt3/RhhXiVGfcCeMKYuYicXWqk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d7x7I5/btsCKPfjIt3/RhhXiVGfcCeMKYuYicXWqk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d7x7I5/btsCKPfjIt3/RhhXiVGfcCeMKYuYicXWqk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd7x7I5%2FbtsCKPfjIt3%2FRhhXiVGfcCeMKYuYicXWqk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1161&quot; height=&quot;880&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1161&quot; data-origin-height=&quot;880&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;와이드 모니터를 썼을 때 창 분할을 편하게 하기 위해 창이동 키를 넣었으며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;계산기 단축키로 인해서 책상 위에 별도의 계산기를 놓을 필요가 없어진다.(단 키보드에 숫자키패트가 있는 풀사이즈일때)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;창닫기도 자주 쓰이며&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;창 숨기기/표시하기는 바탕화면으로 빠르게 갈 수 있게 해주어 생산성을 높인다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;엑셀이나 한글 작업을 할 때 되돌리기 기능도 유용하다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;휠은 무한휠 기능이 있어서 한글이나 엑셀 작업시 손가락에 부담을 줄여준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이상으로 너무 좋아서 3개 사버린 G903 마우스 세팅 가이드 끝.&lt;/p&gt;</description>
      <category>행정자료 및 법률 Law</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/351</guid>
      <comments>https://zapari.tistory.com/351#entry351comment</comments>
      <pubDate>Tue, 26 Dec 2023 14:56:55 +0900</pubDate>
    </item>
    <item>
      <title>알리오올리오 나만의 레시피</title>
      <link>https://zapari.tistory.com/350</link>
      <description>&lt;p data-ke-size=&quot;size16&quot; style=&quot;text-align: left;&quot;&gt;&lt;br&gt;1.사전조리(마늘새우기름)&lt;br&gt;작은팬에 올리브유를 6T(숫가락으로 듬뿍 9번)&lt;br&gt;다진마늘 1T(숫가락 수북히 한번)&lt;br&gt;새우젖 1t(숫가락 절반)&lt;br&gt;다진마늘의 색이 살짝 갈색이될때까지 기름에 볶는다.&lt;br&gt;&lt;br&gt;2. 소스&lt;br&gt;유리병 400ml 정도 크기에&lt;br&gt;(필수)바질 2T(숫가락으로 수북히 두번)&lt;br&gt;(필수)파슬리 2T&lt;br&gt;(옵션) 타임 1t(숫가락 절반 담음)&lt;br&gt;(필수) 치킨스톡액상 2t(숫가락가득)&lt;br&gt;(필수) 후추 1t(숫가락 절반)&lt;br&gt;(옵션) 날치알 1t~ 2t &lt;br&gt;(필수) 사전조리한 마늘새우기름이 적당히 식으면 마늘이 들어있는 째 마지막으로 넣고 잘 섞어준다.&lt;br&gt;(권장) 소스를 냉장고에서 3~4일 숙성시킨다. &lt;br&gt;&lt;br&gt;3. 조리&lt;br&gt;가. 물을 2리터정도 충분히 넣고&amp;nbsp;&amp;nbsp;끓인다.&lt;br&gt;나. 소금 1t, 어묵스프 1t(없을때는 소금량을 늘린다.)&lt;br&gt;다. 면을 5인분 넣는다.&lt;br&gt;라. (옵션-연계 계란국 루트)면이 삶아지는 동안 계란을 5개 까서 별도의 보울에서 잘 개어준다. 파, 고추, 후추, 깨를 적당히 넣어둔다.&lt;br&gt;마. 높이가 있는 큰 팬에 준비했던 소스를 모두 넣는다. 유리병에 남아있는 소스는 뜨거운 물을 약간 넣고 흔들어 남김없이 팬에 넣는다.&lt;br&gt;바. 팬을 가열하되 허브가타지않을정도로 한다.&lt;br&gt;사. 면이 약간 단단함이 남아있는 정도로 적당히 익으면 팬으로 면을 옮긴다.&lt;br&gt;아. 팬을 가열하면서 잘 섞는다. 면수를 적당히 넣어주어 허브가 타지 않도록한다. 또는 일부러 마지막 잔열을 통해 가만히 잠시 두어 스파게티 일부를 튀기듯이 딱딱하게 만들어 식감을 만든다.&lt;br&gt;자. (옵션 연계 계란국 루트) 남은 면수를 세게 가열하여 팔팔 끓는 상태에서 준비한 계란물을 둘러가며 붓는다. 잘 저어주고 뚜껑을 덮는다. 잠시 후 불을 꺼 예열로 익힌다.&amp;nbsp;&amp;nbsp;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/p&gt;</description>
      <category>요리, 음식, 맛집 Food</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/350</guid>
      <comments>https://zapari.tistory.com/350#entry350comment</comments>
      <pubDate>Sun, 24 Dec 2023 13:14:21 +0900</pubDate>
    </item>
    <item>
      <title>스마트그리드와 에너지 관련 용어 정리</title>
      <link>https://zapari.tistory.com/349</link>
      <description>&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;AMI(Advanced Metering Infrastructure) - &lt;/span&gt;&lt;span&gt;첨단계량인프라&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;AMI&lt;/span&gt;&lt;span&gt;는 양방향 통신 기반의 디지털 계량기와 기타 전기사용정보 &lt;/span&gt;&lt;span&gt;전달 및 제어장치로 구성되어 있는 기반 인프라를 의미하며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;이는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;실시간으로 전력가격 및 사용정보를 소비자에게 전달하여 수요&lt;/span&gt;&lt;span&gt;반응을 가능케하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;공급자에게는 더욱 정확한 수요예측 및 부하&lt;/span&gt;&lt;span&gt;관리가 가능하게 함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;BEMS(Building Energy Management System) - &lt;/span&gt;&lt;span&gt;건물에너지관리시스템&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;환경센서&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;측정기술 등 &lt;/span&gt;&lt;span&gt;IT&lt;/span&gt;&lt;span&gt;기술을 활용하여 건물 에너지 사용량 등을 파악하고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각종 설비 운전 추이를 종합 분석해 최적 운전 상태를 유지할 수 있도록 도와주는 에너지절감시스템&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;ESS(Energy Storage System) - &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;에너지저장시스템&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;태양광 발전기&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;풍력발전기 등 신재생에너지 발전 시스템을 계통&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전원과 결합하여 전기에너지를 저장하고 필요한 때에 사용할 수 있도록 한 계통연계용 에너지 저장 시스템&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;EMS(Energy Management System) - &lt;/span&gt;&lt;span&gt;에너지관리시스템&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;전력회사의 운전원이 사용하는 컴퓨터제어시스템으로 전력시스템의&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다양한 요소의 상태를 실시간으로 감시하고 발전 및 송전설비를 제어하는 시스템&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;Grid Parity &lt;/span&gt;&lt;span&gt;&amp;ndash; &lt;/span&gt;&lt;span&gt;그리드 패리티&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;자원고갈로 석유와 같은 화석연료 발전단가는 상승하는 반면 태양광&lt;/span&gt;&lt;span&gt;발전 등 신재생에너지의 전력생산비용은 낮아져 서로 가격이&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;동일해지는 균형점을 말함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;HVDC(High-Voltage, Direct Current) - &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;고압직류송전&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;전력 전송을 위해 &lt;/span&gt;&lt;span&gt;DC&lt;/span&gt;&lt;span&gt;를 사용하는 송전시스템으로 장거리의 경우&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비용이 덜 들고&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;전력손실이 적으나 단거리의 경우 &lt;/span&gt;&lt;span&gt;DC&lt;/span&gt;&lt;span&gt;변환 장비&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;비용이 큼&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;PCS(Power Conversion System) - &lt;/span&gt;&lt;span&gt;전력변환시스템&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;전력의 형태를 사용하는 기기에 맞게 변환 시켜주는 설비&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;교류를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;직류로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;직류를 교류로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;교류를 크기가 다른 교류로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;직류를 크기가&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;다른 직류로 변환함&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;REC(Renewable Energy Certificate) - &lt;/span&gt;&lt;span&gt;신재생에너지 공급 인증서&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;발전사업자가 신재생에너지 설비를 이용하여 전기를 생산ㆍ공급하였음을 증명하는 인증서로 공급의무자에게 판매&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;【&lt;/span&gt;&lt;span&gt;제도 관련&lt;/span&gt;&lt;span&gt;】&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;RPS(Renewable Energy Portfolio Standard)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;신재생에너지 공급의무화 제도&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;일정규모&lt;/span&gt;&lt;span&gt;(500&lt;/span&gt;&lt;span&gt;㎿&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;이상의 발전설비&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;신재생에너지 설비 제외&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;보유한 발전사업자&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;공급의무자&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;에게 총 발전량의 일정비율을 신재생&lt;/span&gt;&lt;span&gt;에너지를 이용하여 공급토록 의무화한 제도&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;SMP(System Margianl Price)&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;계통한계가격&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;거래시간별로 일반발전기&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;원자력&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;석탄 외의 발전기&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;의 전력량에 &lt;/span&gt;&lt;span&gt;대해 적용하는 전력시장가격&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;원&lt;/span&gt;&lt;span&gt;/&lt;/span&gt;&lt;span&gt;㎾&lt;/span&gt;&lt;span&gt;h)&lt;/span&gt;&lt;span&gt;으로서&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;각 시간대별 수요를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;충족시키기 위하여 발전이 할당된 발전기별 발전가격&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;변동비&lt;/span&gt;&lt;span&gt;) &lt;/span&gt;&lt;span&gt;중&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;가장 비싼 값을 뜻한다&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;모든 발전기는 발전에 대한 대가로 동일하게 이 가격을 적용&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;RE&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;C(Renewable Energy Certificate&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt;)&lt;/span&gt;&lt;span style=&quot;color: #0000ff;&quot;&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;신재생에너지 공급 인증서&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;발전사업자가 신재생에너지 설비를 이용하여 전기를 생산ㆍ공급하였음을 증명하는 인증서로 공급의무자에게 판매&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;FIT(Feed in Tariff)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;발전차액지원제도&lt;/span&gt;&lt;span&gt;(2001.10. ~ 2011.)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;투자경제성 확보를 위해 전기의 전력거래 가격&lt;/span&gt;&lt;span&gt;(SMP)&lt;/span&gt;&lt;span&gt;이 산업통상&lt;/span&gt;&lt;span&gt;자원부 장관이 고시한 기준가격보다 낮은 경우&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;기준가격과&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;전력거래 가격과의 차액을 지원해주는 제도&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;PPA(Power Purchase Agreement)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;전력수급계약&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;전력시장을 통하지 않고 정부의 신재생에너지 거래지침에 따라 &lt;/span&gt;&lt;span&gt;발전사업자와 한전 간 전력거래계약을 체결하여 발전설비를&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;건설하고 계약에서 정한 내용으로 전력을 거래하는 제도&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;【&lt;/span&gt;&lt;span&gt;사업구조 관련&lt;/span&gt;&lt;span&gt;】&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;EPC(Engineering Procurement Construction)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;사업자가 설계와 자재 조달&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;공사를 원스톱으로 제공&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;일괄수주를 의미함&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;O&amp;amp;M(Operation and Maintenance)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;태양광발전소 운영 및 유지보수 업체&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;SPC(Special Purpose Company)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;특수목적법인&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;특수한 목적을 수행하기 위해 일시적으로 만들어지는 법인&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;IRR(Internal Rate of Return)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;내부수익률&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;처음 투자에 소요했던 지출금액의 현재가치가 그 투자로 기대하는&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;현금수입액의 현재가치와 동일하게 되는 할인율&lt;/span&gt;&lt;span&gt;. &lt;/span&gt;&lt;span&gt;현재의 투자&lt;/span&gt;&lt;span&gt;가치와 미래의 현금수익액이 동일하게 되는 수익률&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;【&lt;/span&gt;&lt;span&gt;구성품 관련&lt;/span&gt;&lt;span&gt;】&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;태양전지&lt;/span&gt;&lt;span&gt;(solar cell)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;태양에너지를 전기에너지로 바꾸기 위해 제작된 광&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;光&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;전지&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;태양전지를 만드는 방식은 크게 &lt;/span&gt;&lt;span&gt;&amp;lsquo;&lt;/span&gt;&lt;span&gt;결정형&lt;/span&gt;&lt;span&gt;&amp;rsquo;&lt;/span&gt;&lt;span&gt;과 &lt;/span&gt;&lt;span&gt;&amp;lsquo;&lt;/span&gt;&lt;span&gt;박막형&lt;/span&gt;&lt;span&gt;&amp;rsquo;&lt;/span&gt;&lt;span&gt;의 두 가지로 &lt;/span&gt;&lt;span&gt;나뉘며&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;현재 대부분 기업들이 쓰는 방식은 &lt;/span&gt;&lt;span&gt;&amp;lsquo;&lt;/span&gt;&lt;span&gt;결정형&lt;/span&gt;&lt;span&gt;&amp;rsquo;&lt;/span&gt;&lt;span&gt;으로&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;원재료인&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;폴리실리콘을 얇게 자른 웨이퍼 위에 회로를 그리는 방식이며 &lt;/span&gt;&lt;span&gt;&amp;lsquo;&lt;/span&gt;&lt;span&gt;박막형&lt;/span&gt;&lt;span&gt;&amp;rsquo;&lt;/span&gt;&lt;span&gt;은 유리 플라스틱 등 주변에서 흔히 볼 수 있는 판 위에 &lt;/span&gt;&lt;span&gt;태양빛을 전기로 바꾸는 특성을 지닌 특수화합물질을 얇게 바르는 방식&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;태양광모듈&lt;/span&gt;&lt;span&gt;(solar Module)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;셀 자체는 파손되기 쉬우므로 견고한 알루미늄 프레임 안에 셀을&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;배열하여 하나의 태양전지판 형태로 만든 제품&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;어레이&lt;/span&gt;&lt;span&gt;(array)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;필요한 만큼의 전력을 얻기 위해 최상의 조&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;방위각&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;경사각&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;를 &lt;/span&gt;&lt;span&gt;고려하여 모듈 여러장을 설계된 전압&lt;/span&gt;&lt;span&gt;, &lt;/span&gt;&lt;span&gt;전류의 특성에 맞게&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;직ㆍ병렬로 구성하여 구조물에 설치한 태양광 시스템의 단위&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt;□ &lt;/span&gt;&lt;span&gt;인버터&lt;/span&gt;&lt;span&gt;(inverter)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size18&quot;&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;○ &lt;/span&gt;&lt;span&gt;직류전력을 교류전력으로 변환하는 장치&lt;/span&gt;&lt;/p&gt;
&lt;p id=&quot;hwpEditorBoardContent&quot; data-hjsonver=&quot;1.0&quot; data-jsonlen=&quot;69701&quot; data-ke-size=&quot;size18&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>행정자료 및 법률 Law</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/349</guid>
      <comments>https://zapari.tistory.com/349#entry349comment</comments>
      <pubDate>Fri, 25 Aug 2023 17:02:51 +0900</pubDate>
    </item>
    <item>
      <title>픽스호크 PID제어 및 오토튠 및 메뉴얼튠 방법 Qgroundcontrol</title>
      <link>https://zapari.tistory.com/346</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래 글은 PX4 및 Qgroudcontrol 프로그램에서 사용되는 메뉴를 통해 픽스호크 PID제어 및 오토튠 방법을 번역하고 첨언한 것이다. 드론 기준으로 설명한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;출처는&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.qgroundcontrol.com/master/en/SetupView/tuning_px4.html&quot;&gt;Tuning (PX4) &amp;middot; QGroundControl User Guide&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1689058205450&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Tuning (PX4) &amp;middot; QGroundControl User Guide&quot; data-og-description=&quot;No results matching &amp;quot;&amp;quot;&quot; data-og-host=&quot;docs.qgroundcontrol.com&quot; data-og-source-url=&quot;https://docs.qgroundcontrol.com/master/en/SetupView/tuning_px4.html&quot; data-og-url=&quot;https://docs.qgroundcontrol.com/master/en/SetupView/tuning_px4.html&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/bU4hcE/hyTgWKnlF6/DT19QN6w5CGpkr4BFgLg51/img.png?width=1230&amp;amp;height=852&amp;amp;face=0_0_1230_852,https://scrap.kakaocdn.net/dn/nf4tG/hyTiAZ0Hb1/19ce4ecNZKV6dKcJlK9mNk/img.png?width=1231&amp;amp;height=850&amp;amp;face=0_0_1231_850,https://scrap.kakaocdn.net/dn/bd8ql5/hyTgNUcE7Z/aK0UHq1NDmTh7P0e2aYZik/img.png?width=1231&amp;amp;height=850&amp;amp;face=0_0_1231_850&quot;&gt;&lt;a href=&quot;https://docs.qgroundcontrol.com/master/en/SetupView/tuning_px4.html&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.qgroundcontrol.com/master/en/SetupView/tuning_px4.html&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/bU4hcE/hyTgWKnlF6/DT19QN6w5CGpkr4BFgLg51/img.png?width=1230&amp;amp;height=852&amp;amp;face=0_0_1230_852,https://scrap.kakaocdn.net/dn/nf4tG/hyTiAZ0Hb1/19ce4ecNZKV6dKcJlK9mNk/img.png?width=1231&amp;amp;height=850&amp;amp;face=0_0_1231_850,https://scrap.kakaocdn.net/dn/bd8ql5/hyTgNUcE7Z/aK0UHq1NDmTh7P0e2aYZik/img.png?width=1231&amp;amp;height=850&amp;amp;face=0_0_1231_850');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Tuning (PX4) &amp;middot; QGroundControl User Guide&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;No results matching &quot;&quot;&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.qgroundcontrol.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오토튠을 사용하고 메뉴얼 튠을 하는 이유는 제작한 드론의 움직임이 만족스럽지 않을 때 이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구체적으로는 키를 멈추었는데도 흐른다(드리프트)던가 기체가 특정 모드나 조작에서 떨린다던가 그런 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나는 만든 기체가 YAW, TILT 모두 드리프트가 심해서 이 부분을 살펴보게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;우선은 Altitude mode&lt;span style=&quot;text-align: left;&quot;&gt;&amp;nbsp;or Stabilized mode 2가지 모두 중에서 한가지를 선택하여 드론이 제대로 비행하고 있는지 확인을 한다. 오토튠은 비행 중 실시하게 되는데 혹시 모를 사고를 예방하기 위해서이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;틸트,요,피치 모두 조작을 해보면서 이상 없이 비행이 되고 자세제어를 하고 있는지 확인한다. 기체가 2번 이상 흔들리기 전에 자세를 잡아야 한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;이제 본격적으로 오토튠을 실시해보자. 이는 우리가 초기값을 잡기 힘든 PID값을 자동으로 찾아주는 매우 편리한 기능이다. 여기서 기본 값을 얻고 그 다음에 메뉴얼 튠을 필요시 추가로 진행하면 된다.&lt;/span&gt;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f89009; color: #ffffff;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: left;&quot;&gt;[AUTO TUNE procedure]&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;오토튠은 안전거리가 확보된 비행 공간에서 실시해야 하며 바람이 없는 쾌청한 날에 실시하는 것이 좋다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;테스트 단계는 다음과 같다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Altitude(고도) 모드에서 조종기를 사용하여 이륙합니다. 드론과 안전거리를 두고 일정 고도(5~20m)에서 호버링 시킵니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;QGround Control에서 메뉴를 엽니다: 기체 설정 &amp;gt; PID 튜닝&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;721&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhC2oi/btsng64lIDw/nj1dWaKkQAEJyyfBoCbpCK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhC2oi/btsng64lIDw/nj1dWaKkQAEJyyfBoCbpCK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhC2oi/btsng64lIDw/nj1dWaKkQAEJyyfBoCbpCK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhC2oi%2Fbtsng64lIDw%2Fnj1dWaKkQAEJyyfBoCbpCK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1065&quot; height=&quot;721&quot; data-origin-width=&quot;1065&quot; data-origin-height=&quot;721&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Rate 컨트롤러 또는 Attitude 컨트롤러 탭을 선택합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;자동 튜닝 활성화 버튼이 활성화되었는지 확인합니다(자동 튜닝 버튼이 표시되고 수동 튜닝 선택기가 제거됩니다)&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;조이스틱 이동을 중지하고 자동 조정 버튼을 클릭합니다. 경고 팝업을 읽고 확인을 클릭하여 튜닝을 시작합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;드론이 먼저 빠른 롤 모션을 수행한 후 피치 및 요 모션을 수행합니다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;진행률은 진행률 표시줄의 자동 조정 버튼 옆에 표시됩니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;튜닝을 적용하기 위하여 &lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;수동으로 착륙 및 아밍 해제하여 새 튜닝 매개 변수를 적용합니다. 조심스럽게 이륙하여 드론이 안정적인지 수동으로 테스트하십시오. &lt;/span&gt;&lt;span style=&quot;text-align: start;&quot;&gt;강한 진동이 발생하면 즉시 착륙합니다. 이 경우 위 공식 사이트의 문제해결 절차를 따르십시오.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;&lt;span style=&quot;background-color: #f89009; color: #ffffff;&quot;&gt;&lt;b&gt;&lt;span style=&quot;text-align: left;&quot;&gt;[Manual Tuning procedure]&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;수동 튜닝은 비행중에 수행되므로 드론이 이미 비행할 수 있을 정도로 잘 튜닝되어 있어야 합니다. 메뉴얼 튜닝은 전문가에 의해 주의깊게 수행되어야 합니다. 급격한 변동으로 조작감을 상실하여 기체를 추락시킬 수 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;아래 지침은 수동 튜닝 UI를 사용하는 방법을 설명합니다. PID 값을 변경할 때 사용할 단계 크기에 대한 자세한 힌트를 제공하는 PX4 수동 PID 튜닝 가이드와 함께 읽거나 사용할 수 있도록 설계되었습니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Altitude 모드에서 조종기를 사용하여 이륙합니다. 드론과 안전거리(5~20미터정도)를 유지하고 호버링 합니다.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;QGround Control에서 메뉴를 엽니다: 차량 설정 &amp;gt; PID 튜닝&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;Rate 컨트롤러 탭을 선택합니다. Autotune enabled 버튼이 꺼져 있는지 확인합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;튜닝할 튜닝 축(롤, 피치 또는 요)을 선택합니다(각 축은 별도로 튜닝됨).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;차트의 그래프 추이를 관찰하면서 드론을 날립니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;슬라이더를 사용하여 그래프에 표시된 추적을 개선하려면 튜닝 값(파라미터)을 조정합니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;값은 자동으로 저장되지만 마지막으로 확인된 정상 구성을 저장하려면 Save to Clipboard(클립보드에 저장) 을 누릅니다. 복원하기는 &lt;/span&gt;&lt;span style=&quot;letter-spacing: 0px;&quot;&gt;Restore from Clipboard(클립보드에서 복원) 버튼을 사용할 수 있습니다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;제공된 버튼을 사용하여 차트를 지우거나 중지할 수도 있습니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;text-align: start;&quot;&gt;계속해서 다른 축을 조정합니다.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;text-align: start;&quot;&gt;다른 컨트롤러(Altitude, velocity, position)로 전환하고 프로세스를 반복합니다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>무선조종장치(RC device)</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/346</guid>
      <comments>https://zapari.tistory.com/346#entry346comment</comments>
      <pubDate>Tue, 11 Jul 2023 16:06:30 +0900</pubDate>
    </item>
    <item>
      <title>MPU6050 센서와 아두이노를 사용한 서보모터 짐벌 틸트 제어</title>
      <link>https://zapari.tistory.com/345</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;아래는 챗GPT를 이용하여 코드를 짜 본 예시입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상보 필터와 칼만필터를 적용하도록 지시해 보았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;상보 필터와 칼만필터는 이 분야를 아주 깊게 파면서 공부하는 사람이 아니라면 이해하기가 매우 어렵습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그런 이유로 복잡해서 전부 이해되지는 않지만 일견하기에는 작동할 것 같이 보입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래 값들은 목적, 결선 및 작동하는 모습에 따라 일부 변화를 주어야 할 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;servoPin 값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;servooffset 값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;pwmPin 값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Serial.begin 값 (baudrate)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;dt 값&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;pre id=&quot;code_1688628679389&quot; class=&quot;bash&quot; data-ke-language=&quot;bash&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;#include &amp;lt;Wire.h&amp;gt;
#include &amp;lt;MPU6050.h&amp;gt;
#include &amp;lt;Servo.h&amp;gt;

MPU6050 mpu;
Servo servoMotor;

int servoPin = 9; // 서보모터 연결 핀 번호
int servoOffset = 90; // 초기 각도 오프셋

int gyroX, gyroY, gyroZ;
float pitch, roll;

const int pwmPin = 8; // PWM 신호를 입력받을 핀 번호

// 칼만 필터 변수
float qAngle = 0.001; // 프로세스 노이즈 공분산
float qGyro = 0.003; // 자이로스코프 노이즈 공분산
float rAngle = 0.03; // 측정 노이즈 공분산
float angle = 0; // 필터링된 각도
float bias = 0; // 각도 편향
float rate; // 자이로스코프 각속도

void setup() {
  Wire.begin();
  Serial.begin(9600); // 시리얼 통신의 baud rate를 9600으로 설정
  
  mpu.initialize();
  
  servoMotor.attach(servoPin);
  servoMotor.write(servoOffset); // 초기 위치로 이동
  delay(500);
  
  pinMode(pwmPin, INPUT); // PWM 신호 입력 설정
  
  // 자이로스코프 보정
  calculateOffsets();
}

void loop() {
  mpu.getMotion6(&amp;amp;gyroX, &amp;amp;gyroY, &amp;amp;gyroZ, NULL, NULL, NULL);
  
  // 자이로스코프 데이터를 각도로 변환
  roll = gyroX * 0.0000611;
  pitch = gyroY * 0.0000611;
  
  // 상보 필터 적용
  pitch = alpha * (pitch + gyroY * 0.0000611) + (1 - alpha) * pitch;
  
  // PWM 신호 읽기
  int pwmValue = pulseIn(pwmPin, HIGH, 20000); // 20ms 타임아웃
  
  // 칼만 필터 적용, dt값을 줄이면 변화가 느려지며 크게하면 변화가 빠른대신 값이 튄다
  float dt = 0.02; // 시간 간격 (초 단위)
  kalmanFilter(dt);
  
  // 서보모터 각도 계산
  int servoAngle = map(angle, -90, 90, 0, 180); // 각도 범위 조정 가능
  
  // 서보모터 제어
  servoMotor.write(servoAngle);
  
  delay(20);
}

void calculateOffsets() {
  int numSamples = 100;
  int xOffset = 0;
  int yOffset = 0;
  
  for (int i = 0; i &amp;lt; numSamples; i++) {
    mpu.getMotion6(&amp;amp;gyroX, &amp;amp;gyroY, &amp;amp;gyroZ, NULL, NULL, NULL);
    xOffset += gyroX;
    yOffset += gyroY;
    delay(10);
  }
  
  xOffset /= numSamples;
  yOffset /= numSamples;
  
  mpu.setXGyroOffset(-xOffset);
  mpu.setYGyroOffset(-yOffset);
}

void kalmanFilter(float dt) {
  // 예측 단계
  angle += (rate - bias) * dt;
  float pMinus = pAngle + dt * (dt * pGyro - pAngle - pGyro + qAngle);
  float k = pMinus / (pMinus + rAngle);

  // 갱신 단계
  angle += k * (pitch - angle);
  bias += k * (pitch - angle);

  pAngle = (1 - k) * pMinus;
  pGyro += qGyro;
}&lt;/code&gt;&lt;/pre&gt;</description>
      <category>기타 etc./코딩(아두이노, 마이크로비트) Coding</category>
      <author>드워프의 자파리</author>
      <guid isPermaLink="true">https://zapari.tistory.com/345</guid>
      <comments>https://zapari.tistory.com/345#entry345comment</comments>
      <pubDate>Thu, 6 Jul 2023 16:42:27 +0900</pubDate>
    </item>
  </channel>
</rss>