Skip to content

Instantly share code, notes, and snippets.

View takeutch-kemeco's full-sized avatar

Takeutch Kemeco takeutch-kemeco

View GitHub Profile

ラズパイ4における、カメラサイズと遅延の相関関係

構成

flowchart LR
	PC_Screen -- Take_a_picture --> OV5647 <-- libcamera --> Pi4 <-- SSH --> PC -- opencv --> PC_Screen 

PCの画面に時計と撮影結果画像を表示します。 それをPi4のV1カメラで撮影し、 libcamera経由でPi4で処理し、

Q: ラズパイ4で、廉価なデスクトップ機と同等の「コンパイル速度」を実現するには、何台のラズパイ4で分散コンパイルすれば可能か?

比較するパソコン

ID Dsk Pi4 Pi3
種類 廉価デスクトップ機(2〜3万で自作) Raspberry Pi 4 model B (4GB) Raspberry Pi 3 model B
CPU AMD Ryzen3 2200G 3.5GHz ARM cortex-a72 2.0GHz ARM cortex-a53 1.3GHz
コア数 4コア 4コア 4コア
Memory DDR4-SDRAM 32GB DDR4-SDRAM 4GB DDR2-SDRAM 1GB
電源 400W(たぶん賞味は150W程度) 15W 12.5W
@takeutch-kemeco
takeutch-kemeco / kcube_int.c
Last active September 22, 2020 03:36
aclのkcube.cの12ビット固定小数点数版
#include <acl.c>
void drawObj();
void drawPoly(int j);
AInt32 sin_AInt32_12bit(const AInt32 x_12bit);
AInt32 cos_AInt32_12bit(const AInt32 x_12bit);
AInt32 vx[8], vy[8], vz[8], centerz4[6];
AInt32 scx[8], scy[8];
AInt8 squar[24] = { 0,4,6,2, 1,3,7,5, 0,2,3,1, 0,1,5,4, 4,5,7,6, 6,7,3,2 };
#! /bin/bash
xsetwacom set "Wacom Cintiq 13HD Pen stylus" rotate none
xsetwacom set "Wacom Cintiq 13HD Pen eraser" rotate none
xsetwacom set "Wacom Cintiq 13HD Pen stylus" maptooutput "1920x1080+0+0"
xsetwacom set "Wacom Cintiq 13HD Pen eraser" maptooutput "1920x1080+0+0"
xsetwacom set "Wacom Cintiq 13HD Pen stylus" area 580 440 59100 33300 # ペン側カーソル マッピング調整 (左上XY - 右下XY)
xsetwacom set "Wacom Cintiq 13HD Pen eraser" area 580 440 59100 33300 # 消しゴム側カーソル マッピング調整 (左上XY - 右下XY)
difference() {
difference() {
union() {
translate([0,51.8-14.75,0]) translate([0,14.75/2,8.85/2]) cube([7.75,14.75,8.85],center=true);
translate([0,51.8/2,0]) difference() {
union() {
difference() {
translate([0,0,2]) cube([10.9,51.8,4],center=true);
union() {
@takeutch-kemeco
takeutch-kemeco / Makefile
Created November 22, 2015 14:22
osecpu132d/vm/linux/
CC = gcc
RM = rm
DEFS =
CFLAGS = -Os -Wl,-s
LIBS =
TOL_PROG = osectols
TOL_DIR = tol
TOL_SRCS = $(TOL_DIR)/osectols.c
TOL_OBJS = $(TOL_SRCS:.c=.o)
@takeutch-kemeco
takeutch-kemeco / 00-Makefile-osecpu-vm-rev2-123d
Last active August 29, 2015 14:04
osecpu-vm 123d を Linux 上の c_blike_01f_linux用にビルドするための Makefile
使い方:
ソースファイルパッケージのルートディレクトリ(app0100.ask などのソースファイルが置かれてる所)に、この Makefile を置いた状態で:
make osectols
これで osectols バイナリーをビルドできます。(ファイル名 osectols)
make osecpu
これで osecpu-vm バイナリーをビルドできます。(ファイル名 osecpu)
make osecpu-vm32
@takeutch-kemeco
takeutch-kemeco / pc9801-on.c
Created April 11, 2014 10:54
pc9801-on.c
/* pc9801-on.c
* gcc -lasound -o pc9801-on{,.c}
*/
#include <alsa/asoundlib.h>
main()
{
snd_pcm_t *h;
snd_pcm_open(&h, "default", SND_PCM_STREAM_PLAYBACK, SND_PCM_ASYNC);
snd_pcm_set_params(h, SND_PCM_FORMAT_FLOAT, SND_PCM_ACCESS_RW_INTERLEAVED, 1, 44100, 1, 10000);
@takeutch-kemeco
takeutch-kemeco / README
Last active August 29, 2015 13:57
osecpu078d-gcc4.8.x.patch
GCC-4.7.x と GCC-4.8.x とでは、後置インクリメントの際のインクリメント実行タイミングが異なるので、
この実行タイミングに暗黙に依存したコードでは動作に違いが生じてしまう場合があるようです。
具体的には以下のようなコードの場合に違いが生じるようです:
int a[] = {10, 11, 12};
int *p = a;
*p++ = p[1];
GCC-4.7.x では結果は a[] = {11, 11, 12} となりました。
@takeutch-kemeco
takeutch-kemeco / 00-osecpu-driver-linux-fbdev-x86-32bit.README
Last active August 29, 2015 13:57
osecpu-driver-linux-fbdev-x86-32bit.c
Version 2014-03-31
osecpu-driver-linux-fbdev-x86-32bit.c は、osecpu の linux ドライバーです。
これは X11 を用いずに(GUI環境を用いずに)、起動直後のターミナル環境(昔のDOSのような環境)のみで osecpu を動作させるためのドライバーとなります。
(このドライバーを、実際に osecpu078d/osecpu.c へ組み込んだ、サンプルコードは osecpu078d-linux-fbdev.c です。
また、Ubuntu13.10 など GCC4.8.x でビルドした場合に動作しなかったバグの修正も行ってあります。
なお、現状のOsecpuが対応してるCPUは x86-32bit のみです。64bit環境では動作しないはずです。
(32bit/64bit のマルチライブラリー環境の場合ならば GCC へのビルドオプションとして -m32 を追加することで