作者: dulllou 時間: 2009-6-8 00:18 標題: Arduino POV (視覺暫留) 小玩具 (照舊, 有圖有 Code)
其實呢樣小玩具好多地方都有得賣, 而且亦一d 都唔貴, 只係幾粒 LED 晌高速搖擺時用視覺暫留的視覺效果. 整出來純粹 proof of concept.
下面的 Code 只可以 display 到 A-Z 26 個字母同 Space (空格), 不過如果有需要加o既其實都唔難, 你亦可以焊多幾粒 LED 來顯示中文甚至圖案
整的時候我建議條連接線整長少少, 揮起來比較就手
再唔係就索性連電池連 LED 連 arduino mount 起佢後裝上個電池批/磨機上轉轉轉 (不過要注意安全, 裝得平穩同平衡, 否則會出現飛天 Arduino 現象...)
效果如下, 我係用人手揮的, 所以d 字有d 變型....
好簡單的設計, 五粒LED
背面, 我懶到連熱膠槍都唔開, 就咁剪一小舊熱膠出來用火機燒一燒痴落去就算
[ 本帖最後由 dulllou 於 2009-6-8 00:43 編輯 ]
https://www.hkepc.com/forum/attachment.php?aid=866707&k=081118e4e03b8866aae10b53ea4ea7d1&t=1781509705&sid=z4lbIGQOlg

https://www.hkepc.com/forum/attachment.php?aid=866709&k=510eaaccf9737ea4905703c79486108e&t=1781509705&sid=z4lbIGQOlg

https://www.hkepc.com/forum/attachment.php?aid=866711&k=9c511315aa554f5489a01c7ef3ee9780&t=1781509705&sid=z4lbIGQOlg

https://www.hkepc.com/forum/attachment.php?aid=866729&k=7246e3b9b46bef3e1c1fc3aab95df32b&t=1781509705&sid=z4lbIGQOlg

https://www.hkepc.com/forum/attachment.php?aid=866737&k=6811743deef2e1a4a7e8580418282fcf&t=1781509705&sid=z4lbIGQOlg

作者: dulllou 時間: 2009-6-8 00:18
Code 亦都好簡單, 主要係 define 左每個字母點顯示就已經可以
如果有心機o既, 可以輕易 base on 呢個 code, 焊多幾粒 LED 就可以整中文字型玩
不過俾人催緊我訓, 所以就整住咁多先
int _[] = {0,0,0,0,0, 0,0,0,0,0, 0,0,0,0,0};
int A[] = {0,1,1,1,1, 1,0,1,0,0, 0,1,1,1,1};
int B[] = {1,1,1,1,1, 1,0,1,0,1, 0,1,0,1,0};
int C[] = {0,1,1,1,0, 1,0,0,0,1, 1,0,0,0,1};
int D[] = {1,1,1,1,1, 1,0,0,0,1, 0,1,1,1,0};
int E[] = {1,1,1,1,1, 1,0,1,0,1, 1,0,1,0,1};
int F[] = {1,1,1,1,1, 1,0,1,0,0, 1,0,1,0,0};
int G[] = {0,1,1,1,0, 1,0,1,0,1, 0,0,1,1,0};
int H[] = {1,1,1,1,1, 0,0,1,0,0, 1,1,1,1,1};
int I[] = {0,0,0,0,1, 1,0,1,1,1, 0,0,0,0,1};
int J[] = {1,0,0,0,0, 1,0,0,0,1, 1,1,1,1,1};
int K[] = {1,1,1,1,1, 0,0,1,0,0, 0,1,0,1,1};
int L[] = {1,1,1,1,1, 0,0,0,0,1, 0,0,0,0,1};
int M[] = {1,1,1,1,1, 0,1,1,0,0, 0,1,1,1,1};
int N[] = {1,1,1,1,1, 1,0,0,0,0, 0,1,1,1,1};
int O[] = {0,1,1,1,0, 1,0,0,0,1, 0,1,1,1,0};
int P[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,0,0};
int Q[] = {0,1,1,1,1, 1,0,0,1,1, 0,1,1,1,1};
int R[] = {1,1,1,1,1, 1,0,1,0,0, 0,1,0,1,1};
int S[] = {0,1,0,0,1, 1,0,1,0,1, 1,0,0,1,0};
int T[] = {1,0,0,0,0, 1,1,1,1,1, 1,0,0,0,0};
int U[] = {1,1,1,1,1, 0,0,0,0,1, 1,1,1,1,1};
int V[] = {1,1,1,1,0, 0,0,0,0,1, 1,1,1,1,0};
int W[] = {1,1,1,1,0, 0,0,1,1,0, 1,1,1,1,0};
int X[] = {1,1,0,1,1, 0,0,1,0,0, 1,1,0,1,1};
int Y[] = {1,1,0,0,0, 0,0,1,0,0, 1,1,1,1,1};
int Z[] = {1,0,0,1,1, 1,0,1,0,1, 1,1,0,0,1};
int letterSpace;
int dotTime;
void setup()
{
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
letterSpace = 6;
dotTime = 3;
}
void printLetter(int letter[])
{
int y;
for (y=0; y<5; y++)
{
digitalWrite(y+2, letter[y]);
}
delay(dotTime);
for (y=0; y<5; y++)
{
digitalWrite(y+2, letter[y+5]);
}
delay(dotTime);
for (y=0; y<5; y++)
{
}
delay(dotTime);
for (y=0; y<5; y++)
{
digitalWrite(y+2, 0);
}
delay(letterSpace);
}
void loop()
{
printLetter(H);
printLetter(K);
printLetter(E);
printLetter(P);
printLetter(C);
printLetter(_);
}
[ 本帖最後由 dulllou 於 2009-6-8 01:35 編輯 ]
作者: dulllou 時間: 2009-6-8 00:46
晌整呢舊野o既時候, 忽然好想要一件 Arduino mini ...咁就可以唔駛有線駁住喇 :P
下星期會試下整件 RGB 同埋 LED 多d 的, 希望可以整到佢出到圖. 不過都要視乎我買唔買到 3mm 的 RGB 同74HC595...而家手上的 8MM 太大了 (所以用了 5mm 的 green)
作者: ray08 時間: 2009-6-8 00:54
提示: 作者被禁止或刪除 內容自動屏蔽
作者: dulllou 時間: 2009-6-8 00:56
原理.. 你可以幻想成呢個係一個 5*無限的 dot matrix, 會易明d
作者: Motti_sir 時間: 2009-6-8 01:02
ching~ 如果你move佢慢d
d字會唔會窄埋一齊?
作者: dulllou 時間: 2009-6-8 01:03
即係咁, 用個 A 字來做例子
A 字晌 dot matrix 上會 display 成咁樣的
1 2 3 4
a ●●
b ● ●
c ● ● ● ●
d ● ●
e ● ●
你要做o既野只係不停用 LED 閃以下4 組LED bcde (出第1 行) ac(出第2行) ac(出第3行) bcde(出第四行)
當你揮動佢o既時候, 因為視覺暫留o既關系, 你就會見到一個 A 字
作者: dulllou 時間: 2009-6-8 01:04
會. 但同時其實 timing 可以晌個 code 度改, 你加返長個 timing個字就會變返闊
作者: 風之小文 時間: 2009-6-8 01:23
勁呀!
係咪用8051做架?
作者: dulllou 時間: 2009-6-8 01:26
Arduino 咋
我邊會識用 8051 呢D 咁複雜o既野
作者: rutellor 時間: 2009-6-8 01:33
原帖由 dulllou 於 2009-6-8 01:03 發表
即係咁, 用個 A 字來做例子
A 字晌 dot matrix 上會 display 成咁樣的
1 2 3 4
a ●●
b ● ●
c ● ● ● ●
d ● ●
e ● ●
你要做o既野只係不停用 ...
有無一個program可以將要的字轉做code?
作者: Motti_sir 時間: 2009-6-8 01:37
同我估計o既一樣
唔記得係咪ching o既diy, o係youtube到見到o既片黎
佢整左個系統, 用cd-rom 個底盤黎到轉動幾粒led
o係固定位置, 佢會出指定文字
我估佢係get position 黎到control d led 幾時著邊粒,
轉快轉慢唔會令到隻字窄左
所以o係上面咁問ching
作者: dulllou 時間: 2009-6-8 01:38
冇架. 最簡單o既做法係搵d bitmap fonts (即係唔係 True type fonts o個d) zoom 到佢大大隻來睇住打, 唔係好難的
作者: dulllou 時間: 2009-6-8 01:41
原帖由 Motti_sir 於 2009-6-8 01:37 發表
同我估計o既一樣![]()
唔記得係咪ching o既diy, o係youtube到見到o既片黎
佢整左個系統, 用cd-rom 個底盤黎到轉動幾粒led
o係固定位置, 佢會出指定文字
我估佢係get position 黎到control d led 幾時著邊粒,
轉快轉慢唔會令到隻字窄左
所以o係上面咁問ching![]()
其實有好多人整 POV, 網上亦有好多 code 可以抄考
問題係佢o地多數都加 microswitch 甚至accelerometer 來計返個 postision, 所以快慢唔會影響到字型 (太慢最多d 字斷開一截截, 但都唔會變型)
我呢個簡陋好多, 單純係靠 try and error, 見d 字窄/闊左一係就 fing 返慢/快 d, 一係就改 code
作者: 風之小文 時間: 2009-6-8 01:44
咩黎架?
未聽過.......
可唔可以教我?
點燒program?
係別好似8051咁架?
作者: 風之小文 時間: 2009-6-8 01:46
有冇線路圖?
我想學做.........
作者: dulllou 時間: 2009-6-8 02:04
Arduino 的基本介紹
http://www.hkepc.com/forum/viewthread.php?tid=1229160
我用 Arduino 做過的小玩意s
http://www.hkepc.com/forum/viewt ... &extra=page%3D1
中毒的板友們在攪的團購
http://www.hkepc.com/forum/viewt ... page%3D1&page=1
Arduino 官網
http://arduino.cc
作者: dulllou 時間: 2009-6-8 02:07
唔駛線路圖的, 你睇返我份 code, 就知道只需要將 5 粒 LED o既正極分別駁去 Arduino o既 2, 3, 4, 5, 6 號插位 (記得加電阻), 再將全部 LED o既負極駁晒入 ground 就做到
作者: 風之小文 時間: 2009-6-8 03:04
我想問個人o係香港
o係陶寶買野點比錢?
作者: jackli 時間: 2009-6-8 07:19
http://service.taobao.com/support/help.htm
買家入門
作者: jackli 時間: 2009-6-8 07:20
原帖由 dulllou 於 2009-6-8 00:46 發表
晌整呢舊野o既時候, 忽然好想要一件 Arduino mini ...咁就可以唔駛有線駁住喇 :P
下星期會試下整件 RGB 同埋 LED 多d 的, 希望可以整到佢出到圖. 不過都要視乎我買唔買到 3mm 的 RGB 同74HC595...而家手上的 8MM 太大了 (所以用了 5mm 的 green)
快D入返件mini 啦
你可以試用4pin 的變色led 黎整依個
D code 都成18xx 個字喇喎,.,.,,
用16K的168好似做唔到
[ 本帖最後由 jackli 於 2009-6-8 09:02 編輯 ]
作者: dulllou 時間: 2009-6-8 09:39
原帖由 jackli 於 2009-6-8 07:20 發表
快D入返件mini 啦![]()
![]()
你可以試用4pin 的變色led 黎整依個![]()
![]()
D code 都成18xx 個字喇喎,.,.,,
用16K的168好似做唔到![]()
already ordered nano and mega lu
will receive them before u guys start the buying group :p
and the code can surly fit in 168 (i'm uing 168), 18xx char =1.8k only
[ 本帖最後由 dulllou 於 2009-6-8 09:41 編輯 ]
作者: jackli 時間: 2009-6-8 09:50
原帖由 dulllou 於 2009-6-8 09:39 發表
already ordered nano and mega lu
will receive them before u guys start the buying group :p
and the code can surly fit in 168 (i'm uing 168), 18xx char =1.8k only
係喎...,睇錯
唔係18,000K
作者: VR2VDT 時間: 2009-6-8 10:42
原帖由 dulllou 於 2009-6-8 00:46 發表
晌整呢舊野o既時候, 忽然好想要一件 Arduino mini ...咁就可以唔駛有線駁住喇 :P
下星期會試下整件 RGB 同埋 LED 多d 的, 希望可以整到佢出到圖. 不過都要視乎我買唔買到 3mm 的 RGB 同74HC595...而家手上的 8MM 太大了 (所以用了 5mm 的 green)
用TLC5940可以有PWM輸岀,可以參考這個
http://www.arduino.cc/playground/Learning/TLC5940
http://students.washington.edu/acleone/codes/tlc5940arduino/
作者: 風之小文 時間: 2009-6-9 00:03
原帖由 VR2VDT 於 2009-6-8 10:42 發表
用TLC5940可以有PWM輸岀,可以參考這個
http://www.arduino.cc/playground/Learning/TLC5940
http://students.washington.edu/acleone/codes/tlc5940arduino/
what is "PWM"???
作者: qazwsxedcrfv000 時間: 2009-6-9 00:04
POV真係經典
作者: VR2VDT 時間: 2009-6-9 00:23
what is "PWM"???![]()
![]()
PWM - Pulse-Width Modulation
http://en.wikipedia.org/wiki/Pulse-width_modulation
作者: dulllou 時間: 2009-6-9 00:27
簡單d 講, 即係用高速cut 電開電 cut 電開電來用 digital 訊號扮 analog 訊號
arduino 原本只有 0v (LOW) 同 5v (HIGH) 2 種output, PWM 就係用唔同長短o既去開關令個平均o既電壓高於 0V 又低於 5V
作者: 風之小文 時間: 2009-6-9 00:35
原帖由 dulllou 於 2009-6-9 00:27 發表
簡單d 講, 即係用高速cut 電開電 cut 電開電來用 digital 訊號扮 analog 訊號
arduino 原本只有 0v (LOW) 同 5v (HIGH) 2 種output, PWM 就係用唔同長短o既去開關令個平均o既電壓高於 0V 又低於 5V
哦~~~~~~即係做個pulse 出黎,用黎做個clock.......
Arduino唔可以用粒crystal 個pulse黎做咩?
好似8051咁...........
作者: 風之小文 時間: 2009-6-9 00:46
可唔可以講解下..........
void printLetter(int letter[])
{
int y;
for (y=0; y<5; y++)
{
digitalWrite(y+2, letter[y]);
}
delay(dotTime);
for (y=0; y<5; y++)
{
digitalWrite(y+2, letter[y+5]);
}
delay(dotTime);
for (y=0; y<5; y++)
{
}
delay(dotTime);
for (y=0; y<5; y++)
{
digitalWrite(y+2, 0);
}
delay(letterSpace);
}
作者: dulllou 時間: 2009-6-9 00:46
原帖由 風之小文 於 2009-6-9 00:35 發表
哦~~~~~~即係做個pulse 出黎,用黎做個clock.......
Arduino唔可以用粒crystal 個pulse黎做咩?
好似8051咁...........
唔係. PWM 唔係用來做 clock 的. PWM 係用來模擬 analog output.
舉個例, 你 set 左 output pin 做 high, 咁接住 output pin o個粒 LED 就會俾 arduino o既 5V 整著啦. 但問題係有時你想用 arduino 控制粒 LED 暗 D, 但 arduino 只有 0 同 5v 輸出, 於是就用 PWM 喇. 比如話 30% pwm, 就晌一個 10 次開關o既 cycle 入便有 70% 時間 0V, 30% 時間 5V. 咁個輸出o既平均值就變左 1.5v, 同時粒 LED 亦都暗左喇
另外你提到 oscillator, Arduino係用 atmega 內置的oscillator 做timing 的
外面再加o個粒 16mhz crystal 係用來做 synchronize 的
作者: dulllou 時間: 2009-6-9 00:47
我建議你都係由淺入深, 先試下睇 Arduino IDE 入便的 example ( comment 好晒, 好易睇的), 了解多少少先返轉頭睇呢個略為複雜o既 code 啦
作者: 風之小文 時間: 2009-6-9 00:53
原帖由 dulllou 於 2009-6-9 00:46 發表
唔係. PWM 唔係用來做 clock 的. PWM 係用來模擬 analog output.
舉個例, 你 set 左 output pin 做 high, 咁接住 output pin o個粒 LED 就會俾 arduino o既 5V 整著啦. 但問題係有時你想用 arduino 控制粒 LED ...
點control 個PWM出幾多v???
原帖由 dulllou 於 2009-6-9 00:47 發表
我建議你都係由淺入深, 先試下睇 Arduino IDE 入便的 example ( comment 好晒, 好易睇的), 了解多少少先返轉頭睇呢個略為複雜o既 code 啦
Arduino IDE o係邊?
作者: dulllou 時間: 2009-6-9 01:04
1. 改變 output LOW/HIGH 的時間. 一個 cycle 入便多 d high 少 D low 個平均 voltage 咪高D, 少d high 多d low 個平均 voltage 咪低 D
2. 去 http://arduino.cc download
作者: 風之小文 時間: 2009-6-9 01:11
Arduino IDE係乜?
sorry,咁多蠢問題...............
作者: dulllou 時間: 2009-6-9 01:19
Arduino IDE (Integrated development environment, 綜合開發環境....怪中文...) 係俾你晌上便寫 program o既地方, 寫好左佢會同你 debug, compile 同 flash 入 arduino
作者: wingyat92 時間: 2009-6-9 01:42
呢D有美觀
上次見人係黃金申左隻手埋把呢種有字GA風扇度
作者: 風之小文 時間: 2009-6-9 02:20
咁咪斬手指戒賭.......:funk: :funk: :funk: :funk:
作者: 風之小文 時間: 2009-6-9 02:23
原帖由 dulllou 於 2009-6-9 01:19 發表
Arduino IDE (Integrated development environment, 綜合開發環境....怪中文...) 係俾你晌上便寫 program o既地方, 寫好左佢會同你 debug, compile 同 flash 入 arduino
即係設計平台(可以咁講吧......)
未有Arduino 都用到?
作者: 3kiu 時間: 2009-6-9 02:27
等小弟試下解釋- -(其實係睇下自己理解得岩唔岩)
for (y=0; y<5; y++)
//整第一行(每一個字set左有三行)既字出黎,y<5因為有5粒led,loop 5次,
{digitalWrite(y+2, letter[y]);}
//y+2係控制第幾粒led(pin位),letter[y]係睇返個字著唔著
/*eg: 當y=0,會控制0+2=2,睇返
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
係第1粒既,
letter[0],姐係H[0],再睇返int H[] = {1,1,1,1,1, 0,0,1,0,0, 1,1,1,1,1};,H[0]=1,姐係著既.
*/
delay(dotTime);
//利用delay時間整一個行與行之間的空隙(?)
有錯請指點
作者: jackli 時間: 2009-6-9 07:39
無arduino, compile左都無用,., 無得FLASH ROM,.,.無得玩
作者: dulllou 時間: 2009-6-9 20:12
開出來, 睇下人d code 都好的
作者: Sora 時間: 2009-7-15 22:25
dulllou兄,我整左個有16個led ge同款玩具,
唔知你有無工具可以將bmp轉做hex code比佢用呢
作者: dulllou 時間: 2009-7-15 22:52
google 一下, 超級多啊
如呢個 : http://www.freewarepalm.com/utilities/bmp2hex.shtml
作者: minglo04 時間: 2009-7-15 22:54
有無諗過成套野放轉台上面?
我之前都整左個... 想上轉台
不過唔知點搞好
作者: 燕飛 時間: 2009-7-15 22:55
dullou 兄 我諗你個PWM 概念有d 問題
PWM係only 控制Duty cycle
Voltage 都係咁多
[ 本帖最後由 燕飛 於 2009-7-15 22:55 編輯 ]
作者: Sora 時間: 2009-7-15 23:02
原帖由 dulllou 於 2009-7-15 22:52 發表
google 一下, 超級多啊
如呢個 : http://www.freewarepalm.com/utilities/bmp2hex.shtml
其實我有google,只係同想要ge野有出入……
可能要自己寫>0<
但我又未學GUI
作者: dulllou 時間: 2009-7-15 23:17
我都係講 "平均電壓" o者
不過都多謝提醒~
作者: dulllou 時間: 2009-7-15 23:19
最難係平衡. 唔平衡的話, 一邊輕一邊重, 轉起上來會好震甚至陷包散
一係就要個轉轉平台重過晒電池+mcu+led+電線 (如裝晌車轆/單車轆上)
作者: minglo04 時間: 2009-7-16 08:17
原帖由 dulllou 於 2009-7-15 23:19 發表
最難係平衡. 唔平衡的話, 一邊輕一邊重, 轉起上來會好震甚至陷包散![]()
一係就要個轉轉平台重過晒電池+mcu+led+電線 (如裝晌車轆/單車轆上)
我兩邊都有LED黎做平衡
加多兩粒 NPN 做控制
最難電池點放
打算放風扇上面
成個平台勁重好難轉


