W!o+ 的《小伶鼬工坊演義》︰ 一窺全豹之系統設計《臨摹》

若說韌體用『 Arduino IDE 』編譯成功帶來了信心!以及最新版的

GrovePi/Firmware/Source/v1.2/grove_pi_v1_2_5/grove_pi_v1_2_5.ino

 

#include <Wire.h>
#include MMA7660.h
#include DS1307.h
#include DHT.h
#include Grove_LED_Bar.h
#include TM1637.h
#include ChainableLED.h
#include IRSendRev.h
#include Encoder.h
#include TimerOne.h

───

 

內容看似無誤,像無言的訴說什麼?於是尾隨契機,重回『 ino 』的田野調查︰

pi@raspberrypi ~/project cd pi@raspberrypi ~ mkdir beep
pi@raspberrypi ~ cd beep pi@raspberrypi ~/beep ino init -t blink
pi@raspberrypi ~/beep ls lib  src </pre>    <span style="color: #808000;">,發現一道新曙光。暗示『<a style="color: #808000;" href="https://github.com/DexterInd/GrovePi/tree/master/Firmware">該文本</a>』作者或許早已忘卻他之系統與讀者的不同。他有『 grovepi 』這個『樣板』,讀者沒有。當然也有可能『該作者』疏忽沒講那個『樣板』的製造方法。當此之際何妨仔細研究『 眨眼睛 』 內涵,『 blink 』結構一番︰ </span> <pre class="lang:sh decode:true">pi@raspberrypi ~ 
pi@raspberrypi ~ cd /usr/local/lib/python2.7/dist-packages/ino/templates/blink pi@raspberrypi /usr/local/lib/python2.7/dist-packages/ino/templates/blink ls
lib  manifest.ini  src
pi@raspberrypi /usr/local/lib/python2.7/dist-packages/ino/templates/blink </pre>    <span style="color: #808000;">也許可以『依樣畫葫蘆』,如實的</span> <h1 id="firstHeading" class="firstHeading" lang="zh-TW"><span style="font-size: 14pt; color: #808000;"><a style="color: #808000;" href="https://zh.wikipedia.org/zh-tw/%E8%87%A8%E6%91%B9">臨摹</a></span></h1> <span style="color: #808080;"><b>臨摹</b>是指<a class="mw-redirect" style="color: #808080;" title="書法" href="https://zh.wikipedia.org/wiki/%E6%9B%B8%E6%B3%95">書法</a>和<a class="mw-redirect" style="color: #808080;" title="繪畫" href="https://zh.wikipedia.org/wiki/%E7%B9%AA%E7%95%AB">繪畫</a>的仿製。臨,是按照原作去寫或畫;摹,是用紙或絹蒙在原作之上寫或畫。臨摹可以是仿製原作,也可以是仿照碑帖。利用紙和墨汁直接從碑帖複製並非臨摹,稱為<a class="mw-redirect" style="color: #808080;" title="拓印" href="https://zh.wikipedia.org/wiki/%E6%8B%93%E5%8D%B0">拓印</a>。</span>  <span style="color: #808080;">臨摹是學習書畫的方法,也可以是為了讓原作得以保存,用作展覽 、教育和傳播。但若果臨摹而假冒原作,則可視為<a style="color: #808080;" title="藝術贗品" href="https://zh.wikipedia.org/wiki/%E8%97%9D%E8%A1%93%E8%B4%97%E5%93%81">贗品</a>。</span>     <span style="color: #808000;">一下。再回頭看看結果如何的耶??</span> <pre class="lang:sh decode:true "># 依樣畫葫蘆 cd /usr/local/lib/python2.7/dist-packages/ino/templates/  # 創建 grovepi 樣板 sudo mkdir grovepi cd grovepi/  # 建立必要資訊檔 sudo cp ../blink/manifest.ini . sudo nano manifest.ini   more manifest.ini  description = Simple GrovePi Project  # 樣板 src 與 lib sudo mkdir src sudo mkdir lib  # 使用 GrovePi 最新版韌體 cd src sudo cp /home/pi/Desktop/GrovePi/Firmware/Source/v1.2/grove_pi_v1_2_5/* .  # 測試樣板  pi@raspberrypi ~ mkdir GrovePi-Test
pi@raspberrypi ~ cd GrovePi-Test/  # 樣板 OK pi@raspberrypi ~/GrovePi-Test ino init -t grovepi

# 編譯 FAIL
pi@raspberrypi ~/GrovePi-Test ino build Searching for Board description file (boards.txt) ... /usr/share/arduino/hardware/arduino/boards.txt Searching for Arduino lib version file (version.txt) ... /usr/share/arduino/lib/version.txt Detecting Arduino software version ...  1.0.5 (2:1.0.5+dfsg2-4) Searching for Arduino core library ... /usr/share/arduino/hardware/arduino/cores/arduino Searching for Arduino standard libraries ... /usr/share/arduino/libraries Searching for Arduino variants directory ... /usr/share/arduino/hardware/arduino/variants Searching for make ... /usr/share/arduino/hardware/tools/avr/bin/make Searching for avr-gcc ... /usr/share/arduino/hardware/tools/avr/bin/avr-gcc Searching for avr-g++ ... /usr/share/arduino/hardware/tools/avr/bin/avr-g++ Searching for avr-ar ... /usr/share/arduino/hardware/tools/avr/bin/avr-ar Searching for avr-objcopy ... /usr/share/arduino/hardware/tools/avr/bin/avr-objcopy src/grove_pi_v1_2_5.ino Searching for Arduino lib version file (version.txt) ... /usr/share/arduino/lib/version.txt Detecting Arduino software version ...  1.0.5 (2:1.0.5+dfsg2-4) Scanning dependencies of src Scanning dependencies of arduino Scanning dependencies of Robot_Control Scanning dependencies of SD src/DHT.cpp src/DS1307.cpp src/Grove_LED_Bar.cpp src/TimerOne.cpp src/ChainableLED.cpp src/TM1637.cpp src/Encoder.cpp src/IRSendRev.cpp src/MMA7660.cpp src/grove_pi_v1_2_5.cpp Robot_Control/glcdfont.c Robot_Control/utility/twi.c Robot_Control/lcd.cpp Robot_Control/Motors.cpp Robot_Control/Sensors.cpp /usr/share/arduino/libraries/Robot_Control/Sensors.cpp: In member function 'void RobotControl::analogWrite(uint8_t, uint8_t)': /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:47:11: error: 'TKD4' was not declared in this scope   if(port==TKD4)            ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp: In member function 'uint8_t RobotControl::_getTypeCode(uint8_t)': /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:64:8: error: 'TKD0' was not declared in this scope    case TKD0:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:65:8: error: 'TKD1' was not declared in this scope    case TKD1:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:66:8: error: 'TKD2' was not declared in this scope    case TKD2:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:67:8: error: 'TKD3' was not declared in this scope    case TKD3:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:68:8: error: 'TKD4' was not declared in this scope    case TKD4:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:69:8: error: 'TKD5' was not declared in this scope    case TKD5:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp: In member function 'uint8_t RobotControl::_topDPortToAPort(uint8_t)': /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:104:8: error: 'TKD0' was not declared in this scope    case TKD0:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:106:8: error: 'TKD1' was not declared in this scope    case TKD1:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:108:8: error: 'TKD2' was not declared in this scope    case TKD2:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:110:8: error: 'TKD3' was not declared in this scope    case TKD3:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:112:8: error: 'TKD4' was not declared in this scope    case TKD4:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:114:8: error: 'TKD5' was not declared in this scope    case TKD5:         ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:115:12: error: 'A11' was not declared in this scope      return A11;             ^ /usr/share/arduino/libraries/Robot_Control/Sensors.cpp: In member function 'int RobotControl::knobRead()': /usr/share/arduino/libraries/Robot_Control/Sensors.cpp:236:22: error: 'POT' was not declared in this scope   return ::analogRead(POT);                       ^ .build/uno/Makefile:50: recipe for target '.build/uno/Robot_Control/Sensors.o' failed make: *** [.build/uno/Robot_Control/Sensors.o] Error 1 Make failed with code 2 pi@raspberrypi ~/GrovePi-Test 

 

。果真俗話說的好,人生不如意事,十常八九的乎!!