= Internship.work[5:6]

Entryนี้จะมาพูดถึงงานที่ทำในWeek5-6นะครับ

เข้าสู่ช่วงโค้งสุดท้ายของการฝึกงานล่ะ

This entry will talk about work in week 5-6 of internship

now i reach at final bend of internship.

 

[TL;DR]

ทำหุ่นยนต์ต่อ แก้ไขmodel ทำหน้าเว็ปสำหรับบังคับหุ่น /จบ.

Continue my robot work, Edit model, Create web for controlling robot /end.


[Long version]

ก็2weekนี้ก็ยังทำหุ่นยนต์ต่อเนี่ยแหละ

แล้วก็ทำinterfaceบังคับหุ่นยนต์ผ่านBrowserเพิ่มด้วย

แต่จะขออธิบายทุกProcessให้หมดเลยละกัน

 

i’m still doing my robot project for this 2 weeks

and create interface for controlling robot via browser additionally.

so i will describe all of process that i have to do.


สืบเนื่องมาจากสัปดาห์ที่แล้ว นั่งงมอยู่กับการทำ3D model ตอนนี้เลยเริ่มคล่องละ

ตอนแรกก็ใช้TinkerCAD ซึ่งมันก็ง่ายแหละ แต่เนื่องจากมันง่ายเกินไปเลยทำอะไรได้ไม่ค่อยเยอะ

เลยย้ายไปใช้ 123D Design เป็นApplicationในคอม ซึ่งก็ปรับนู่นนี่นั่นได้ละเอียดขึ้นเยอะ

ไม่ได้ใช้ยากจนเกินไป แต่ก็ไม่ง่าย 5555

2_5

ตอนออกแบบก็เริ่มจากใช้รูปทรงง่ายๆอย่างCubeหรือCylinder

มาปรับๆหมุนๆให้ได้modelตามที่ต้องการ แล้วก็exportเป็นSTL file

ได้ไฟล์เรียบร้อยก็ใช้โปรแกรมCuraในการสร้างGCodeสำหรับเครื่องปริ้น3D

ซึ่งก็ต้องปรับนู่นนี่นั่นอยู่ เช่นSupportใต้Model ความละเอียดของการปริ้น บลาๆ

พอหลังจากลองPrintส่วนหุ่นยนต์ง่ายๆอย่างขาเรียบร้อยแล้วเนี่ย

พอลองประกอบดูก็เจอปัญหายิบย่อยเยอะมาก ทำเอาปวดหัวอยู่เหมือนกัน

อย่างเช่น ปริ้นมาแล้วส่วนที่ใช้ยึดกับmotorหักมั่ง ขันน๊อตแล้วพลาสติกหักไรงี้

2_6

แต่พอแก้Model 3Dแล้วปริ้นแก้เรื่อยๆก็โอเคนะ ถึงจะเสียเวลาไปเยอะอยู่ก็เถอะ 555555

 

As a result of last week, now i am getting skillful in 3D modelling.

First i start with TinkerCAD but it can’t do more due to its simply.

then i move to 123D Design which is Application in computer that i can config

and adjust model for more. neither too hard to use nor too easy. LOL

 

In designing, i start with using easy shape such as cube or cylinder

rotate it, resize it until that become model that i need and export to STL file.

and then i have to use Cura to create GCode for 3D Printer

that i have too adjust for more for example support

under 3D model, precision, etc.

After i printed robot part that’s leg & foot already

various of problem occured later on. That make me worry.

Such as, part that use to attach motor is broken,

plastic breaks when i tighten screw.

But after edit 3D model, print it again and again, result is more satisfied.

Even though, That take a lot of time. LOL


ต่อไปจะอธิบาย ในส่วนของการทำงานกับArduinoบนRaspberry Piต่อ

เนื่องจากเราทำงานผ่านการsshเข้าRaspberry Pi (ย่อว่าRPiละกัน) เป็นหลัก

และต่อArduinoเข้ากับ RPi ทำให้ไม่สามารถรันArduino IDEที่รันบนGUIได้

จึงต้องใช้ Inotool เป็นหลัก ซึ่งตัวInotoolเนี่ย เป็นcommand line toolkit

สำหรับupload source code fileของArduinoที่เราเขียนลงไปในArduino

วิธีทำงานกับมันก็ง่ายๆ แค่แก้Code C++ในsrc/sketch.ino จากนั้น ใช้คำสั่ง

$ ino build ต่อด้วย $ ino upload แค่นี้ก็เรียบร้อย (ถ้าไม่เกิดBug,Errorตอนbuildนะ)

ส่วนCodeที่เขียนลงArduinoเนี่ย เราใช้logicจากหุ่นยนต์ของRapiroเลย

แล้วก็แก้ไขนิดหน่อยให้เข้ากับหุ่นของเรา ปรับค่าองศาการหมุนของMotor ประมาณนี้

2_3

 

next i will explain about working with arduino on Raspberry Pi.

Because i have to work by ssh throught Raspberry Pi(Abbreviate to RPi)

and connect Arduino to RPi. so i can’t run Arduino IDE that require GUI.

I have to use Inotool insteadly. Inotool is command line toolkit that allow

user to upload source code arduino file to Arduino

Working with this one is simple, just edit C++ code in src/sketch.ino

after that, use command $ ino build and $ ino upload

and then everything finish. (If it didn’t occur any bug & error in build phase)

Code that i have write for arduino, i have implemented from rapiro’s logic

and adjust code that will be compatible with my own robot.


ทีนี้ขั้นต่อไปที่ควรจะทำก็คือ ย้ายวงจรจากbreadboard

ไปบัดกรีลงperfboardหรือที่บ้านเราเรียกว่าบอร์ดไข่ปลาเนี่ยแหละ

ซึ่งก็ไม่เป็นปัญหาสักเท่าไหร่ เพราะผ่านวิชาCircuitสุดโหดร้ายเมื่อตอนปี2มาแล้ว

ผ่านการบัดกรีและสูดดมตะกั่วไม่รู้กี่ร้อยรอบ สบ๊าย 55555

2_1

 

next step should be moving circuit on breadboard to perfboard and soldering.

That is not my problem because i’m already pass cruel circuit course when i was a sophomore.

Used to soldering and smell lead for many times. LOL


2_2

หลังจากประกอบหุ่นยนต์ทุกอย่างเรียบร้อย ไขน๊อตยึดServo Motorกับmodelที่printออกมา

ทีนี้ปัญหามันคือ แต่หุ่นยนต์มีน้ำหนักไม่พอที่จะทำให้มันก้าวขาได้ ชิปหายมาก 55555

ก็พยายามแก้มาเรื่อยๆ หาอะไรมาถ่วงน้ำหนัก เปลี่ยนองศาการหมุนของMotor

แต่ก็ยังแก้ปัญหาไม่ได้ ก็คงต้องหาวิธีแก้ไขต่อไปยาวๆแหละ Orz

2_4

 

after i have assemble all part of robot and

bind servo motor with model that i’ve printed with screw.

and then i face a problem. Robot don’t have enough weight for make itself walking.

I try many solution such as finding something to put more weight,

adjust angle of motor in my code but it still not work.

By the way, i have to find another solution later.


พอไหนๆก็นึกทางแก้ไม่ได้ เลยมาลองทำอะไรอย่างอื่นก่อน เป็นการRelax(?)สมอง 5555

บังเอิญไปเจอIoT FrameworkตัวนึงสำหรับRPi ชื่อว่า Webiopi

ซึ่งทำตัวเป็นServerสำหรับControl GPIOและSerial CommunicationของRPiได้

เลยโหลดมาลองใช้ดูเล่นๆ…

ซึ่งตัวWebiopiเนี่ย ทำให้Clientสามารถcontrol RPiได้ผ่านbrowser

ผ่านCodeส่วนที่เป็นJavascript

อย่างเช่น ถ้าเราจะเขียนเว็ปให้มีปุ่มสำหรับส่งStringไปยังArduino Unoผ่านสายSerial

Codeก็จะประมาณนี้

<html>
<head>
<script>
function sendData(){
  webiopi().Serial("uno").write('Test String');
}
</script> 
</head>
<body>
  <button onclick="sendData()">Send Data</button>
</body>
</html>

ดูๆแล้วมันก็ง่ายดีนะ แค่จะปวดหัวตอนที่ต้องเขียนเว็ปภายในRPi Environmentเนี่ยแหละ

 

later that, i try to find any solution but still worthless.

so i find something to relax my brain. LOL.

Unexpectly, i find an IoT(Internet of things) Framework for RPi

that’s call webiopi. This will manage RPi as a server for

controlling GPIO & Serial communication. and i download to try it…

Webiopi will allow client to control GPIO & Serial directly via Browser

with Javascript programming. For example, if we want to create website

that have a button for send data to Arduino UNO via Serial cable

Code is as above.

It seem to be easy but will be a problem

when i have to coding website in RPi environment.


ไว้มาต่อweekหน้านะครับ weekหน้าก็เป็นweekสุดท้ายที่จะทำงานล่ะ

see you next week.

and next week is the last week of my internship.

Comments

comments