PWM制御端子のあるクーリングファンで垂直風洞を作りました。JAXAの手作り風洞のパラメータを参考にして、ファンから少し離してハニカムの整流板を取り付けました。
https://www.yac-j.com/wp-content/themes/yac/pdf/labo/list/5.Experiment/5-8.pdf
翼付きの種子が風洞内で回転する様子を観察するための風洞なので、15cmの高さで風速が1/3、45cmの高さで風速が1/6になるように、開口を広げています。透明シートは100円ショップのB4サイズのカードケース(ハードタイプ)を使いました。

ファンは120mm角38mm厚で12V 2.1AのSanyo Denki America Inc.製の「9GV1212P1G01」(7500円程度)です。(1号機ではPC用で大風量のファンと言われている「CFY-12038PF」12V 0.45Aを使ったのですが、もっと風量が欲しかったので変更しました。)PWMは25kHzの0-5V信号が指定されていますが、ラズパイPicoの3.3Vパルスでも動いています。ハウジングとの固定にはM4長さ50mmを使いました。
電源は「VHBW 12V 5A ACアダプター 60W 5.5*2.5(2.1)mm AC100V-240V DC12V 電源アダプター 内極性[+] 0.1A~5A汎用 PSE認証」にしましたが、とりあえず問題なく使えています。
12V電源だけでPicoも動かしたいので、手元にあった3端子レギュレータNJU7223F33で3.3Vを作ります。Picoは互換機のWaveshare RP2040-Zeroよりも外部給電での使い方が便利で、VSYSに1.8Vから5.5Vを接続できます。可変抵抗を回してPWMのDutyを変更します。また、現在のPWM値を視覚的に表現するために4×4マトリクスLEDの状態を変化させます。LEDの制御はneopixelライブラリを使用しました。

12V電源 —– NJU7223F33
接続なし —– Pin1(Vout 3.3V)
12V —– Pin2(Vin)
GND —– Pin3(GND)
Pico
VSYS —– 3.3V
GP15(pin20) —– Fan PWM
GP16(pin21) —– LED DIN
GP26(pin31) —– 可変抵抗器Pin2
可変抵抗器
Pin1 —– 3.3V
Pin2 —– Pico GP26
Pin3 —–GND
フルカラーLED 4×4マトリクス
VDD —– 3.3V
DIN —– Pico GP16
GND —– GND
Fan
Red —– 12V
Black —– GND
Brown —– Pico GP15
プログラム pico_fanControlMax.py
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
from neopixel import Neopixel from machine import PWM, ADC, Pin from time import sleep pot = ADC(Pin(26)) #pot = ADC(0) Fan = PWM(machine.Pin(15, machine.Pin.OUT)) Fan.freq(25000) black = (0, 0, 0) m_0 = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0) m_1 = (0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0) m_2 = (0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0) m_3 = (0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0) m_4 = (0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0) m_5 = (0, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0) m_6 = (0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0) m_7 = (1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0) m_8 = (1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0) m_9 = (1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0) m_10 = (1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0) m_11 = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0) m_12 = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0) m_13 = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0) m_14 = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0) m_15 = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0) m_16 = (1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1) disp_num = (m_0, m_1, m_2, m_3, m_4, m_5, m_6, m_7, m_8, m_9, m_10, m_11, m_12, m_13, m_14, m_15, m_16) numpix = 16 din_pin = 16 np_value = 64 def disp_mat(number): mat_hue = int(65536/17) * number mat_color = strip.colorHSV(mat_hue, 255, np_value) num = disp_num[number] for i in range(numpix): if num[i] == 1: strip.set_pixel(i,mat_color) else: strip.set_pixel(i,black) strip.show() return strip = Neopixel(numpix, 0, din_pin, "GRB") strip.clear() strip.show() while True: pot_value = pot.read_u16() #0-65535 f_pwm= int(pot_value / 65535 * 100) if f_pwm <= 15 : f_pwm = 15 if f_pwm >= 90 : f_pwm = 90 flow = int(f_pwm * (65535/100) ) Fan.duty_u16(flow) disp_rank = int(f_pwm * (17/100)) if disp_rank >= 17 : disp_rank = 16 disp_mat(disp_rank) sleep(0.1) # print(pot_value) # print(f_pwm) # print(disp_rank) # sleep(1) |
PicoにはMicroPythonインタープリタをダウンロードし、ライブラリneopixel.pyと上記プログラム(pico_fanControlMax.py)をmain.pyという名前で保存します。







原画の0(黒)-255(白)を143(黒)-230(白)に変換しています。黒付近と白付近で傾きを変えているのは”飛びやすくて潰れやすい”性質を補正するためです。(実際の作業では白黒反転した後で、トーンカーブを適用しています。)このトーンカーブを調整すればもっときれいになるのではないかと思います。














BurrToolsでは基本が面心立方格子なので素直に形状を選んでいくと月見団子的な4角錐になります。
「正四面体パズルは三角形の底面に球を敷き詰めて、2段目は3個の球のくぼみに乗せていきます。3段目も同様にくぼみに乗せていきます。最終的に頂上に1個乗せて正四面体になります。ここで上の図を見ると四角錐の斜面が正三角形であることに気がつくと思います。この正三角形を正四面体パズルの底面とみなせばOKです。(文末参照/訂正箇所)」
傾けて配置する点にだけ注意すればスクエアキューブパズルで紹介したように問題を解くことができます。
スクエアキューブパズルと同じように正四面体パズルも組み方が多様で、数分で1万通りを越えましたが、全ての組み合わせを探し終わるまで500年ぐらいかかると書かれています。






“S6-Goal”は全てのピースを使った立方体を組み立て後の状態として登録したものです。X=4、Y=4、Z=4としました。左のスライダーでZを1から4まで切り替えながらグリッドを選択します。


スクエアキューブパズルはこんなにたくさんの組み合わせがあるので、難しいパズルが好きな人には向きませんが、気分転換にちょっと遊んでみたり、お互いに問題を出し合ったりして無限に楽しめるのですね。

















