인기글(댓글수)
-
통신
[안드로이드 Kotlin] BLE(Bluetooth Low Energy) 통신 예제
전체적으로 BLE 기능 구현을 심플하게 작성하였습니다. UI 업데이트 부분은, 데이터 바인딩을 사용하였습니다. BLE 기능구현 위주로 봐주세요. Permission BLE사용을 위해 위 세개의 퍼미션을 AndroidManifest에 추가해줍니다. Ble 지원 확인 override fun onResume() { super.onResume() // finish app if the BLE is not supported if (!packageManager.hasSystemFeature(PackageManager.FEATURE_BLUETOOTH_LE)) { finish() } } ble를 지원하지 않으면 어플이 종료되도록 합니다. Constants.kt class Constants{ companion object..
-
통신
[안드로이드] 아두이노와 안드로이드 Bluetooth 통신하기
안드로이드 기기와 아두이노 보드간 블루투스 통신 코드를 소개하겠습니다. 아두이노는 블루투스 통신을 위해 HC-06을 사용하였습니다. 먼저 bluetooth 통신을 위해 connect 버튼을 누르면 버튼이벤트를 시작으로 블루투스 연결을 시도하였습니다. 코드를 차근차근 따라해보면 이해가 쉬울 것입니다. 구현한 소스는 안드로이드 기기에서 데이터를 아두이노 보드에 송신하고, 아두이노에서 데이터를 수신하는 코드입니다. 특정기기에 자동으로 페어링, 연결 하는 최신 코드를 전부 합하여 포스팅 하였습니다. [Android/통신] - [안드로이드-아두이노] bluetooth classic 자동 페어링&연결 / 데이터 송,수신 안드로이드 Bluetooth 연결 Manifest 추가 먼저, 권한을 위해 AndroidMani..
-
통신
[안드로이드-아두이노] bluetooth classic 자동 페어링&연결 / 데이터 송,수신
이 예제는, 특정 이름을 가진 블루투스를 검색 후 자동 페어링, 연결 후 데이터 송/수신을 하는 예제입니다. 아두이노 우노와 데이터 송/수신 하였고, HC-06을 사용 하였으며, SPP통신입니다. 이전에 안드로이드와 아두이노 블루투스 코드를 포스팅 했었습니다. (Java) [Android/통신] - [안드로이드] 아두이노와 안드로이드 Bluetooth 통신하기 위의 포스팅과 비교하여 추가된 점과 달라진 점은 아래와 같습니다. 페어링된 기기뿐 아니라 페어링 되지 않은 기기의 페어링 진행 특정 디바이스를 필터하여 페어링&연결 블루투스 connect 상태 체크 안드로이드, 아두이노 송/수신 전부 구현 Kotlin 데이터 바인딩과 라이브데이터를 사용한 MVVM 구조로 짜여진 코드를 리뷰하는 것이므로, 메서드 구..
-
Pixy2
Pixy2 cam 아두이노로 색 물체 따라 움직이는 모바일 로봇 만들기!
이번 포스팅에서는 모바일 로봇의 모터와 연동하여 색 물체를 따라 움직여 보겠습니다. 우선 색을 먼저 학습시키는 법은 아래 포스팅을 확인해주세요. Pixy2 색 인식하기▽ Pixy2 cam 물체 인식, 색 학습 하는 법 아두이노 카메라 Pixy2 소개 ▽ 색깔 인식(학습)가능한 아두이노 카메라 Pixy cam ― Pixy2 소개 Pixy2 소개 원하는 물체(색)를 학습시킬 수 있는 카메라 Pixy cam. 사용해보니 만족 스러웠습니다. 그런데 Pixy2가.. ddangeun.tistory.com Pixy2 공식사이트에서는 Zumo 로봇을 이용하였는데요, 예제 코드도 Zumo 로봇 코딩한 것을 활용하였습니다. Zumo 모바일 로봇▽ https://www.pololu.com/product/2509 가이드 ht..
-
Pixy2
Pixy2 cam 아두이노 코딩하기 ― 물체 따라서 서보모터 움직이기
아두이노 카메라 Pixy2 소개▽ 색깔 인식(학습)가능한 아두이노 카메라 Pixy cam ― Pixy2 소개 Pixy2 소개 원하는 물체(색)를 학습시킬 수 있는 카메라 Pixy cam. 사용해보니 만족 스러웠습니다. 그런데 Pixy2가 한참전에 나와서 살펴보았더니 아주 좋더라구요. ▲Pixy2 소개 동영상 가격은 이전버전에 비해.. ddangeun.tistory.com Pixy2 색 인식하기▽ Pixy2 cam 물체 인식, 색 학습 하는 법 아두이노 카메라 Pixy2 소개 ▽ 색깔 인식(학습)가능한 아두이노 카메라 Pixy cam ― Pixy2 소개 Pixy2 소개 원하는 물체(색)를 학습시킬 수 있는 카메라 Pixy cam. 사용해보니 만족 스러웠습니다. 그런데 Pixy2가.. ddangeun.tis..
인기 글(조회수)
-
Fritzing
아두이노 회로도, 배선 그리기 프로그램― Fritzing (프릿징) 무료 다운로드, 사용 법
여러가지 아두이노에 관련된 자료들을 찾아보면서, 아두이노 회로 또는 배선들을 깔끔하게 그려 포스팅 하는 모습들을 많이 보았을 텐데요. 아두이노 배선이나 회로도를 그려주는 프로그램인 Fritzing을 소개합니다. 아주 유용한 툴이죠. 저도 제가 직접 짠 회로를 그리고 싶은 마음에 툴을 찾아보다 fritzing을 알게되었습니다. 디자인과 깔끔한 배선 표시에 많이들 쓰고 있었는데요. 설치하기 위해 사이트를 가서 다운받으라고 하더라구요. https://fritzing.org/download/ 사이트를 접속해보니, 예전엔 무료로 설치할 수 있는 것 같았지만, 지금은 일정 금액이상 도네이션을 해야하더라구요. 예전엔 무료 버전이 있었던 모양인데.. 제가 못찾은건지 모르겠지만, 아무리 찾아봐도 Free Download..
-
DSP
1차 Low-Pass Filter(저주파 통과필터), High-Pass Filter(고주파 통과 필터) 구현하기, 코드
저주파 통과필터(Low-Pass Filter), 고주파 통과필터 (High-Pass Filter)를 이하 lpf, hpf라 부르겠습니다. 신호 처리를 함에 있어 원하는 신호를 뽑아내기 위해 lpf와 hpf를 사용하여 지지고 볶았습니다. 어느정도 원리를 깨달았죠.. 코드만 원하시면 밑으로 가면 됩니다. ㅎㅎ 책을 참고하였습니다. 1차 Low-Pass Filter lpf는 말그대로 신호의 낮은 주파수 부분을 통과시키는 건데요, 즉 신호의 높은 주파수(예를 들어 진동이나 노이즈)를 없애 신호를 좀더 매끄럽게 만들어 줍니다. 그러므로 자주 사용되죠. 이런식으로 효과를 볼 수 있습니다. Smoothing이라고도 하죠. 그냥 lpf입니다. 단순히 생각하면 lpf를 만들기 위해선 이전 측정값과 현재 측정값에 가중치를..
-
Window
Window PowerShell 쉘 스크립트 만들기, 출력/입력, 실행
쉘 스크립트 실행 권한 윈도우 메뉴>Windows PowerShell>관리자 권한으로 실행 Set-ExecutionPolicy Unrestricted 위 명령어 실행 > Y(예) 입력 쉘 스크립트 만들기 원하는 곳에 txt파일 만들고, 확장자 .ps1로 바꾸기 클릭해서 수정하면 된다. 출력 echo "--connecting.." echo가 print와 같은 개념이다. 변수 입력 받기 [string]$c = Read-host "put ip address" echo $c Read-host 사용 Command 입력 powershell -Command ".\adb connect "$c":5555" .\adb connect 123:5555 라는 커맨드가 입력된다.($c=123) cmd창을 바로 끝내지 않기 위한 ..
-
Robotic Arm
2DOF, 3DOF, 4DOF Manipulator 로봇 팔의 Inverse Kinematics (역기구학, 역운동학) 풀이 ㅡ 4DOF Manipulator 로봇 팔의 운동학(기구학) 이론(3)
앞에서 4자유도 로봇팔을 제어하기 위해, Forward Kinematics순기구학 풀이법을 알아보았습니다. [로봇 이론/Robotic Arm] - 4DOF Manipulator 로봇 팔의 운동학(기구학) 이론(2) ㅡ Forward Kinematics (순기구학, 정기구학) Denavit-Hartenberg 매개변수 Forward Kinematics 해를 결정하기 위한 좌표 변환 4DOF Manipulator Forward Kinematics 계산 Product of exponentials 4자유도 매니퓰레이터 변환 행렬은 다음과 같이 표현되었습니다. 이제 드디어, end effector의 위치나 자세(주어진 변환)로부터 각각의 관절의 자세(각도)를 알아낼 수 있는 Inverse Kinematics역기구..
-
Robotic Arm
Forward Kinematics (순기구학, 정기구학) ㅡ 4DOF Manipulator 로봇 팔의 운동학(기구학) 이론(2)
이전 글에서 로봇팔을 운동하기 위한 수학적 표현 방법들을 알아보았습니다. [로봇 이론/Robotic Arm] - 4DOF Manipulator 로봇 팔의 운동학(기구학) 이론(1) ㅡ Manipulator Kinematics의 수학적 표현과 회전 행렬, 동차 변환 강체의 수학적 표현 ― 회전행렬 오일러 각도 롤-피치-요(RPY) 각도 쿼터니언 방향각 임의의 축에 대한 회전 동차 변환 모두 Manipulaotr Kinematics를 공부하기 위한 수학이였습니다. 이번 글에서는 Forward Kinematics순기구학에 대해 알아보겠습니다. Forward Kinematics (순기구학, 정기구학) Denavit-Hartenberg 매개변수 Forward Kinematics 해를 결정하기 위한 좌표 변환 4D..
-
일상 꿀팁
리그 오브 레전드(LOL) 와드 스킨 바꾸는 방법
롤 와드 스킨 바꾸는 방법은 게임 시작하고 바꿀수 있습니다. 픽할때 스펠창 옆에 보면 와드가 있어요 화살표 부분을 눌러주시면 와드 스킨 바꾸는 창이 뜹니다! 귀여운 와드스킨으로 바꿔보세요~
최신 글
-
Git
[Git] .DS_Store 삭제후 다시 commit
local folder에서 .DS_Store 삭제 후 commitfind . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch -fecho .DS_Store >> .gitignoregit add .gitignoregit commit -m ".DS_Store is banished"git push origin main
-
Git
[Git] non-fast-forward 오류
non-fast-forward 오류가 발생한 것을 보니, 원격 저장소의 변경 사항을 로컬 저장소로 가져와 병합한 후 다시 푸시해야 합니다. 이를 해결하기 위해 git pull 명령어를 사용해 원격 브랜치의 변경 사항을 로컬 브랜치에 병합하고, 푸시하는 방법을 다시 시도해 보겠습니다.원격 저장소의 변경 사항을 가져오기 (fetch) git fetch origin 로컬 브랜치와 원격 브랜치 병합 (merge) git merge origin/main --allow-unrelated-histories 충돌 해결 및 커밋 (충돌 발생 시)충돌 파일 수정수정된 파일을 스테이징git add 충돌 해결 커밋git commit -m "Resolve merge conflict" 만약 병합 중에 충돌이 발생하..
-
Git
[Git] this exceeds GitHub's file size limit of 100.00 MB : git lfs large file 추가 방법
errorthis exceeds GitHub's file size limit of 100.00 MB git lfs 설치Linux(Debian): apt-get install git-lfsLinux(Red Hat): yum install git-lfsmacOS(brew): brew install git-lfsWindows: 사이트에서 다운로드설치후, 폴더 에서git lfs install lfs 등록 (.gitattributes 파일에 등록됨)git lfs track 100MB 넘었다고 에러난 파일을 모두 track 해제하고 lfs track 등록하자이전 commit 삭제하고이전 커밋을 삭제하고 변경 사항을 유지git loggit reset HEAD^ --soft그 후 add commit하면Large 파일..
-
Git
[Git] fatal: the remote end hung up unexpectedly 에러
git post buffer size 문제git config --global http.postBuffer 1048576000git config --global http.postBuffer 524288000postBuffer 사이즈 늘려주기 혹은 나눠서 넣기.gitignore 파일 활용캐시 삭제git rm -r --cached .git rm -r --cached . -f 추가 error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400git config --global http.version HTTP/1.1
-
function
UDP 포트 포워딩 하기 ― Nginx 리버스 프록시
udp 포트가 하나로 고정되어 있어서, 포트 포워딩을 하고 싶은데 nginx 리버스 프록시를 사용하였습니다. 참고로, nginx udp 리버스 프록시는 윈도우에서 지원하지 않습니다.(윈도우에서 삽질함) nginx 설치 sudo apt install nginx 리버스 프록시 설정 sudo nano /etc/nginx/nginx.conf nano 편집기로 편집해줌. 경로는 /etc/nginx/nginx.conf 로 가서 밑의 줄을 추가해 준다. stream { upstream portforwarding_udp { server [server_ip]:[port]; } server { listen [port] udp; proxy_pass portforwarding_udp; proxy_connect_timeout ..
-
라즈베리파이
라즈베리파이 한글 사용 하기(fcitx)
라즈베리파이 4 를 사용했으며, 인터넷 연결을 해주어야 합니다. update&upgrade sudo apt-get update sudo apt-get upgrade font 설치 sudo apt install fonts-nanum 한글이 보일 수 있도록 나눔 폰트를 설치합니다. Locale 설정 메뉴>Preferences>Raspberry Pi Configuration>Localisation Set Locale... 한국, 한국어로 맞추면 기본 라즈비안 환경이 한글이 됩니다. 그 후, 재부팅 해줍니다. fcitx 설치 sudo apt install fcitx fcitx-hangul 한글입력기 ibus, fcitx, nabi중 ibus는 오류가 많고, nabi는 설치해도 반응이 없더라구요. fcitx를 설..