編程偏門
Ⅰ 機器人編程怎麼入門
對於工科領域來說,脫離實踐的學習都是膚淺的,對於控制這種強調經驗的技術更是如此。如果去問一個程序員怎麼學習一塊技術,他必然讓你去多編程。機器人領域也是。如果想把基本功打扎實,那麼實踐更是必不可少了。
對於普通學生入門來說 一款合適的機器人平台 + 入門級的控制演算法進行試驗。同時深入地學習相應地理論知識。對於一個有控制基礎,需要現學現用的工作者來說,啃一本諸如《現代控制工程》的書籍,在工作者演練,下面的平台內容直接略過。關於平台的選擇和相應的學習教程,我放在最後,防止大圖分散了重點。
先結合機器人來說一下控制。對於設計任何一個控制系統來說,需要了解自己的輸入、輸出、控制元件,和演算法。在一個簡易的機器人系統里,分別對應的原件是:
輸入 --- 感測器 (聲吶,紅外,攝像頭,陀螺儀,加速度計,羅盤)
控制元件 --- 電機
控制演算法 --- 控制板 (小到單片機,大到微機)
輸出 --- 你的控制目標 (比如機器人的路徑跟蹤)
對這四方面都有了解之後,才能基本對機器人的控制有一個較為感性的認識。這是入門的基礎。如果你對輸入和輸出做一個測量,比如用電機將某個輪子的轉速從10加速到100,把這個測量勾畫出來,那麼這一個響應曲線。如何將電機准確快速地從10加速到100,這就需要一個簡易的反饋控制器。
上面所說的各個感測器元件,都有廉價版可以購買學習,但隨之引入的問題就是他們不精確,比如有雜訊。消除這個雜訊,你就需要在你的控制系統中引入更多的控制單元來消除這個雜訊,比如加入濾波單元。
上面說這么多,只是想表達,理論和演算法都是有應用背景的,但同時,學習一些暫時無法應用的演算法也並不助於入門,甚至可能走偏門,覺得越復雜越好。所有的工程應用者都會說某某演算法非常好,但是經典還是PID。倘若不親手設計一個PID系統,恐怕真的領略不到它的魅力。我大學本科的控制課程包含了自動控制理論和現代控制理論,但是直到我設計一個四旋翼無人機的時候,才真正建立了我自己對機器人控制的理解。
推薦的那本《現代控制工程》是一本非常經典的專業書籍,需要理論知識,再進行詳細的學習。我的建議是先玩,玩到需要時,認真學習這部分理論。
-----------------------------------------------------------------------------------------------------
推薦一些機器人平台。核心都涉及到運動控制。
基於arino的機器人平台是最大眾的平台了,這是一個開源社區,很多關於機器人的簡易設計和控制演算法實現都能在google得到。淘寶arino機器人,包括arino控制板和各類簡易感測器,幾百塊之內錢都能得到。
同時推薦一下Udacity上的Robotics課程,基於arino也都能實現完成。國外的有些Robotics課程使用的都是Lego Mindstorm作為實驗平台(略土豪版)。紅外,聲吶,陀螺儀這些感測器Lego都有,同時它的電機也可以實現閉環控制。
Imperial College London的Robotics課程就是以Lego為實驗平台的,Andrew Davison的課件上所有的理論都可以用Lego實現Andrew Davison: Robotics Course。如果這些都玩膩了,可以試試玩一個機器人飛行控制,比如四旋翼飛機。飛行器是六自由度控制,因此比小車要更加具有挑戰性,也需要更精確的控制系統。下面這是我以前的一個四旋翼DIY,基於arino MultiWii的。依舊淘寶四旋翼飛行器。
MultiWii是一個基於arino的開源飛控平台,所有c代碼都可得,不多於一兩萬行。如果把這些都研究透了,相比已經是專業水平了。
機器人家上了解到的,詳情你可以上去看下,希望對你有用
Ⅱ 用C語言編程歐拉法、梯形法、二級二階R-K、三級三階R-K、四級四階R-K求解下列方程的數值解
歐拉法求解y'=-2y-4x, x0=0, y0=2, x<=1的求解如下:
#include<stdio.h>
/*solve ode: dy/dx = -2*y -4*x*/
float fun(float x,float y){
float f;
f=-2.0*y -4.0*x;
return f;
}
int main(){
float x0=0,y0=2.0,x,y,h=0.1,t=1.0,k;
/* printf(" Enter x0,y0,h,xn: "); scanf("%f%f%f%f",&x0,&y0,&h,&t);*/
x=x0;
y=y0;
printf(" x y ");
while(x<=t) {
k=h*fun(x,y);
y=y+k;
x=x+h;
printf("%0.3f %0.3f ",x,y);
}return 0;
}
代碼截圖+運行結果
(晚點我再來看後面的幾小問)
Ⅲ 計算機編程語言有哪些
機器語言,匯編語言,高級語言。
javaScript:一種直譯式腳本語言,是一種動態類型、弱類型、基於原型的語言,內置支持類型。它的解釋器被稱為JavaScript引擎,為瀏覽器的一部分,廣泛用於客戶端的腳本語言,最早是在HTML網頁上使用,用來給HTML網頁增加動態功能。
Java:Java是一門面向對象編程語言,不僅吸收了C++語言的各種優點,還摒棄了C++里難以理解的多繼承、指針等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態面向對象編程語言的代表,極好地實現了面向對象理論,允許程序員以優雅的思維方式進行復雜的編程。
(3)編程偏門擴展閱讀:
注意事項:
注意保護眼睛和頸椎。程序員需要天天對著電腦敲鍵盤,眼睛和頸椎會承受很大的壓力,所以時刻要提醒個人注意健康。
看別人的源碼,其實看別人的源碼往往比用戶寫更有價值。如果可以看懂別人的源碼,並且分析出來別人是怎麼樣的原理。那麼處理一些邏輯的時候頭腦會很零活。
腦海中出現一段比較有意思的代碼時一定要,寫出來看看是否可以被執行,所謂1萬行代碼成就一個高手,10萬行代碼成就一位大神。
Ⅳ 編程語言的分類和用途
編程語言的分類主要有:JavaScript、PHP、C、C++、java。
1、C語言:實模式、保護模式、調度、中斷、調用棧、回調……基本上計算機科學裡面的基本概念都會涉及。結構化編程,即將解決方案描述為一個清晰的過程,這其中會涉及數據的建模,介面的定義,項目整體的組織結構。
2、c++語言:虛函數、虛表、內聯、多繼承、const、泛型、模板(語言相關)opencv、OGRE、3D渲染、GPU、mesh、skeleton、幀循環、DX、GUI、MFC、Qt、消息隊列、非阻塞IO。適合領域:多媒體、高性能網路伺服器等較講究效率的應用程序。
3、java:位元組碼、虛擬機、垃圾回收、介面、多線程、包、程序庫、反射、框架、集成、組件、http、web、資料庫、SSH、javaee。java的程序比較講究擴展性和可維護性,一般會使用比較多的設計模式,常用的程序組織形式是MVC、監聽者模式等。
4、Javascript:閉包、對象、函數、CSS、DOM、Ajax、HTML5、node.js、V8。基於prototype的OO,以及基於閉包的函數式編程(後者用的更多)。常用代碼組織形式:事件觸發的回調機制(node.js與前端的區別是其自己定義、觸發事件)、基於非阻塞非同步IO的框架(node.js)。
5、PHP即「超文本預處理器」,是一種通用開源腳本語言。PHP是在伺服器端執行的腳本語言,與C語言類似,是常用的網站編程語言。PHP獨特的語法混合了C、Java、Perl以及 PHP 自創的語法。利於學習,使用廣泛,主要適用於Web開發領域。
Ⅳ 學激光切割編程哪裡學
學激光切割編程可以去聊城高級工程職業學校,西安交通大學等都有這個專業。也有一些個人培訓機構,比如蘇州崑山市騰茂金屬科技有限公司。
激光切割編程的優勢:
學激光切割需要有初中以上文化,學到可以獨立編程和操機就可以出師了。一般需要半年。如果你聰明的話,二三個月也可以。重點是機械圖,如果你沒有機械制圖基礎,機械圖是難點。
激光切割技術的優點是精度高、切縫窄、切割面光滑、速度快、切割質量好。完全避免材料沖剪時形成的塌邊,切縫一般不需要二次加工。
激光加工的基礎知識,包括激光功率、脈沖頻率、占空比、輔助氣體的種類和壓力、焦點位置等因素對切割的影響。
數控編程的基本知識,包括G代碼編程的知識、數控系統操作的基本知識技能等。
制圖、識圖的基本技能和坐標系的基礎知識。
由於激光加工和一般機械加工比起來相對比較偏門,所以一般來說如果你擁有數控編程的基本知識和制圖、識圖的基本技能,激光加工的基礎知識可以現學。
Ⅵ 適合孩子學習的編程軟體有哪些
偏門的軟體就不說了,說主流的:
偏軟體編程
這類型主要以入門引導為主,代表的編程軟體有大名鼎鼎的Scratch,基於Scratch,孩子可以通過簡單的圖形積木編程,實現一些互動式動畫、游戲和應用。孩子如果在小晌游滑學階段,比較適合用Scratch,有很多學校也有這個課程。現在是Scratch3.0版本,功能更強了,也支持了樂高ev3、micro:bit等一些硬體,大家學的時磨敏候就不要買到2.0的書了。
還有國外的code.org平台,這個平台提供了圖形編程和代碼編程的很多課程和在線工具,有4800萬的學生在這個平台學習過,從4歲開始就有課程,非常適合孩子們入手,還值得一提的是他提供中文界面,一些視頻雖然沒有中文,但是也是簡單易懂,順便還能練練英語。
最近幾年國家宣傳人工智慧,浙江和山東高考有python,所以導致Python比較熱起來。這個屬於真正的計算機編程語言,所以只要是python編程工具都是可以的。最好的當然是用pycharm來做,但是如果是入門,個人建議用mu-editor,他是針對入門的學生做的編程工具,裡面提供了對python、pygamezero、micro:bit、micropython的支持,可以說一個編程工具包含了大部分代碼級編程入門教具支持了。
如果孩子的能力稍強,年齡也大一些,谷歌和mit一起研發的appinventor可以嘗試用用,這個應用可以用來開發android手機應用。
偏硬體編程
典型的有Arino編程,還有Micro:Bit編程,其中Micro:Bit編程最近幾年非常火熱,因為比Arino更簡單,更有利於孩子的入門學習。如果孩子是沒接觸過編程的,可以先從Micro:Bit入門,然後根據興趣再擴展到Arino創客及機器人編程。
Arino可以用官方的軟體進行編程,不過這個都是代碼級編程,國內有北師大的mixly軟體,這個軟體可以用圖形積木編程,大大降低了孩子學習難度,非常推薦大家來用。
Micro:Bit官方的平台就非常不錯,支持圖形編程和javascript代碼級編程,他的beta版本還將支持python代碼級編程。
軟硬結合編程
軟硬結合就需要綜合多種軟體一起來做,比如Scratch+Arino,Scratch+EV3,Scratch+Micro:Bit等
一般來講,這種項目電腦編程和硬體編程都需要做,所以稍微復雜一些,適合年齡層次較大的孩子
推薦4款少兒編程軟體:宴臘p>