2023年3月4日 星期六

用C#控制Arduino

 C#控制只要使用 Serial Port 來溝通,讓電腦端可以控制 Arduino 的 LED

Serial Port必須要引入 using System.IO.Ports才能使用,有些人在使用VS時會缺少Serial Port元件

如下圖到 : 工具 > NuGet套件管理員 > 管理方案的NuGet套件



看到此視窗請到瀏覽位置 > 在收尋的地方打上Serial Port > 點選System.IO.Ports > 勾選並選擇安裝



Serial Port的錯誤選項就會消失了

介下來就是開始撰寫程式

C# :

新增這些元件


程式部分 : (我沒把在測試中不需要的程式碼刪除,只做了註解)

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO.Ports; using System.Threading; namespace WinFormsApp1 { public partial class Form1 : Form { // static SerialPort _serialPort; private SerialPort serialPort1 = new SerialPort(); public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { serialPort1.BaudRate = 9600; // serialPort1.Parity = Parity.None; // serialPort1.DataBits = 8; // serialPort1.StopBits = StopBits.One; btnDisconnect.Enabled = false; btnLedOpen.Enabled = false; btnLedClose.Enabled = false; cbPortNumber.Items.AddRange(SerialPort.GetPortNames()); label1.Text = "PC狀態:尚未連線"; } private void cbPortNumber_SelectedIndexChanged(object sender, EventArgs e) { serialPort1.PortName = cbPortNumber.Text; } /*private void btnConnect_Click(object sender, EventArgs e) { serialPort1.Open(); btnConnect.Enabled = false; btnDisconnect.Enabled = true; btnLedOpen.Enabled = true; btnLedClose.Enabled = true; label1.Text = "PC狀態:連線中"; }*/ private void btnDisconnect_Click(object sender, EventArgs e) { serialPort1.Write("0"); serialPort1.Close(); btnConnect.Enabled = true; btnDisconnect.Enabled = false; btnLedOpen.Enabled = false; btnLedClose.Enabled = false; label1.Text = "PC狀態:斷線中"; label2.Text = "Arduino回傳:"; label3.Text = serialPort1.IsOpen.ToString(); } private void btnLedOpen_Click(object sender, EventArgs e) { serialPort1.Write("1"); btnLedClose.Enabled = true; btnLedOpen.Enabled = false; label1.Text = "送出指令:LED ON"; label2.Text = "Arduino回傳:" + serialPort1.ReadLine(); } private void btnLedClose_Click(object sender, EventArgs e) { serialPort1.Write("0"); btnLedOpen.Enabled = true; btnLedClose.Enabled = false; label1.Text = "送出指令:LED OFF"; label2.Text = "Arduino回傳:" + serialPort1.ReadLine(); } private void btnConnect_Click_1(object sender, EventArgs e) { serialPort1.PortName = cbPortNumber.Text.ToString(); serialPort1.Parity = Parity.None; serialPort1.DataBits = 8; serialPort1.StopBits = StopBits.One; serialPort1.Open(); btnConnect.Enabled = false; btnDisconnect.Enabled = true; btnLedOpen.Enabled = true; btnLedClose.Enabled = true; label1.Text = "PC狀態:連線中"; label3.Text = serialPort1.IsOpen.ToString(); // serialPort1.Write("1"); } } }

Arduino的程式碼 :

int led1=13;
void setup() {
   Serial.begin(9600);     // 開啟 Serial port, 通訊速率為 9600 bps
   // 初始化 LED 接腳
   pinMode(led1, OUTPUT);
   digitalWrite(led1, LOW);
  Serial.println("please select '1' or '0' to control led:");
}
void loop() {

   // 檢查是否有資料可供讀取
   if (Serial.available() > 0) {
     // 讀取進來的 byte
     char inByte = Serial.read();
     // 根據收到的字元決定要打開或關掉 LED
     Serial.println(inByte);
     switch (inByte) {
     case '0':    
       digitalWrite(led1, LOW);
       delay(1000);
       Serial.println("LED OFF");
       break;
     case '1':
       digitalWrite(led1, HIGH);
       delay(10000);
       Serial.println("LED ON");
       break;
     default:
       // 關掉所有的 LED
       digitalWrite(led1, LOW);
        delay(10000);
     }
   }
}


2021年6月12日 星期六

Yahoo股市教學

Yahoo股市教學


首先我們點到 “1.”股市 = > “2.” 首頁

Opera 快照_2021-06-13_093245_tw.stock.yahoo.png

  1. 大盤行情


在首頁部分我們可以看到大盤行情


Opera 快照_2021-06-13_093245_tw.stock.yahoo.png

Yahoo股市所提供的各個大盤 : 


大盤行情

台股

亞股

歐股

美股


Opera 快照_2021-06-13_102116_tw.stock.yahoo.com.png

Opera 快照_2021-06-13_102611_tw.stock.yahoo.com.png

Opera 快照_2021-06-13_102817_tw.stock.yahoo.com.png


  1. 查看個股


我再查看個股的部分會”點選當日行情”


裡面的內容已經幫你統整好你所想要查看的產業類別


類股報價

上市類股

上櫃類股

電子產業

概念股

集團股


Opera 快照_2021-06-13_104153_tw.stock.yahoo.com.png





2019年3月25日 星期一

Solidworks教學 – 干涉檢查(檢驗零件是否重疊) – 實用教學

“ 干涉 “ 一詞在一般沒有碰過相關科系的人而言想必非常陌
生,用白話來講就是零件跟零件之間有沒有相互重疊的意思


在Solidworks裡面有一個功能可以自動幫您計算是否物件有重疊到,此功能很簡單
名稱叫做 ” 干涉檢查


以下說明開功能如何使用

開啟組合件之檔案
我在檔案內放上2個立方體作重疊的動作


功能 : 評估 - > 干涉檢查


選擇組合件檔案 - > 按下”計算”鈕


也可以選擇要排除的零件




計算結果 :
1.重疊部分會顯示紅色
2.左邊結果可以查看干涉之物件,以及干涉了多少數值


2019年3月18日 星期一

Solidworks教學 – 實用 - 套用自訂屬性

Solidworks教學 – 實用 - 套用自訂屬性

如何將已經設定好的自訂屬性直接套用到檔案中

1.自訂屬性

先教大家開起自訂屬性並查看

點擊上方自訂屬性按鈕


查看自訂及模型組態指定



我們看到自訂屬性及模型組態指定中並未有數值,現在就教大家要如何進行套用

2.屬性標籤產生器

點擊右手邊的Solidworks資源(小房子按鈕) - > 點擊屬性標籤產生器


把右手邊的 ” 文字方塊 ” 放入 ” 群組方塊 “


點擊文字方塊會顯示其內容


標題就是修改文字方塊的文字


設定自訂屬性就是在自訂屬性特性中進行設定


設定完 - > 壓下儲存 (下面會告訴讀者要儲存在哪個位置設定較為麻煩所以放置
下方L1位置)


舉例我們進行以下設定 - > 設定完後進行儲存


開啟圖面檔案 - > 點選視窗右邊的自訂屬性


L1

將檔案儲存在 : 工具 - > 選項 - > 檔案位置 - > 自訂屬性檔案中指定的資料夾內




要把屬性標籤產生器儲存的檔案放在以下資料夾中


要把檔案放在此對應之資料夾中


把檔案放上去


按下F5重新整理


按下F5後就完成了


只要按下套用就可以直接把自訂好的屬性直接放到圖面裡了

2019年3月7日 星期四

Solidworks教學 – 基礎 – 讓繪圖速度加快的快速鍵




在Solidworks裡面有幾項能夠讓大家快速繪圖的功能,我只在這邊介紹大家我自
己認為最好用的功能,快速按鍵 “ S鍵之使用及設定


使用方式 : 在繪圖視窗上點擊 ” S鍵 ” 就會跳出捷徑列




設定方式 :
視窗最上方 - > 點擊到三角 - > 選擇自訂




選擇捷徑列




工具列可以點選倒三角形,在選單中會把功能做分類




這邊分成4種捷徑列之設定,分別在4種模式下押S鍵會自動出現


零件
組合件
工程圖
草圖




1 . 選擇要自訂之模式
2 . 把要使用之捷徑(功能)拖到捷徑工具列中,如果有放錯或是不要之捷徑就拖放
到捷徑工具列外即可


設定結束後,按下確定就可以開始使用摟 ! ! !


EX :