embeded/raspberry pi2025. 3. 23. 12:10

라즈베리 파이 피코 sdk는 먼가.. 좀 이상한 느낌

esp32나 stm32 처럼 sdk 를 깔고 ide로 프로젝트 생성해서 하는데

rpi pico는 sdk 하위에 디렉토리 만들고 cmake 로 프로젝트 만들어서 하는 구조

머.. 별 차이가 있나 싶으면서도

먼가 sdk 업그레이드가 좀 힘들 것 같은 느낌...?

 

[링크 : https://github.com/raspberrypi/pico-sdk]

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

라즈베리 파이 pwm 출력  (0) 2024.12.31
rpi pico usb joystick  (0) 2024.10.07
cli 에서 chrome refresh 하기  (0) 2024.09.24
라즈베리 파이 gui 재시작(lxde)  (0) 2024.09.19
라즈베리 파이 gui 자동실행  (0) 2024.09.19
Posted by 구차니
embeded/raspberry pi2024. 12. 31. 00:22

 

[링크 : https://www.electronicwings.com/raspberry-pi/raspberry-pi-pwm-generation-using-python-and-c]

[링크 : https://blog.naver.com/emperonics/221821487830]

 

#include <wiringPi.h>

#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>

int main (void)
{
  int bright ;

  printf ("Raspberry Pi wiringPi PWM test program\n") ;

  if (wiringPiSetup () == -1)
    exit (1) ;

  pinMode (1, PWM_OUTPUT) ;

  for (;;)
  {
    for (bright = 0 ; bright < 1024 ; ++bright)
    {
      pwmWrite (1, bright) ;
      delay (1) ;
    }

    for (bright = 1023 ; bright >= 0 ; --bright)
    {
      pwmWrite (1, bright) ;
      delay (1) ;
    }
  }

  return 0 ;
}

[링크 : https://github.com/WiringPi/WiringPi/blob/master/examples/pwm.c]

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

rpi pico sdk  (0) 2025.03.23
rpi pico usb joystick  (0) 2024.10.07
cli 에서 chrome refresh 하기  (0) 2024.09.24
라즈베리 파이 gui 재시작(lxde)  (0) 2024.09.19
라즈베리 파이 gui 자동실행  (0) 2024.09.19
Posted by 구차니
embeded/raspberry pi2024. 10. 7. 19:20

xac가 먼가 했더니 xbox 컨트롤러의 약자인듯.

아무튼 라즈베리 파이 pico 에는 adc가 있으니까 아날로그 입력도 가능할 것 같고

나쁘지 않게 만들수 있을 듯?

 

USB joystick compatible with Xbox Adaptive Controller using Raspberry Pi Pico

[링크 : https://github.com/gdsports/xac_joystick_pipico]

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

rpi pico sdk  (0) 2025.03.23
라즈베리 파이 pwm 출력  (0) 2024.12.31
cli 에서 chrome refresh 하기  (0) 2024.09.24
라즈베리 파이 gui 재시작(lxde)  (0) 2024.09.19
라즈베리 파이 gui 자동실행  (0) 2024.09.19
Posted by 구차니
embeded/raspberry pi2024. 9. 24. 22:20

키보드 달려있으면 f5 누르면 되긴한데 uinput 으로 포커스 잡게 하고 누르는게 나으려나?

lxde 라서 Xorg가 보이긴 한데.. 왜 안될까 ㅠㅠ

 

WID=$(xdotool search --onlyvisible --class chromium|head -1)
xdotool windowactivate ${WID}
xdotool key ctrl+F5

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

 

이걸 해주고 해도 동일한 에러가 발생한다.

$ xauth list $DISPLAY 
This prints the cookie, something like this:

pi:10 mit-magic-cookie-1 4d22408aga55sad1ccd165723g77923ae
Then switch the superuser with su and set the cookie:

# xauth add pi:10 mit-magic-cookie-1 4d22408aga55sad1ccd165723g77923ae 

[링크 : https://raspberrypi.stackexchange.com/questions/1719/x11-connection-rejected-because-of-wrong-authentication]

 

이걸 써봐야 하나..

gksu - GTK+ frontend for su and sudo

[링크 : https://linux.die.net/man/1/gksudo]

[링크 : https://discourse.ubuntu-kr.org/t/sudo-gksudo/23916]

 

+

라즈베리에서 하니(xfce) 안된다. 도대체 머가 문제일까..

$ xdotool search chromium
Defaulting to search window name, class, and classname
10485760


$ xdotool windowactivate 10475760
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  20 (X_GetProperty)
  Resource id in failed request:  0x9fd8f0
  Serial number of failed request:  26
  Current serial number in output stream:  26


$ xdotool windowactivate 10485760
XGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)

$ xdotool key ctrl+F5

 

두개 명령을 한번에 할 수도 있는 듯. 일단 에러는 발생하지 않네..?

Try:

wid=`xdotool search "FILENAME"`
xdotool windowactivate $wid
in:

xdotool search "FILENAME" windowactivate --sync

[링크 : https://stackoverflow.com/questions/36921889/check-for-duplicate-application-in-linux-bat]

 

xdotool mousemove --screen 2 --polar 0 0 

[링크 : https://github.com/jordansissel/xdotool/issues/67]

 

별별 희한한 작동이 가능하네?

$ xdotool --help
Available commands:
  getactivewindow
  getwindowfocus
  getwindowname
  getwindowpid
  getwindowgeometry
  getdisplaygeometry
  search
  selectwindow
  help
  version
  behave
  behave_screen_edge
  click
  getmouselocation
  key
  keydown
  keyup
  mousedown
  mousemove
  mousemove_relative
  mouseup
  set_window
  type
  windowactivate
  windowfocus
  windowkill
  windowclose
  windowmap
  windowminimize
  windowmove
  windowraise
  windowreparent
  windowsize
  windowunmap
  set_num_desktops
  get_num_desktops
  set_desktop
  get_desktop
  set_desktop_for_window
  get_desktop_for_window
  get_desktop_viewport
  set_desktop_viewport
  exec
  sleep
Posted by 구차니
embeded/raspberry pi2024. 9. 19. 16:01

구글 뒤져봐도 어떤 서비스 명인지 나오질 않아서 찾아보니

/etc/systemd/system $ ls -al
total 76
drwxr-xr-x 18 root root 4096 Sep 19 11:26 .
drwxr-xr-x  5 root root 4096 Sep 13 12:08 ..
drwxr-xr-x  2 root root 4096 Jul  4 09:06 bluetooth.target.wants
lrwxrwxrwx  1 root root   42 Jul  4 09:06 dbus-fi.w1.wpa_supplicant1.service -> /lib/systemd/system/wpa_supplicant.service
lrwxrwxrwx  1 root root   37 Jul  4 09:06 dbus-org.bluez.service -> /lib/systemd/system/bluetooth.service
lrwxrwxrwx  1 root root   40 Jul  4 09:06 dbus-org.freedesktop.Avahi.service -> /lib/systemd/system/avahi-daemon.service
lrwxrwxrwx  1 root root   40 Jul  4 09:06 dbus-org.freedesktop.ModemManager1.service -> /lib/systemd/system/ModemManager.service
lrwxrwxrwx  1 root root   53 Jul  4 09:06 dbus-org.freedesktop.nm-dispatcher.service -> /lib/systemd/system/NetworkManager-dispatcher.service
lrwxrwxrwx  1 root root   45 Jul  4 09:05 dbus-org.freedesktop.timesync1.service -> /lib/systemd/system/systemd-timesyncd.service
lrwxrwxrwx  1 root root   36 Jul  4 09:09 default.target -> /lib/systemd/system/graphical.target
drwxr-xr-x  2 root root 4096 Jul  4 09:06 dev-serial1.device.wants
lrwxrwxrwx  1 root root   35 Jul  4 09:07 display-manager.service -> /lib/systemd/system/lightdm.service
drwxr-xr-x  2 root root 4096 Sep 13 12:19 getty.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:09 getty@tty1.service.d
drwxr-xr-x  2 root root 4096 Jul  4 09:09 graphical.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 halt.target.wants
drwxr-xr-x  2 root root 4096 Sep 19 12:39 multi-user.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 network-online.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 poweroff.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:09 printer.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 reboot.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 remote-fs.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:09 sockets.target.wants
lrwxrwxrwx  1 root root   31 Sep 13 12:21 sshd.service -> /lib/systemd/system/ssh.service
drwxr-xr-x  2 root root 4096 Jul  4 09:06 sysinit.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:06 timers.target.wants
drwxr-xr-x  2 root root 4096 Jul  4 09:09 wayvnc.service.wants

 

별 희한한 이름으로 튀어나온다. llightdm 이런건 어디로 간겨.. -_- 

$ systemctl status display-manager
● lightdm.service - Light Display Manager
     Loaded: loaded (/lib/systemd/system/lightdm.service; enabled; preset: enabled)
     Active: active (running) since Thu 2024-09-19 15:56:27 KST; 3min 27s ago
       Docs: man:lightdm(1)
   Main PID: 664 (lightdm)
      Tasks: 5 (limit: 755)
        CPU: 2min 7.209s
     CGroup: /system.slice/lightdm.service
             ├─664 /usr/sbin/lightdm
             └─806 /usr/lib/xorg/Xorg :0 -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt7 -novtswitch

Sep 19 15:56:24 raspberrypi systemd[1]: Starting lightdm.service - Light Display Manager...
Sep 19 15:56:27 raspberrypi systemd[1]: Started lightdm.service - Light Display Manager.
Sep 19 15:56:32 raspberrypi lightdm[860]: crtc 0: disable
Sep 19 15:56:32 raspberrypi lightdm[860]: screen 0: 1080x1920 285x506 mm  96.25dpi
Sep 19 15:56:32 raspberrypi lightdm[860]: crtc 0:    1920x1080  60.00 +0+0 "HDMI-1"
Sep 19 15:56:33 raspberrypi lightdm[876]: pam_unix(lightdm-autologin:session): session opened for user falinux(uid=1000) by (uid=0)
Sep 19 15:56:33 raspberrypi lightdm[876]: Failed to write utmpx: No such file or directory
Posted by 구차니
embeded/raspberry pi2024. 9. 19. 11:41

lxde가 기본이었나..

아무튼 이렇게 하면 HDMI 연결해서 켜면 자동으로 크롬이 전체화면으로 실행된다.

다만, kiosk 모드이기 때문에 f11 누른다고 해서 원복되지 않음

 

$ sudo vi /etc/xdg/lxsession/LXDE-pi/autostart
chromium-browser --start-maximized --kiosk http://www.naver.com

[링크 : https://jung-max.github.io/2021/04/28/라즈베리파이-크로미엄%20키오스크%20모드%20및%20부팅시%20자동%20실행/]

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 pico ADC 범위  (0) 2024.07.16
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 pico ADC 범위  (0) 2024.07.16
rpi pico / micropython  (0) 2024.07.15
Posted by 구차니
embeded/raspberry pi2024. 7. 26. 10:23

postgresql 15.x 를 써서 그런가 안된다

 

 

pgadmin3가 아니라 pgadmin4를 써야 할 것 같은데

[링크 : https://dba.stackexchange.com/questions/251031/what-is-the-last-version-of-postgres-with-pgadmin-3]

 

라즈베리 파이에는 도대체 버전이 어떻게 관리 되길래 이런 대참사가 벌어지고 있는거냐..

$ apt-cache search pgadmin
pgadmin3 - graphical administration tool for PostgreSQL
pgadmin3-data - graphical administration tool for PostgreSQL - documentation
phppgadmin - web-based administration tool for PostgreSQL
postgresql-15-pldebugger - PostgreSQL pl/pgsql Debugger API

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

라즈베리 파이에 파이썬 스크립트를 서비스로 등록하기  (0) 2024.08.27
pgadmin4 를 rpi에 설치하기 성공  (0) 2024.07.29
rpi pico ADC 범위  (0) 2024.07.16
rpi pico / micropython  (0) 2024.07.15
rpi 콘솔 옮기기  (0) 2024.02.26
Posted by 구차니
embeded/raspberry pi2024. 7. 16. 10:30

신호 발생기 통해서 넣어 보니 3.3V 에서 65535로 가득 찬다.

raw base  
60398 65535 3.04132753490501
62367 65535 3.14047608148318
64319 65535 3.23876859693294
65535 65535 3.3

ADC 입력 범위는 0~3.3V 인 듯(음수도 넣어 볼 걸 그랬나..

GND의 경우 0 으로 뜨니 음수는 안될 것 같기도 한데 과연?

 

ADC가 12bit 인데 16bit 값으로 해서 0.05V 정도 오차가 생기는게 아닐까 싶긴 하다

(혹은 내부 AREF 회로에서 RC 회로로 구현해 오차가 발생한걸지도)

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

pgadmin4 를 rpi에 설치하기 성공  (0) 2024.07.29
pgadmin3 안되잖아?!  (0) 2024.07.26
rpi pico / micropython  (0) 2024.07.15
rpi 콘솔 옮기기  (0) 2024.02.26
rpi libcamera?  (0) 2024.02.26
Posted by 구차니