Jetson 17

Gimbal with Servo -2

젯슨나노에는 i2c 버스가 2개가 있다.따라서 하나의 i2c는 모터를 제어하고, 하나의 i2c는 mpu를 사용하여 mpu의 값 변화로 2개의 모터를 제어해보겠다. 먼저 mpu6050을 사용할건데 해당 센서를 사용하기 위헤 데이터시트를 먼저 확인해준다. https://invensense.tdk.com/wp-content/uploads/2015/02/MPU-6000-Register-Map1.pdf mpu6050의 주소는 0x68인데 여기서 확인이 가능하다. 117번 즉, 0x75이 WHO_AM_I 라고 되어있고, 이것의 초기 값은 0x68임을 확인할 수 있다. https://chigun.tistory.com/20 [MPU6050] 1. 데이터 시트를 통해 센서 값 확인하기구글에 MPU6050 데이터 시트를 ..

Gimbal with Servo -1

이전에 다루었던 PWM으로 Servo Motor를 제어하는 것을 토대로 하나의 프로젝트를 진행해볼까 한다.이 프로젝트는 모빌리티 플랫폼 위에 올라갈 라이다와 뎁스카메라를 탑재한 2축 짐벌을 구현하는 것이다.이것을 구현하는 이유는 모빌리티가 움직이면서 라이다와 뎁스카메라로 데이터를 수집할 때 안정적으로 굴곡에서도 원하는 부분을 흔들림없이 수집하기 위해 구현하는 것이다. 사용하는 개발보드는 Jetson Nano B01 4GB이고, 모터는 아래와 같다. 현재 정리중인 사이트가 있으므로 그것을 여기에 올려두겠다.https://github.com/PCY00/Ubicomp_Lab/tree/main/AIoT/U-Neck Ubicomp_Lab/AIoT/U-Neck at main · PCY00/Ubicomp_Labsta..

i2c공부 1)

i2c에 대해 좀 더 공부가 필요하다고 느꼈다.그래서 i2c에 대해 리뷰를 해보려한다. ( 현재 프로젝트에서는 Linux와 Arduino IDE에서 i2c통신을 하고 있으니 해당 함수들에 대해 자세히 파헤치고, 프로젝트에 적용하려 한다. ) 시작해보자Linux에서 사용하는 라이브러리는 i2c-dev를 이용한다.참고는 두곳에서 참고하여 해석해보았다. https://www.kernel.org/doc/Documentation/i2c/dev-interface https://github.com/Leonamin/Sensor-Test/blob/master/Guide/Linux%20I2C%20Guide.md Sensor-Test/Guide/Linux I2C Guide.md at master · Leonamin/Sens..

PWM제어 with Jetson Nano 3)

특정 레지스터에서 1바이트 값을 읽어옵니다. 이번엔 라이브러리에 대해 심층분석에 들어가보자https://github.com/PCY00/Ubicomp_Lab/blob/main/AIoT/U-Neck/MotorControl/Servo/V1/JHPWMPCA9685.cpp Ubicomp_Lab/AIoT/U-Neck/MotorControl/Servo/V1/JHPWMPCA9685.cpp at main · PCY00/Ubicomp_Labstarted 2022.06. Contribute to PCY00/Ubicomp_Lab development by creating an account on GitHub.github.com헤더파일도 같이 있으니 확인하자 일단 먼저 헤더파일부터 확인해보자#include #include #i..

PWM제어 with Jetson Nano 2)

코드에 대해서 심층 분석하기 위해 포스팅을 한다.내 공부를 위해 정리하면서 하는 포스팅이니 틀린부분이 있으면 댓글로 알려주면 감사하다. 먼저 저번 블로그의 메인함수부터 보겠다.https://github.com/PCY00/Ubicomp_Lab/blob/main/AIoT/U-Neck/MotorControl/Servo/V1/servoExample.cpp Ubicomp_Lab/AIoT/U-Neck/MotorControl/Servo/V1/servoExample.cpp at main · PCY00/Ubicomp_Labstarted 2022.06. Contribute to PCY00/Ubicomp_Lab development by creating an account on GitHub.github.com #includ..

PWM제어 with Jetson Nano

PWM을 Jetson Nano에서 제어해보려한다.Jetson Nano에는 이미 PWM제어가 있다.하지만 서보모터를 동작하는데 문제가 있다. 그레서 PCA9685 를 활용하여 PWM제어를 해보겠다.https://www.devicemart.co.kr/goods/view?no=1382245&srsltid=AfmBOoq1vCPe9eJRk-9fzMbXnfXOYFOP1hIDVGrSf2uxJtvVgB3-eh0t PCA9685 16채널 12비트 PWM 서보 드라이버 [TS0185]MCU를 위한 PWM 출력 핀이 부족할 때 유용 / 제어방식 : I2C / PWM 드라이버가 내장되어 있어 TLC5940 제품군과 달리 마이크로컨트롤러에서 지속적으로 신호를 보낼 필요가 없음 / 구동전압 : 3.3V, 5Vwww.devicem..

server에 올라오는 명령어에 따라 Fan 제어 3)

실제 기구에 올라가기전 마지막 테스트이다. 코드들을 전부 실제 기구에 올라가게 맞추고, 제어해보기 위해 수정작업을 진행한다. 최대한 기구와 환경을 비슷하게 맞추기 위해 보드를 총 5개 가져왔다.일단 바뀐점이 있다.우노는 UART통신을 컴퓨터와 통신 핀을 제외하면 UART핀이 없음 ( UART핀 하나는 디버깅용으로 하나 남겨둘 예정이라는 것을 참고)따라서 SoftwareSerial 이라는 라이브러리로 통신을 할 수 있지만, i2c통신하는데 있어 충돌이 일어날 확률이 많음따라서 우노를 쓰지 않기로 함대안책) 듀에를 사용하여 하드웨어로 제공되는 UART를 사용할 예정  연결은 완료되었고, 코드는 현재 보드 4개는 전부 구동이 가능하다.문제점이 생겼다.i2c는 보통 32바이트를 주고 받는다.따라서 나도 그렇게 ..

server에 올라오는 명령어에 따라 Fan 제어 2)

이제 마지막으로 서버에 올라간 데이터를 실시간으로 받아서 c++로 명령어를 전송하고, c++에서 명령어를 받아 명령어를 아두이노에게 전달할 수 있게끔 만들어서 i2c통신으로 아두이노에게 명령을 전달한다.그리고 아두이노가 명령에 따라 i2c통신을 이용하여 젯슨에게 데이터를 주고, 그 데이터를 http통신을 활용하여 서버에 올리는 것을 포스팅해보겠다. 해당 코드들은 다음 깃헙에 남겨두겠다. (마지막 숫자일수록 최근 버전)https://github.com/PCY00/KSensor/tree/main/24_11_8/V1 KSensor/24_11_8/V1 at main · PCY00/KSensorContribute to PCY00/KSensor development by creating an account on G..

server에 올라오는 명령어에 따라 Fan 제어 1)

나는 지금부터 i2c에 대해 이해하고, 데이터를 서버에 보내보기도 했다.이제 이것을 활용할 일만 남았다. 따라서 이제 부터 프로젝트에 관련한 포스팅을 남길려한다.따라서 기록물이 될 확률이 매우 높기 때문에 카테고리 이름을 i2c를 이용한 프로젝트라고 바꾸겠다. 프로젝트의 간략한 설명 : 사용자의 명령어를 받아 Fan을 속도 제어 해야 할 것들- Jetson Nano와 Arduino Due의 i2c 통신으로 Fan 3개, PMS7003 3개의 값을 서버에 Post하기- Jetson Nano와 Server 간 Mqtt로 명령어 실시간 통신- Mqtt에서 받은 값 Arduino Due로 i2c 전송하기 대강 3개정도의 개발과정을 거쳐 보겠다. 코드는 전부 github에 올려두고 여기서는 기록만 할 예정이니 코..

i2c로 받은 데이터 server에 post - sensor data post

이번 포스팅에서는 sensor 값을 받은 데이터를 i2c를 통해 젯슨나노에 값을 보내고 젯슨에서는 그 값을 서버에 post하는 작업에 대해 포스팅해보겠다. 이전 작업이 어려운거고 이번 포스팅은 기록이라고 보면 되겠다.이번 포스팅에서 영상은 제외했다. 참고바란다. 시작하겠다. 개발 환경- Jetson Nano B01 4GB- Arduino Due- Ubuntu 20.04 먼저 Fan 3개를 PWM제어를 할 예정이고, tach핀을 사용하여 rpm을 측정하고 그 rpm 값을 서버에 보내는 걸 해보겠다.* 전압은 fan, 아두이노 듀에 둘다 외부 전압으로 준다는 점 유의바란다. 순서는 다음과 같다.1. 아두이노 듀에에서 PWM제어를 하고, tach핀을 활용하여 RPM 측정해보기2. RPM이 맞다는 가정하에 ( ..