สารบัญ:

ปืนลมโครโนกราฟ, โครโนสโคป. พิมพ์ 3 มิติ: 13 ขั้นตอน
ปืนลมโครโนกราฟ, โครโนสโคป. พิมพ์ 3 มิติ: 13 ขั้นตอน

วีดีโอ: ปืนลมโครโนกราฟ, โครโนสโคป. พิมพ์ 3 มิติ: 13 ขั้นตอน

วีดีโอ: ปืนลมโครโนกราฟ, โครโนสโคป. พิมพ์ 3 มิติ: 13 ขั้นตอน
วีดีโอ: #shorts #หินปูนเกาะหนามาก #scaling 2024, พฤศจิกายน
Anonim
Image
Image
ลักษณะเฉพาะ
ลักษณะเฉพาะ

สวัสดีทุกคน วันนี้เราจะมาทบทวนโปรเจ็ตที่ฉันทำในปี 2010 กันอีกครั้ง An Air Rifle Chronograph อุปกรณ์นี้จะบอกคุณความเร็วของกระสุนปืน เม็ดบีบีหรือลูกบอลพลาสติกบีบีแบบนิ่ม

ในปี 2010 ฉันซื้อปืนไรเฟิลเพื่อความสนุกสนาน ถูกตีกระป๋อง ขวด เล็ง ฉันรู้ว่าความเร็วของปืนนี้สูงสุด 500 ฟุต/วินาที เพราะมันเป็นกฎหมายของแคนาดา มีปืนยาวอัดลมที่แข็งแรงกว่าบางตัวให้บริการ แต่คุณต้องมีใบอนุญาตและคุณไม่สามารถซื้อของเหล่านั้นได้ที่ Walmart

ตอนนี้ฉันมีใบอนุญาตนี้แล้ว ฉันสามารถซื้อใบอื่นได้ แต่เรื่องสั้น ปืนกระบอกเดียวกันมีวางจำหน่ายในสหรัฐฯ ด้วยความเร็ว 1,000 ฟุต/วินาที อะไร!? ปืนเดียวกัน ? ใช่… ในแคนาดา สโตรกมีรูอยู่และสปริงจะนิ่มกว่า

สิ่งแรกที่ต้องทำคือเติมหลุมให้เต็ม นั่นคือสิ่งที่ฉันทำกับบัดกรี สิ่งต่อไปที่ต้องทำคือสั่งสปริงสำรอง แต่เดี๋ยวก่อน… ความเร็วปัจจุบันของของเล่นใหม่ของฉันเป็นเท่าไร ? สปริงจำเป็นจริงหรือ? ฉันไม่รู้และฉันต้องการรู้ ฉันต้องการทราบตอนนี้ แต่อย่างไร ?

นั่นเป็นเหตุผลที่ฉันทำโครงการนี้ ทั้งหมดที่ฉันต้องการคือเซ็นเซอร์ 2 ตัว uC และจอแสดงผล และเราอยู่ในธุรกิจ

เมื่อสัปดาห์ที่แล้ว ฉันเห็นโครโนกราฟสีน้ำเงินตัวเก่าบนหิ้งแล้วฉันก็คุยกับตัวเองว่า:"ทำไมไม่แชร์สิ่งนี้และสั่งสอนมันล่ะ" และอีกอย่าง เราสามารถเพิ่มความแม่นยาและเพิ่มตัวบ่งชี้แบตเตอรี่ได้ ใส่ 1 ปุ่มแทน 2 สำหรับเปิด/ปิด ติดบนพื้นผิวทั้งหมด ตอนนี้เราอยู่ใน 2020!

นั่นแหละ… มาเริ่มกันเลย!

ขั้นตอนที่ 1: คุณสมบัติ

-ความเร็วเม็ด

-ความเร็ว

วิ่ง -20 mhz ความแม่นยำสูง

-ปิดอัตโนมัติ

- แสดงแรงดันแบตเตอรี่

-แผนผังใช้ได้

-pcb ใช้ได้

-รายการอะไหล่ที่มีอยู่

-STL ใช้ได้

-C รหัสใช้ได้

ขั้นตอนที่ 2: ทฤษฎีการปฏิบัติงานและความแม่นยำ

- เรามี uC ทำงานที่ 20Mhz ออสซิลเลเตอร์ที่ใช้คือ TCX0 +-2.5 ppm

- เรามีเซ็นเซอร์ 2 ตัวที่ระยะห่างกัน 3 นิ้ว

- โพรเจกไทล์ชนกับเซ็นเซอร์ตัวแรก uC เริ่มนับ (ตัวจับเวลา1)

- โพรเจกไทล์ชนกับเซ็นเซอร์ตัวที่สอง uC หยุดนับ

-uC ตรวจสอบค่า timer1 ทำคณิตศาสตร์และแสดงความเร็วและความเร็ว

ฉันใช้ตัวจับเวลา 16 บิต 1 + ค่าสถานะโอเวอร์โฟลว์ tov1 รวม 17 บิตสำหรับ 131071 "tic" สำหรับการนับเต็ม

1/20 เมกะเฮิร์ตซ์ = 50 นาโนวินาที แต่ละ tic คือ 50ns

131071 x 50 ns = 6.55355 ms เพื่อทำ 3 นิ้ว

6.55355 ms x 4 = 26.21 ms สำหรับขนาด 12 นิ้ว

1/26.21 ms = 38.1472637 ฟุต/วินาที

นี่คือความเร็วที่ช้าที่สุดที่อุปกรณ์สามารถวัดได้

ทำไมต้อง 20 เมกะเฮิรตซ์ ? ทำไมไม่ใช้ภายใน 8 mhz หรือแม้แต่คริสตัล?

อุปกรณ์เครื่องแรกของฉันใช้ออสซิลเลเตอร์ภายใน ใช้งานได้ แต่อันนี้ไม่แม่นยำพอ การเปลี่ยนแปลงมีขนาดใหญ่เกินไป คริสตัลดีกว่าแต่อุณหภูมิจะแปรผันความถี่ เราไม่สามารถใช้เครื่องมือวัดที่แม่นยำได้ นอกจากนี้ ยิ่งความถี่สูง จะมีการนับ tic มากขึ้นด้วยความเร็วเท่ากัน การสุ่มตัวอย่างจะดีกว่าเพื่อให้มีความแม่นยำดีมาก เนื่องจาก Tic ไม่สามารถแบ่งได้ การสูญเสียจะน้อยหากรอบการทำงานรวดเร็ว

ที่ 20 MHz เรามีขั้นตอน 50 ns เรารู้หรือไม่ว่า 50 ns สำหรับโพรเจกไทล์ที่ 38 ฟุต/วินาทีนั้นแม่นยำแค่ไหน

38.1472637 ft/s หารด้วย 131071 = 0, 000291042 feet

0, 0003880569939956207 ฟุต x 12 = 0, 003492512 นิ้ว

1/0, 003492512 = 286.37 " กล่าวอีกนัยหนึ่ง ที่ 50 ft/s เรามีความแม่นยำ +- 1/286 " หรือ +- 0, 003492512 นิ้ว

แต่ถ้าออสซิลเลเตอร์ของฉันแย่ที่สุดและทำงานที่ 20 mhz +2.5 ppm ก็โอเค ? ลองหา…

2.5 ppm จาก 20 000 000 คือ: (20000000/100000) x 2.5 = 20000050 Hz

สถานการณ์กรณีที่เลวร้ายที่สุด เรามีนาฬิกาอีก 50 นาฬิกาบน 20 เมกะเฮิรตซ์ มันคือ 50 นาฬิกาใน 1 วินาที กี่ tic มากขึ้นบน timer1 ถ้าเม็ดทำความเร็วเท่ากัน (38.1472637 ฟุต/วินาทีหรือ 6.55ms) ?

1/20000050 = 49.999875 ns

49.999875 ns x 131071 = 6, 553533616 มิลลิวินาที

6, 553533616 ms x 4 = 26.21413446 ms

1/26.21413446 ms = 38.14735907 ฟุต/วินาที

เรามี 38.14735907 ฟุต/วินาที แทนที่จะเป็น 38.1472637 ฟุต/วินาที

ตอนนี้เรารู้แล้วว่า 2.5 ppm ไม่มีผลกับผลลัพธ์

นี่คือตัวอย่างบางส่วนของความเร็วที่แตกต่างกัน

สำหรับ 1,000 ฟุต/วินาที

1000 ฟุต/วินาที x 12 คือ 12000 นิ้ว/วินาที

1 วินาทีสำหรับ 12000" ทำ 3" กี่ครั้ง? 3x1/12000 = 250 วินาทีเรา

250 us / 50 ns = 5000 tic

Timer1 จะอยู่ที่ 5000

uC ทำการคำนวณและแสดง 1,000 ft/s จนถึงตอนนี้ดีมาก

สำหรับ 900 ฟุต/วินาที

900 ft/s คือ 10800 /s

3x1/10800 = 277.77 เรา

277, 77 ns / 50 ns = 5555, 5555 ติ๊ก

ตัวจับเวลา 1 จะอยู่ที่ 5555

uC ทำคณิตศาสตร์และ 900, 09 จะแสดงแทน 900

ทำไม ? เพราะตัวจับเวลา 1 อยู่ที่ 5555 และ 0, 5555 หายไป Tic on timer ไม่สามารถแบ่งได้

เรามีข้อผิดพลาดสำหรับ 0, 09 บน 900 ft/s

0, 09/900x100 = 0, 01% ข้อผิดพลาดเท่านั้น

สำหรับ 1500 ft/s1500 ft/s คือ 18000 /s 3x1/10800 = 166.66 us

166.66 เรา / 50 ns = 3333.333 tic ตัวจับเวลา 1 จะอยู่ที่ 3333

uC ทำคณิตศาสตร์และ 1500.15 จะแสดงแทน 1500 มันคือ.15/1500x100= 0, 01%

สำหรับ 9000 ฟุต/วินาที

9000 x 12 = 180000 นิ้ว / s

3x1/180000 = 27.7777 เรา

27.77 เรา / 50 ns = 555, 555

Timer1 จะอยู่ที่ 555 และ 4/(1/555x50ns) จะแสดง 9009, 00 จะแสดงขึ้น

ข้อผิดพลาดนี้คือ 9 ฟุต/วินาทีบน 9000 = 0, 1%

อย่างที่คุณเห็น % ข้อผิดพลาดเพิ่มขึ้นเมื่อความเร็วสูงขึ้น แต่อยู่ < 0.1%

ผลลัพธ์นั้นดีมาก

แต่ความแม่นยำไม่ใช่เชิงเส้น ที่ความเร็ว 10,000 ฟุต/วินาที เท่ากับ 0, 1 % ใหม่ที่ดีคือเราไม่เคยทดสอบเม็ดขนาด 10,000 ฟุต/วินาที

อีกอย่างที่ต้องจำไว้ เมื่อเกิดการขัดจังหวะ uC จะสิ้นสุดคำสั่งสุดท้ายก่อนเข้าสู่การขัดจังหวะเสมอ นี่เป็นเรื่องปกติและ uC ทั้งหมดทำเช่นนี้ หากคุณเขียนโค้ด Arduino ใน C หรือแม้แต่แอสเซมเบลอร์ ส่วนใหญ่คุณจะรอแบบวนซ้ำ…เพื่อรอ ปัญหาคือ เราวนรอบ 2 รอบ โดยปกติสิ่งนี้ไม่สำคัญ แต่ในกรณีของเรา ใช่ แต่ละ tic มีความสำคัญ มาดูการวนซ้ำอนันต์กัน:

ผู้ประกอบ:

ห่วง:

rjmp ลูป

ในค:

ในขณะที่ (1){}

ในความเป็นจริงคอมไพเลอร์ C ใช้คำสั่ง rjmp RJMP คือ 2 รอบ

นั่นหมายความว่า ถ้าอินเตอร์รัปต์เกิดขึ้นกับรอบแรก เราจะปล่อยหนึ่งรอบ(tic)(50ns)

วิธีแก้ไขของฉันคือเพิ่มคำสั่ง nop จำนวนมากในลูป NOP คือ 1 รอบ

ห่วง:

นพ

นพ

นพ

นพ

นพ

rjmp ลูป

หากเกิดการขัดจังหวะบนคำสั่ง nop เราโอเค ถ้ามันเกิดขึ้นในรอบที่สองของคำสั่ง rjmp เราก็โอเค แต่ถ้ามันเกิดขึ้นในรอบแรกของคำสั่ง rjmp เราจะสูญเสียหนึ่ง tic ใช่ มันแค่ 50 ns แต่อย่างที่คุณเห็นด้านบน 50 ns บน 3 นิ้วไม่ใช่อะไร เราไม่สามารถแก้ไขสิ่งนี้ได้ด้วยซอฟต์แวร์เพราะเราไม่รู้ว่าการขัดจังหวะเกิดขึ้นเมื่อใด นั่นเป็นเหตุผลที่คุณจะเห็นคำสั่ง nop จำนวนมากในโค้ด ตอนนี้ฉันค่อนข้างแน่ใจว่าการขัดจังหวะจะตกอยู่ที่คำสั่ง nop ถ้าฉันเพิ่ม 2,000 nop ฉันมี 0, 05% ที่จะตกอยู่ในคำสั่ง rjmp

อีกอย่างที่ต้องจำไว้ เมื่อเกิดการขัดจังหวะ คอมไพเลอร์ทำการผลักและดึงหลายครั้ง แต่ก็เป็นตัวเลขเดียวกันเสมอ ตอนนี้เราสามารถแก้ไขซอฟต์แวร์ได้แล้ว

เพื่อสรุปเกี่ยวกับเรื่องนี้:

ความแม่นยำสำหรับเม็ดเฉลี่ย 1,000 ฟุต/วินาที คือ 0, 01%

แม่นยำกว่า 1% ในตลาด 100 เท่า ความถี่สูงขึ้นและด้วย TCXO แม่นยำยิ่งขึ้น

ตัวอย่างเช่น 1% ของ 1,000 ft/s มากหรือน้อยกว่า 10 ft/s มันเป็นความแตกต่างอย่างมาก

ขั้นตอนที่ 3: แผนผังและรายการชิ้นส่วน

แผนผังและรายการชิ้นส่วน
แผนผังและรายการชิ้นส่วน

ที่นี่ฉันใช้วงจรเปิด / ปิดปุ่มเดียวของฉัน (ดูคำแนะนำล่าสุดของฉัน) วงจรนี้มีประโยชน์มากและทำงานได้ดีมาก

ฉันใช้ atmega328p อันนี้ถูกตั้งโปรแกรมใน C.

จอแสดงผลเป็นจอ LCD มาตรฐาน 2 บรรทัดที่รองรับ HD44780 ใช้โหมด 4 บิต

ตัวควบคุม 3.3v ใช้เพื่อจ่ายแรงดันไฟฟ้าให้กับ TCXO 20mhz

D1 ใช้สำหรับไฟหลังจอ LCD ไม่จำเป็น. แบตเตอรี่จะมีอายุการใช้งานยาวนานขึ้นหากคุณไม่ได้ติดตั้ง D1

ตัวต้านทานและแคปทั้งหมดเป็นแพ็คเกจ 0805

C1.1uf 25v

C2 1uf 16v

C3 2.2uf 10v

C4.1uf

C5.1uf

C6.1uf

C7 1uf

C8.1uf

C9.1uf

C10.1uf

D1 1n4148 SM SOT123

D2 5.1v SOT123

IC1 ATMEGA328p

IC2 MIC5225-5.0YM5-TR TPS70950DBVT SOT23-DBV

OSC1 TXETDCSANF-20.000000

R1 1M

R2 1M

R4 2.2k

R5 160

R6 160

R7 1M

R8 1M

U1 MIC5317-3.3 MIC5317 SOT23-5

U2 DMG6601LVT DMG6601LVT SOT23-6

จอแสดงผล LCD 2 บรรทัด HD44780 ไม่จำเป็นต้องซื้อโมดูล i2c

เซนเซอร์:

2x อีซีแอล OP140A

2x ตัวรับ OPL530

ตัวเข้ารหัส: PEC11R-4215K-S0024 *อย่าลืมเพิ่มตัวต้านทาน 4x 10k และ 2x.01uf เพื่อทำตัวกรองตัวเข้ารหัส ดูภาพด้านล่าง

ขั้นตอนที่ 4: ไฟล์ PCB Gerber

ไฟล์ PCB Gerber
ไฟล์ PCB Gerber
ไฟล์ PCB Gerber
ไฟล์ PCB Gerber
ไฟล์ PCB Gerber
ไฟล์ PCB Gerber
ไฟล์ PCB Gerber
ไฟล์ PCB Gerber

นี่คือไฟล์เกอร์เบอร์

ขั้นตอนที่ 5: ประสานPcb.ของคุณ

ประสาน Pcb ของคุณ
ประสาน Pcb ของคุณ
ประสาน Pcb ของคุณ
ประสาน Pcb ของคุณ
ประสาน Pcb ของคุณ
ประสาน Pcb ของคุณ

ด้วยความช่วยเหลือของแผนผัง ประสานส่วนประกอบทั้งหมดของคุณบน pcb แต่ละส่วนหรือเขียนบน pcb, r1, r2… และอื่นๆ

ฉันยังไม่ได้ติดตั้ง D1 นี่สำหรับไฟหลังจอ LCD สวยงาม แต่อายุการใช้งานแบตเตอรี่ได้รับผลกระทบ ดังนั้นฉันจึงเลือกที่จะปิดไฟหลังจอ LCD

ขั้นตอนที่ 6: การเขียนโปรแกรม Atmega328p

การเขียนโปรแกรม Atmega328p
การเขียนโปรแกรม Atmega328p

ตรวจสอบที่นี่ในขั้นตอนที่ 12 เพื่อตั้งโปรแกรม atmega328p ฉันให้ไฟล์.hex สำหรับสิ่งนี้

นี่คือโปรแกรม avrdude ที่พร้อมสำหรับโปรแกรมแบตช์ไฟล์ เพียงคลิกที่โปรแกรม usbasp.bat และติดตั้ง usbasp ของคุณอย่างถูกต้อง ทั้งหมดจะทำโดยอัตโนมัติรวมทั้งฟิวส์บิต

1drv.ms/u/s!AnKLPDy3pII_vXaGPIZKMXxaXDul?e…

ในโครงการนี้ฉันกำลังแชร์ซอร์สโค้ด C ด้วย โปรดทราบว่าโน้ตบางตัวอาจเป็นภาษาฝรั่งเศสได้https://1drv.ms/u/s!AnKLPDy3pII_vXUMXHdxajwGRFJx?e…

ขั้นตอนที่ 7: จอ LCD

จอ LCD
จอ LCD
จอ LCD
จอ LCD

ติดตั้งเทปและเชื่อมต่อ pcb และ lcd เข้าด้วยกัน

ขั้นตอนที่ 8: ไฟล์ STL

ไฟล์ STL
ไฟล์ STL
ไฟล์ STL
ไฟล์ STL
ไฟล์ STL
ไฟล์ STL

stl ไฟล์

1drv.ms/u/s!AnKLPDy3pII_vgezy0i0Aw3nD-xr?e…

จำเป็นต้องมีการรองรับสำหรับกล่องหุ้ม ท่อเซ็นเซอร์ และที่ยึดปืนไรเฟิล

ฉันพิมพ์ที่ความสูง.2 มม. ทั้งหมดแล้ว

ขั้นตอนที่ 9: ตัวเข้ารหัสแบบโรตารี่

ตัวเข้ารหัสแบบโรตารี่
ตัวเข้ารหัสแบบโรตารี่
ตัวเข้ารหัสแบบโรตารี่
ตัวเข้ารหัสแบบโรตารี่
ตัวเข้ารหัสแบบโรตารี่
ตัวเข้ารหัสแบบโรตารี่

ตัวเข้ารหัสแบบหมุนนี้เชื่อมต่อกับขั้วต่อ isp ใช้สำหรับเปลี่ยนน้ำหนักเม็ดและเพื่อเปิดและปิดอุปกรณ์

vcc isp pin 2 (ตัวต้านทานแบบดึงขึ้น)

Terminal A (สีเหลือง) ไปที่ ISP pin 1

Terminal B (สีเขียว) ไปที่ ISP pin 3

เทอร์มินัล C (gnd) isp pin 6

ฉันกำลังเพิ่มรูปภาพ 2 รูปเพื่อดูความแตกต่างระหว่างการมีตัวกรองกับไม่มีตัวกรอง คุณสามารถเห็นความแตกต่างระหว่างทั้งสองได้อย่างง่ายดาย

ปุ่มกดไปที่ขั้วต่อ pcb SW

ขั้นตอนที่ 10: ท่อเซนเซอร์

ท่อเซนเซอร์
ท่อเซนเซอร์
ท่อเซนเซอร์
ท่อเซนเซอร์
ท่อเซนเซอร์
ท่อเซนเซอร์

สำคัญ:

ท่อเซนเซอร์ต้องเป็นสีดำ และตัวรับเซนเซอร์ต้องซ่อนไว้

ความพยายามครั้งแรกของฉันคือการมีท่อสีแดงที่สวยงาม แต่นี่มันยุ่งยาก! มันไม่ได้ผลเลย ฉันพบว่าแสงจากภายนอกเข้ามาทำให้พลาสติกและเซ็นเซอร์รับสัญญาณเปิดอยู่เสมอ

เพื่อให้ได้ผลลัพธ์ที่ดี ฉันจึงไม่มีทางเลือกที่จะเปลี่ยนสีเป็นสีดำ

ติดตั้งตัวรับสัญญาณด้านบน และซ่อนพลาสติกใสด้วยสีดำ เทป หรือหมากฝรั่ง ซิลิโคนสีดำ

ติดตั้งอีซีแอลที่ด้านล่าง.. ตรวจสอบด้วยปากกาว่าเซ็นเซอร์ตอบสนองได้ดีหรือไม่ บางทีรูของอีซีแอลอาจจะต้องขยายอีกหน่อย จะขึ้นอยู่กับการปรับเทียบเครื่องพิมพ์ของคุณ

ฉันยังมีผลดีกว่าในที่ร่ม หลีกเลี่ยงแสงแดดโดยตรง

ขั้นตอนที่ 11: ทางเลือกของท่อเซนเซอร์

ทางเลือกของท่อเซนเซอร์
ทางเลือกของท่อเซนเซอร์
ทางเลือกของท่อเซนเซอร์
ทางเลือกของท่อเซนเซอร์

หากคุณไม่มีเครื่องพิมพ์ 3 มิติ คุณสามารถทำเช่นเดียวกันกับท่อทองแดง มันจะทำงานได้ดีมาก สิ่งที่ยากที่จะทำคือรูที่ 3 นิ้วพอดีและตัวรับและตัวปล่อยจะต้องอยู่ในแนวเดียวกัน

ขั้นตอนที่ 12: เม็ดบนออสซิลโลสโคปและการสอบเทียบ

เม็ดบนออสซิลโลสโคปและการสอบเทียบ
เม็ดบนออสซิลโลสโคปและการสอบเทียบ

นี้เป็นเม็ดจริงโยนท่อ. หัววัด 1 สีเหลือง คือ เซนเซอร์ 1 หัววัด 2 สีม่วง คือ เซนเซอร์ 2

เวลา/div คือ 50 us

เรานับได้ 6 ดิวิชั่น 50us 50 us x 6 = 300 us (สำหรับ 3 นิ้ว) 300 us x 4 = 1.2 ms สำหรับ 1 ฟุต

1/1.2ms= 833.33 ฟุต/วินาที

นอกจากนี้เรายังสามารถเห็นได้ว่าเซ็นเซอร์ปกติอยู่ที่ 5v และเราสามารถปิดกั้นแสงอีซีแอล เซ็นเซอร์ตกไปที่ 0 ได้ไหม

เป็นวิธีที่ uC เริ่มต้นและหยุดผู้แข่งขันของเขา (timer1)

แต่หากต้องการทราบว่าความเร็วนั้นแม่นยำหรือไม่ ฉันต้องการวิธีวัดค่านี้

ในการทำการปรับเทียบซอฟต์แวร์และทดสอบความแม่นยำของอุปกรณ์นี้ ฉันใช้ออสซิลเลเตอร์อ้างอิง 10 mhz ดู GPSDO ของฉันในคำแนะนำอื่น ๆ

ฉันป้อน atmega328 อีกอันด้วย 10 mhz นี้ และตั้งโปรแกรมตัวนี้ในแอสเซมเบลอร์เพื่อส่ง 2 พัลส์ทุกครั้งที่ฉันกดปุ่มเพื่อจำลองเม็ด เหมือนกับที่เราเห็นในรูป แต่แทนที่จะได้เม็ดจริงมันเป็นอีก uC ที่ส่งพัลส์มาให้ฉัน 2 ครั้ง

แต่ละครั้งที่กดปุ่ม จะส่ง 1 พัลส์และ 4 มิลลิวินาทีหลังจากส่งพัลส์อื่น

ด้วยวิธีนี้ ฉันสามารถปรับสมดุลคอมไพเลอร์ซอฟต์แวร์ให้แสดงผล 1,000 ฟุต/วินาทีได้เสมอ

ขั้นตอนที่ 13: เพิ่มเติม…

มากกว่า…
มากกว่า…
มากกว่า…
มากกว่า…

นี่เป็นต้นแบบแรกของฉันในปี 2010

สำหรับคำถามหรือรายงานข้อผิดพลาดใด ๆ คุณสามารถส่งอีเมลถึงฉัน อังกฤษหรือฝรั่งเศส ฉันจะทำให้ดีที่สุดเพื่อช่วย

แนะนำ: