做教學(xué)這幾年,我見過太多同學(xué)卡在C語言這道坎上。為啥?因?yàn)楣馐怯⑽膯卧~就夠頭疼的——printf、scanf、void、int… 背單詞的時(shí)間比學(xué)邏輯的時(shí)間還長。
2023年前年直播的時(shí)候,有個(gè)同學(xué)突然問我:老師,你試過中文編程嗎?不用記英文單詞,直接寫中文就能控制硬件。我當(dāng)時(shí)第一反應(yīng)是:編程怎么可能用中文?畢竟咱學(xué)C語言十幾年,早就習(xí)慣了英文邏輯。但后來仔細(xì)研究才發(fā)現(xiàn),中文編程真能給學(xué)不會(huì)C的同學(xué)打開新世界大門。
今天不聊高深概念,就用最直白的大實(shí)話聊聊,中文編程到底能干啥?咋能用它把硬件開發(fā)就變簡單了?
1. 為啥C語言勸退人?英語是道坎
舉個(gè)例子,你想讓單片機(jī)點(diǎn)亮一個(gè)LED燈。用C語言你得這么寫:
其實(shí)光是看懂reg52.h頭文件、void main()主函數(shù)、P1端口定義這些英文術(shù)語,新手就得查半天資料。而且還有0xFE這種十六進(jìn)制操作,對(duì)零基礎(chǔ)的人來說簡直是從點(diǎn)燈到放棄。
中文編程咋做?中文編程天問,直接用中文描述你的需求,把復(fù)雜的代碼轉(zhuǎn)化成直觀的中文指令。比如說,用天問開發(fā)板控制LED燈,你不需要記“digitalWrite”或者“delay”這類英文函數(shù),只要在編程界面中寫下“循環(huán)執(zhí)行:引腳P5_5高電平→延時(shí)1000毫秒→引腳P5_5低電平→延時(shí)1000毫秒”,系統(tǒng)會(huì)自動(dòng)生成底層代碼,所見即所得的方式。
2. 中文編程咋“說人話”?
中文編程的核心就一句話:用你熟悉的語言,表達(dá)你想做的事。
不用背單詞:比如“設(shè)置引腳電壓”代替digitalWrite()
邏輯更直觀:比如“如果溫度大于30度,就打開風(fēng)扇”直接寫成中文條件判斷
硬件交互像聊天:通過串口發(fā)送“讀取溫度”、“開啟電機(jī)”這樣的指令,硬件就能聽懂你說的話。
之前有個(gè)學(xué)員想用單片機(jī)做個(gè)避障項(xiàng)目,用C語言卡在超聲波傳感器代碼上兩周沒進(jìn)展。后來用中文編程工具,直接拖拽“超聲波測(cè)距”模塊,設(shè)置“如果距離小于10厘米就停車”,兩天就把功能跑通了。
3. 給初學(xué)者的建議:
如果你現(xiàn)在還在因?yàn)?/span>C頭疼,碰都沒碰過單片機(jī),可以試試“兩條腿走路”:
先用中文編程做項(xiàng)目:用中文編程天問接上STC開發(fā)板,先做出成果建立信心。
回頭對(duì)比看C代碼:中文編程工具可以生成的C代碼,生成的C代碼對(duì)照著你的中文邏輯,理解英文關(guān)鍵詞的含義。
重點(diǎn)突破核心概念:變量、循環(huán)、條件判斷這些邏輯是共通的,語言只是表達(dá)工具。
記?。壕幊痰暮诵氖?/span>解決問題,不是比拼誰記得英文單詞多。用中文先跑通邏輯,反而效率更高。
寫在最后
作為一個(gè)科班出身的程序員,我過去總覺得中文編程不夠?qū)I(yè)。但看到那么多同學(xué)因?yàn)橛⒄Z卡在起點(diǎn),甚至放棄學(xué)習(xí)編程、單片機(jī),我才意識(shí)到,降低門檻不是妥協(xié),其實(shí)是給了更多人機(jī)會(huì)。
如果你也想試試,推薦幾個(gè)中文編程操作單片機(jī)的免費(fèi)工具:
天問、米思齊、Linkboy、Mind+,都可以針對(duì)不同的芯片進(jìn)行中文編程。
天問支持:語音識(shí)別,STC的全系,沁恒的arm級(jí)芯片,ESP32,更適合項(xiàng)目開發(fā)
米思齊:esp8266 物聯(lián)網(wǎng)
linkboy:兆易創(chuàng)新創(chuàng)新GD32 在線仿真
Mind+支持的是Arduino,等等
下次直播,我用天問中文編程帶大家做個(gè)聲控?zé)?/span>——不用寫一句英文代碼,感興趣的話,歡迎來直播間,咱們邊聊邊玩。