การใช้งาน Voice Recorder Module ด้วยภาษา LOGO


DSC00806-2

 

คุณสมบัติ

– สามารถบันทึก , เล่น เสียง ผ่านทางปุ่ม Module ได้เลย โดยไม่ต้องเขียนโปรแกรม
– สามารถต่อ ลำโพง ผ่านทางแจ๊คเสียบขนาด 3.5 mm
– สามารถเขียนโปรแกรม ภาษา LOGO ควบคุมการ เล่นแท็กปัจจุบัน แท็กถัดไป แท็กก่อนหน้า และลบ ข้อมูลได้

 

ชุดคำสั่ง

play : เป็นคำสั่ง เล่นแท็กปัจจุบัน
fwd : เป็นคำสั่ง เลือกแท็กถัดไป (ยังไม่เล่น ถ้าจะเล่นต้องใช้คำสั่ง play)
bwd : เป็นคำสั่ง เลือกแท็กก่อนหน้า (ยังไม่เล่น ถ้าจะเล่นต้องใช้คำสั่ง play)
TRACK “n : เป็นคำสั่ง เลือกเล่นแท็ก n โดยที่ n เป็นตำแหน่งของแท็ก เช่น TRACK “2
EraseAll : เป็นคำสั่ง เคลียร์ข้อมูลใน Module ทั้งหมด เพื่อทำการบันทึกใหม่

* คำสั่ง fwd, bwd, TRACK “n จะเล่นเสียงก็ต่อเมื่อใช้คำสั่ง play เท่านั้น

 

ตัวอย่างการเขียนโปรแกรม

to main

  	Track 2 wait 5
	  play wait 5

end

;===========================================
;============= Voice function === ==============
;===========================================

to play
	wait 10
	i2c_start
	i2c_write(184)   ; address
	i2c_write(1)        ; CMD_SEND
	i2c_write(6)        ; PLAY
	i2c_stop
	wait 10

end

to fwd
	wait 5
	i2c_start
	i2c_write(184)  ; address
	i2c_write(1)        ; CMD_SEND
	i2c_write(9)        ; FWD
	i2c_stop
	wait 5

end

to bwd
	wait 5
	i2c_start
	i2c_write(184)    	; address
	i2c_write(1)    	; CMD_SEND
	i2c_write(18)        ; BWD
	i2c_stop
	wait 5
end

to TRACK "n
	wait 5
	make "num :n + 48
	i2c_start
	i2c_write(184)    	; address
	i2c_write(3)    	; CMD_TRACK
	i2c_write(:num)     ; TRACK
	i2c_stop
	wait 5

end

to Trackcount
	i2c_start
	i2c_write(184)    	; address
	i2c_write(1)    	; CMD_SEND
	i2c_write(15)        ; Track count
	i2c_stop

end

to EraseAll
	i2c_start
	i2c_write(184)    	; address
	i2c_write(1)    	; CMD_SEND
	i2c_write(12)        ; Erase all
	i2c_stop

end

;===========================================
;============= End Voice function ==============
;===========================================

โปรแกรมนี้ จะเล่น Track ที่ 2 ครั้งเดียว
จะเห็นว่า เมื่อมีการเลือก Track 2 แล้ว จะต้องมีการใช้คำสั่ง play เสมอ
**แก้เฉพาะโค้ดใน main คำสั่งจริงๆ มีแค่ 2 บรรทัดคือ Track “n และ play

 

to main
forever[
   if sensor1 < 500 [
        Track 4 wait 5
        play wait 5
   ]
   if sensor8 < 200 [
        Track 1 wait 5
        play wait 5
   ]
]
end

;===========================================
;============= Voice function === ==============
;===========================================
to play
	wait 10
	i2c_start
	i2c_write(184)   ; address
	i2c_write(1)        ; CMD_SEND
	i2c_write(6)        ; PLAY
	i2c_stop
	wait 10

end

to fwd
	wait 5
	i2c_start
	i2c_write(184)  ; address
	i2c_write(1)        ; CMD_SEND
	i2c_write(9)        ; FWD
	i2c_stop
	wait 5

end

to bwd
	wait 5
	i2c_start
	i2c_write(184)    	; address
	i2c_write(1)    	; CMD_SEND
	i2c_write(18)        ; BWD
	i2c_stop
	wait 5
end

to TRACK "n
	wait 5
	make "num :n + 48
	i2c_start
	i2c_write(184)    	; address
	i2c_write(3)    	; CMD_TRACK
	i2c_write(:num)     ; TRACK
	i2c_stop
	wait 5

end

to Trackcount
	i2c_start
	i2c_write(184)    	; address
	i2c_write(1)    	; CMD_SEND
	i2c_write(15)        ; Track count
	i2c_stop

end

to EraseAll
	i2c_start
	i2c_write(184)    	; address
	i2c_write(1)    	; CMD_SEND
	i2c_write(12)        ; Erase all
	i2c_stop

end

;===========================================
;============= End Voice function ==============
;===========================================

โปรแกรมนี้ ถ้า sensor 1 มีค่าน้อยกว่า 500 จะ เล่น Track ที่ 4
และ ถ้า sensor 8 มีค่าน้อยกว่า 100 จะเล่น Track ที่1

**แก้เฉพาะโค้ดใน main