최원영

CalligraphyAssistProgram submit

Showing 287 changed files with 683 additions and 0 deletions
No preview for this file type
No preview for this file type
No preview for this file type
# 드론어시스트 프로그램(callyassist program)
## 요약
드론을 물리적인 힘을 제공해주는 햅틱 피드백 인터페이스로 이용하여
한글 궁서체 서예를 학습하는데 도움을 주는 프로그램
## 개발 환경
- Python
* ver : 3.8.2
- PyQt5
* ver : 5.15.2
- Qt Designer
## 타겟 기기
드론 : CoDrone Pro 모델
통신 보드 : Ble Board & CP 210 다운로드 칩
### 드론 통신 환경 설정
1. 다음 url에서 최신 버전의 USB helper 설치
http://robolink.co.kr/download.html
2. 드론 업데이트
playstore 및 appstore에 존재하는 petrone app 설치
앱에서 제공하는 드론 업데이트 실행
## Install
#### 1. GUI 적용을 위한 모듈 설치
pip install pyqt5
#### 2. 코드론 구동을 위한 모듈 설치
pip install codrone
#### 3. calliAssist 폴더에서 실행
python mainWindow.py
## 추가 첨부 파일 설명
- DroneAdaptor_LowerBody.stl : 드론 어댑터 하단부 모델링 파일
- DroneAdaptor_UpperBody.stl : 드론 어댑터 상단부 모델링 파일
* 출력 설정 : 적층높이 : 0.2mm , 외벽두께 : 1.2mm, 채우기 : 15%, 출력속도 : 60m/s
* 출력 필라멘트 소재 : PLA
- CalligraphyGuide.pdf
- CalligraphyGuide.jpg
* 출력 용지 사이즈 : A4
\ No newline at end of file
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>characteristic</class>
<widget class="QMainWindow" name="characteristic">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>801</width>
<height>599</height>
</rect>
</property>
<property name="windowTitle">
<string>characteristic</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pButton_Main">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="text">
<string>main</string>
</property>
</widget>
<widget class="QFrame" name="outline">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>781</width>
<height>561</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
<pointsize>28</pointsize>
</font>
</property>
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QFrame" name="semiOutline_2">
<property name="geometry">
<rect>
<x>40</x>
<y>70</y>
<width>701</width>
<height>441</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Panel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Sunken</enum>
</property>
<widget class="QTextBrowser" name="tBrowser">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>681</width>
<height>421</height>
</rect>
</property>
</widget>
</widget>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>50</x>
<y>40</y>
<width>181</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<pointsize>12</pointsize>
</font>
</property>
<property name="text">
<string>Step 0 . - 한글의 특성</string>
</property>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>40</x>
<y>30</y>
<width>191</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
</widget>
<widget class="QPushButton" name="pButton_Start">
<property name="geometry">
<rect>
<x>50</x>
<y>0</y>
<width>51</width>
<height>23</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>9</pointsize>
</font>
</property>
<property name="text">
<string>start</string>
</property>
</widget>
<widget class="QPushButton" name="pButton_Next">
<property name="geometry">
<rect>
<x>670</x>
<y>520</y>
<width>71</width>
<height>31</height>
</rect>
</property>
<property name="font">
<font>
<family>굴림</family>
<pointsize>11</pointsize>
</font>
</property>
<property name="text">
<string>Next</string>
</property>
</widget>
<zorder>frame_2</zorder>
<zorder>semiOutline_2</zorder>
<zorder>label_2</zorder>
<zorder>pButton_Start</zorder>
<zorder>pButton_Next</zorder>
</widget>
<zorder>outline</zorder>
<zorder>pButton_Main</zorder>
</widget>
<widget class="QStatusBar" name="statusbar">
<property name="layoutDirection">
<enum>Qt::LeftToRight</enum>
</property>
</widget>
</widget>
<resources/>
<connections/>
</ui>
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>Dialog</class>
<widget class="QDialog" name="Dialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>695</width>
<height>441</height>
</rect>
</property>
<property name="windowTitle">
<string>Dialog</string>
</property>
<widget class="QFrame" name="frame_0">
<property name="geometry">
<rect>
<x>30</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_0">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_1">
<property name="geometry">
<rect>
<x>160</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_1">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_2">
<property name="geometry">
<rect>
<x>290</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_3">
<property name="geometry">
<rect>
<x>420</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_3">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_4">
<property name="geometry">
<rect>
<x>550</x>
<y>150</y>
<width>120</width>
<height>121</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QPushButton" name="pButton_4">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>101</width>
<height>101</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="iconSize">
<size>
<width>100</width>
<height>100</height>
</size>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame">
<property name="geometry">
<rect>
<x>40</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>81</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>'ㅣ' 외향 모음</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_5">
<property name="geometry">
<rect>
<x>170</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_2">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>81</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>'ㅣ'내향 모음</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_6">
<property name="geometry">
<rect>
<x>300</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_3">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>91</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>'ㅡ' 외향 모음</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_7">
<property name="geometry">
<rect>
<x>430</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>81</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>'ㅡ' 내향 모음</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_8">
<property name="geometry">
<rect>
<x>560</x>
<y>100</y>
<width>101</width>
<height>31</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_5">
<property name="geometry">
<rect>
<x>40</x>
<y>10</y>
<width>31</width>
<height>16</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>받침</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_9">
<property name="geometry">
<rect>
<x>40</x>
<y>20</y>
<width>621</width>
<height>61</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QLabel" name="label_7">
<property name="geometry">
<rect>
<x>20</x>
<y>10</y>
<width>581</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>자음의 경우 받침을 제외하고 같이 모아 써지는 모음에 따라 모양이 달라질 수 있습니다.</string>
</property>
</widget>
<widget class="QLabel" name="label_9">
<property name="geometry">
<rect>
<x>20</x>
<y>30</y>
<width>581</width>
<height>21</height>
</rect>
</property>
<property name="font">
<font>
<family>HY궁서B</family>
</font>
</property>
<property name="text">
<string>해당 자음 버튼을 눌러 학습해봅시다.</string>
</property>
</widget>
</widget>
<widget class="QFrame" name="frame_10">
<property name="geometry">
<rect>
<x>40</x>
<y>280</y>
<width>621</width>
<height>151</height>
</rect>
</property>
<property name="frameShape">
<enum>QFrame::Box</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<widget class="QTextBrowser" name="textBrowser">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>601</width>
<height>131</height>
</rect>
</property>
</widget>
</widget>
</widget>
<resources/>
<connections/>
</ui>
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.
This diff is collapsed. Click to expand it.