인기글(댓글수)
-
통신
[안드로이드 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를 만들기 위해선 이전 측정값과 현재 측정값에 가중치를..
-
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..
-
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창을 바로 끝내지 않기 위한 ..
-
일상 꿀팁
리그 오브 레전드(LOL) 와드 스킨 바꾸는 방법
롤 와드 스킨 바꾸는 방법은 게임 시작하고 바꿀수 있습니다. 픽할때 스펠창 옆에 보면 와드가 있어요 화살표 부분을 눌러주시면 와드 스킨 바꾸는 창이 뜹니다! 귀여운 와드스킨으로 바꿔보세요~
최신 글
-
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를 설..
-
UI
[Unity] IOS 느낌의 On/Off 스위치 만들기
이런 느낌의 스위치를 만들어 보도록 하겠습니다. Swtich Gameobject 아래 background 추가 하고 background 이미지를 넣어줍니다. 그리고 또 하위에스위치 버튼 이미지를 넣어 주고 왼쪽 끝부분으로 맞춥니다. 버튼의 x축 위치를 이동시켜 버튼을 on/off 할 것입니다. SwitchHandler Script를 새롭게 만들어 Switch Gameojbect에 넣어줍니다. Script 작성전에, Asse Store에서 DOTween 무료버전을 설치해줍니다. Window>Package Manager에서 DOTween Import 해줍니다. 그리고 SwitchHandler Script 를 다음과 같이 작성해 줍니다. using UnityEngine; using System; using D..
-
UI
[Unity] Raw Image와 Image의 차이
Raw Image vs Image? - Unity Answers answers.unity.com Image는 Sprites만 디스플레이 하기 위한 것이고, RawImage는 어떤 타입의 texture든 디스플레이 하기 위한 것입니다. Sprite는 작업하기 더 쉽지만, Sprite.Create는 더 고비용의 operation입니다. 비교적으로 더 시간이 많이들고 메모리를 더 많이 씁니다. 그래서 아껴서 써야합니다. RawImage를 사용하면 sprite를 생성하는 과정을 건너 뛸 수 있습니다. 만약 를 사용하는 RenderTexture를 디스플레이해야 한다면, Sprite.Create를 매 프레임마다 호출해야 합니다. 꽤 비싼 비용이 듭니다. 결론: plain texture가 이미 있다면 RawImage..
-
VR
[VR Unity] 360도 동영상 배경 적용하기
360도 동영상으로 여러가지 환경에 가볼 수 있는데요. 유튜브나 웹에서 실제 공간처럼 볼 수가 있죠. VR을 이용하여 더욱 더 생동감을 느낄 수 있습니다. 360도 동영상을 VR 배경으로 적용하는 법을 알아보겠습니다. 저는 간단하게 Material과 Render Texture을 이용해 Skybox를 만드는 방법으로 하겠습니다. Material과 Reder Texture를 만들어 줍니다. 그리고, 배경이 될 360도 동영상도 넣어줍니다. 만약 동영상을 HEVC(h.265) 코덱으로 인코딩 했다면, 다음 확장 툴을 깔아야 합니다. Get HEVC Video Extensions from Device Manufacturer from the Microsoft Store Play High Efficiency Vid..
-
UI
[안드로이드] 하나만 선택 가능한 체크박스 리사이클러뷰 만들기
체크박스는 선택/선택해제 두가지만 있습니다. 이를 리사이클러 뷰 내에서 하나만 선택 가능하고, 리사이클러 뷰 스크롤 시에도 유지되어야 합니다. 추가적으로, 리사이클러뷰에 데이터 바인딩을 이용해, 체크박스가 선택되었을때/선택 해제되었을때의 배경과 색을 커스텀 하였고, 클릭 리스너도 추가 하였습니다. background_cb_selected.xml background_white.xml item_cb.xml CbListAdapter.kt class CbListAdapter: RecyclerView.Adapter() { private var items: List = ArrayList() private lateinit var itemClickListner: ItemClickListener private var m..