發表文章

一技之長走遍天下!自學程式該從哪一個學起?

圖片
過去的幾十年裡,你我都經歷了一場數位科技革命。從兒時大型厚重的桌機電腦,到現在的輕便攜帶的平板電腦、智慧型手機,智慧型家電,科技被廣泛應用於各種領域,而這些創新,皆是由一個一個編碼所串連而成。由於我們當今重度依賴科技所帶來的便利,使得工程師成為這時代熱門高薪的職缺。 蘋果創創辦人賈伯斯曾說:「我覺得每個人都應該學習一門程式語言,因為編程教你如何思考。」微軟創辦人比爾蓋茲也認為程式教育是「21 世紀基本技能」。既然如此的話,那零基礎的人該從哪個語言開始才最實用同時最有機會讓自己在職場中叱詫風雲呢? 2020年2月程式設計界的技術問答網站Stack Overflow透過問券調查了全球186個國家的6.5萬名開發者其最常使用的編程語言,結果顯示JavaScript連續八年站穩全球第一名的位置,第二名則為Python。回過頭來看亞洲,JavaScript一樣是華人工程師界最受歡迎的程式,不過在台灣,Java在過去三年才是最多人學習的編程語言,緊接著才是JavaScript和Python。有趣的是,在2020年學習C++和Rust的人首次超越前兩年。 要決定學什麼之前,應該先看你未來的職業目標方向。以下我們簡略來按一下前三名受歡迎程式的用途: ● JavaScript是個廣泛應用於網頁設計的動態程式語言,讓老舊的靜態網頁透過頁面的效果、動畫、遊戲生動起來。假設你的願景是成為專業架設網站工程師,那JavaScript肯定為入門必學程式。 ● 隨著人工智慧AI的突破,Python所受的關注度也越來越高。從機器學習、大數據到自動化,Python都是開發的關鍵工具。 ● Java編程可用於寫Android系統應用程式App、手遊、軟體工具等。 除此之外,Stack Overflow的報告也指出台灣企業最常使用的資料庫為MySQL,其用途在於管理大量數據,無論是企業IT還是架設電子商務網站,MySQL都是不可或缺的一項工具。加上當前許多企業徵才IT部門職缺常要求至少對MySQL有點基礎概念,學會了資料庫技術就不用擔心找不到好工作的苦惱。 工程師的優異薪資是眾所皆知。在台灣,軟體初階工程師年薪可到達60-70萬,資深工程師年薪可到80-90萬,主管階級的工程師甚至年薪至少百萬起跳。聽起來很吸引人吧?你也可以做得到,不過得記得,程式技能不是一天兩天就能學精,一切都得從基礎打起。對想轉行的人...

[Colab][Python]define function定義函數

圖片
  This video shows 5 kinds of examples for definition of function. 這個影片展示5種定義函數的範例。 1.Define function (no parameter)定義函數(無參數) 2.Define function (parameters)定義函數(參數) 3.Define function (parameters) with Return (single value) 定義函數(參數) 回傳值 4.Define function (parameters) with Return (multiple value) 定義函數(參數) 回傳多個值 5.Define function (*parameter: multiple parameters) with Return (single value) 定義函數(*參數: 多參數) 回傳值

[Python] Update and delete data with SQLite in Colab/在Colab中更新與刪除SQLite資料庫

圖片
  This example shows how to use python to comunicate with SQLite in Colab. 這個範例說明如何在Colab中使用python來與SQLite溝通。 7. Update data in table 更新資料表中的資料 8. Delete data in table 從資料表中刪除資料 Previous video: 先前影片 https://www.youtube.com/watch?v=mRuwI-ve5To

[Python][Colab][SQlite] Wite and read data with SQLite in Colab在Colab中讀寫SQLite資料庫

圖片
This example shows how to use python to comunicate with SQLite in Colab. 這個範例說明如何在Colab中使用python來與SQLite溝通。   1. Mount Google drive for Colab use 在Colab中掛載Google硬碟 2. Ceate database in Google drive 在Google硬碟建立資料庫 3. Create Table and add header 建立表單與加入表頭 4. Insert the single row data to table 加入單列資料到表單中 5. Read data from the table 從表單中讀取資料 6. Insert the muliti rows of data to table 加入多列資料到表單中

[Colab][python]Install and use yfinance in Colab/在Colab上安裝與使用yfinance函式庫

圖片
 This video shares how to install and use yfinance in Colab 本影片分享如何在Colab上安裝與使用yfinance函式庫 1. Install yfinance library 安裝yfinance函式庫 2. Get single item or all items from stock information 獲取單一或全部的股票資訊項目 3. Get historical data of stocks (5days) 獲取股票的歷史資料  (5天) 4.  Download  historical data as .csv from google to location 將google上的歷史資料下載到在地端存成.csv檔 5. Download  historical data with start, end time and interval 使用開始、結束時間與間隔來下載歷史資料

[ESP IDF][VS Code]Install, set up ESP IDF and build example in VS Code/在VS Code中安裝,設定ESP IDF與建立範例說明

圖片
  This video shares how to install, set up ESP IDF and build example in VS Code 這個影片分享如何在VS Code中安裝,設定ESP IDF與建立範例說明 1. Install ESP IDF extension in VS Code 在安VS Code中裝ESP IDF擴充套件。 2. Download ESP IDF 下載ESP IDF。 3. Download, set up and verify ESP IDF Tools 下載,設定與驗證ESP IDF Tools。 4. Creat hello_world example 建立一個hello_world範例。 5. Add include Path 加入Include相關檔案的路徑。 6. Build, flash and monitor project 建立,記憶體更新,以及監控專案。

[LabVIEW] Get stock data from yahoo finance by LabVIEW/使用LabVIEW獲取yahoo財經上的股票資料

圖片
  This example shows how to use LabVIEW to get stock data from yahoo finance 這個範例說明如何使用LabVIEW擷取yahoo財經上的股票資料 1. get yahoo finance data by using LabVIEW 使用LabVIEW擷取Yahoo財經的資料 2. Use HTTP Client VIs to get web content 使用HTTP Client的VIs來獲取網頁內容 3. Determine the data range you want to get 決定想要獲取的資料範圍 4. Select data range by using Match Pattern VI 使用Match Pattern VI選擇資料範圍 5. Find one row data by using Match Pattern VI 使用Match Pattern VI尋找一列資料 6. Find add row data by using Match Pattern VI 使用Match Pattern VI尋找所有列資料 7. Send all array data to Multi Listbox 將陣列資料送到Multi Listbox

[FreeRTOS][Arduino] Data transmission between tasks by using queue/使用佇列來傳遞任務間的資料

圖片
This example shows how to use the queue to transmit data from one task to another task. 這個範例說明如何使用佇列將資料從一個任務傳到另一個任務。 We will introduce some queue related functions which used in this example: 我們將介紹一些跟佇列相關的函數: *   QueueCreate() -->Create the queue 創建佇列 *   xQueueSend() -->Send data to the queue 傳送資料到佇列中 *   xQueueReceive() -->Receive data from the queue 從資料中獲取佇列 *   taskYIELD() -->Switch to another task 轉換到其他任務 *   uxQueueMessagesWaiting()--> find how many data in the queue 發現佇列中有多少資料數 Media 影音: Other articles related to FreeRTOS: 其他與FreeRTOS相關的文章: 1.  [Arduino]Install FreeRTOS in Arduino/在Arduino中安裝FreeRTOS 2. [FreeRTOS][Arduino]Create FreeRTOS task in Arduino with VS Code/使用VS code在Arduino中創建任務 3. [FreeRTOS]Use vTaskDelay to implement tasks running in different priorities/使用延時函數實現不同優先順序的任務執行

[贊助區] MPU6050六軸感測器利用連芽模組HC06與Android App傳遞訊息

圖片
本篇是將MPU6050六軸感測器利用Bluetooth(HC-06)與Android App傳遞訊息, 這一個範例傳的是MPU6050的Yaw, Pitch, Roll數值,使用Arduino mega 2560做資料擷取,Android App是用App Inventor開發。 此範例花了許多時間在解決藍牙傳輸浮點數(floating point)數據到Android手機端後, App Inventor如何處理浮點數數據並顯示出來。   贊助本篇的人,將會得到: 1. Arduino程式碼 2. App Inventor 2藍牙相關的程式碼 3. 程式碼使用教學影片   > MPU6050的相關影片 1.  [Arduino] Acquisition of MPU6050 raw data by using Mega2560/使用Mega2560擷取MPU6050原始資料   2.  [Arduino] Acquisition of MPU6050 raw data by using Mega2560/使用Mega2560擷取MPU6050原始資料   3.  [Arduino]Transmit ypr data of MPU6050 to App vis HC06/將MPU6050的ypr的資料經由HC06傳輸到手機App上

[Arduino] Acquisition of MPU6050 raw data by using Mega2560/使用Mega2560擷取MPU6050原始資料

圖片
This example shows how read the raw data of MPU6050 by using Arduino Mega2560. There are several steps: 1. Download and install MPU6050 library. (refer to:  http://www.i2cdevlib.com/devices/mpu6050#source ) 2. Introduce the source code. 3. Connect MPU6050 to Mega2560. (refer to:  https://fishark.pixnet.net/blog/post/42021475 ) 4. Print raw data (ax, ay, az, gx, gy, gz) to the serial port monitor. 這個範例說明如何使用Mega2560來讀取MPU6050的原始資料。 步驟如下: 1. 下載與安裝MPU6050函式庫。(參考:  http://www.i2cdevlib.com/devices/mpu6050#source ) 2.  程式碼簡介。 3. 連接MPU6050 與Mega2560。 (參考:  https://fishark.pixnet.net/blog/post/42021475 ) 4. 列印原始資料 (x, y, z的加速度與角加速度)到序列埠監控視窗。

[Arduino][FreeRTOS]Use vTaskDelay to implement tasks running in different priorities/使用延時函數實現不同優先順序的任務執行

圖片
This example explain what are tick, tick ISR, task states (Running, Ready, Blocked, and Suspended) and how to use two task delay functions (vTaskDelay and vTaskDelayUntil) to elimanate starving state while two tasks are called with different priorities . 這個範例說明什麼是時脈、時脈中斷服務、任務狀態(執行、就緒、阻塞與掛起),以及如何使用任務延時的函數(相對延時vTaskDelay與 絕對延時vTaskDelayUntil)去消除呼叫兩個不同優先順序的任務時產生的餓死狀態。 Hardware: Arduino Mega2560 Software: VS Code

[FreeRTOS][Arduino]Create FreeRTOS task in Arduino with VS Code/使用VS code在Arduino中創建任務

圖片
  This example shows how to create FreeRTOS task, call scheduler and implement task function in Arduin. 這個範例說明如何在Arduino中創建FreeRTOS的任務、呼叫調度器,以及實現任務函數。 1. Only one task in the running state at any one time, the others are in the not running time. 2. Create two print tasks with the same priority. 3. Create two print tasks with different priorities. Only higher priority task is running. (Staved situation happens.) 1. 在任意的時間點只有一個任務能在執行狀態執行,其他的任務都在非執行狀態。 2. 建立兩個任務,有一樣的優先順序。 3. 建立兩個任務,有不同的優先順序。只有優先順序高的任務會被執行。(會有"餓死"的狀況發生。)

[Arduino] Edit Arduino code to control RGB LED in VS code/使用VS code編輯Arduino程式碼來控制RGB LED

圖片
  This video show the blinking of RGB LED controlled by Mega2560. 本影片展示用Mega2560控制RGB LED閃爍的狀況。 Next video will express how to implement it by editing the Arduino code in the VS Code. 下一個影片將說明如何使用VS Code來編寫Arduino code來實現這樣的控制。 This video shows how to write the Arduino code of RGB LED blinking by using the VS code. 本部影片展示如何使用VS code去編輯控制RGB LED閃爍的Arduino程式碼。 Hardware: Mega2560 硬體: Mega2560 Steps: 1. Use command "Arduino: Initialize" to create .ino file. 2. Modify "c_cpp_properties.json" to add the content of include path and setup other parameters. 3. Modify "arduino.json" to add build file for fast compilaton. 3. Edit code in VS code. 4. Upload code to Mega2560 board. 5. View Blink.ino in Arduino IDE. 步驟: 1. 使用"Arduino: Initialize" 去建立 .ino檔。 2. 修正 "c_cpp_properties.json" 去新增 include path的內容和設置其他參數。 3. 修正"arduino.json" 去新增 build資料夾讓編譯速度加快。 3. 在 VS code中編輯程式碼。 4. 上傳程式碼到Mega2560板中。 5. 在Arduino IDE中察看 Blink.ino檔案。

[Arduino]Install FreeRTOS in Arduino/在Arduino中安裝FreeRTOS

圖片
This video shows how to install FreeRTOS library in Arduino IDE.  這影片說明如何在Arduino IDE中安裝FreeRTOS的程式庫。

[LabVIEW][Arduino] Read/Write data between BLED112 dongle and ESP32/在BLED112適配器和ESP32間讀寫資料

圖片
This example shows how BLED112 dongle receive data from ESP32 development board and then send data back to ESP32 and print data on the COM port monitor. 這個範例說明BLED112 dongle如何從ESP32開發版上收取資料,以及將資料送回ESP32並將資料列印在串列埠監控視窗上。 The next video will show to edit Labview program of BLED112 and Arduino code of ESP32. 下一個影片我們將說明如何轉寫BLED112的LabVIEW程式,以及ESP32的Arduino程式碼。 1. Introduce LabVIEW example code of BLED112 dongle and Arduino code of ESP32 development board. 2. BLE Scan and connection between BLED112 and ESP32. 3. Find Service UUID and Characteristic UUID Rx/Tx of ESP32 in LabVIEW program. Next video will shows how BLED112 dongle reads and write string to ESP32. 1. 簡介BLED112 dongle的LabVIEW程式內容和ESP32開發版的Arduino程式碼。 2. BLED112 and ESP32之間的低功號藍芽掃描與連結。 3. 在LabVIEW程式中找到ESP32的Service UUID和Characteristic UUID Rx/Tx。 下一個影片將說明BLED112 dongle何和讀寫字串到ESP32開發版上。 1. Add while loop in LabVIEW code to read/write data to ESP32 continuously. 2. Convert unit8 value to 3 digits ASCII code in LabVIEW code. 3. Wr...

[AI2][Arduino][ESP32] Classic Bluetooth connection between ESP32 and AI2 App/傳統藍芽傳輸使用ESP32與AI2

圖片
This example demonstrates how to use the classic Bluetooth of ESP32 to read and write data from App created by App Inventor 2. 這個範例說明如何使用經典的藍芽連線方式,在ESP32開發版與App Inventor 2開發出來的 App間進行資料的讀寫。 1. Upload SerialToSerialBT code to ESP32 DevKitc_V4 2. Input string to the serial port monitor to transmit data to App. 3. Input a string to the Write Textbox and tap the Write Button in the App to send data to ESP32 board. 1. 上傳SerialToSerialBT.ino程式碼到ESP32 DevKitc_V4開發版 2. 在Arduino串列埠監控視窗輸入文字,傳送到App中。 3. 在App的 寫入文字方塊中輸入文字,按下寫入的按鈕,將資料傳輸到ESP32開發版上。 In the next video, I will demonstrate how to implement the classic bluetooth app by using App Inventor 2. 下一個影片,我們將展示如何使用App Inventor 2寫一個經典藍芽傳輸的App。 1. Start new project to create designer and blocks windows 開啟新專案建立designer與block視窗 2. Place ListPicker for displaying address and name of bluetooth and Label for showing the result of connection 放置ListPicker顯示藍芽的地址以及名稱,放置Label顯示藍芽連線的結果。 3. Place buttons and texboxes for reading and writing texts 放置讀與寫的按...

[Arduino][VS Code][Voice] Edit Arduino code in the VS code/在VS Code中編輯Arduino程式碼

圖片
This example shows how to install Arduino extension and edit Arduino code in the VS code. 這個範例說明如何在VS Code中安裝Arduino extension以及編輯Arduino程式碼。 1. Install Arduino extension in the VS code. 在VS code中安裝Arduino extension。 2. Set Arduino installation Path. 設定 Arduino的安裝路徑。 3. Ctrl+Shift+P to input command " Arduino: Examples". 使用 Ctrl+Shift+P去輸入"Arduino: Examples"指令。 4. Open Blinky example 打開Blink的範例 5. Select COM port and board type "Mega2560". 選擇COM port, 以及Mega2560開發版。 6. Modify code and upload to Mega2560. 修改程式碼然後上傳到Mega2560上。 We will share more tutorial videos with people who want to learn LabVIEW and Python welcome to subscribe this channel. 未來會陸續更新影片,讓想學習LabVIEW和Python的朋友可以看影片學習,歡迎訂閱此頻道。 其他網址/related websites: https://labview-tech.blogspot.com/ https://fishark.pixnet.net/blog email: jacklee3633@gmail.com Line: lvnet

[Python][Voice]Integrate a plot of matplotlib into tkinter GUI/整合matplotlib的繪圖到 tkinter圖形視窗中

圖片
This example shows how to integrate a plot or figure on matplotlib into the graphic user interface of tkinter. 1. Import tkinter 2. Import matplotlib 3. Import FigureCanvasTkAgg 4. Import Figure 5. Build a window named "win". 6. Window format 1: title() 7. Window format 2: geometry() determine size and initial position(x,y) 8. Window format 3: maxsize() set max size of a window 9. Build a figure with figsize = (Width: inch, Length: inch) and dpi = pixel per inch 10. Add the subplot to the figure. 11. Generate x array 12. Generate y array 13. Use plot() to draw the graph 14. Use FigureCanvasTkAgg(figure,win) to put figure on the win (window) 15. Use get_tk_widget().pack() to place figure on the win (window) 16. Build close_win function to end the window 17. Build Button component and give a string to text, and use command to call the function 18. Use pack to arrange Button on bottom side 19. Use mainloop() to keep window running for monitoring and handling events 這個範例說明如...

[TouchGFX][STM32F4] Use TextArea to display the value changing on the LCD/使用文字區塊將變動的數值顯示在LCD上(一)

圖片
This example shows how to use TextArea to dispaly the increasing value on the LCD of STM32F429I Disc1. 1. Set parameters of the TextArea: Color, Wildcard. 2. Use snprinf() function to display the TextArea buffer on the LCD. 3. Use handleTickEvent() to update the value periodically. 4. Redraw by using TextArea.invalidate(). 這個範例說明如何使用TextArea,將一個遞增的數值顯示在STM32F429I Disc1開發版的LCD上。 1. 設定TextArea的參數,如顏色、Wildcard。 2. 使用snprinf()將 TextArea buffer的資輛顯示在LCD上。 3. 使用handleTickEvent()去更新數值。 4. 使用TextArea.invalidate()去重繪畫面。 We will share more tutorial videos with people who want to learn LabVIEW and Python welcome to subscribe this channel. 未來會陸續更新影片,讓想學習LabVIEW和Python的朋友可以看影片學習,歡迎訂閱此頻道。 其他網址/related websites: https://labview-tech.blogspot.com/ https://fishark.pixnet.net/blog email: jacklee3633@gmail.com Line: lvnet

[TouchGFX] [STM32F4] Use TouchGFX to design GUI on STM32F429I Disc1/使用TouchGFX設計STM32F429I Disc1開發板的圖形介面

圖片
This example shows how to use TouchGFX to design GUI on LCD of STM32F429I Disc1 Board. One progress indicator and two buttons are used in this example. There are two examples of demonstrating interactions of the button to interact with the circleProgress indicator: 1. setValue 2. Call New Virtual Function --> Use VS code to modify code generated by TouchGFX Tab "Run Simulator" to see the effect of the code. Tab "Run Target" to download the code to STM32F429I Disc1 board. 這個範例說明如何使用TouchGFX設計STM32F429I-Disc1 開發板上LCD的圖形介面。 有兩個按鈕與一個circle Progress顯示項被使用在這的範例上, 有兩個範例說明按鈕與circle Progress顯示項的互動: 1. 設定數值 2. 呼叫新的虛擬函數 -->使用VS code去修改TouchGFX產生的程式碼 按下Run Simulator去看看模擬的效果。 按下Run Target去將程式燒錄在STM32F429I Disc1開發版。   We will share more tutorial videos with people who want to learn LabVIEW and Python welcome to subscribe this channel. 未來會陸續更新影片,讓想學習LabVIEW和Python的朋友可以看影片學習,歡迎訂閱此頻道。 其他網址/related websites: https://labview-tech.blogspot.com/ https://fis...