JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

宙わたる教室

2024-12-21 13:53:57 | 科学と教育
 2024年10月8日から10回にわたって放映されたNHKのドラマ10「宙わたる教室」を見ました。ひさしぶりに良いドラマ、心にしみるドラマでした。

 定時制高校の生徒たちが、教師に導かれ科学部で火星のクレータの研究を行い、学会発表に臨むという実話を元にした青春物語です。物語の詳しい内容やレビューは他に譲り、自分なりの感想を書いてみます。

 定時制高校には、様々な生徒さんがいます。このドラマにも年齢も経歴も異なる生徒が登場します。金髪でたくさんの耳飾りをつけたやんちゃな柳田岳人(小林虎之介)、保健室登校を続ける名取佳純(伊東蒼)、フィリピン二世の越川アンジェラ(ガウ)、元工場経営者の長嶺省造(イッセー尾形)。そして理科教師の藤竹叶(窪田正孝)と養護教諭の佐久間理央(木村文乃)などなど。

 このドラマで感心したのは、キャスティングの良さもあるのですが、生徒役の表情がどんどん変わっていくことでした。藤竹先生と出会って科学(たぶんこれは科学でなくても良かったのでしょうが・・)の面白さに気づき仲間と活動するようになってくると表情が変わり目に光が宿るのです。演技・演出のすばらしさですね。特に柳田役の小林虎之介の演技はすばらしかったと思います。また、藤竹先生役の窪田正孝の感情を抑えた演技(一度だけ声を荒げる場面がありました)もすばらしかったと思います。

 ドラマをすべて見終わって感じたことがあります。人間にはそれぞれ持った能力(ポテンシャル)があるのですが、持っているだけではそのエネルギーは使われることはありません。しかし、エネルギーが流れるように障壁を崩してあげたり、ちょっとした溝を作ってあげるだけで、そのエネルギーは流れ出すのです。それをやってあげるのが教師の役目なのだと思いました。

 ドラマが終わって、原作を読んでみたくなり、さっそく購入しました。文芸春秋社刊、伊予原新著「宙わたる教室」です。帯をとってみると、大きな火星をバックにした定時制高校の校舎に明かりが灯り、窓に人影が見えます。これは藤竹先生かな。



 本を読み始めるとドラマが原作にほぼ忠実に作られたことが分かりました。読み進めるとドラマの各場面や登場人物の顔が浮かんできました。ここはあのシーンだな、ここをあんな風に演じたんだ、物語がよりリアルに感じられました。ドラマを見てから小説を読むというのもよいものですね。

 

 

MPLABアセンブラ PIC16F1827 PWMテスト

2024-12-03 07:36:08 | MPLAB アセンブラ
 MPLAB IDE v9.82, MPASM v5.51, PICKit3の環境で、PIC16F1827のPWMのテストをします。

 PIC16F1827でPWM信号を発生するのは、CCP(Capture/Compare/PWM)モジュールです。この品種では、ECCP1,ECCP2,CCP3,CCP4が利用できます。なお、EがつくCCPモジュールは機能が拡張されています。

 今回は、CCP3を使い、タイマーはTMR2を使ってテストします。回路図です。ICSPでプログラミングし、電源5VはPICKit3から供給します。PWM信号はRA3(PWM3)から出力します。


 PIC16F1827でのPWM発生のしくみは、私のホームページ(JH7UBCホームページ)のこちらのページで詳しく解説しています。

 今回テストとして、PWM3で周波数500HzのPWMを発生し、DutyCycleを変化させ、RA3に接続したLEDの明るさを周期的に変化させてみます。

 CCP3でPWMに設定するには、CCP3CONレジスタのbit3:bit2(CCP3M3:CCPM2)を11の設定します。他のbitは0でOKです。説明書では、下のようにCCPXCONとなっています。Xはモジュールの番号1,2,3,4です。

 つまり、CCP3CON=b'00001100'とします。

 次に、CCPTMRSレジスタで、CCP3でTMR2を使うという設定をします。
 bit5:bit4(C3TSEL1:C3TSEL0)を00とします。他のbitは適当でよいの、すべて0にします。

 つまり、CCPTMRS=b'00000000'とします。

 PWMの周波数(周期)とDuty比(DutyCycle)を設定するのはPR2レジスタの値とCCPR3L+CCP3CON<5:4>で、次のような式で計算されます。



 今回、PICのクロックは内蔵の4MHzとしますので、Tosc=1/4000000 (sec)で、TMR2のPrescaler値を16とすると500Hz(周期は1/500 (sec))を発生させるPR2の値は、
PR2=(Period/(4*Tosc*TMR2Prescale Value))-1=(1/500/(4*(1/4000000))*16)-1
  =4000000/(500*4*16) -1 =125-1=124
となります。
 Duty比は、一番下の式できまりますので、PR2=124のときは、CCPR3Lの値を0から125まで設定すれば0から100%のDuty比のPWM信号を発生することができます。

 プログラムです。DUTYの値をカウントアップするか、カウントダウンするかは、FLAGの値で決めます。10msごとにDUTYをカウントアップカウントダウンして、LEDの明るさを決めています。
-------------------------------------------------
;;;;;;;;;;;;;;;;;;;;;;;;;;
; PIC16F1827 PWM TEST
; 2024.12.3
; JH7UBC Keiji Hata
;;;;;;;;;;;;;;;;;;;;;;;;;;

              LIST      P=PIC16F1827
              INCLUDE           P16F1827.INC
              
              __CONFIG _CONFIG1, _FOSC_INTOSC & _WDTE_OFF & _PWRTE_OFF & _MCLRE_ON & _CP_OFF & _CPD_OFF & _BOREN_OFF & _CLKOUTEN_OFF & _IESO_OFF & _FCMEN_OFF
     __CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_OFF & _BORV_19 & _LVP_OFF
              
              ERRORLEVEL    -302

              CBLOCK             020h
              CNT1ms
              CNT10ms
              DUTY
              FLAG
              ENDC

SETUP
;クロック設定
              BANKSEL           OSCCON
              MOVLW              b'01101000'         ;PLLなし、4MHz,Fosc
              MOVWF              OSCCON

;入出力設定
              BANKSEL           ANSELA
              CLRF     ANSELA                            ;AN0-AN4使用しない
              CLRF     ANSELB                            ;AN5-AN11使用しない
              BANKSEL           TRISA
              CLRF     TRISA                 ;PORTAは全て出力(RA5は入力)
              CLRF     TRISB                 ;PORTBは全て出力

;PWM設定
              BANKSEL           CCP3CON
              MOVLW              b'00001100'         ;PWM mode
              MOVWF              CCP3CON
              BANKSEL           CCPTMRS
              MOVLW              b'00000000'         ;bit5-bit4=00,CCP3にTimer2を割り当てる
              MOVWF              CCPTMRS
              BANKSEL           PR2
              MOVLW              07Ch                    ;07Ch=124
              MOVWF              PR2                                   ;Timer2の周期を設定
              BANKSEL           T2CON
              MOVLW              b'00000110'
              MOVWF              T2CON               ;prescale 1:16 Timer2 start

;変数初期値
              BANKSEL           DUTY
              CLRF     DUTY
              MOVLW              01h
              MOVWF              FLAG

MAIN
              BANKSEL           DUTY
              MOVFW              FLAG
              XORLW 01h
              BTFSS   STATUS,Z           ;FLAG=1ならINCDUTYへ、FLAG=0ならDECDUTYへ
              GOTO   DECDUTY
              
INCDUTY
              MOVFW              DUTY
              SUBLW 07Ch                    ;W=124-W
              BTFSC   STATUS,Z           ;DUTY><124ならスキップ
              GOTO   FLAGCHG                        ;DUTY=124ならFLAGCHGへ
              INCF      DUTY                  ;DUTY=DUTY+1
              GOTO   SETDUTY
              
DECDUTY
              DECFSZ              DUTY                  ;DUTY=DUTY-1 DUTY=0になったらスキップ
              GOTO   SETDUTY
              
FLAGCHG          
              MOVFW              FLAG
              SUBLW 01h
              MOVWF              FLAG                   ;FLAG=1-FLAG
              GOTO   SETDUTY

SETDUTY
              BANKSEL           DUTY
              MOVFW              DUTY
              BANKSEL           CCPR3L
              MOVWF              CCPR3L
                            
              CALL     LOOP10ms
              GOTO   MAIN
              
LOOP10ms
              BANKSEL           CNT10ms
              MOVLW              0Ah                      ;0Ah=10
              MOVWF              CNT10ms
LOOP2
              CALL     LOOP1ms
              DECFSZ              CNT10ms
              GOTO   LOOP2
              RETURN             
              
LOOP1ms
              MOVLW              0F9h      ;0F9h=249
              MOVWF              CNT1ms
LOOP1
              NOP
              DECFSZ              CNT1ms,F
              GOTO   LOOP1
              RETURN
                            
              END
-------------------------------------------------
RA3から出力されたPWMの波形です。周期は約2ms(周波数は約500Hz)で、ヂューティ比が時間とともに変化します。



 ブレッドボードです。赤いLEDが明るくなったり暗くなったりします。左下の緑色のLEDは電源確認用です。




週末はFQP

2024-12-02 12:25:24 | アマチュア無線
 今週末の12月7日(土)9:00~21:00は、第16回FCWA CW QSOパーティ(略してFQP)です。福島CW愛好会(FCWA)主催のこのパーティは、早いもので今回で16回を迎えます。規約は、こちらをご覧ください。

 このパーティは、JA7SSB故齋藤さんが亡くなった2008年の翌年の2009年から齋藤さんの功績を記念するとともにCW交信の活性化を図るという目的で始まりました。開催当初から当局JH7UBCがコンテストマネージャーを務めさせていただいています。

 毎年、多くの局に参加いただき、賑やかにQSOパーティが行われ、昨年、一昨年は160局から180局ほどの局からログが提出されています。CW初心者からベテランまでいろいろなバンドでCW交信を楽しんでいただいております。

 QSOパーティと名乗っていますが、順位をつけ上位入賞局を表彰しますので、コンテストの要素も持っています。気軽に参加するもよし、頑張って上位入賞を目指すもよし、自分のスタイルでCW交信を楽しんでいただきたいと思います。

 では、当日お空でお会いしましょう。

 FCWA CW QSOパーティ マネージャー JH7UBC 畠 惠治