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

Qt Creator doesn't open with xrdp raspberry

QML debugging is enabled. Only use this in a safe environment.

libEGL warning: DRI2: failed to create any config

QXcbConnection: Failed to initialize XRandr

Qt: XKEYBOARD extension not present on the X server.

Cant find EGLConfig, returning null config

Unable to find an X11 visual which matches EGL config 0

ให้ปรับ สี เป็น 16 bit

ตามรูป

Project ERROR: Unknown module(s) in QT: quick qml

Activating OpenGL on the Raspberry Pi

To use the OpenGL drivers you will need the latest version of the Raspbian operating system. This can either be downloaded from the Raspberry Pi foundation using the Noobs SD card installer or if you are running Raspbian Jessie you can upgrade your current installation to bring it up to date.

To update and existing copy of Raspbian Jessie enter the following commands into Terminal:
sudo apt-get update 
sudo apt-get upgrade
sudo apt-get install qtdeclarative5-dev
sudo apt-get install qtbase5-dev
sudo apt-get install mesa-utils
sudo apt-get install raspi-gpio
sudo apt-get install xcompmgr libgl1-mesa-dri 
 

How to Install the Java Development Kit on a Raspberry Pi


To install Java 8 on your Pi use the following command:
sudo apt-get install oracle-java8-jdk
To check that everything installed OK, type:
java -version
The output shows that Java 1.8.0 has been installed. 1.8 means Java 8. The initial releases of Java were all “point” releases: 1.0, 1.1, 1.2, 1.3, and 1.4. But in 2004 when Java 1.5 was released, it was marketed as Java 5; however, 1.5 still remained the internal version number. So 1.5 is Java 5, 1.6 is Java 6, 1.7 is Java 7, and 1.8 is Java 8.
Now to write a simple Java program. Create a file called “Hello.java” using nano:
nano Hello.java
The capital “H” is important, so be sure you type “Hello.java” and not “hello.java”. Copy and paste the following code into the file:
public class Hello {

    public static void main(String[] args) {
        System.out.println("Hello Make Tech Easier");
    }
}
In Java, the public class name must be the same as the file name. This makes it easier to find classes when you have big programs. If you need to find the class “TheNetworkListener,” then it will be in the file “TheNetworkListener.java,” and so on.
To compile the program type:
javac Hello.java
If the compilation was successful then there will be no output. But if the program has errors, then they will be displayed.
To run the program type:
java Hello
The output will be the string “Hello Make Tech Easier”
Congratulations, you have now written and run your first Java program on a Raspberry Pi.
You can also write GUI programs with Java. There are integrated development environments (IDE) like NetBeans, which allow you to design Java desktop applications graphically. But it is also possible to write GUI programs using just a text editor.
Create a file called “HelloDialog.java” with nano:
nano HelloDialog.java
Copy and paste the following code:
import javax.swing.JOptionPane;

public class HelloDialog {

   public static void main(String[] args) {
      JOptionPane.showMessageDialog( null, "Hello MTE!" );
   }
}
Make sure you have the Raspberry Pi desktop running (using “startx” if necessary). Compile the program using “javac HelloDialog.java” and run it using “java HelloDialog“.
The program uses Java’s GUI widget toolkit called Swing. All it does is show a message dialog box. However, more complex programs can be written using Swing. Create a file called “SimpleSwing.java” and edit it with nano. Copy and paste the following code into the file.
import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class SimpleSwing extends JFrame {

    public SimpleSwing() {
       setTitle("Simple example");
       setSize(300, 200);
       setLocationRelativeTo(null);
       setDefaultCloseOperation(EXIT_ON_CLOSE);       
    }

    public static void main(String[] args) {       
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                SimpleSwing ex = new SimpleSwing();
                ex.setVisible(true);
            }
        });
    }
}
The program is quite simple; however, it does show that you can create a window with a title. The window can be resized and closed, just as you would expect. This is the building block for more complex applications.
There are lots of tutorials online about the Java programming language. Here is a small selection:
·         Getting Started
·         Learning the Java Language
·         Essential Java Classes
If you have any problems with the examples given above or with getting Java to work on the Raspberry Pi, then please feel free to leave a comment below and we will see if we can help.


BlueJ on the Raspberry Pi


BlueJ on the Raspberry Pi 

BlueJ is an Integrated Development Environment (IDE) written in Java, designed for the teaching of java for beginners.
From version 3.14, BlueJ fully supports the Raspberry Pi, a credit card sized single board computer aimed at promoting the teaching of basic computer programming in schools. BlueJ is a Java development environment that allows development as well as program execution on the Pi.
BlueJ provides full access to hardware attached to the Raspberry Pi via the open source Pi4J library, from the the familiar Java SE language, including the new Java 8.
Installation
BlueJ is now part of the Raspbian distribution, and it is already installed by default on the current Rasbperry Pi image.
However, If you don't have BlueJ already installed, just run this command in a terminal on the Raspberry Pi:
sudo apt-get update && sudo apt-get install bluej
BlueJ already includes Pi4J, which is an object-oriented API for Java to access the GPIOs of the Raspberry Pi.
There is no need to install the JDK first, as it is included on the default Raspberry Pi image.
Tutorials
·         LED tutorial
·         Button tutorial
·         Adjustable LED tutorial
·         Controlling a servo motor
As basis for your own projects, all of the above I/O helper classes, plus helper classes to use analog inputs: using the MCP3008, and another one using a just a capacitor (described here) are avaliable in a single BlueJ project for download.
Note:
All of the normal BlueJ functionality also works on the Raspberry Pi, however, although BlueJ runs as a regular user, your code runs as root (to support access to the hardware). In normal use, you will not notice the difference, but if you write code which e.g. delete system files, then you can cause system problems on the Pi.
Support
Please see support page.

วันเสาร์ที่ 29 ตุลาคม พ.ศ. 2559

วิธีติดตั้ง Xinput Calibrator บน Raspberry Pi



- เชื่อมต่อบอร์ดให้สามารถเชื่อมต่อกับ Internet ได้
- เปิดโปรแกรม Terminal ขึ้นมา


- พิมพ์คำสั่ง sudo apt-get update เพื่ออัพเดทรายการสารบัญที่อยู่ของซอฟท์แวร์จาก Repository จากนั้นรอสักครู่ให้การอัพเดทเสร็จสิ้น
- ติดตั้ง Packet ต่างๆดังนี้ >> sudo apt-get install libx11-dev libxext-dev libxi-dev x11proto-input-dev
- ติดตั้ง Packet xinput calibrator ดังนี้ >> sudo apt-get install -y xinput-calibrator
- Run โปรแกรม xinput _calibrate ดังนี้ >> xinput_calibrator
- ทำการ Calibrate หน้าจอ

- เมื่อ Calibrate เสร็จแล้วจะสามารถ Touch ได้ถูกต้องตามตำแหน่งที่กด และที่โปรแกรม Terminal จะแสดงค่าพิกัดที่ Calibrate ออกมาด้วย เช่น

- Copy หรือ บันทึก ค่าที่โปรแกรม แสดงออกมาเอาไว้

Section "InputClass"
        Identifier "calibration"
        MatchProduct "eGalax Inc. USB TouchController"
        Option "Calibration" “105 1968 1942 169”
        Option “SwapAxes” “0”
EndSection

- สร้าง File Config เพื่อให้ใช้ค่า Calibrate นี้ทุกครั้ง ที่เปิดเครื่องขึ้นมา ดังนี้
>> สร้าง Folder >> sudo mkdir /etc/X11/xorg.conf.d
>> สร้าง File 99-calibration.conf พิมพ์ >> sudo nano /etc/X11/xorg.conf.d/99-calibration.conf
>> เขียนค่า Calibrate ลงไป


>> กด Ctrl+X กด Y และ Enter ตามลำดับ
- Restart บอร์ด และทดลอง Touch จะพบว่าสามารถ Touch ได้ตรง

เปลี่ยนใช้ user root ใน putty


สำหรับท่านที่ต้องการ Connect เข้า Pi ด้วย user : root (ไม่ใช้ User : Pi)  ชึ่งปรกติ root มันจะ access เข้าจากข้างนอกยังไม่ได้  เราอาจจะต้องทำการ แก้ไข Config ของ ssh ในส่วนของ PermitRootLogin  สะก่อน
sudo nano /etc/ssh/sshd_config
ค่า defalt


แล้วหาบรรทัด PermitRootLogin จากนั้น เปลียนเป็น yes  ทำการ saved แล้ว restart service อีกที โดยใช้คำสั่ง #service ssh restart
และทำการ reboot ด้วยคำสั่ง sudo reboot 

ส่วนตัวชอบเข้าผ่าน root เพราะขี้เกียจพิมพ์ sudo นำหน้าคำสั่งนั้นเอง ^ ^”   และ root ทำได้ทุกอย่าง ถ้าเป็นฝั่ง Windows มันก็คือ Administrator นั้นเอง   หรือถ้าท่านไหน Login เข้าด้วย User : Pi  ถ้าอยากสลับไปเป๋น root ก็ทำได้เช่นกันโดยใช้คำสั่ง#su root  และถ้าอยากสลับจาก root ไปเป็น user ก็ทำได้เหมือนกัน  su ตามด้วย username เช่น #su pi

[Raspberry Pi] การเพิ่มพื้นที่ข้อมูล

[Raspberry Pi] การเพิ่มพื้นที่ข้อมูล

        เมื่อติดตั้ง Image ลงใน SD Card ที่จะใช้งานกับ Raspberry Pi มักจะพบปัญหาอย่างหนึ่งคือพื้นที่ใช้งานได้ไม่เต็มที่ โดยที่ตัว Raspberry Pi จะมองเห็นพื้นที่ว่างใน SD Card แค่นิดเดียวเท่านั้น ทั้งๆที่ SD Card ที่ใช้มีพื้นที่เยอะ
       ปัญหานี้แก้ไขได้โดยการพิมพ์คำสั่ง sudo raspi-config


        จากนั้นจะมีหน้าต่างตั้งค่าแสดงขึ้นมา ให้เลือก Expand Filesystem


        รอระบบการทำขยายพื้นที่ให้เต็มขนาดของ SD Card ก็เป็นอันเสร็จเรียบร้อย


        และระบบจะให้ทำการ Reboot ก่อนจะเริ่มทำงานต่อ


        เมื่อเปิดขึ้นมาอีกครั้งให้ลองใช้คำสั่ง df เพื่อดูพื้นที่ทั้งหมดในระบบ

        จากภาพตัวอย่างได้ใช้ SD Card ขนาด 8GB ทำให้เห็นพื้นที่ขนาด 7.3GB
        หมายเหตุ – อุปกรณ์เก็บข้อมูลใดๆก็ตามจะไม่ได้มีพื้นที่ตามที่ระบุไว้ในตัวอุปกรณ์ แต่จะมีพื้นที่น้อยกว่าที่ระบุไว้จริง

วันพฤหัสบดีที่ 27 ตุลาคม พ.ศ. 2559

ติดตั้ง LXDE ให้กับ Jessie Lite

ติดตั้ง LXDE ให้กับ Jessie Lite

ได้ทราบกันแล้วว่า Jessie Lite หรือ Debian 8.0 Lite ที่ให้มาติดตั้งกับ Raspberry Pi นั้น ไม่มีการทำงานแบบ GUI ซึ่งก็จะสะดวกดีในกรณีที่ไม่ต้องการ GUI มันก็จะสะดวกขึ้น แต่ในบางครั้งสภาพแวดล้อมแบบ GUI นั้นจำเป็น เช่น การทำงานกับ OpenCV หรืองานที่เกี่ยวกับการประมวลผลกับ Image  และ LXDE (http://wiki.lxde.org/en/Main_Page) ก็เป็นตัวเลือกสำหรับ Raspbian มาตลอด ในบทความนี้จะกล่าวถึงขั้นตอนของการติดตั้ง LXDE บน Jessie Lite  ครับ






1. Update ระบบ 
$ sudo apt-get update

2.  ติดตัั้ง XWindows


$ sudo apt-get install  xserver-xorg xserver-xorg-core xfonts-base xinit xserver-xorg-video-all

3. ติดตั้ง LXDE

$ sudo apt-get install lxde lxde-common

4.  reboot แล้วเข้าสู่ XWindows ด้วย คำสั่ง startx

วันอาทิตย์ที่ 16 ตุลาคม พ.ศ. 2559

ความหมายของปลั๊กไฟสีต่างๆ


แมกเนติก คอนแทคเตอร์




 Specifications

กระแสที่ใช้งาน Rated Operating Current (AC3) ขนาดมอเตอร์สูงสุด Max. Motor Capacity 3 Phase (AC3) Thermal Current (AC1) คอนแทคช่วย Standard Auxiliary Contact
220-240V 380-440V 220-240V KW(HP) 380-440V KW(HP) NO NC
1192.5(3.3)4(5.5)201NO-

Detail
     เป็นอุปกรณ์ที่อาศัยการทำงานโดยอำนาจแม่เหล็กในการเปิดปิดหน้าสัมผัสในการควบคุมวงจรมอเตอร์
หรือเรียกว่า สวิตช์แม่เหล็ก (Magnetic Switch) หรือคอนแทคเตอร์ (Contactor) ก็ได้

ข้อดี ของการใช้รีเลย์และแมคเนติกส์คอนแทคเตอร์เมื่อเทียบกับสวิตช์อื่น
      1. ให้ความปลอดภัยสำหรับผู้ควบคุมสูง
      2. ให้ความสะดวกในการควบคุม
      3. ประหยัดเมื่อเทียบกับการควบคุมด้วยมือ
ชนิดและขนาดของแมคเนติกคอนแทกเตอร์
     คอนแทคเตอร์ที่ใช้กับไฟฟ้ากระแสสลับ แบ่งเป็น 4 ชนิดตามลักษณะของโหลด
และการนำไปใช้งานมีดังนี้
              AC 1 : เป็นแมคเนติกคอนแทกเตอร์ที่เหมาะสำหรับโหลดที่เป็นความต้านทาน หรือในวงจรที่มี
                        อินดัดทีฟน้อยๆ
              AC 2 : เป็นแมคเนติกคอนแทคเตอร์ที่เหมาะสมสำหรับใช้กับโหลหดที่เป็นสปริงมอเตอร์
              AC 3 : เป็นแมคเนติกคอนแทคเตอร์ที่เหมาะสำหรับใช้การสตาร์ทและหยุดโหลดที่เป็นมอเตอร์
                        กรงกระรอก
              AC 4 : เป็นแมคเนติกคอนแทคเตอร์ที่เหมาะสำหรับการสตาร์ท-หยุดมอเตอร์ วงจร jogging
                        และการกลับทางหมุนมอเตอร์แบบกรงกระรอก    
 การพิจารณาเลือกไปใช้งาน
     ในการเลือกแมคเนติกคอนแทคเตอร์ในการใช้งานให้เหมาะสมกับมอเตอร์นั้น จะพิจารณาที่กระแสสูงสุด
ในการใช้งาน(reated current) และแรงดัน ของมอเตอร์ ต้องเลือกแมคเนติกคอนแทคเตอร์ ที่มีกระแสสูงกว่า
กระแสที่ใช้งานของมอเตอร์ที่มีแรงดันเท่ากัน ในการพิจารณาเลือกแมคเนติกคอนแทคเตอร์ใช้งานควรพิจารณาดังนี้
                - ลักษณะของโหลดและการใช้งาน
                - แรงดันและความถี่
                - สถานที่ใช้งาน
                - ความบ่อยครั้งในการใช้งาน
                - การป้องกันจากการสัมผัสและการป้องกันนํ้า
                - ความคงทนทางกลและทางไฟฟ้า