Social Icons

twitterfacebookgoogle plusrss feedemail

4/28/2013

arduino 藍芽小車 +GPS

沒有留言:
暨這篇文章之後FCUCE 無線通訊避障小車,學弟把之前做的GPS給加上小車當中,這麼一來小車跑到哪邊都會回傳GPS位址回來,這麼一來就可以將小車在地圖上作定位了。




[繪圖] 國高中繪畫作品

沒有留言:
好久沒畫圖了~ 在這邊放上一些以前的作品好了

4/23/2013

馬達應用

沒有留言:


這可以用51或者arduino來做

4/17/2013

[Beagleboard] 6.啟動linux

沒有留言:

  1、配置Putty串口終端  
    在加電啟動bb前,將bb的串口連接到PC上。在設備管理器中找到新的串口設備,確定其工作的端口,比如COM1。
    下載putty 或者 pietty 程序,並且啟動。​
    如下配置:
完成後,點擊Open按鈕,打開。

4/15/2013

Ubuntu 安裝 VMware Tools

沒有留言:

在windows中有內建支援VMware tools 的功能,可使在虛擬機器與原本主機中互相傳遞檔案複製文字~ 而 Ubuntu也有 內建 VMware 支援,但未提供此功能,所以還是要灌 VMware Tools。

VMware Workstation 裡面的 Ubuntu 開機進入桌面

VMware Workstation 主選單 -> VM -> Install VMware Tools...

等待幾秒,Ubuntu 裡出現 VMware Tools,裡面有一個壓縮檔跟文字檔~

開啟終端機輸入:
tar xzf /media/VMware\ Tools/VMwareTools-8.4.6-385536.tar.gz


4/14/2013

[USB linux] 1.打造2MB 的 linux USB 隨身碟

沒有留言:

這篇主要講解如何將從usb隨身碟開機,並進入到Linux中! 打造一個可以帶著跑的作業系統。
在這邊並不是使用UNetbootin或者是一些已經寫好的工具來幫我們製作linux USB,而是從核心編譯、root filesystem、Linux utilities全都手工打造。

本開發環境為 ubuntu 10.04.04,其它版本應該只有套件庫不一樣,不用擔心~稍微做點變更即可~

USB linux開機原理流程圖大致如下,一些原理與資訊大概可以參考這篇文章 (備份連結)

先建立我們的工作目錄,避免跟其它目錄混在一塊~
 mkdir ~/build-usb-linux
 cd ~/build-usb-linux

  a. toolchain
因為我們要安裝在x86主機上,所以其實很簡單,
build-essential是編譯軟體所需要的一些套件,libncurses是進行make menuconfig會用到的函式庫
 sudo apt-get install libncurses5-dev build-essential
RPM系的Linux可以用
 yum groupinstall "Development Tools"

影像處理 -透明遮罩

沒有留言:
在前面幾篇文章中已經介紹了許多影像處理的方法,今天稍微介紹一下怎麼加一個透明遮罩在影像上面。

其實稍微想一下應該就可以知道~,只要在矩陣的某一個區塊,把那個區域的值加上一個數值,就可以得到這個效果。

影像處理 -圖片濾光

沒有留言:

影像主要由RGB所構成,如果要將一張彩色圖片過濾成只有單一顏色,只要將其它兩者設成0即可!

影像處理 -均值濾波器 (mean Filter)

沒有留言:

在影像上如果有一些圖片銳度如果太高(上圖),我們可以使用均值濾波器來做一些平滑的處理,讓某些圖片看起來比較自然一點(下圖)
點圖可放大
所謂的均值,也就是平均值的意思,意思就是先找一個點為中心,把3*3的範圍加總起來做平均寫入覆蓋原本的值。

影像處理 -中值濾波器 (Median Filter)

沒有留言:
點圖可放大
圖片上經常會看到有一點一點雜訊這種雜訊稱之為胡椒鹽雜訊(Salt and pepper noise),這種雜訊我們可以利用中值濾波器將它給濾除,讓圖片比較接近原始的狀態。
什麼是中值濾波器呢?
假設圖檔裡面有一組矩陣內容如下,我們以97為中心點找出3*3的範圍所有的數字,然後將這組數字依照大小經過排列得到0,2,3,3,4,6,10,15,97,接下然我們選擇中間那個數字4 取代原本的97做輸出,這樣的做法則稱為中值濾波器。


4/13/2013

[Beagleboard] 5.建立啟動用的TF卡

沒有留言:

Beagleboard 可以通過多種方式啟動Linux系統,如通過Nandflash、TF卡或者通過NFS網絡啟動。本人選擇採用TF卡啟動的方式。因此,需要準備一張空白TF卡,在其之上建立雙分區:一個FAT32分區和一個EXT3(或EXT4)分區。FAT32分區用於存放bootloader、Image文件和一些boot參數相關的文件。EXT3分區用於存放Linux的Root filesystem。

具體步驟如下:
    1、TF卡分區
        將TF通過讀卡器連接到Linux開發環境上,找到掛載的設備,如本人系統上掛載為/dev/sdb。按照http://code.google.com/p/beagleboard/wiki/LinuxBootDiskFormat 教程完成分區。
        完成分區後,重新掛載TF卡。在/media下可以看到FAT32和EXT3兩個分區目錄。

[Beagleboard] 4.建立Linux rootfs

沒有留言:

rootfs的是系統非常重要的一部分。
Linux kernel 啟動後,必須掛載rootfs,然後從rootfs中加載其它所需的內核模塊,啟動各種系統服務。rootfs有問題的話,啟動過程會出現各種詭異的錯誤。
這邊使用ARM Fedora 12的rootfs上成功完成了整個啟動過程。

下面是基於該rootfs的建立過程:
    1、下載ARM Fedora 12 rootfs
        下載地址:http://ftp.arm.linux.org.uk/pub/armlinux/fedora/rootfs/rootfs-f12.tar.bz2
        下載其中的rootfs-f12.tar.bz2壓縮包
          bzip2 -d rootfs-f12.tar.bz2          tar xvf rootfs-f12.tar 
         解壓至rootfs-f12目錄下


[Beagleboard] 3.創建Linux kernel uImage

沒有留言:

Linux發行版已融入對OMAP處理器和bb的支持,因此,可以直接下載最新的Linux發行版內核源碼,自己編譯生成內核鏡像。

具體步驟:
(1)從www.kernel.org下載Linux kernel
    這邊我是下載2.6.39版內核源碼至omap_linux目錄下
    wget https://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.tar.bz2
    下載完後解壓縮至omap_linux資料夾中

(2)編譯生成uImage文件
    1、修改Makefile文件中以下兩行
        ARCH            ?= arm
        CROSS_COMPILE   ?= arm-linux-

[Beagleboard] 2.創建bootloader 和 boot.scr

沒有留言:

TI OMAP系列處理器上的bootloader通常是指x-loader(MLO)和u-boot(u-boot.bin),兩者用於Linux內核啟動前的配置、部分硬件系統配置以及解壓縮並加載內核Image文件並引導內核啟動。

u-boot在執行過程中會讀取boot.scr文件中的內核啟動參數,傳給即將引導啟動的Linux內核。
具體步驟:
(1)bootloader下載和編譯
    1、執行git clone git://git.denx.de/u-boot.git target_directory
         從DENX官方下載最新的u-boot至target_directory目錄。

    2、編譯u-boot,生成MLO文件u-boot.bin文件

        打開Makefile文件,修改CROSS_COMPILE ?= arm-linux-
        依順序執行
            make mrproper   //清除以往的配置信息
            make omap3_beagle_config  //針對bb進行編譯配置
            make //編譯生成MLO和u-boot.bin文件
        完成後,在目錄下生成MLO文件和u-boot.bin文件



4/11/2013

[Beagleboard] 1. 建立ARM嵌入式開發環境(Cross compiler)

沒有留言:

利用ARM Cross compiler交叉編譯環境,可以讓我們在x86系統上,編譯ARM處理器上可執行的程式碼。這邊主要用於編譯Beagleboard上的bootloader、kernel image,以及其它ARM可執行程序。

具體步驟如下:


(1)在VMware上創建一個虛擬機,安裝發行版的ubunt​u系統,用於建立ARM嵌入式開發環境。

(2)安裝arm-linux-gcc,建立ARM交叉編譯環境(需要root權限)
    1、下載arm-linux-gcc-4.3.x.tgz壓縮包(請自己挑一個版本)
          ARM-Linux GCC 4.4.3  載點1
          ARM-Linux GCC 4.3.2  MEGA  載點1 載點2 載點3
          (這邊我使用4.3.2)

    2、將壓縮檔自動解壓至/user/local/arm/目錄下。讓ARM交叉編譯器的所有可執行程序都在 /usr/local/arm/4.3.2/bin/ 目錄下
          tar -xzvf arm-linux-gcc-4.3.2.tgz -C /
         -C  某目錄 為解壓縮至某目錄下,詳細請看鳥哥

    3、配置root用戶環境變量,修改/etc/bash.bashrc文件
 #vim ~/.bashrc
          在最後加上,加完之後存檔關閉
PATH=$PATH:/new_path:/another_new_path
export PATH
         更新
#source ~/.bashrc

[matlab] 如何將 MATLAB 轉成(exe)給予他人使用?

沒有留言:

利用MATLAB Compiler將MATLAB函式轉成執行檔(*.exe),並置於沒有MATLAB
的環境下使用。

4/10/2013

ubuntu 安裝rpm檔案

沒有留言:
如果在 Ubuntu 想要安裝的軟件只提供 RPM 檔案,而沒有提供 debian 的 .deb 檔案,可以使用 Alien Package Converter 來解決。

Alien 是一個將 rpm, dpkg, ....檔案格式間轉換的工具,而在 Ubuntu 上安裝 Alien 也只需用 apt-get 即可安裝,相當方便,以下是具體實現方法:

$sudo apt-get install alien

輸入以上指令後,需要輸入密碼,然後按 “Y” 確認即可。安裝完成後,就可以用以下指令將 rpm 檔案轉換:

$sudo alien -k xxx.rpm
接下來就可以安裝
$sudo dpkg -i xxx.deb
又或者可以直接使用
$alien -i  xxx.rpm(會轉完後自行安裝,並移除.deb檔)

4/02/2013

Netlink 介紹

沒有留言:

Netlink使用標準的socket介面來作為kernel與使用者介面的溝通,其address family填PF_NETLINK,而socket type為SOCK_RAW、SOCK_DGRAM,protocol則根據不同的netlink group不同而有所不同(詳細資訊可以man 7 netlink)。

socket = socket(AF_NETLINK, SOCK_RAW, netlink_family);

Netlink Socket Address Structure
Netlink也需要socket address,其socket address為:
struct sockaddr_nl {

    sa_family_t     nl_family;  /* AF_NETLINK */

    unsigned short  nl_pad;     /* Zero. */

    pid_t           nl_pid;     /* Process ID. */

    __u32           nl_groups;  /* Multicast groups mask. */

};


如果傳送的對象是kernel或者以multicast傳送,則nl_pid設為0。
如果是kernel傳送給user-space上面的application時(multicast),就會填入正確的pid,然而nl_pid實際的意義並不是指PID,而只是用於識別一個netlink socket而已,對於application在建立一個netlink socket時,可以將nl_pid設為0,然後bind(),kernel會自動將PID填入。而nl_groups是用multicast,採用bit mask方式,所以每個netlink family有32個multicast group。

4/01/2013

Arp Spoofing 欺騙攻擊-實作

沒有留言:
上一篇文章講到怎麼查看ARP封包的資訊,現在這邊開始要講一些ARP封包的應用,在開始之前必須聲明一下 本實驗僅供學術實驗用途...請勿拿來打你鄰居阿...

一、步驟:

攻擊者: IP:192.168.136.131 MAC: {0x00, 0x0c, 0x29, 0xab, 0x9a, 0xd7}
被攻擊者:IP: 192.168.136.132 MAC: {0x00, 0x0c, 0x29, 0xd1, 0xab, 0x11}
gateway: IP:192.168.136.2 MAC:{0x00,0x50,0x56,0xf0,0xdd,0x74}

攻擊者發送arp封包給被攻擊者,告知被攻擊者 錯誤的gateway MAC address

二、實驗操作影片


建議切換至HD畫質欣賞