<はじめての python_cw5 >

python_cw4に続いて、ファイルを読み込んで書かれている文字をモール信号にします。



アルファベット26文字、数字10文字、記号などを関数にしていますのでプログラムが
長くなっています。

プログラム (<は半角にして下さい)
-------------------------------------------------------------------------------
import os
import sys

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)

key=18
GPIO.setup(key,GPIO.OUT,initial=GPIO.LOW)
sec=0.06

def tan():
    GPIO.output(key,GPIO.HIGH)
    time.sleep(sec)
    GPIO.output(key,GPIO.LOW)
    time.sleep(sec)
    return

def tyo():
    GPIO.output(key,GPIO.HIGH)
    time.sleep(sec*3)
    GPIO.output(key,GPIO.LOW)
    time.sleep(sec)
    return

def sp_m():
    time.sleep(sec*2)
    return

def sp_t():
    time.sleep(sec*6)
    return

# ***** 関数 A-Z *****
def A():
    tan()
    tyo()
    sp_m()
    return

def B():
    tyo()
    tan()
    tan()
    tan()
    sp_m()
    return

def b():
    tyo()
    tan()
    tan()
    tan()
    return

def C():
    tyo()
    tan()
    tyo()
    tan()
    sp_m()
    return

def D():
    tyo()
    tan()
    tan()
    sp_m()
    return
def E():
    tan()
    sp_m()
    return

def F():
    tan()
    tan()
    tyo()
    tan()
    sp_m()
    return

def G():
    tyo()
    tyo()
    tan()
    sp_m()
    return

def H():
    tan()
    tan()
    tan()
    tan()
    sp_m()
    return

def I():
    tan()
    tan()
    sp_m()
    return

def J():
    tan()
    tyo()
    tyo()
    tyo()
    sp_m()
    return

def K():
    tyo()
    tan()
    tyo()
    sp_m()
    return

def k():
    tyo()
    tan()
    tyo()
    return

def L():
    tan()
    tyo()
    tan()
    tan()
    sp_m()
    return

def M():
    tyo()
    tyo()
    sp_m()
    return

def N():
    tyo()
    tan()
    sp_m()
    return

def n():
    tyo()
    tan()
    return

def O():
    tyo()
    tyo()
    tyo()
    sp_m()
    return

def P():
    tan()
    tyo()
    tyo()
    tan()
    sp_m()
    return

def Q():
    tyo()
    tyo()
    tan()
    tyo()
    sp_m()
    return

def R():
    tan()
    tyo()
    tan()
    sp_m()
    return

def r():
    tan()
    tyo()
    tan()
    return


def S():
    tan()
    tan()
    tan()
    sp_m()
    return
def s():
    tan()
    tan()
    tan()
    return

def T():
    tyo()
    sp_m()
    return

def U():
    tan()
    tan()
    tyo()
    sp_m()
    return

def V():
    tan()
    tan()
    tan()
    tyo()
    sp_m()
    return

def W():
    tan()
    tyo()
    tyo()
    sp_m()
    return

def X():
    tyo()
    tan()
    tan()
    tyo()
    sp_m()
    return

def Y():
    tyo()
    tan()
    tyo()
    tyo()
    sp_m()
    return

def Z():
    tyo()
    tyo()
    tan()
    tan()
    sp_m()
    return

# ***** 関数 1-0 *****
def _1():
    tan()
    tyo()
    tyo()
    tyo()
    tyo()
    sp_m()
    return

def _2():
    tan()
    tan()
    tyo()
    tyo()
    tyo()
    sp_m()
    return

def _3():
    tan()
    tan()
    tan()
    tyo()
    tyo()
    sp_m()
    return

def _4():
    tan()
    tan()
    tan()
    tan()
    tyo()
    sp_m()
    return

def _5():
    tan()
    tan()
    tan()
    tan()
    tan()
    sp_m()
    return

def _6():
    tyo()
    tan()
    tan()
    tan()
    tan()
    sp_m()
    return

def _7():
    tyo()
    tyo()
    tan()
    tan()
    tan()
    sp_m()
    return

def _8():
    tyo()
    tyo()
    tyo()
    tan()
    tan()
    sp_m()
    return

def _9():
    tyo()
    tyo()
    tyo()
    tyo()
    tan()
    sp_m()
    return

def _0():
    tyo()
    tyo()
    tyo()
    tyo()
    tyo()
    sp_m()
    return

# ***** 関数 記号、簡略文字(bk,sk,rn) *****
def _sura():
    tyo()
    tan()
    tan()
    tyo()
    tan()
    sp_m()
    return

def _qu():
    tan()
    tan()
    tyo()
    tyo()
    tan()
    tan()
    sp_m()
    return

def moji():
    if n_moji=="A":
        A()
    elif n_moji=="B":
        B()
    elif n_moji=="C":
        C()
    elif n_moji=="D":
        D()
    elif n_moji=="E":
        E()
    elif n_moji=="F":
        F()
    elif n_moji=="G":
        G()
    elif n_moji=="H":
        H()
    elif n_moji=="I":
        I()
    elif n_moji=="J":
        J()
    elif n_moji=="K":
        K()
    elif n_moji=="L":
        L()
    elif n_moji=="M":
        M()
    elif n_moji=="N":
        N()
    elif n_moji=="O":
        O()
    elif n_moji=="P":
        P()
    elif n_moji=="Q":
        Q()
    elif n_moji=="R":
        R()
    elif n_moji=="S":
        S()
    elif n_moji=="T":
        T()
    elif n_moji=="U":
        U()
    elif n_moji=="V":
        V()
    elif n_moji=="W":
        W()
    elif n_moji=="X":
        X()
    elif n_moji=="Y":
        Y()
    elif n_moji=="Z":
        Z()
    elif n_moji=="1":
        _1()
    elif n_moji=="2":
        _2()
    elif n_moji=="3":
        _3()
    elif n_moji=="4":
        _4()
    elif n_moji=="5":
        _5()
    elif n_moji=="6":
        _6()
    elif n_moji=="7":
        _7()
    elif n_moji=="8":
        _8()
    elif n_moji=="9":
        _9()
    elif n_moji=="0":
        _0()
    elif n_moji==" ":
        sp_t()
    elif n_moji=="b":
        b()
    elif n_moji=="k":
        k()
    elif n_moji=="n":
        n()
    elif n_moji=="r":
        r()
    elif n_moji=="/":
        _su()
    elif n_moji=="?":
        _qu()
    return

#-----------------main---------------------#

#cwmoji1.txtファイルの有無チェック
if os.path.exists("cwmoji1.txt"):
    print ("cwmoji1.txt確認しました")
else:
    print ("cwmoji1.txt確認出来ません、終了します")
    sys.exit()
    
#ファイルを開く
with open ("cwmoji1.txt",mode="r") as f:
    cwmoji=f.readline()

n_len=len(cwmoji)
print (cwmoji)
print ("文字数=" , n_len )

#モールス文字送信
cnt=0
while cnt < n_len:
    n_moji=cwmoji[cnt:cnt+1]
    print (n_moji , end="") #改行なしで表示
    moji()
    cnt=cnt+1
-------------------------------------------------------------------------------

右画像の結果になったでしょうか