embeded/raspberry pi2020. 3. 29. 10:03

dtparam=audio=on이 되어있어도 오디오가 안나와서 검색을 해보니

auto로 되면 hdmi로 연결되는 경우도 있는 듯?

 

sudo raspi-config

를 통해서 force audio 해줘도 안되네..

 

[링크 : https://raspberrypi.stackexchange.com/questions/100759/pi-3-b-no-audio-device-found]

 

어떤게 영향을 받아서 잘되는진 모르겠지만

sudo raspi-config 에서 force 3.5 하고 (여기까진 차이가 없었던거 같은데)

sudo alsamixer로 볼륨 조절해주고

xwindow에서 우측 상단의 스피커를 우클릭하여 HDMI / Analog 에서 analog로 선택해주니 정상적으로 잘 나온다.

[링크 : https://forum.manjaro.org/t/rpi-3b-3b-sound-trouble-shooting/91077]

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

다음 날씨 페이지 분석  (0) 2020.04.23
GY-NEO6MV2 (ublox NEO-6M) GPS 모듈  (0) 2020.04.19
라즈베리 파이 카메라 케이블이 이상해  (0) 2020.03.15
라즈베리 프로젝트?  (0) 2020.03.14
rpi clcd / wiringpi deprecated  (0) 2020.03.12
Posted by 구차니
embeded/odroid2020. 3. 28. 19:00

심심해서 글들 찾아보다 보니 odroid 에는 raspberrypi 엔 없는 ADC가 무려 2채널이나 존재한다는 사실을 발견했는데

문제는 30핀 헤더에서 해당 핀을 빼내야 하고 0~1.8V range로 전압을 측정해야 한다는게 점이라고 해야하려나?

아두이노만 해도 0~5V 라서 좀 회로구성이 넉넉한데 핀도 2.54mm가 아닌데다가 1.8V 라니.. 

이걸 쓰려면 공부할게 많을듯 하다. ㅠㅠ

 

그래도 라즈베리에는 없는 ADC가 있다는게 어디인가.. 싶긴하네


[링크 : https://m.blog.naver.com/cpodeveloper/220525614802]

[링크 : https://wiki.odroid.com/odroid-xu4/application_note/gpio/adc]

    [링크 : https://forum.odroid.com/viewtopic.php?t=18391]

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

모니터 소비전력과 오드로이드 XU4  (0) 2020.06.02
odroid XU4 H.265 가능이라니  (0) 2020.05.08
odroid xu4 image 테스트  (0) 2020.03.28
odroid xu4 vlc error  (0) 2020.03.27
odroid XU4 데스크 탑 설정  (0) 2020.03.08
Posted by 구차니
embeded/odroid2020. 3. 28. 17:37

ubuntu-18.04.3-4.14-mate-odroid-xu4-20190929.img

이미지를 혹시나 해서 다기 구워서 테스트를 해보았는데

유튜브 요즘 트래픽 제하니 걸려서 그런지 1080p는 심하게 버퍼링 되고

기본으로 설치된 VLC 로도 동영상이 정상 재생되지 않는건 동일하다.

 

역시 작은 규모라 이런 기본적인(!) 기능도 기본 이미지에서 정상작동하지 않는건가.. ㅠㅠ

아무튼 2020년 이미지는 언제 나오려나?

 

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

odroid XU4 H.265 가능이라니  (0) 2020.05.08
odroid xu4 ADC 2CH  (0) 2020.03.28
odroid xu4 vlc error  (0) 2020.03.27
odroid XU4 데스크 탑 설정  (0) 2020.03.08
odroid xu4 AP 관련  (0) 2020.03.07
Posted by 구차니
embeded/odroid2020. 3. 27. 13:52

처음에는 gl을 못 여네 어쩌네 해서

$ vlc
VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)
[00417b48] main libvlc: 기본 인터페이스로 vlc 실행. vlc 인터페이스 없이 사용하려면 'cvlc' 을 사용하세요.
[0048a268] main playlist: playlist is empty
[92502690] egl_x11 gl error: cannot select OpenGL API
libGL error: failed to create dri screen
libGL error: failed to load driver: exynos

 

mali 드라이버 깔아주었더니 아래와 같이 vlc 자체가 실행이 되지 않는다.

sudo apt install --reinstall mali-fbdev

[링크 : https://forum.odroid.com/viewtopic.php?t=34656]

 

$ vlc
VLC media player 3.0.8 Vetinari (revision 3.0.8-0-gf350b6b5a7)
[00448b48] main libvlc: 기본 인터페이스로 vlc 실행. vlc 인터페이스 없이 사용하려면 'cvlc' 을 사용하세요.
Unable to find an X11 visual which matches EGL config 9
세그멘테이션 오류

 

 

mali-x11을 설치하고 나서야 원래대로 돌아왔는데.. GL가속 안되는건 여전.. ㅠㅠ

sudo apt-get install --reinstall mali-x11

[링크 :https://forum.odroid.com/viewtopic.php?f=95&t=35559]

 

 

[링크 : https://forum.odroid.com/viewtopic.php?t=6583]

[링크 : https://forum.odroid.com/viewtopic.php?t=34656]

[링크 : https://forum.odroid.com/viewtopic.php?t=32741]

[링크 : http://blog.naver.com/woduddl3176/221203365097]

[링크 : https://forum.odroid.com/viewtopic.php?f=55&t=5053]

 

+

2020.03.29

kodi를 통해서는 정상적으로 동영상이 재생된다. 귀찮은데 kodi를 써야하나..

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

odroid xu4 ADC 2CH  (0) 2020.03.28
odroid xu4 image 테스트  (0) 2020.03.28
odroid XU4 데스크 탑 설정  (0) 2020.03.08
odroid xu4 AP 관련  (0) 2020.03.07
HEVC, H.265 지원 싱글보드  (0) 2019.04.23
Posted by 구차니
embeded/raspberry pi2020. 3. 15. 20:16

2015년에 샀었던 녀석인데..

케이블 접촉부가 끊어져서 오락가락 하는지라 블랙박스로 쓰긴 무리인데..

[링크 : https://minimonk.net/5693]

 

waveshare Rev 2.0 이라는데 왜... 케이블이 다르지?

반대방향이 아니라 같은 방향 케이블이라 이번에 구매한 녀석이랑 다르다.

내가 샀던 모델만 그렇게 동일 방향인건진 좀 더 찾아 봐야 할 듯

 

걍 이걸 하나 사는게 나을지도 모르겠네

[링크 : http://itempage3.auction.co.kr/DetailView.aspx?itemno=B550318528]

 

+

동일 모델인데 케이블 연결하는 부품의 top/bottom이 다른 것으로 보인다.

도대체 얘 정체가 머지?

[링크 : https://www.waveshare.com/rpi-camera-b.htm]

Posted by 구차니
embeded/raspberry pi2020. 3. 14. 16:47

이번에 게임기 만들려고 고민하다 스피커 연결하고 그런게 귀찮아서 잠시 보류중인데

자전거 꺼내다 보니 문득 드는 생각

 

1. 로드다 보니 자전거 탈때 고개 들기 귀찮음

2. 블랙박스도 있으면 좋겠음

 

두개를 합쳐서.. 일단 LCD가 50Hz 까지 된다고 하니

rpi 3b에 보조배터리 연결해서 카메라 + LCD 해서

전방 카메라 + 디스플레이 + 저장 세개 조합으로 작동할 프로그램을 작성하고

 

심심하면(!) 가속도계와 GPS를 연동해서 트래커 만들어도 괜찮을 듯?

 

 

[링크 : https://www.waveshare.com/3.5inch-RPi-LCD-C.htm]

[링크 : http://eleparts.co.kr/goods/view?no=7048556]

[링크 : https://www.raspberrypi.org/documentation/usage/camera/raspicam/raspivid.md]

 

python 예제 돌려봐야징

[링크 : https://raspberrypi.stackexchange.com/questions/27041/]

Posted by 구차니
embeded/arduino(genuino)2020. 3. 14. 16:35

RGB LED는 일반적인 LED와 다르게 2V를 먹여야 하는데 20mA 최대 제한을 걸면

일반적인(?) 220 옴 대신 330옴을 써야 한다고 한다.

그나저나 RGB LED는 MOQ가 미쳤거나 가격이 미쳤거나..

blue LED도 비싸다고는 들었지만 장난 아니네 ㅠㅠ

 

[링크 : https://kocoafab.cc/tutorial/view/725]

[링크 : https://codingrun.com/55]

'embeded > arduino(genuino)' 카테고리의 다른 글

PAM8403 3W 스테레오 오디오 앰프  (0) 2020.04.17
오랫만에 지름  (2) 2020.04.07
arduino servo / knob 예제 실행  (0) 2020.03.09
arduino knob 변형 adc 값 읽기  (0) 2020.03.09
arduino nano + CLCD  (0) 2020.03.07
Posted by 구차니
embeded/raspberry pi2020. 3. 12. 17:51

헐.. wiringpi 프로젝트 종료? 아무튼 그럼 이걸 쓰면 안되려나..?

일단은 소스를 찾아야 하니 mirror 된 git을 발견 해당 저장소의 소스를 사용하고 복사해서 수정한다.

$ git clone https://github.com/WiringPi/WiringPi.git

$ cd WiringPi/example

$ cp lcd.c lcd2.c

$ vi lcd2.c

$ gcc lcd2.c -o lcd2 -lwiringPi -lwiringPiDev

[링크 : http://wiringpi.com/wiringpi-deprecated/]

  [링크 : https://github.com/WiringPi/WiringPi]

 

별로 도움이 안될 배선 사진. jpg

 

넣을 위치가 마땅찮아 대충 끼워넣는 동영상.avi

 

링크 블로그의 내용 그대로 사용한다.

LCD  1번핀(VSS) --- RPI3  6번핀(ground), 가변저항의 왼쪽 다리

LCD  2번핀(VDD) --- RPI3  2번핀(+5V), 가변저항의 오른쪽 다리

LCD  3번핀(VE, VO) --- 가변저항의 가운데 다리

LCD  4번핀(RS) --- RPI3 26번핀(GPIO 7)

LCD  5번핀(RW) --- RPI3 14번핀(ground)

LCD  6번핀(EN,E) --- RPI3 24번핀(GPIO 8)

 

LCD 11번핀(D4) --- RPI3 11번핀(GPIO 17)

LCD 12번핀(D5) --- RPI3 12번핀(GPIO 18)

LCD 13번핀(D6) --- RPI3 13번핀(GPIO 27)

LCD 14번핀(D7) --- RPI3 15번핀(GPIO 22)

LCD 15번핀(LED+) --- RPI3   4번핀(+5V)

LCD 16번핀(LED-)  --- RPI3 34번핀(ground)


약간(!) 수정한 소스는 아래와 같다.

크게 바뀌는 건 별로 없고, 배선상의 문제로 아래의 코드로 4,5,6,7 에서 0,1,2,3 으로 변경해야 한다.

  if (bits == 4)
    lcdHandle = lcdInit (rows, cols, 4, 11,10, 0,1,2,3,0,0,0,0) ;
//  lcdHandle = lcdInit (rows, cols, 4, 11,10, 4,5,6,7,0,0,0,0) ;

 

전체 소소는 아래와 같다.

$ cat lcd2.c
/*
 * lcd.c:
 *      Text-based LCD driver.
 *      This is designed to drive the parallel interface LCD drivers
 *      based in the Hitachi HD44780U controller and compatables.
 *
 *      This test program assumes the following:
 *
 *      8-bit displays:
 *              GPIO 0-7 is connected to display data pins 0-7.
 *              GPIO 11 is the RS pin.
 *              GPIO 10 is the Strobe/E pin.
 *
 *      For 4-bit interface:
 *              GPIO 4-7 is connected to display data pins 4-7.
 *              GPIO 11 is the RS pin.
 *              GPIO 10 is the Strobe/E pin.
 *
 * Copyright (c) 2012-2013 Gordon Henderson.
 ***********************************************************************
 * This file is part of wiringPi:
 *      https://projects.drogon.net/raspberry-pi/wiringpi/
 *
 *    wiringPi is free software: you can redistribute it and/or modify
 *    it under the terms of the GNU Lesser General Public License as published by
 *    the Free Software Foundation, either version 3 of the License, or
 *    (at your option) any later version.
 *
 *    wiringPi is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *    GNU Lesser General Public License for more details.
 *
 *    You should have received a copy of the GNU Lesser General Public License
 *    along with wiringPi.  If not, see <http://www.gnu.org/licenses/>.
 ***********************************************************************
 */

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

#include <unistd.h>
#include <string.h>
#include <time.h>

#include <wiringPi.h>
#include <lcd.h>

#ifndef TRUE
#  define       TRUE    (1==1)
#  define       FALSE   (1==2)
#endif

static unsigned char newChar [8] =
{
  0b11111,
  0b10001,
  0b10001,
  0b10101,
  0b11111,
  0b10001,
  0b10001,
  0b11111,
} ;


// Global lcd handle:

static int lcdHandle ;

/*
 * usage:
 *********************************************************************************
 */

int usage (const char *progName)
{
  fprintf (stderr, "Usage: %s bits cols rows\n", progName) ;
  return EXIT_FAILURE ;
}


/*
 * scrollMessage:
 *********************************************************************************
 */

static const char *message =
  "                    "
  "Wiring Pi by Gordon Henderson. HTTP://WIRINGPI.COM/"
  "                    " ;

void scrollMessage (int line, int width)
{
  char buf [32] ;
  static int position = 0 ;
  static int timer = 0 ;

  if (millis () < timer)
    return ;

  timer = millis () + 200 ;

  strncpy (buf, &message [position], width) ;
  buf [width] = 0 ;
  lcdPosition (lcdHandle, 0, line) ;
  lcdPuts     (lcdHandle, buf) ;

  if (++position == (strlen (message) - width))
    position = 0 ;
}


/*
 * pingPong:
 *      Bounce a character - only on 4-line displays
 *********************************************************************************
 */

static void pingPong (int lcd, int cols)
{
  static int position = 0 ;
  static int dir      = 0 ;

  if (dir == 0)         // Setup
  {
    dir = 1 ;
    lcdPosition (lcdHandle, 0, 3) ;
    lcdPutchar  (lcdHandle, '*') ;
    return ;
  }

  lcdPosition (lcdHandle, position, 3) ;
  lcdPutchar (lcdHandle, ' ') ;
  position += dir ;

  if (position == cols)
  {
    dir = -1 ;
    --position ;
  }

  if (position < 0)
  {
    dir = 1 ;
    ++position ;
  }

  lcdPosition (lcdHandle, position, 3) ;
  lcdPutchar  (lcdHandle, '#') ;
}


/*
 * waitForEnter:
 *********************************************************************************
 */

static void waitForEnter (void)
{
  printf ("Press ENTER to continue: ") ;
  (void)fgetc (stdin) ;
}


/*
 * The works
 *********************************************************************************
 */

int main (int argc, char *argv[])
{
  int i ;
  int lcd ;
  int bits, rows, cols ;

  struct tm *t ;
  time_t tim ;

  char buf [32] ;

  if (argc != 4)
    return usage (argv [0]) ;

  printf ("Raspberry Pi LCD test\n") ;
  printf ("=====================\n") ;

  bits = atoi (argv [1]) ;
  cols = atoi (argv [2]) ;
  rows = atoi (argv [3]) ;

  if (!((rows == 1) || (rows == 2) || (rows == 4)))
  {
    fprintf (stderr, "%s: rows must be 1, 2 or 4\n", argv [0]) ;
    return EXIT_FAILURE ;
  }

  if (!((cols == 16) || (cols == 20)))
  {
    fprintf (stderr, "%s: cols must be 16 or 20\n", argv [0]) ;
    return EXIT_FAILURE ;
  }

  wiringPiSetup () ;

  if (bits == 4)
    lcdHandle = lcdInit (rows, cols, 4, 11,10, 0,1,2,3,0,0,0,0) ;
//  lcdHandle = lcdInit (rows, cols, 4, 11,10, 4,5,6,7,0,0,0,0) ;
  else
    lcdHandle = lcdInit (rows, cols, 8, 11,10, 0,1,2,3,4,5,6,7) ;

  if (lcdHandle < 0)
  {
    fprintf (stderr, "%s: lcdInit failed\n", argv [0]) ;
    return -1 ;
  }

  lcdPosition (lcdHandle, 0, 0) ; lcdPuts (lcdHandle, "Gordon Henderson") ;
  lcdPosition (lcdHandle, 0, 1) ; lcdPuts (lcdHandle, "  wiringpi.com  ") ;

  waitForEnter () ;

  if (rows > 1)
  {
    lcdPosition (lcdHandle, 0, 1) ; lcdPuts (lcdHandle, "  wiringpi.com  ") ;

    if (rows == 4)
    {
      lcdPosition (lcdHandle, 0, 2) ;
      for (i = 0 ; i < ((cols - 1) / 2) ; ++i)
        lcdPuts (lcdHandle, "=-") ;
      lcdPuts (lcdHandle, "=3") ;

      lcdPosition (lcdHandle, 0, 3) ;
      for (i = 0 ; i < ((cols - 1) / 2) ; ++i)
        lcdPuts (lcdHandle, "-=") ;
      lcdPuts (lcdHandle, "-4") ;
    }
  }

  waitForEnter () ;

  lcdCharDef  (lcdHandle, 2, newChar) ;

  lcdClear    (lcdHandle) ;
  lcdPosition (lcdHandle, 0, 0) ;
  lcdPuts     (lcdHandle, "User Char: ") ;
  lcdPutchar  (lcdHandle, 2) ;

  lcdCursor      (lcdHandle, TRUE) ;
  lcdCursorBlink (lcdHandle, TRUE) ;

  waitForEnter () ;

  lcdCursor      (lcdHandle, FALSE) ;
  lcdCursorBlink (lcdHandle, FALSE) ;
  lcdClear       (lcdHandle) ;

  for (;;)
  {
    scrollMessage (0, cols) ;

    if (rows == 1)
      continue ;

    tim = time (NULL) ;
    t = localtime (&tim) ;

    sprintf (buf, "%02d:%02d:%02d", t->tm_hour, t->tm_min, t->tm_sec) ;

    lcdPosition (lcdHandle, (cols - 8) / 2, 1) ;
    lcdPuts     (lcdHandle, buf) ;

    if (rows == 2)
      continue ;

    sprintf (buf, "%02d/%02d/%04d", t->tm_mday, t->tm_mon + 1, t->tm_year+1900) ;

    lcdPosition (lcdHandle, (cols - 10) / 2, 2) ;
    lcdPuts     (lcdHandle, buf) ;

    pingPong (lcd, cols) ;
  }

  return 0 ;
}

[링크 : https://webnautes.tistory.com/1111]

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

라즈베리 파이 카메라 케이블이 이상해  (0) 2020.03.15
라즈베리 프로젝트?  (0) 2020.03.14
미세먼지(웹 크롤링) 표시용 장치  (0) 2020.03.11
라즈베리 node.js gpio  (0) 2020.03.10
라즈베리 python gpio  (0) 2020.03.10
Posted by 구차니
embeded/raspberry pi2020. 3. 11. 21:14

음.. 일단 구상은 했는데 구체화를 못해서 어떻게 만들어야 할지 감이 안와서 끄적끄적

 

1. 라즈베리 파이 사용(아두이노 ethernet 실드에 파싱하려니 무리일 느낌)

2. CLCD로 현재 온도 / 습도 / PM2.5 / PM10 의 정보 출력

아침에는(AM 6~9시 정도?) 오늘 비올 확율 출력

저녁에는(PM 9~12시 정도?) 새벽 온도 출력(보일러를 고민하기 위해?)

3. 웹 파싱 혹은 API 부분

기상청 정보, 공공 API 혹은 포탈 정보중 어떤걸 쓸지 고민

3. 데이터베이스

데이터베이스 공부할겸 축적해놓고 마지막 정보를 끌어오는 정도로 하려면

sqlight가 무난하려나? postgresql을 써볼까 고민중(WAS 구성해서)

4. LED

미세먼지 수치에 따라서 Green / Yellow / Red 를 출력

25ug 씩 끊어서 2/2/4개를 할까 고민중

레벨 미터 식으로 출력하자니 미세먼지가 안 좋을수록 녹색이 더 많이 불이 들어와서 고민중

a. 귀찮으니 레벨 미터 방식으로 25ug씩 출력

b. on/off 식으로 녹색 -> 노랑 -> 빨강으로 색이 옮겨가는 식으로 나쁠수록 숫자를 줄여나가기(가독성이..)

c. 걍 7 segment 사용해서 출력(CLCD에도 출력은 하지만)

5. 미세먼지 농도에 따른 릴레이 및 사용시간 적산

2개의 relay를 이용해서 필터 2개를 미세먼지 상황에 따라 자동으로 on/off

2개니까 심하지 않을 경우 하나씩 번갈아 가면서 쓰도록 하여 모터 및 필터 수명 연장을 하도록 함

 

이정도면 되려나..

미세먼지 단계에 따른 정책이 가장 귀찮네... LED를 빼버릴까..

 

+

일단 국내 기준은 아래와 같다.

보통이 31~80 으로 50정도로 꽤 넓은 편이라 보통인 경우가 많았구만..

[링크 : https://bluesky.seoul.go.kr/finedust/common-sense/page/10?article=745]

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

라즈베리 프로젝트?  (0) 2020.03.14
rpi clcd / wiringpi deprecated  (0) 2020.03.12
라즈베리 node.js gpio  (0) 2020.03.10
라즈베리 python gpio  (0) 2020.03.10
waveshare rpi lcd (a)와 (c)  (0) 2020.03.09
Posted by 구차니
embeded/raspberry pi2020. 3. 10. 21:26

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

rpi clcd / wiringpi deprecated  (0) 2020.03.12
미세먼지(웹 크롤링) 표시용 장치  (0) 2020.03.11
라즈베리 python gpio  (0) 2020.03.10
waveshare rpi lcd (a)와 (c)  (0) 2020.03.09
라즈베리 2B + waveshare 35c + MAME  (0) 2020.03.08
Posted by 구차니