วันอาทิตย์ที่ 25 ธันวาคม พ.ศ. 2559

STM32F103C เป็น Arm แต่โปรแกรมด้วย Arduino

เป็นความผิดพลาดในการซื้อ เลยได้ Arm แทน Arduino แต่ก็ได้ พบว่ามัน เร็วกว่ามาก
STM32F103 เป็น CPU ARM โปรแกรมได้ ทั้ง Arm Development และ Arduino แต่ การใช้เริ่มใช้งาน
ยากพอสมควร อย่างแรก ต้องมี โปรแกรมเมอร์ Device ที่เป็น USB
ST-Link V2

การต่อวงจรต้องต่อตรงขาระหว่าง ST-Link กับ STM32F103C ดูจาก ที่ Print ใว้ทั้งคู่
   ได้แก่ SWDIO,GND,SWCLK,3.3V ต้องเรียงสายใหม่
Reference 


เรื่องยากที่สุดคือ Software
1. ต้องหาDriver 
http://www.waveshare.com/wiki/ST-LINK/V2_(mini)
https://www.arduinoall.com/product/1170/st-link-v2-stlink-mini-stm8-stm32-programer-คละสี

2. ลง Arduino IDE ให้เอา Version มากกว่า 1.6.5
3.  copy Arduino_STM32 จาก Reference เขา ไปใน folder arduino\Hardware
4. Board Manager
Arm Cortex M3
เลือก Upload
เลือก Board STM32F103 Generic

ตัวอย่าง ต้องเปลี่ยน IO เป็นชื่อของ STM32 เช่น Port 13 ต้องเป็น PC13 เป็นต้น




วันเสาร์ที่ 3 ธันวาคม พ.ศ. 2559

Node MCU สั่ง Servo

Servo Futaba เป็น Servo ยอดนิยม


ขา ขาว จะเป็น Signal แดง +5 ดำ Ground 
ต่อกับ NodeMcu ให้ต่อ แดง กับ Vin 
ขาขาว เขา D0-D8 อันใหนก็ได้

ยกตัวอย่าง D6

คำสั่ง
pwm.setup(6,50,71) 
--set Zero
pwm.setduty(6,<มุม>) --  27=-90,71=0,123=90
--Move


ตัวอย่าง
สั่ง Servo กับ LDR

function doSv()
 rv = adc.read(0)
 sv = 27+(rv-50)/4
 pwm.setduty(6,sv)
 --tmr.delay(10000)
 print(sv)
end

pwm.setup(6,50,71)
tmr.alarm(0,100,1,doSv)

Node MCU อ่านค่าจาก LDR

การต่อ LDR สามารถ ต่อได้ เป็น อนุกรม จาก ขา Vin กับ Ground โดยให้ LDR ต่อลง G และ ขั่วตรงกลาง ต่อ เข้า A0 เป็น Port Analog

V ที่ A0 = Vin*R2/(R1+R2)

การอ่านค่า

= print(add.read(0))

ค่า ที่อ่านได้จาก Node MCU มี แสงกับ ไม่มีแสง ระหว่าง 50-600