顯示具有 PI 新手教學 標籤的文章。 顯示所有文章
顯示具有 PI 新手教學 標籤的文章。 顯示所有文章

2019年10月6日 星期日

Pi 新手教學(零) --艾鍗Raspberry Pi I/O Shield 規格介紹



艾鍗Raspberry Pi 擴充板 (適用Pi 3, Pi 3+, Pi 4,  Pi 5)

ADC、DC馬達驅動、G-sensor、紅外線收發器、OLED、Buzzer、LED、Button、DIP Switch、Relay

Raspberry Pi 擴充板功能摘要

  1. 由於Raspberry Pi 沒有類比輸入的能力: 所以此擴充板加入ADC 晶片以提供8 通道的類比訊號輸入, 如此可以讓Raspberry Pi 可以擁有連接類比感測器的的能力
  2. 拉出Pi的硬體PWM訊號腳, 並加入DC 驅動電路, 使Pi 可以直接連接DC 馬達、BLDC無刷馬達
  3. USB Debug Console: 不用再買Serial-TO-USB的轉接線材了, 本擴充板已內建PL2303晶片了, 故可以直接接到PC USB
  4. 同時擁有IR紅外線發送器及接收器, 可以讓Pi當作多媒體的應用平台或IR遙控器
  5. 附有OLED的模組,可以直接接上OLED用來顯示系統狀態
  6. TH1 可以直接連接光敏電阻, 可以進行光度感測 (光敏電阻將隨出貨附贈)
  7. 內建 G-Sensor (LIS3DH) 可以感測Pi 在X,Y,Z軸方向的移動狀態
  8. 附有nRF24L01的2.4G RF通訊模組,可進行2.4G 無線通訊實驗
  9. 用DIP Switch 記錄不同狀態,Pi 就能有不同的啓動狀態或選擇進入不同的功能模式
  10. 接出I2C連接座和SPI連接座方便外接更多的數位式感測器






 

Raspberry Pi 3、4、5 的 40 Pin GPIO 腳位排列與邏輯定義相同


板子功能驗證


1.) 下載測試範例, 檔案傳到Raspberry Pi 上

https://bit.ly/3XEy1uc

2.) 在Raspberry Pi 上解開

unzip pi3_basic.zip

3.) 編譯與執行

cd pi3_basic

chmod +x build.sh ==> 如果沒有執行權限, 則加入執行權限 (此script幫你做gcc的動作)

./build.sh ==> 產生執行檔blink

sudo ./blink ==> 執行blink, 可看見LED 閃爍!


2017年8月30日 星期三

[新手教學] ARM boot Loader 數位課程學習須知



 教學影片內容為ARM 微理機架構解說與ARM Boot Loader 等技術主題的說明並有講師Demo Pi 3影片

目標對象:
  1. 有嵌入式系統開發經驗但並未接觸過底層開機程式碼 (Boot code)

先備知識: 

  1. Linux 系統操作能力
  2. 熟悉的C程式
  3. 會使用gcc, make 的等GNU開發工具
  4. Raspberry Pi 的操作使用經驗
Raspberry Pi 3 環境建置:


請先登入學習平台,在[課程公告]處, 點選下載ARM Files.rar ,解開後內容如下

ARM Files 檔案目錄結構:
├─ADS_code  (ADS 課程範例原始碼)
├─Document (Data Sheet及電路圖等文件)
├─Tools
│  ├─2016-05-27-raspbian-jessie-lite.zip (Raspberry Pi 3官方Image File)
│  ├─ADS12trial.rar (ADS 1.2 試用版)
─pi-boot.zip (Raspberry Pi Bootloader  課程範例原始碼)
├─TOC.tx

其中 pi-boot.zip 要傳送到PC Linux下 (註: 講師用的Linux環境是 Ubuntu 16.04, 但其實只要Toolchain能執行就可以,和使用那一套Linux Distribution並無太大關聯) ( 延伸閱讀: 用VirtualBox 掛載 Linux )





ARM bootloader on Raspberry Pi 3 
=====================================

在 Linux 下 執行 "unzip  pi-boot.zip" , 解開後的內容如下, 請照README.txt 或下方說明, 完成第一個Pi上的範例

  
pi-boot
  │  gcc-arm-none-eabi-5_3-2016q1-20160330-linux.tar.bz2
  │  gcc-arm-none-eabi-6-2017-q1-update-linux.tar.bz2
  │  make.dep
  │  README.txt
  ├─bcm2835_lib
  ├─example
  │   ├─bare_button
  │   ├─bare_button_in
  │   ├─bare_gpio
  │   ├─bare_mailbox
  │   ├─bare_timer
  │   ├─bare_uart_poll
  │   └─uart_interrupt
  └─startup_code
          boot.o
          boot.S
          link.ld
          Makefil
          start.o
          start.S

How to Build
------------------------
step1: untar Toolchain
------------------------
gcc-arm-none-eabi-5_3-2016q1.tar.gz --> for 32-bit Linux host  
gcc-arm-none-eabi-6-2017-q1-update-linux.tar.bz2 --> for 64-bit Linux host


For example, 

tar jxvf gcc-arm-none-eabi-6-2017-q1-update-linux.tar.bz2 

-------------------------
step2: Setup Toolchain Path
-------------------------

export PATH=$PATH:/home/it/pi_baremetal/trunk/gcc-arm-none-eabi-6-2017-q1-update/bin

type "arm-none-eabi-gcc -v"

it will display : gcc version 6.3.1 


-------------------------
step3: make boot code firstly
-------------------------

#modify make.dep to determine which version to use
# 0 for 32bit ; 1 for 64
Host_64=1

cd startup_code ; make


-------------------------
step4: test demo code
-------------------------


cd example/bare_gpio
make

output==>armgpio.bin

-------------------------
step5: put the code to Raspberry Pi 3
-------------------------

 copy 'armgpio.bin' to micro SD card and add one line 

 kernel=armgpio.bin

at the end of the config.txt file. Then, you insert micro SD card into Raspberry Pi,and power on. After booting, you can see LED is blinking.


 Note: code 在Pi 3上測試過
      目前講師所整理的code 僅以Raspberry Pi 3 搭配艾鍗 Raspberry Pi 3 Shield 版本為主







2017年8月8日 星期二

[新手教學] Linux Driver 數位課程學習須知


前言: 

本課程之 Driver 開發範例皆直接於 Raspberry Pi 平台上進行,並將 Raspberry Pi 視為一套完整的 Linux 主機開發環境。教學內容涵蓋 Linux Driver 的核心設計觀念、各項驅動程式技術主題的系統性講解,並搭配實際開發成果與操作示範(Demo)影片,協助學員由理論延伸至實務,完整掌握驅動程式的開發流程與系統整合方法。

課程實作範例基於 Linux Kernel 4.14 LTS(Long Term Support)版本進行設計。此版本具備架構成熟、API 穩定且子系統複雜度適中的特性,特別適合用於拆解與理解 Linux Driver 的核心設計原理。學員能清楚掌握中斷機制、裝置模型、資源管理、平台驅動、Device Tree 與各子系統之間的架構關係,而非僅停留於高度自動化 API 的操作層面。

Linux Driver 的核心架構自 4.x 至 6.x 版本之間並未產生本質性的改變,主要差異在於 API 設計與實作形式的演進。本課程著重於培養學員對 Linux 裝置模型、子系統整合與資源生命週期管理的系統性能力,確保所學知識可無縫遷移至 5.x、6.x 及未來核心版本,並實際應用於產業級開發與產品導入場景。~ 2025/12/3


先備知識: 

  1. 具Linux 系統操作能力 (cd, cp , tar , sudo, ifconfig 這些指令的使用是常識 )
  2. 熟悉C程式設計
  3. 會使用gcc, make 的等GNU開發工具
  4. 有Linux 系統程式設計的經驗
Raspberry Pi 3 環境建置:


請先登入學習平台,在[課程公告]處, 點選下載 image , 此為艾鍗 Linux Driver 上課用 image (已有將上課範例及核心原始碼都放進去了)


請先解開 rar 壓縮檔, 然後再用WinDisk工具寫入至 16G MicroSD 卡中

Pi 3+ 16G的ISO檔   https://bit.ly/3zoqPbK
開機後登入 :  root , 密碼: 123456  



登入後,可先進入 01_LED , 執行動入如下

make  ==> 產生chr_led.ko的檔案

insmod chr_led.ko  ==> 載入driver

gcc test.c -o test  ==> 產生應用程式執行檔  test

sudo ./test ==> 執行應用程式, 可以看到LED 閃爍



2017年8月6日 星期日

Pi 新手教學(三) ---使用SSH登入Raspberry Pi




使用SSH登入Raspberry Pi


  1. 先碓認 Pi 和 PC之間網路必須能連通, 可以用 ping <IP位址>


    ***在Raspberry Pi 使用WiFi***

    sudo raspi-config   進入[Network Options]  --> Wi-Fi

    * 設定國碼 TW Taiwan 
    * 欲連結 AP 的SSID 名稱
    * WiFi 密碼



  2. 同時再確認: Pi 本身的SSH 服務必須是開啓的 (一般來說應該都是開啓的), 可以使用 netstat -atn 查看是否SSH 處於listen 狀態 (tcp port: 22)


  Note: 官方最新版的Image預設是沒有SSH 啓動的,所以得自己去開啓它


2016年8月31日 星期三

Pi 新手教學(二) ---如何使用UART Console 登入Raspberry Pi



紅色 Raspberry Pi 擴充板內建 USB 轉序列埠 (PL2303) 晶片,使其能夠透過標準 USB 介面連接至電腦。這允許使用者在電腦端利用 終端模擬器 (Terminal Emulator),對 Raspberry Pi 進行 序列控制台 (Serial Console) 的操作和系統調試。

硬體安裝

Raspberry Pi 紅色擴充板插在Raspberry Pi 上,如下圖所示。






下方綠色 (Raspberry Pi):透過一個 USB 連接線(標示為 5V power)從電腦 USB 埠獲取 5V 供電。上方紅色擴充板:透過另一個 USB 連接線(標示為 Console)連接到電腦,作為 Console (序列埠) 介面使用。



注意:
  1. Serial-to-USB 的連接器是 microUSB,即手機常用的那種接頭.
  2. Serial-to-USB 線不用時要拔掉不要插在板子上, 以免不小心壓到使連接器折斷或把板子上的PCB pad(銲接點)連根拔起而無法修復.

2016年4月25日 星期一

Pi 新手教學(一) --- 使用Wind32 Disk Imager 燒錄卬象檔



下載Wind32 Disk Imager , 執行後進以下動作, 選擇image, 然後按"Write"即入將Pi image 寫入到
micro SD上, 完成後, 再將SD卡插回raspberry Pi , 插電即可啓動Raspbian 系統。
PS. 可以到Raspberry Pi 官網, 下載 Image (下載)



啓動了但你沒有看到輸出訊息,那是正常的..

如何看到輸出畫面? 

  1. 接UART Console 終端機 (如何使用UART Console 登入Raspberry Pi )
  2. 或連接 HDMI 螢幕

2022 年開始Raspberry 的預設帳號Pi 不存在了! 要自己建立Pi 帳號
http://blog.ittraining.com.tw/2023/07/raspberry-pi.html