วันอาทิตย์ที่ 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



วันอังคารที่ 8 พฤศจิกายน พ.ศ. 2559

วันศุกร์ที่ 28 ตุลาคม พ.ศ. 2559

เรื่องของ IOT NodeMCU (ESP8266)

เป็น IC ที่ เป็น Integrate computer เข้าไป โดย มี Input output 10 ports 1 Analog ports
โดยมีภาษา ชั้นสูง Lua ในการสั่งทำงาน และ มี Wifi ในตัว


การใช้งาน จะใช้สาย USB หัวเล็กในการเชื่อมกับ pc windows หรือ osx ก็ได้
สำหรับการพัฒนาโปรแกรม จะมี
ESplorer ที่เป็น Java ในการเขียนโปรแกรมและ upload

http://esp8266.ru/esplorer/

สำหรับ Firmware จะมี tools
Flash Lua


ตัวอย่าง


ตัวอย่าง Hello สำหรับ Web ผ่าน Wifi
print(wifi.sta.getip())
--nil
wifi.setmode(wifi.STATION)
wifi.sta.config("SSID","PASSWORD")
print(wifi.sta.getip())
--192.168.18.110
-- a simple http server
srv=net.createServer(net.TCP) 
srv:listen(8080,function(conn) 
    conn:on("receive",function(conn,payload) 
    print(payload) 
    conn:send("<h1> Hello, NodeMcu.</h1>")
    end) 
end)

ดูใน web จะแสดง Hello, NodeMcu

ขา LED


วันศุกร์ที่ 23 กันยายน พ.ศ. 2559

Driver A4982 กับ A4988

Step motor Driver A4982 กับ A4988


ต่างกันที่ A4988 มี Over Load protection และ Micro Step ไม่เหมือนกัน การปรับกระแส เป็น 1volt=1Amp

A4988
แทน 4982 1:16 ตัดขา MS3 และ เชื่อม MS2+MS3

MS1 MS2 MS3 microstep
L L L 1
H L L 1:02
L H L 1:04
H H L 1:08
H H H 1:16

A4982

MS1 MS2 microstep
L L 1
H L 1:02
L H 1:04
H H 1:16

วันอังคารที่ 13 กันยายน พ.ศ. 2559

วันจันทร์ที่ 1 สิงหาคม พ.ศ. 2559

Hack Smart Plug

Smart Plug ของ Kankun เป็น Openwrt
login ด้วย
root password p9z34c
เปลียน password ด้วย passwd
ปิดเปิด ด้วย Web
เข้าที่ /www
สร้าง index.html

<!DOCTYPE html>
<html>
<head>
<title>SmartPlug1</title>
</head>
<body>

<h1>Smart 1  try On / Off</h1>
<a href="./cgi-bin/relay.cgi?on"> ON </a> <br/>
<a href="./cgi-bin/relay.cgi?off"> OFF </a>
</body>
</html>


สร้าง โดย เรียก cgi-bin


  • relay.cgi อย่าลืม chmod 777 ด้วย

#!/bin/sh
echo "Content-Type: text/plain"
echo "Cache-Control: no-cache, must-revalidate"
echo "Expires: Sat, 26 Jul 1997 05:00:00 GMT"
echo

RELAY_CTRL=/sys/class/leds/tp-link:blue:relay/brightness

case "$QUERY_STRING" in
 state) 
  case "`cat $RELAY_CTRL`" in
   0) echo "OFF"
   ;;
   1) echo "ON"
   ;;
  esac
 ;;
 on) 
  echo 1 > $RELAY_CTRL
  echo OK
 ;;
 off) 
  echo 0 > $RELAY_CTRL
  echo OK
 ;;
esac


ดู status


วันอาทิตย์ที่ 8 พฤษภาคม พ.ศ. 2559

ใช้ Servo แทน Stepper

Stepper Driver จะมี  Ground, V+5, Step, Direction
Servo จะมี Direction+,Step+, Direction-,Step-
ส่วนมากจะเป็น common + ให้ เอา Direction+กับStep+ ต่อกับ V+5, และ เอา Direction ต่อกับ D- , Step เข้ากับ S-

ไม่ได้ก็ค่อยกลับกัน เอา D-,S- ต่อ Ground

Open WRT บน router TP-Link WR703N

Mini Router TPLink MR703N เป็น Unix ขนาดจิ๋ว สามารถทำ เป็น Remote อุปกรณ์ได้หลายอย่าง และมีความทนทานสูง ราคาถูกมาก 10USD.
การ ลง OpenWRT ต้องใช้วิธี ต่อ Serial โดยใช้ TTL Serial USB สั่งซื้อได้ จาก EBay หรือ ร้าน Ardurino ทั่วไป
โดยต่อ  สี ฟ้า Tx แดงRx  ground ข้าง USB


การลงโปรแกรม ต้อง Boot และต่อ Terminal กับ Serial เลือก Speed เป็น 115200 8Bit
ไป Download Firmware ใหม่ที่

https://wiki.openwrt.org/toh/tp-link/tl-wr703n

ต้องลง TFTP server ในเครื่อง ถ้าเป็น Mac จะมีอยู่แล้ว แต่ต้อง Start service

command line

sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
sudo launchctl start com.apple.tftpd

https://wiki.openwrt.org/doc/howto/generic.flashing.tftp

 เพียง copy ลงใน Folder ให้ถูก และ Set permission เป็น 755 หรือ 777 ก็ได้
ต่อสาย Lan ตั้ง Fix ip 192.168.1.100 ที่ PC


เมื่อ Boot ให้กดให้ทัน พิมพ์  "tpl"
จะเข้า Console ของ Router
setenv ipaddr 192.168.1.1
setenv serverip 192.168.1.100
tftpboot 0x81000000 <firmwareที่ Download>.bin
erase 0x9f020000 +0x3c0000
cp.b 0x81000000 0x9f020000 0x3c0000
bootm 9f020000
จากนั้น จะเข้าโดย secure shell ได้ โดยไม่มี password
หรือเข้า Web ได้แล้ว

ถ้าต้องการ ทำ Webcam มี firmware ที่

https://sourceforge.net/projects/orwrt/files/0.76/

วันเสาร์ที่ 7 พฤษภาคม พ.ศ. 2559

เปลี่ยน DRV 8825 แทน ใน 3D Printer

DRV 8825 มีเป็น Driver Stepper ที่มีแรงมาก ปรับกระแส 0.5 Volt= 1Amp แต่จะไม่เหมือนกับ A4982 เวลาติดตั้งต้อง
แก้ Pin ตามรูปให้เป็น 1/16. ถ้าต้องการ เป็น 1/32 ให้ ต่อ M0-M2 


เรื่องสำคัญมาก ถ้าใช้ Board ที่เป็น Atmel จะใช้.V Fault ที่ 5 Volt แต่ถ้า ต่อเป็น Board STM32 ต้องใช้ เป็น 3.3 V ห้ามต่อเป็น 5 V Cpu STM32 จะพัง ถ้า หา Adpter ไมได้ ให้ใช้ Diode ต่อ อนุกรม 3 ตัว ลดแรงดัน (0.6x3= 1.8 จะลด 5V, เหลือ 3.2) ก่อนเข้า Fault


Zero for Robot

Blog นี้ เอาใว้ สำหรับ เก็บความรู้ ทางเทคนิดที่ผ่านเข้ามา และ ไม่มี จุดประสงค์ อื่นใด นอกจากความสนุกของผม