embeded/Cortex-M7 STM2024. 9. 3. 19:46

cubeIDE 에서 설정할 때 기본으로 잡혀있는 핀이 있는데

그게 아닌 다른 것을 설정하려면 alternative function 으로 지정해서 pin mux 설정이 되어야 한다.

CubeIDE 에서는 ioc 파일 열어 gui 에서 대충~ 핀 설정해주고 기능 enable 시키면 알아서 매핑되어 생성된다.

[링크 : https://m.blog.naver.com/harkjael/222315747541]

 

해당 alt func는

_AF_ 라는 접두를 붙여서 msp 소스에 구현된다.

  else if(huart->Instance==USART1)
  {
  /* USER CODE BEGIN USART1_MspInit 0 */

  /* USER CODE END USART1_MspInit 0 */
    /* Peripheral clock enable */
    __HAL_RCC_USART1_CLK_ENABLE();

    __HAL_RCC_GPIOB_CLK_ENABLE();
    /**USART1 GPIO Configuration
    PB14     ------> USART1_TX
    PB15     ------> USART1_RX
    */
    GPIO_InitStruct.Pin = GPIO_PIN_14|GPIO_PIN_15;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF4_USART1;
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

  /* USER CODE BEGIN USART1_MspInit 1 */

  /* USER CODE END USART1_MspInit 1 */
  }

...

    GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_5|GPIO_PIN_6;
    GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
    GPIO_InitStruct.Alternate = GPIO_AF5_SPI4;
    HAL_GPIO_Init(GPIOE, &GPIO_InitStruct);

 

stm32h7xx_hal_gpio_ex.h

#define GPIO_AF5_SPI1          ((uint8_t)0x05)  /* SPI1 Alternate Function mapping   */
#define GPIO_AF5_SPI2          ((uint8_t)0x05)  /* SPI2 Alternate Function mapping   */
#define GPIO_AF5_SPI3          ((uint8_t)0x05)  /* SPI3 Alternate Function mapping   */
#define GPIO_AF5_SPI4          ((uint8_t)0x05)  /* SPI4 Alternate Function mapping   */
#define GPIO_AF5_SPI5          ((uint8_t)0x05)  /* SPI5 Alternate Function mapping   */
#define GPIO_AF5_SPI6          ((uint8_t)0x05)  /* SPI6 Alternate Function mapping   */
#define GPIO_AF5_CEC           ((uint8_t)0x05)  /* CEC  Alternate Function mapping   */

#define GPIO_AF4_I2C1          ((uint8_t)0x04)  /* I2C1 Alternate Function mapping   */
#define GPIO_AF4_I2C2          ((uint8_t)0x04)  /* I2C2 Alternate Function mapping   */
#define GPIO_AF4_I2C3          ((uint8_t)0x04)  /* I2C3 Alternate Function mapping   */
#define GPIO_AF4_I2C4          ((uint8_t)0x04)  /* I2C4 Alternate Function mapping   */
#if defined(I2C5)
#define GPIO_AF4_I2C5          ((uint8_t)0x04)  /* I2C5 Alternate Function mapping   */
#endif /* I2C5*/
#define GPIO_AF4_TIM15         ((uint8_t)0x04)  /* TIM15 Alternate Function mapping  */
#define GPIO_AF4_CEC           ((uint8_t)0x04)  /* CEC Alternate Function mapping    */
#define GPIO_AF4_LPTIM2        ((uint8_t)0x04)  /* LPTIM2 Alternate Function mapping */
#define GPIO_AF4_USART1        ((uint8_t)0x04)  /* USART1 Alternate Function mapping */
#if defined(USART10)
#define GPIO_AF4_USART10       ((uint8_t)0x04)  /* USART10 Alternate Function mapping : available on STM32H72xxx/STM32H73xxx */
#endif /*USART10*/
#define GPIO_AF4_DFSDM1        ((uint8_t)0x04)  /* DFSDM  Alternate Function mapping */
#if defined(DFSDM2_BASE)
#define GPIO_AF4_DFSDM2        ((uint8_t)0x04)  /* DFSDM2 Alternate Function mapping */
#endif /* DFSDM2_BASE */
#define GPIO_AF4_DCMI          ((uint8_t)0x04)   /* DCMI Alternate Function mapping : available on STM32H7A3xxx/STM32H7B3xxx/STM32H7B0xxx and STM32H72xxx/STM32H73xxx */
#if defined(PSSI)
#define GPIO_AF4_PSSI          ((uint8_t)0x04)  /* PSSI Alternate Function mapping   */
#endif /* PSSI */
#if defined(OCTOSPIM)
#define GPIO_AF4_OCTOSPIM_P1   ((uint8_t)0x04)  /* OCTOSPI Manager Port 1 Alternate Function mapping  : available on STM32H72xxx/STM32H73xxx */
#endif /* OCTOSPIM */


stm32h7xx_hal_msp.c 에서 핀 설정이 변경되는데, 파일 이름의 msp는 mcu 지원 패키지의 약자랜다.

msp - mcu support package

[링크 : https://community.st.com/t5/stm32cubemx-mcus/hal-peripheral-msp-init-why-does-stm32cubeide-generated-code-not/td-p/219207]

 

'embeded > Cortex-M7 STM' 카테고리의 다른 글

STM32H757 전원 설정  (0) 2024.09.04
STM32 / no MCU device found  (0) 2024.09.04
stm32h757i-eval 데모 펌웨어 굽기  (0) 2024.08.07
stm32cubeide 빌드할 소스 추가하기  (0) 2024.08.01
STM32H75I-EVAL  (0) 2024.08.01
Posted by 구차니
embeded/robot2024. 9. 2. 18:15

툴 기준인데.. 반대로 툴이 소모되는 경우라면 어떻게 해야하지?

그리고 다빈치 로봇처럼 그 구멍을 고정해서 들락날락 해야 하는 경우는 TCP로 안되는건가?

 

set_tool_reference([x, y, z, rx, ry, rz]) //Set tool coordinate system
set_end_type(1) //Set the end coordinate system type as tool
Assume that the tool coordinate system T is not rotated relative to O' (rx = ry = rz = 0)
Assume that the origin of the tool coordinate system T is in the coordinate system O’ at (x = 0, y = 0, z = 100mm)
The final tool coordinate system parameter is set_tool_reference(0, 0, 100, 0, 0, 0)

[링크 : https://docs.elephantrobotics.com/docs/gitbook-en/2-serialproduct/2.1-280/Kinematics&Coordinate.html]

[링크 : https://m.blog.naver.com/fa-story/222492370824]

'embeded > robot' 카테고리의 다른 글

로봇 tcp 확인  (0) 2025.04.25
elephantrobotics Mycobot-pi atom  (0) 2024.07.11
elephant robotics cobot python api  (0) 2023.12.21
산업로봇과 협동로봇의 차이  (0) 2023.12.21
오일러 각 / 짐벌락 / 쿼터니언  (0) 2023.12.21
Posted by 구차니
embeded/raspberry pi2024. 8. 27. 16:13

결국은 systemd에 등록인데..

python 프로그램의 경우 pip -g로 인스톨 해서 전역으로 하지 않으면

대부분(?) 에러가 나던데.. 그건 언급이 없네

 

cd /lib/systemd/system/
sudo nano hello.service
The service definition must be on the /lib/systemd/system folder. Our service is going to be called "hello.service":

[Unit]
Description=Hello World
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/python /home/pi/hello_world.py
Restart=on-abort

[Install]
WantedBy=multi-user.target

Here we are creating a very simple service that runs our hello_world script and if by any means is aborted is going to be restarted automatically. You can check more on service's options in the next wiki: https://wiki.archlinux.org/index.php/systemd.

Now that we have our service we need to activate it:

sudo chmod 644 /lib/systemd/system/hello.service
chmod +x /home/pi/hello_world.py
sudo systemctl daemon-reload
sudo systemctl enable hello.service
sudo systemctl start hello.service

[링크 : https://gist.github.com/emxsys/a507f3cad928e66f6410e7ac28e2990f]

'embeded > raspberry pi' 카테고리의 다른 글

라즈베리 파이 gui 재시작(lxde)  (0) 2024.09.19
라즈베리 파이 gui 자동실행  (0) 2024.09.19
pgadmin4 를 rpi에 설치하기 성공  (0) 2024.07.29
pgadmin3 안되잖아?!  (0) 2024.07.26
rpi 콘솔 옮기기  (0) 2024.02.26
Posted by 구차니
embeded/esp322024. 8. 13. 15:46

'embeded > esp32' 카테고리의 다른 글

esp32devkitc v4  (0) 2025.01.06
esp32cam sdio wifi  (0) 2024.09.11
esp32 at 소스 빌드(윈도우)  (0) 2023.12.19
esp32 at source 빌드(리눅스)  (0) 2023.12.19
esp-idf on linux  (0) 2023.12.19
Posted by 구차니
embeded/Cortex-M7 STM2024. 8. 7. 15:21

파일을 올리기 전에

 

EL 이라고 써있는 External Loaders를 선택해서

 

stm32h747로 검색하면 나오는 보드가 있는데 해당 보드를 선택후 플래시를 진행하면 정상적으로 구워진다.

 

플래시를 활성화할수 있는 코드를 external loader에서 실행해주는 것 같고

로더가 먼저 실행된 후 내부 플래시와 외부 NOR flash에 구워지는 것으로 보인다.

757(보안 모듈 있음) 747(보안모듈 없음) 차이므로 보드가 다르다고 하더라도 문제는 없을듯 하다.

 

[링크 : https://community.st.com/t5/stm32-mcus-products/nor-flash-memory-in-stm32h747i-eval-board/td-p/629797]

'embeded > Cortex-M7 STM' 카테고리의 다른 글

STM32 / no MCU device found  (0) 2024.09.04
STM32CubeIDE alt func  (0) 2024.09.03
stm32cubeide 빌드할 소스 추가하기  (0) 2024.08.01
STM32H75I-EVAL  (0) 2024.08.01
stm32cubeide 펌웨어 업데이트 이후 자동 재시작  (2) 2024.07.25
Posted by 구차니
embeded/Cortex-M7 STM2024. 8. 1. 15:23

core 쪽은 추가하면 바로 빌드되는데

별도의 디렉토리를 추가하고 소스를 넣으면 빌드가 자동으로 안된다.

 

includes 탭은 include 파일/디렉토리를 추가하고

 

Source Location 에는 소스 파일/디렉토리를 추가하면 된다.

[링크 : https://mokhwasomssi.tistory.com/198]

 

드디어 에러가 발생한다아!!!! 만세!!

Posted by 구차니
embeded/Cortex-M7 STM2024. 8. 1. 10:49

한번 새로 프로젝트 만들려고 해보는데

어...라... STM32H7로 검색하니 750까지만 공개(?)되어 있고, 757은 안나온다.

 

그래서 홈페이지 가서 뒤져보니 데모용 바이너리는 존재한다. 이거 소스는 못 받나?

[링크 : https://www.st.com/en/evaluation-tools/stm32h757i-eval.html#tools-software]

Posted by 구차니
embeded/rpi pico2024. 7. 31. 00:26

윈도우에서 가로(대칭 이동)으로 해서 헷갈렸던 듯.

"가로" 로 설정하면

왼쪽눈은 화면의 왼쪽 절반, 오른쪽눈은 화면의 오른쪽 절반이 보인다. (윈도우 <-, -> 로 하면 딱딱 한쪽만 보임)

'embeded > rpi pico' 카테고리의 다른 글

rpi pico sdk  (0) 2025.03.23
rpi pico usb joystick  (0) 2024.10.07
pico real plus for U+ 구매  (0) 2024.07.28
rpi pico ADC 범위  (0) 2024.07.16
rpi pico / micropython  (0) 2024.07.15
Posted by 구차니
embeded/raspberry pi2024. 7. 29. 11:41

검색을 해보니 대부분 python을 통해서 설치하는걸로 나온다.

아래는 설치 + 실행, 빨간건 재기동 이후 실행시 입력할 내용이다.

$ python3 -m venv pgadmin4

$ cd ~/pgadmin4
$ mkdir var
$ mkdir var/storage
$ mkdir var/sessions

source bin/activate

$ 
pip install pgadmin4
$ pip uninstall pyopenssl
$ pip uninstall cryptography
$ pip install pyopenssl
$ pip install cryptography

$ vi ~/pgadmin4/lib/python3.11/site-packages/config_local.py
import os

PGADMIN_DEFAULT_EMAIL      = '<YOUR_EMAIL>'
PGADMIN_DEFAULT_PASSWORD   = '<YOUR_PASSWORD>'
LOG_FILE                   = '/home/pi/pgadmin4/var/log'
SQLITE_PATH                = '/home/pi/pgadmin4/var/pgadmin4.db'
SESSION_DB_PATH            = '/home/pi/pgadmin4/var/sessions'
STORAGE_DIR                = '/home/pi/pgadmin4/var/storage'
DATA_DIR                   = os.path.realpath(os.path.expanduser(u'~/.pgadmin/'))
AZURE_CREDENTIAL_CACHE_DIR = os.path.join(DATA_DIR, 'azurecredentialcache')
DEFAULT_SERVER             = '0.0.0.0'


$ mkdir ~/.pgadmin
$ mkdir ~/.pgadmin/azurecredentialcache

$ pgadmin4

 

~/pgadmin4/lib/python3.11/site-packages/config_local.py 파일이 없으면 생기는 에러

$ pgadmin4
ERROR  : Failed to create the directory /var/lib/pgadmin:
           [Errno 13] Permission denied: '/var/lib/pgadmin'
HINT :   Create the directory /var/lib/pgadmin, ensure it is writeable by
         'pi', and try again, or, create a config_local.py file
         and override the SQLITE_PATH setting per
         https://www.pgadmin.org/docs/pgadmin4/6.21/config_py.html

 

AZURE_CREDENTIAL_CACHE_DIR 이 없을 경우 발생(혹은 디렉토리가 없을 경우)

$ pgadmin4
Traceback (most recent call last):
  File "/home/pi/pgadmin4/bin/pgadmin4", line 5, in <module>
    from pgadmin4.pgAdmin4 import main
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgAdmin4.py", line 93, in <module>
    app = create_app()
          ^^^^^^^^^^^^
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/__init__.py", line 267, in create_app
    create_app_data_directory(config)
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/setup/data_directory.py", line 118, in create_app_data_directory
    _create_directory_if_not_exists(config.AZURE_CREDENTIAL_CACHE_DIR)
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/setup/data_directory.py", line 21, in _create_directory_if_not_exists
    os.mkdir(_path)
FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/.pgadmin/azurecredentialcache'

 

python openssl 모듈 버전 문제일 경우 발생

$ pgadmin4
NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: "환경파일에 기재된 이메일"
Password: "환경파일에 기재된 암호"
Retype password: "환경파일에 기재된 암호"
Traceback (most recent call last):
  File "/home/pi/pgadmin4/bin/pgadmin4", line 5, in <module>
    from pgadmin4.pgAdmin4 import main
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgAdmin4.py", line 93, in <module>
    app = create_app()
          ^^^^^^^^^^^^
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/__init__.py", line 553, in create_app
    driver.init_app(app)
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/utils/driver/__init__.py", line 27, in init_app
    DriverRegistry.load_modules(app)
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/utils/driver/registry.py", line 18, in load_modules
    from . import psycopg2 as module
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/__init__.py", line 30, in <module>
    from .server_manager import ServerManager
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/pgadmin4/pgadmin/utils/driver/psycopg2/server_manager.py", line 35, in <module>
    from sshtunnel import SSHTunnelForwarder, BaseSSHTunnelForwarderError
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/sshtunnel.py", line 25, in <module>
    import paramiko
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/paramiko/__init__.py", line 22, in <module>
    from paramiko.transport import (
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/paramiko/transport.py", line 138, in <module>
    class Transport(threading.Thread, ClosingContextManager):
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/paramiko/transport.py", line 212, in Transport
    if KexCurve25519.is_available():
       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/paramiko/kex_curve25519.py", line 30, in is_available
    X25519PrivateKey.generate()
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/primitives/asymmetric/x25519.py", line 39, in generate
    from cryptography.hazmat.backends.openssl.backend import backend
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/backends/openssl/__init__.py", line 6, in <module>
    from cryptography.hazmat.backends.openssl.backend import backend
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/backends/openssl/backend.py", line 113, in <module>
    from cryptography.hazmat.bindings.openssl import binding
  File "/home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/bindings/openssl/binding.py", line 14, in <module>
    from cryptography.hazmat.bindings._openssl import ffi, lib
ImportError: /home/pi/pgadmin4/lib/python3.11/site-packages/cryptography/hazmat/bindings/_openssl.abi3.so: undefined symbol: FIPS_mode

 

openssl 패키지 갈아봤자 의미없고, pip를 통해서 업데이트 해주어야 한다.

pip uninstall pyopenssl
pip uninstall cryptography
pip install pyopenssl
pip install cryptography

[링크 : https://stackoverflow.com/questions/32518458/importerror-no-module-named-cryptography-hazmat-bindings-openssl]

 

원격으로 해서 포트 돌리고

$ ssh pi@my.domain.try -p 22 -X -C -L 5050:localhost:5050

 

로컬에서 접속하니 로그인은 떴다!!

 

엄청 오랫만에 보는 느낌이네..

그나저나 이거 다시 켜려면 venv 해서 또 해야하려나?

 

[링크 : https://medium.com/@jaimemartinagui/pgadmin-on-raspberry-pi-857872e6f3b2] << 요거 주로 참고

[링크 : https://www.alcher.me/databases-ru-en/postgresql/install-pgadmin-4-on-debian-buster/]

[링크 : https://medium.com/@mglaving/how-to-install-pgadmin4-on-raspberry-pi-4-raspbian-10-buster-howto-guide-495dab15199d]

[링크 : https://forums.raspberrypi.com/viewtopic.php?t=337180]

'embeded > raspberry pi' 카테고리의 다른 글

라즈베리 파이 gui 자동실행  (0) 2024.09.19
라즈베리 파이에 파이썬 스크립트를 서비스로 등록하기  (0) 2024.08.27
pgadmin3 안되잖아?!  (0) 2024.07.26
rpi 콘솔 옮기기  (0) 2024.02.26
rpi libcamera?  (0) 2024.02.26
Posted by 구차니
embeded/rpi pico2024. 7. 28. 22:21

중고로 만원에 업어옴

 

케이스는 쌈박한데.. 문제는 메뉴얼이 없다는 것.

 

컨트롤러도 있는데 건전지 2개 들어간다.

 

LG U+ 똭!

USB C로 되어있어서 일반적인 데스크탑에서는 쓰기힘들 듯?

 

두께를 얇게 하기 위해 일반 렌즈가 아니라 프레넬 렌즈를 쓴 듯

 

 v50s 연결하고 카메라 앱 실행해서 보니 생각외로 산뜻하게 보이는데, 펜타일이 아니라 RGB인가?

4k 5.5인치에 RGB가 가능한가?

 

노트9에 연결하니 반응이 없어서 고장난 줄 알았는데

v50s나 7세대 노트북에는 잘되는걸 보면

usb-c alt mode (dp)가 4k로 작동해야만 켜지는 것 같다.

 

윈도우에서는 아래와 같이, 펜 / 오디오 / av adapter로 인식되고 자동 설치 된다.

 

근데.. 왜 세로지?

 

 

[링크 : https://m.blog.naver.com/ktd101/222134083802]

[링크 : https://minimax95.tistory.com/entry/Pico-real-plus-VR-사용-후기업데이트-필수]

 

KT 버전 v50s 라 그런가.. "U+VR커넥트"로 검색해도 플레이스토어에 안나온다?

[링크 : https://m.blog.naver.com/821lsy/221824121001]

[링크 : https://item.gmarket.co.kr/Item?goodscode=3149275061]

 

sunix upd2018-B 라는 보드가 있는데, DP를 꽂으면 usb-c로 출력해주는 녀석이다.

일단은 난 이걸 쓰지 않으니 상관은 없을 듯.

[링크 : https://prod.danawa.com/info/?pcode=5343557]

[링크 : https://blog.naver.com/tomynymph/222182380482]

 

+ 2024.08.07

dp to usb c

[링크 : https://coolenjoy.net/bbs/31/1016528]

[링크 : https://m.danawa.com/product/product.html?code=10634508&cateCode=1131812]

+ end

 

HLSL 쉐이더 + MPC BE 혹은 팟플레이어

[링크 : https://www.clien.net/service/board/lecture/15465628]

 

DesktopSBS 라는 프로그램을 쓰라고

[링크 : https://github.com/PaysPlat/DesktopSbS]

   [링크 : https://www.clien.net/service/board/lecture/15472017]

 

분해

[링크 : https://m.blog.naver.com/0106sang/222505160983]

 

pico G2 4K(한쪽 눈 기준 1920x2160(3840x2160)

[링크 : https://www.picoxr.com/kr/products/g2-4k]

[링크 : https://prod.danawa.com/info/?pcode=12055721#bookmark_product_information]

'embeded > rpi pico' 카테고리의 다른 글

rpi pico usb joystick  (0) 2024.10.07
pico real plus 윈도우에 연결하기  (0) 2024.07.31
rpi pico ADC 범위  (0) 2024.07.16
rpi pico / micropython  (0) 2024.07.15
rpi pico usb sound  (0) 2021.11.08
Posted by 구차니