2015年6月29日 星期一
國中理化有教過 反應速率/表面積
就國中理化的練習題..就可以說明 其實 反應速率與表面積 是大家都學過的.
比如說 烤肉時 要把木炭打碎 會比較快燃燒.這樣的概念都是有的.
不過當 要燃燒的目標變成 生活中不會被拿來當材燒的品項時.可能就會很沒感覺了
奶粉,麵粉,玉米粉….
兩年前的新聞也有理化老師出來示範.https://youtu.be/wcrqRWfLb4o
讓我們來看一下Wiki:
https://zh.wikipedia.org/wiki/%E7%B2%89%E5%B0%98%E7%88%86%E7%82%B8
粉塵爆炸(英語:Dust explosion)指懸浮在封閉空間中的可燃粉塵顆粒快速燃燒。煤塵爆炸是地下煤礦的常見危險。但如果在封閉環境中,可燃顆粒在大氣或是氧分子等其他合適的氣體介質中分散濃度足夠高,粉塵爆炸就有可能出現。
火源並不都是明火,2005年德國有一半以上的粉塵爆炸沒有火源。常見火源包括[2]:
就已發生的悲劇.八仙樂園 color party的爆炸案來反省.
假設我如在現場,應該也是在發生爆炸時才會意識到這是粉塵爆炸.但爆炸後要如何保護自己.
看來是來不及Goolge了.
也就是說,其實知識是具備的.但如果知識只是應用在對付考試,而保留在書本上.
當不肖商人設計出好玩但有潛在危險的活動時,有讀過書受過教育的人們,能有多大的警覺性去察覺危險的存在呢?
有粉.可能會有爆炸可能.但要有火源
火源直覺是看得到火光的才叫火源…但看得到的叫明火.常出問題的不是明火…直覺靠得住嗎?
好可怕的聯想.希望未來我的孩子,能夠有足夠敏銳的觀察力,不會成為某個事件的受傷名單內.
不只是火啊,法國也發生泥漿路跑後千人病倒 恐因混入動物糞便感染.
書要念,知識要有.要當作常識.這樣才不會重蹈他人的悲劇.
2015年6月6日 星期六
My MotoRun Project
影片:https://instagram.com/p/4AfK-uRKzy/?taken-by=yaowen1978
需要搭配Grove Pi的RBG背光LED字幕.
#!/usr/bin/python import RPi.GPIO as GPIO import time import subprocess import pygame from grovepi import * from grove_rgb_lcd import * # Use physical pin numbers GPIO.setmode(GPIO.BOARD) # Set up header 6 GPIO pin as an input PinIN1 = 31 # GPIO6 as IN1 PinIN2 = 33 # GPIO13 as IN2 PinIN3 = 35 # GPIO19 as IN3 PinIN4 = 37 # GPIO26 as IN4 GPIO.setup(PinIN1, GPIO.OUT) GPIO.setup(PinIN2, GPIO.OUT) GPIO.setup(PinIN3, GPIO.OUT) GPIO.setup(PinIN4, GPIO.OUT) # Connect the Grove Button to digital port D3 #button = 4 #grovepi.pinMode(button,"INPUT") def CallWamoPRO(): subprocess.call('bluez-test-input connect 00:17:02:01:1E:74 yes') subprocess.call('bluez-test-device trusted 00:17:02:01:1E:74 yes') def InitialMoto(): GPIO.output(PinIN1, False) GPIO.output(PinIN2, False) GPIO.output(PinIN3, False) GPIO.output(PinIN4, False) def TurnRight(): GPIO.output(PinIN1, False) GPIO.output(PinIN2, True) GPIO.output(PinIN3, False) GPIO.output(PinIN4, True) def TurnLeft(): GPIO.output(PinIN1, True) GPIO.output(PinIN2, False) GPIO.output(PinIN3, True) GPIO.output(PinIN4, False) def Backward(): GPIO.output(PinIN1, False) GPIO.output(PinIN2, True) GPIO.output(PinIN3, True) GPIO.output(PinIN4, False) def Fordward(): GPIO.output(PinIN1, True) GPIO.output(PinIN2, False) GPIO.output(PinIN3, False) GPIO.output(PinIN4, True) def StopMoving(): GPIO.output(PinIN1, False) GPIO.output(PinIN2, False) GPIO.output(PinIN3, False) GPIO.output(PinIN4, False) pygame.init() Wamo = pygame.joystick.Joystick(0) Wamo.init() print('Start Moto') setText("Start Moto\nHello World") setRGB(0,128,0) InitialMoto() while True: pygame.event.pump() # if grovepi.digitalRead(button) == 0: # CallWamoPRO() if Wamo.get_axis(1) > 0: # Backward Backward() setText("Backward\nR!R!R!") setRGB(255,0,0) if Wamo.get_axis(1) < 0: # Fordward Fordward() setText("Fordward\nGo!Go!Go!") setRGB(0,255,0) if Wamo.get_axis(0) > 0: # Turn Right TurnRight() setText("Turn Right\n>>>>>>>") setRGB(0,0,255) if Wamo.get_axis(0) < 0: # Turn Left TurnLeft() setText("Turn Left\n><<<<<<<") setRGB(255,255,255) if Wamo.get_axis(0) == 0 and Wamo.get_axis(1) == 0:# StopMoving StopMoving() setText("Park\n>P!P!P!P!") setRGB(0,0,0) subprocess.call("clear") GPIO.cleanup()
2015年6月4日 星期四
L298N的定義規劃.
最後挑選的車身是 雙輪 拋棄Wall.E了,只因為Cost.
由照片來看.該產品的DEMO有使用樹莓派加上一組電機控制器,但一口氣吃掉26Pin.
還是使用一組L298N. 只要花掉4Pin就好.只要規劃先將 初始,前進,後退,轉彎,停止的規劃定義好
如對應藍芽手把的類比頭可以先設定為
Fordward : Y+ > 0
Backward: Y- < 0
TurnLeft: X- < 0
TurnRight: X+ > 0
如針對L298N定義的話
初始,前進,後退,轉彎,停止的定義大致搞定如下
# OUT1/OUT2 for Right Wheel
# OUT3/OUT4 for Left Wheel
Initial:
ENA = 1;ENB = 1;IN1 = 0;IN2 = 0;IN3 = 0;IN4 = 0
Fordward: # Y+ > 0
ENA = 1;ENB = 1;IN1 = 0;IN2 = 1;IN3 = 0;IN4 = 1
Backward: # Y- < 0
ENA = 1;ENB = 1;IN1 = 0;IN2 = 1;IN3 = 0;IN4 = 1
TurnLeft: # X- < 0
ENA = 1;ENB = 1;IN1 = 0;IN2 = 1;IN3 = 1;IN4 = 0
TurnRight: # X+ > 0
ENA = 1;ENB = 1;IN1 = 1;IN2 = 0;IN3 = 0;IN4 = 1
StopMoving: # Y+ = 0 ,Y- = 0 ,X- = 0 ,X+ = 0
ENA = 1;ENB = 1;IN1 = 0;IN2 = 0;IN3 = 0;IN4 = 0
現在可以開始規劃藍芽手把的類比搖桿去控制GPIO了,以下假設使用PS3藍芽手把連線上RPi2
但實際上的行動方向 應該會有出問題,因為接線的方式可能會造成左右 前後顛倒.
由照片來看.該產品的DEMO有使用樹莓派加上一組電機控制器,但一口氣吃掉26Pin.
還是使用一組L298N. 只要花掉4Pin就好.只要規劃先將 初始,前進,後退,轉彎,停止的規劃定義好
如對應藍芽手把的類比頭可以先設定為
Fordward : Y+ > 0
Backward: Y- < 0
TurnLeft: X- < 0
TurnRight: X+ > 0
如針對L298N定義的話
ENA | IN1 | IN2 | OUT1 | OUT2 | 馬達狀態 |
( ENB ) | ( IN3 ) | ( IN4 ) | ( OUT3 ) | ( OUT4 ) | |
0 | X | X | X | X | 無動力停止 |
1 | 0 | 0 | 快速煞車 | ||
1 | 0 | 1 | 0 | 1 | 正轉 |
1 | 1 | 0 | 1 | 0 | 反轉 |
1 | 1 | 1 | 快速煞車 |
初始,前進,後退,轉彎,停止的定義大致搞定如下
# OUT1/OUT2 for Right Wheel
# OUT3/OUT4 for Left Wheel
Initial:
ENA = 1;ENB = 1;IN1 = 0;IN2 = 0;IN3 = 0;IN4 = 0
Fordward: # Y+ > 0
ENA = 1;ENB = 1;IN1 = 0;IN2 = 1;IN3 = 0;IN4 = 1
Backward: # Y- < 0
ENA = 1;ENB = 1;IN1 = 0;IN2 = 1;IN3 = 0;IN4 = 1
TurnLeft: # X- < 0
ENA = 1;ENB = 1;IN1 = 0;IN2 = 1;IN3 = 1;IN4 = 0
TurnRight: # X+ > 0
ENA = 1;ENB = 1;IN1 = 1;IN2 = 0;IN3 = 0;IN4 = 1
StopMoving: # Y+ = 0 ,Y- = 0 ,X- = 0 ,X+ = 0
ENA = 1;ENB = 1;IN1 = 0;IN2 = 0;IN3 = 0;IN4 = 0
現在可以開始規劃藍芽手把的類比搖桿去控制GPIO了,以下假設使用PS3藍芽手把連線上RPi2
但實際上的行動方向 應該會有出問題,因為接線的方式可能會造成左右 前後顛倒.
#!/usr/bin/python import RPi.GPIO as GPIO import time import subprocess import pygame # Use physical pin numbers GPIO.setmode(GPIO.BOARD) # Set up header 6 GPIO pin as an input #PinENA = 36 # GPIO16 as ENA #PinENB = 38 # GPIO20 as ENB PinIN1 = 31 # GPIO6 as IN1 PinIN2 = 33 # GPIO13 as IN2 PinIN3 = 35 # GPIO19 as IN3 PinIN4 = 37 # GPIO26 as IN4 #GPIO.setup(PinENA, GPIO.OUT) #GPIO.setup(PinENB, GPIO.OUT) GPIO.setup(PinIN1, GPIO.OUT) GPIO.setup(PinIN2, GPIO.OUT) GPIO.setup(PinIN3, GPIO.OUT) GPIO.setup(PinIN4, GPIO.OUT) def InitialMoto(): # GPIO.output(PinENA, True) # GPIO.output(PinENB, True) GPIO.output(PinIN1, False) GPIO.output(PinIN2, False) GPIO.output(PinIN3, False) GPIO.output(PinIN4, False) def Fordward(): # GPIO.output(PinENA, True) # GPIO.output(PinENB, True) GPIO.output(PinIN1, False) GPIO.output(PinIN2, True) GPIO.output(PinIN3, False) GPIO.output(PinIN4, True) def Backward(): # GPIO.output(PinENA, True) # GPIO.output(PinENB, True) GPIO.output(PinIN1, True) GPIO.output(PinIN2, False) GPIO.output(PinIN3, True) GPIO.output(PinIN4, False) def TurnLeft(): # GPIO.output(PinENA, True) # GPIO.output(PinENB, True) GPIO.output(PinIN1, False) GPIO.output(PinIN2, True) GPIO.output(PinIN3, True) GPIO.output(PinIN4, False) def TurnRight(): # GPIO.output(PinENA, True) # GPIO.output(PinENB, True) GPIO.output(PinIN1, True) GPIO.output(PinIN2, False) GPIO.output(PinIN3, False) GPIO.output(PinIN4, True) def StopMoving(): # GPIO.output(PinENA, True) # GPIO.output(PinENB, True) GPIO.output(PinIN1, False) GPIO.output(PinIN2, False) GPIO.output(PinIN3, False) GPIO.output(PinIN4, False) pygame.init() ps3 = pygame.joystick.Joystick(0) ps3.init()0 print(“Start Moto") InitialMoto() while True: pygame.event.pump() # buttons = [ps3.get_button(0),ps3.get_button(1),ps3.get_button(2),ps3.get_button(3),ps3.get_button(4),ps3.get_button(5),ps3.get_button(6),ps3.get_button(7),ps3.get_button(8),ps3.get_button(9),ps3.get_button(10),ps3.get_button(11),ps3.get_button(12),ps3.get_button(13),ps3.get_button(14),ps3.get_button(15),ps3.get_button(16)] # axis = [ps3.get_axis(0),ps3.get_axis(1),ps3.get_axis(2),ps3.get_axis(3)] # print(buttons) # print(axis) if ps3.get_axis(0) < 0 # TurnLeft TurnLeft() if ps3.get_axis(0) > 0 # TurnRight TurnRight() if ps3.get_axis(1) > 0 # Fordward Fordward() if ps3.get_axis(1) < 0 # Backward Backward() if ps3.get_axis(0) = 0 & ps3.get_axis(1) == 0 # StopMoving StopMoving() subprocess.call("clear")
訂閱:
文章 (Atom)
2024東京迪士尼,愛與夢想的樂園行
疫情的關係, 很多年沒有出國旅遊了.這回計畫出遊日本.歷經磨難的挑選.最後勝出的行程是五福旅行社的"銀色雪東京五日-戲雪,和服體驗,迪士尼"這標題簡單的標註出此行的目的. 上回去東京是20年前了.可以參考一下過去 2004年的Blog紀錄 心中的願景是能看到前...
-
網路上真的可以找到很多想不到的資訊,光是靠Google搜尋圖片.就可以找到答案了. 汽車換下來音響主機,該如何處理,有了Pin Define後就可以開始規劃了. 首先是上網查類似的資訊…看來Toyota的Connector的相關位置都是一樣的.即便是不同的型號,或是廠商.因為下圖...
-
資料來源.以下文章為轉錄文章 http://tieba.baidu.com/p/3625474524 法國的愛好者整合的 recalboxOS是一個開源的作業系統。基於Linux發行版本,為RaspberryPI的ARM處理器進行了優化,集合多個街機和掌機家機模擬器。 rec...