Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
"The whole is more than the sum of its parts." đ©
ćźéă«ç”ăżç«ăŠăŠăăćç»ăŻăăĄăă
仄äžăźăăŒăăćźæăăăŠăćŸăźç« ă§ăŸăšăăăăšăă§ăăŸăă
ăăăŁ
ăąăăăŒăăŒă
Lower leg
é éš
è©ă”ăŒă
äœżçšăăăăŒăïŒ
éŠăăŒă x 1
ă”ăŒăăąăŒă x 1
M2x8 ăăž x 2
äžèšăźćçăźăăă«ă”ăŒăăźæŻăäžă«ćăăăă«ăăŠăă ăăă
ăăžăäșă€ć·Šćłă«ăăăŠăă ăăăç· ăăăă«ăŻæłšæăăŠăă ăăă
ćźæćł
äœżçšăăăăŒă:
ç”ăżç«ăŠăéŠéšćăźăăŒă
ă·ăŁăŒă·
ăăŹăŒă x 2
ă”ă€ăă·ă§ă«ăăŒ x 2
ă·ăŁăŒă·ă«ăŻćăăăăăŸăă"A1"ăźăăŒăŻăăăă»ăăćŸăïŒć°»ć°ŸïŒă§ăă
ćŸăăźăČăŁăăéšćăć ă«æżć „ăăŠăăăćăźăăăŻăéłă鳎ăăŸă§ćȘăăæŒă蟌ăă§ăă ăăă
ă”ăŒăăăăăŁăžăźăăĄăŒăžăç·©ćăăăăă«èĄæăć ăăăšăăć€ăăä»æ§ă«ăȘăŁăŠăăŸăă
ă·ăŁăŒă·ă«è©ăźăăŒăăæżć „ăăŠăă ăăăăăźćŸăăăŹăŒăăæżć „ăććŻŸăćæ§ă«è©ăźăăŒăăæżć „ăăŠăă ăăă
ćźæćł
ćç»ăćç §ăăŠăă ăăă
äœżçšăăăăŒă
èéšăăŒă x4
M2x8ăăž x 8
ćłćŽăźèéšăŻä»„äžăźćçăźăăă«ç”ăżç«ăŠăŸăăćè¶łăšćŸăè¶łăŻćăćœąă«ăȘăăŸăă
é·ăă±ăŒăă«ăă€ăăă”ăŒăăäœżăŠăă ăăăă”ăŒăăźæżć „ăăćăăăăăŸăăźă§ăæłšæăă ăăă
ć·ŠćŽăźèéšăšćłćŽăźèéšă§ă”ăŒăăæżć „ăăćăăç°ăȘăăŸăă
Materials:
éĄăăŒă x 1
é éšăăŒă x 1
P1S ă”ăŒă ïŒçăă±ăŒăă«ïŒ x 1
M2x8ăăž x 2
ă”ăŒăăćçăźăăă«éĄăăŒăă«æżć „ăăŸăăă”ăŒăăźă±ăŒăă«ăźćăă«æłšæăăŠăă ăăăă”ăŒăăæżć „ćŸăăžăăăăŠăă ăăă
æŹĄă«é éšăăŒăăèŁ çăăŠćźæă§ăă
Materials:
P1S ă”ăŒă ïŒçăă±ăŒăă«ïŒ x 4
M2x8ăăž x 8
é éš
ăăăŁăŒ
èéš x 4
äžăźćçăźăăă«ă”ăŒăăæżć „ăăç”ăżç«ăŠăăăŒăăç”ăżćăăăŠăă ăăă
ćŽéąćł
ăăăćł
ă”ăŒăăæŁăăæżć „ă§ăăŠăăăăšăçąșèȘăăăă”ăŒăăšè©ăźéšćăăăžă§ćșćźăăŠăă ăăăăăźæăŸă ăă”ăŒăăźăąăŒăżăŒéšćăźăăæąăăŻèĄăăȘăă§ăă ăăă
"Who loves fried chips?" đ
4.1. NyBoard
èȘŹææžăźăNyBoardăă«ă€ăăŠć ćźčăèŠă€ăăŠăNyBoard V1_0ăźèȘŹæăèȘăă§ăă ăăă
æłšæïŒèȘ€æäœă«ăăNyBoardă«æćźłăäžăăćŻèœæ§ăăăăŸăïŒ
I2CèŁ çœźïŒăžăŁă€ă/ć éćșŠèš,ă”ăŒăăă©ă€ă, ć€éšæć·ćEEPROMïŒăźăăčăżăŒăăčă©ă€ăăčă€ăăă§ć€æŽăăŸăă
ăăă©ă«ăăź "Arduino "ă§ăŻăNyBoardăŻăȘăłăăŒăăźATmega328PăăăčăżăŒăăăăšăăŠäœżçšăă"Pi "ă§ăŻăI2CăăŒăïŒSDAăSCLïŒă§æ„ç¶ăăăć€éšăăăăăăčăżăŒăăăăšăăŠäœżçšăăŸăă
ă©ăăăŠăè”·ćă§ăăȘăć ŽćăŻăăăăăăăăčă€ăăăèȘ€ăŁăŠăPiăă«ăăŠăăŸăŁăăźăăăăăŸăăă
NyBoardăŻ7.2VăźăăăăȘăŒă§ăĄăżă«ăźăąă”ăŒăăçŽæ„é§ćăăŸăăæșć é»æă«ăŻ8.4Vă«ăȘăăŸăăNyBoardă§èȘäœăźăă©ăčăăăŻăźăąä»ăă”ăŒăăçŽæ„é§ćăăăăšăŻă§ăăŸăăă
äžèšăźă”ă€ăăăăäœżăăźăłăłăă„ăŒăżăŒăźOSă«ćŻŸćżăăArduino IDEăăăŠăłăăŒăăăŠăă ăăă
Arduino IDEăźăăŠăłăăŒăă”ă€ăăŻăăĄă
ææ°ăăŒăžă§ăłăźArduino IDEăăăŠăłăăŒăăăŠăă ăăă
Arduino IDEăè”·ćăăăă"Tools"ăżăăź"Manage Libraries"ăăŻăȘăăŻăă©ă€ăă©ăȘăŒăăăŒăžăŁăŒăéăăŠăă ăăăäžèšăźă©ă€ăă©ăȘăŒăă€ăłăčăăŒă«ăăŠăă ăăă
Adafruit PWM Servo DriverăïŒææ°ăăŒăžă§ăłïŒ
IRremoteăïŒăăŒăžă§ăł2.6.1ïŒ
QListă (ä»»æ)
IRremïœ
ăăĄă€ăłăăŒăăDocuments/Arduino/libraries/IRremote/src/IRremote.hăźăăĄă€ă«ăăăăčăăšăăŁăżăȘă©ă§éăă#define DECODENECăš#define DECODE_HASHă ăă1ăšć „ćăăăă仄ć€ăŻ0ăšć „ćăăŠăă ăăă
ăăă°ă©ăăłă°ăčăăŒăčăçąșäżăăăăăäžèšăźæäœăćż ăèĄăŁăŠăă ăăă
äžèšăźăȘăłăŻăăGitHubäžăźZipăăĄă€ă«ăăăŠăłăăŒăăăŠăă ăăăăăŠăłăăŒăăăăZipăăĄă€ă«ăć±éăăŠăă ăăă
ZipăăĄă€ă«ăźăȘăłăŻăŻăăĄă
æŹĄă«Arduino IDEăźâăčă±ăăâăźăżăăăâă©ă€ăă©ăȘăŒăă€ăłăŻă«ăŒăâć ăźâZipćœąćŒăźă©ă€ăă©ăȘăŒăă€ăłăčăăŒă«âăăŻăȘăăŻăăŠăă ăăă
ăă©ă«ăćâArduino"ć ăź"MPU6050"ăš12Cdev"ăźăă©ă«ăăèżœć ăăŠăă ăăă
æŹĄă«"ăăŒă«âăżăăăäœżçšăăăăŒăâïŒăăŒăïŒArduino Uno)âăéžæăăŠăă ăăăäșăéžæăăăŠăăć ŽćăăăăŸăă
NyBoardăźăăŒăăăŒăă掩ćŁăăć Žćăźăż
â What is a bootloader? ăăŒăăăŒăăšăŻäœă§ăăïŒ
ăăčăŠăźNyBoardăŻćșè·ćă«æ©èœăă§ăăŻăèĄăŁăŠăăăăăäșææ§ăźăăăăŒăăăŒăăă€ăłăčăăŒă«ăăăŠăăăŻăă§ăăăăăăăŸăă«ăăŒăăăŒăăćŁăăŠăăŸăăArduino IDEăăăčă±ăăăăąăăăăŒăă§ăăȘăăȘăăăšăăăăŸăă
ăčă±ăăăźăąăăăăŒăăă§ăăȘăăźăŻăćż ăăăăăŒăăăŒăăźăăă§ăŻăăăŸăă:
USBăăŒăăăăă€ăčăăăźć€§ăăȘé»æ”ăæ€ç„ăăŠăUSBă”ăŒăăčć šäœăćæąăăăăăšăăăăŸăăăăźć ŽćăUSBă”ăŒăăčăćè”·ćăăăăăłăłăă„ăŒăżăćè”·ćăăćż èŠăăăăŸăă
UARTăąăăăăŒăă«FTDI USB 2.0ăźăă©ă€ăăă€ăłăčăăŒă«ăăćż èŠăăăăŸăă
æŁăăăăŒăăéžæăăŠăăȘăă
æ„觊äžèŻă§ăă
éăæȘăăŁăăææ„æčăăŠè©ŠăăŠăă ăăă
ă©ăăăŠăăăŒăăăŒăăçŒăçŽăăăăšæăć ŽćăŻ:
NyBoard V1_*ăźć ŽćăŻăArduino IDEăźăăŒă«ăĄăă„ăŒă§Arduino Unoăéžæăăă ăă§ăă
ISPïŒIn-System ProgrammerïŒăéžæăăŸăăäžăźăčăŻăȘăŒăłă·ă§ăăă§ăŻă2ă€ăźăăă„ă©ăŒăȘăăă°ă©ăăŒăèĄšç€șăăăŠăăŸăăăă€ă©ă€ăăăăŠăă USBtinyISP ăŻćźäŸĄăȘăăŒăăăŒăăŒă§ăăă§ăăŻăăăŠăă Arduino as ISP ăŻéćžžăź Arduino ă ISP ăšăăŠäœżçšă§ăăŸăă
ăăă°ă©ăăŒăNyBoardăźSPIăăŒăă«æ„ç¶ăăŸăăæ„ç¶ăăăšăăŻæčćă«æłšæăăŠăă ăăăăăŁăăæ„觊ăăŠăăăçąșèȘăăŠăă ăăă
ăăŒăăăŒăăæžă蟌ăżăŸăăćăăŠăźć ŽćăŻăæ°æŹăźăăŒă»ăłăăăŒă100%ă«ăȘăăăĄăă»ăŒăžăćșăȘăăȘăăŸă§1ćă»ă©ćŸ ăĄăŸăă
USBăăłă°ă«ăä»ć±ăźă±ăŒăă«ă§ăłăłăă„ăŒăżăŒă«æ„ç¶ăăŠăă ăăăUSBăăłă°ă«ăć·źă蟌ăćăă«æłšæăăŠăă ăăăDTRăšèšèŒăăăŠăăăăłăăăŒăăźDTRă«æżć „ăăăăăă«ć·źă蟌ăă§ăă ăăăăăăăȘăŒăŻăăăăăé»æșăăȘăłă«ăȘăŁăç¶æ ă§æŹäœă«æ„ç¶ăăšăăŠăă ăăă
ăăăăȘăŒăæȘèŁ çăŸăăŻé»æșăć „ăŁăŠăăȘăć ŽćăăăŒăăšéłă鳎ăăŸăă
Linuxăźć ŽćăăąăăăăŒăăăłăłăă„ăŒăżă«æ„ç¶ăăăăšăă·ăȘăąă«ăăŒăăȘăčăă«ăttyUSB#ăăèĄšç€șăăăŸăăăăăăăąăăăăŒăæă«ă·ăȘăąă«ăăŒăăšă©ăŒăçșçăăăăšăăăăŸăăăăźć ŽćăŻăă·ăȘăąă«ăăŒăă«èš±ćŻăäžăăćż èŠăăăăŸăăăăźăȘăłăŻă«ăąăŻă»ăčăăŠăæç€șă«ćŸăŁăŠăă ăăïŒ https://playground.arduino.cc/Linux/All/#Permission
USBăăłă°ă«ăšăłăłăă„ăŒăżăŒăæŁćžžă«æ„ç¶ăăăăăăŒă«>ă·ăȘăąă«ăăŒă>/dev/cu.usbserial-xxxxïŒMacăźć ŽćïŒăŸăăŻCOM#ïŒWindowsăźć ŽćïŒăăŻăȘăăŻăăŠăă ăă
æ„ç¶ăăŠăăăŒăăèĄšç€șăăăȘăć ŽćăCH340ăăăçšăźăă©ă€ăăŒăă€ăłăčăăŒă«ăăćż èŠăăăć ŽćăăăăŸăă
4.2.6
We keep updating the codes as an open-source project. You can star and follow our GitHub repository to get the newest features and bug fixes. You can also share your codes with worldwide OpenCat users.
äžèšăźăȘăłăŻăăă©ă€ăă©ăȘăŒăźă€ăłăčăăŒă«ăšćæ§ă«ZipăăĄă€ă«ăăăŠăłăăŒăăăăŠăă ăăăăăŠăłăăŒăăăéăŻăăčăŠăźăăĄă€ă«ăäžæŹă§ăăŠăłăăŒăăăŠăă ăăăăłăŒăăźăăŒăžă§ăłăç°ăȘăăšæŁćžžă«ćäœăăȘăć ŽćăăăăŸăă
ZipăăĄă€ă«ăźăȘăłăŻăŻăăĄă
ăăŠăłăăŒăăăZipăăĄă€ă«ăć±éăăŠăă ăăăć±éăăăăĄă€ă«ăŻOpenCat-mainăšăăăă©ă«ăăèĄšç€șăăăŸăăăăĄă€ă«ćăOpenCată«ć€æŽăăŠăă ăăă
ăăĄă€ă«æ§é ăŻä»„äžăźăăă«ăȘăăăă«ăăŠăă ăăă
ă»ModuleTests ăă©ă«ăă«ăŻăăăă€ăăź testX.ino ăłăŒăăăăăŸăăăăăăăąăăăăŒăăăŠăçčćźăźăąăžă„ăŒă«ăćć„ă«ăăčăăăăăšăă§ăăŸăătest "ăšăăæ„é èŸăźă€ăă testX.ino ăčă±ăăăéăăŠăă ăăă(æćăźăăčăăčă±ăăăšă㊠testBuzzer.ino ăäœżăăăšăăć§ăăăŸăă) ă»ă·ăȘăąă«ăąăăżăŒăéăăăăŒăŹăŒăăèšćźăăŸăăNyBoard V1_*ăźć ŽćăăăŒăăŻArduino UnoăéžæăăăłăŒăăšă·ăȘăąă«ăąăăżăŒăźäžĄæčă§ăăŒăŹăŒăă115200ă«èšćźăăŠăă ăăă ă»ăłăŒăăăłăłăă€ă«ăăŠăă ăăăăšă©ăŒăĄăă»ăŒăžăŻćșăȘăăŻăă§ăăăčă±ăăăăăŒăă«ăąăăăăŒăăăăšăTxăšRxăźLEDăæ„éă«çčæ» ăăăźăèŠăăăŻăă§ăăçčæ» ăç”ăăăšăă·ăȘăąă«ăąăăżă«ăĄăă»ăŒăžăèĄšç€șăăăŸăă ă»ăłăăłăăć „ćăăćă«ă"No line ending "ăèšćźăăăŠăăăăšăçąșèȘăăŠăă ăăăăăăăȘăăšăçźă«èŠăăȘă '\n' ă '\r'ăźæćăè§Łææ©èœăæ··äč±ăăăŠăăŸăăŸăă
Linuxăă·ăłă§ăŻăăpermission deniedăăźăăăȘăšă©ăŒăĄăă»ăŒăžăèĄšç€șăăăăăšăăăăŸăăArduinoăčă±ăăăăłăłăă€ă«ăăăăă«ăŻăavr-gccă«ćźèĄæš©éăä»äžăăćż èŠăăăăŸăă
sudo chmod +x filePathToTheBinFolder/bin/avr-gcc
ăăă«ă/binć ăźăăčăŠăźăăĄă€ă«ă«ćźèĄæš©éăèżœć ăăćż èŠăăăăźă§ăæŹĄăźăăă«ăłăăłăăćźèĄăăŸă
sudo chmod -R +x /filePathToTheBinFolder/bin
NyBoard ăš Arduino IDE ăæ„ç¶ăă USB/Bluetooth ăąăăăăŒăăăăă°ăNyBoard ăšé俥ăăŠăă€ăćäœă§ć€æŽă§ăă究愔ăźă€ăłăżăŒăă§ă€ăčă«ăȘăăŸăă
NyBoard ăš Arduino IDE ăæ„ç¶ăă USB/Bluetooth ăąăăăăŒăăăăă°ăNyBoard ăšé俥ăăŠăă€ăćäœă§ć€æŽă§ăă究愔ăźă€ăłăżăŒăă§ă€ăčă«ăȘăăŸăă
NyBoard ăźă·ăȘăąă«é俥ăăăăłă«ăćźçŸ©ăăŸăăïŒ
ăăčăŠăźăăŒăŻăłăŻăăăźè§ŁæćœąćŒăæćźăăăăă«ă1ă€ăźAsciiăšăłăłăŒăăăăæćă§ć§ăŸăăŸăăăăăăźæćăŻă性æćăšć°æćăćșć„ăăéćžžăŻć°æćă§ăăă
căłăăłăămăłăăłăăźăăă«ăăăă€ăăźăłăăłăăŻç”ăżćăăăăăšăă§ăăŸăă äŸăă° éŁç¶ăăăm8 40ăăăm8 -35ăăăm 0 50ăăŻăăm8 40 8 -35 0 50ăăźăăă«èĄšèšă§ăăŸăăćăçšźéĄăźăłăăłăăŻ4ă€ăŸă§ç”ăżćăăăăăšăă§ăăŸăăæŁçąșă«ăŻăæććăźé·ăăŻ30æć仄äžă§ăȘăăă°ăȘăăŸăăăăłăŒăć ă§ć¶éăć€æŽăăăăšăă§ăăŸăăăă·ăȘăąă«ăăăăĄăźă·ăčăă çăȘć¶çŽăăăăăăăăŸăăă
hăźăăă«ćźèŁ ăăăŠăăȘăăăŒăŻăłăăăăŸăă
PiăăăčăżăŒăłăłăăăŒă©ăŒăšăăŠäœżçšăăć Žćăźăżăăă€ăă«ăŻPiăăȘăăŠăćăăŸăă
NyBoardă«ă©ășăăȘăŒăă€ăé©çšăăć ŽćăŻ2x5(10ăăł)ăć©çšăăŠăă ăăăăăă€ăăă«ă§ăźæšć„šăąăă«ăŻPi 3A+ă§ăă
NyBoardă«ă©ășăăȘăŒăă€ăé©çšăăć ŽćăŻ2x5(10ăăł)ăć©çšăăŠăă ăăăăăă€ăăă«ă§ăźæšć„šăąăă«ăŻPi 3A+ă§ă
ăœă±ăăă«ćç°ä»ăăăăšăăă€ăăă«ăźă«ăăŒăă€ăăăȘăăȘăăźă§ăæłšæăă ăăăăœă±ăăă«ćç°ä»ăăăăšăăă€ăăă«ăźă«ăăŒăă€ăăăȘăăȘăăźă§ăæłšæăă ăăă
é俥ăăăăłă«ă«ăăăăă«Arduino IDEăźă·ăȘăąă«ăąăăżăŒăŻć šăŠăąăčăăŒæććă§ăšăłăłăŒăăăăŠăăŸăăäžæčă§ă©ășăă€ăȘă©ăźăăčăżăŒăłăłăă„ăŒăżăŒăŻèżœć ăźăłăăłăăăăăŸăăăăźć€§éšćăŻăšăłăłăŒăăćčçćăăăăăă€ăăȘæććă§ç”ăŸăăŠăăŸăăNybbleăšă©ășăă€ăźă·ăȘăąă«é俥ă«ă€ăăŠăŻăă€ăœăłăčăŻăȘăăardSerial.pyă«ç°Ąæçă«ç€șăăŠăăăŸăă
Ascii: takes 2 bytes to store Ascii characters '6' and '5'
Binary: takes 1 byte to store value 65, corresponding to Ascii character 'A'
Ascii: 2ăă€ăă§Asciiæćăź'6'ăš'5'ăæ ŒçŽăăŸăă
Binary: 1ăă€ăă§Asciiæćăź'A'ă«çžćœăăć€65ăæ ŒçŽăăŸăă
What about value -113? It takes four bytes as an Ascii string but still takes only one byte in binary encoding, though the content will no longer be printable as a character.
ć€-113ăŻă©ăă§ăăăăïŒAsciiæććă§ăŻ4ăă€ăćż èŠă§ăăăăă€ăăȘăšăłăłăŒăăŁăłă°ă§ăŻ1ăă€ăăăćż èŠăăăŸăăă æăăă«ăăă€ăăȘăšăłăłăŒăăŁăłă°ăźæčăAsciiæććăăăăŻăăă«ćčççă§ăă
Obviously, binary encoding is much more efficient than the Ascii string. However, the message transferred will not be directly human-readable. In the OpenCat repository, I have put a simple Python script ardSerial.py that can handle the serial communication between NyBoard and Pi.
ăăăăè»ąéăăăăĄăă»ăŒăžăŻăçŽæ„äșșéăèȘăăăăźă§ăŻăȘăăOpenCatăźăȘăăžăăȘă«ăŻăNyBoardăšPiăźéăźă·ăȘăąă«é俥ăćŠçă§ăăç°ĄćăȘPythonăčăŻăȘăăardSerial.pyăçœźăăŠăăŸăă
ă©ășăă€ăźăżăŒăăă«ă«âsudo raspi-configâăæăĄèŸŒăżăŸăă
ă€ăłăżăŒăă§ăŒăčăȘăă·ă§ăłăźăăšăă·ăȘăąă«ăéžæăă·ăȘăąă«ăă°ă€ăłă·ă§ă«ăçĄćčă«ăăŠă·ăȘăąă«ă€ăłăżăŒăă§ăŒăčăæćčă«ăăŠăă ăăă
Run raspi-config with sudo privilege: sudo raspi-config
.
Find Interface Options -> Serial Port.
At the option Would you like a login shell to be accessible over serial?
select 'No'.
At the option Would you like the serial port hardware to be enabled?
select 'Yes'.
Exit raspi-config and reboot for changes to take effect.
Sudo raspi-config ă sudo æš©éă§ćźèĄăăŸăă
ă€ăłăżăŒăă§ăŒăčăȘăă·ă§ăłăâăă·ăȘăąă«ăăŒăăăæąăăŸăă
Would you like a login shell to be accessible over serial?ă§ăNoăăéžæăăŸăă
ă·ăȘăąă«ăăŒăăźăăŒăăŠă§ăąăæćčă«ăăŸăăăăšăăăȘăă·ă§ăłă§ăYesăăéžæăăŸăă
raspi-configăç”äșăăŠćè”·ćăăăšăć€æŽăćæ ăăăŸăă
If you plug Pi into NyBoard's 2x5 socket, their serial ports should be automatically connected at 3.3V. Otherwise, pay attention to the Rx and Tx pins on your own AI chip and its voltage rating. The Rx on your chip should connect to the Tx of NyBoard, and Tx should connect to Rx.
PiăNyBoardăź2x5ăœă±ăăă«æ„ç¶ăăć Žćăă·ăȘăąă«ăăŒăăŻèȘćçă«3.3Vă§æ„ç¶ăăăăŻăă§ăăăăă§ăȘăć ŽćăŻăèȘćăźAIăăăăźRxăšTxăăłăšăăźé»ć§ćźæ Œă«æłšæăăŠăă ăăăăăăăź Rx 㯠NyBoard ăź Tx ă«ăTx 㯠Rx ă«æ„ç¶ăăćż èŠăăăăŸăă
If you want to run it as a bash command, you need to make it executable:
bashăłăăłăăšăăŠćźèĄăăăć ŽćăŻăćźèĄćŻèœăȘç¶æ ă«ăăŠăă ăăă
chmod +x ardSerial.py
You may need to change the proper path of your Python binary on the first line:
chmod +x ardSerial.py 1èĄçźă§Pythonăă€ăăȘăźé©ćăȘăăčăć€æŽăăćż èŠăăăăăăăăŸăăă
#!/user/bin/python
NyBoard has only one serial port. You need to UNPLUG the FTDI converter if you want to control Bittle with Pi's serial port.ăNyBoard ă«ăŻă·ăȘăąă«ăăŒăă 1 ă€ăăăăăŸăăăPiăźă·ăȘăąă«ăăŒăă§Bittleăć¶ćŸĄăăă«ăŻăFTDIăłăłăăŒăżăŒăć€ăćż èŠăăăăŸăă
Typing ./ardSerial.py <args>
is almost equivalent to typing <args> in Arduino's serial monitor. For example, ./ardSerial.py kcrF
means "perform skill crawl Forward".
./ardSerial.py ăć „ćăăăăšăŻăArduinoăźă·ăȘăąă«ăąăăżă§ăć „ćăăăăšăšă»ăŒćăă§ăăäŸăă°ă./ardSerial.py kcrFăŻăperform skill crawl Forwardăăšăăæćłă§ăă
Both ardSerial.py and the parsing section in OpenCat.ino need more implementations to support all the serial commands in the protocol.
ardSerial.pyăšOpenCat.inoăźè§Łæă»ăŻă·ă§ăłăźäžĄæčăšăăăăăăłă«ăźăăčăŠăźă·ăȘăąă«ăłăăłăăă”ăăŒăăăăăă«ăăăă«ć€ăăźćźèŁ ăćż èŠă§ăă
Though you can program NyBoard directly with the USB uploader, external power is required to drive the servos. NyBoard 㯠USB ăąăăăăŒăă§çŽæ„ăăă°ă©ăăłă°ă§ăăŸăăăă”ăŒăăźé§ćă«ăŻć€éšé»æșăćż èŠă§ăă
NyBoard requires 7.4~8.4V external power to drive the servos. We include our customized Li-ion battery with built-in charging and protection circuit in the Bittle kit. Short press the battery's button will show its status. Blue light indicates it has power, and red means the power is low. Long press the button for 2.5 seconds to turn on/off the battery.
NyBoard ăŻă”ăŒăăé§ćăăăăă« 7.4ïœ8.4V ăźć€éšé»æșăćż èŠă§ăăăă€ăă«ăźăăăă«ăŻăć é»ćè·Żăšäżè·ćè·Żăć è”ăăćœç€ŸăȘăȘăžăă«ăźăȘăăŠă ă€ăȘăłé»æ± ăä»ć±ăăŠăăŸăăé»æ± ăźăăżăłăçăæŒăăšăé»æ± ăźç¶æ ăèĄšç€șăăăŸăăéèČăŻé»æșăć „ăŁăŠăăăăšăç€șăă蔀èČăŻé»æșăäœäžăăŠăăăăšăç€șăăŸăăăăżăłă2.5ç§é·æŒăăăăšăăăăăȘăŒăźăȘăł/ăȘăăă§ăăŸăă
Be careful with the polarity when connecting the power supply. The terminal on NyBoard has an anti-reverse socket, so you won't be able to plug in the wrong direction. é»æșăæ„ç¶ăăéăŻăæ„”æ§ă«æłšæăăŠăă ăăăNyBoard ăźç«Żćă«ăŻéè»ąéČæąçšăźăœă±ăăăä»ăăŠăăŸăăźă§ăééăŁăæčćă«æ„ç¶ăăăăšăŻăăăŸăăă
éă«æ„ç¶ăăăšăNyBoard ăç ŽæăăæăăăăăŸă!
It can last hours if you're mainly coding and testing postures, or less than 30 mins if you keep Bittle running.
The battery light will turn red when the power is low. The power will be cut off automatically.
äž»ă«ăłăŒăăŁăłă°ă槿ćąăźăăčăăăăŠăăć ŽćăŻäœæéăæăĄăŸăăăBittleăćăăç¶ăăŠăăć ŽćăŻ30ć仄äžă«ăȘăăŸăă é»æ± æźéăć°ăȘăăȘăăšăăăăăȘăŒă©ăłăă蔀ăăȘăăŸăăèȘćçă«é»æșăćăăăăă«ăȘăŁăŠăăŸăă
Use a 5V-1A USB charger to charge the battery. We don't recommend using fast chargers. The battery will NOT supply power during charging. Keep the battery in your sight when charging.
ăăăăȘăŒăźć é»ă«ăŻă5V-1AăźUSBć é»ćšăäœżçšăăŠăă ăăăæ„éć é»ćšăźäœżçšăŻăć§ăă§ăăŸăăăć é»äžăŻăăăăăȘăŒăăé»æșăäŸç”ŠăăăŸăăăć é»äžăŻăăăăăȘăŒăçźăźć±ăăšăăă«çœźăăŠăă ăăă
After playing, remember to turn off the battery. It's recommended to unplug the battery from the NyBoard's terminal. ăăŹă€ćŸăŻăćżăăă«ăăăăȘăŒăăȘăă«ăăŠăă ăăăNyBoard ăźç«ŻćăăăăăăȘăŒăæăăăšăăć§ăăăŸăă
"You can't direct the wind, but you can adjust your sails." â”ïž
Try the following serial commands in the serial monitor:
âksitâ
âm0 30â
âm0 -30â
âkbalanceâ
âkwkFâ
âktrLâ
âdâ
The quotation mark just indicates that they are character strings. Donât type quotation marks in the serial monitor.
Only the position of the buttons matters, though those symbols can help you remember the functionalities. Iâm going to define position related symbols to refer to those keys.
Iâm using abbreviations for key definitions to reduce SRAM usage. Due to the limited keys of a physical remote, I always change the definitions for fun.
The following map is just an illustration. Check OpenCat.h for the actual key definitions in effect. They are also open to your customization.
Rest puts the robot down and shuts down the servos. It's always safe to click it if Bittle is doing something AWKWARD.
Gyro will turn on/off the gyro
Balance is the neutral standing posture. You can push Bittle from the side, or make it stand up will hind legs and tail. You can test its balancing ability on a fluctuating board. Actually balancing is activated in most postures and gaits.
Pressing F/L/R will make the robot move forward/left/right
B will make the robot move backward
Calibrate puts the robot into calibration posture and turns off the gyro
Stepping lets the robot step at the original spot
Crawl/walk/trot/run are the gaits that can be switched and combined with the direction buttons
Buttons after bound are preset postures or other skills
Turning off the gyro can accelerate and stabilize the slower gaits. But itâs NOT recommended for faster gaits such as run and bound.
Different surfaces have different friction and will affect walking performance. The current trained parameters work better without the silicone toe covers. They are provided for your experiments. The carpet will be too bushy for Bittle's short legs. It may only crawl (command kcrF) over this kind of tough terrain.
You can pull the battery pack down and slide along the longer direction of the belly. That will tune the center of mass, which is very important for walking performance. Otherwise, it may keep falling down.
When Bittle is walking, you can let it climb up/down a small slope (<10 degrees)
Whatever Bittle is doing, you can lift it vertically, and it will stop moving, just like a dog scruffed on the neck.
If Bittle keeps beeping after you connect the USB uploader, with numbers printed in the serial monitor, itâs the low voltage alarm being triggered. You need to power NyBoard with the battery to pass the threshold.
The servos are designed to be driven by internal gears. Avoid rotating the servos too fast from outside.
Donât keep Bittle running for too long. It will overheat the electronics and reduce the servosâ life span.
If you feel something is wrong with Bittle, press the reset button on NyBoard to restart the program.
Bittle has acrophobia! If you lift it and rotate it over a certain degree, its current movement will be interrupted. Don't flip Bittle over to scare it!
Be kind as if you were playing with a real dog. (^=âᎄâ=^)
"A beard well lathered is half shaved." đȘ
ăăăăȘæșăšăăăă±ăŒăžăźäžèș«ăć „ăăć°ăăȘçź±ăçšæăăŠăă ăăăćŸă§äœăăçŽć€±ăăăšăăźăăă«ăăăăăźäžèș«ăźćçăæźăŁăŠăăăŸăăăă
ă«ăŒăăăăăąă¶ă€ăŻćșăźăȘăéšć±ă§äœæ„ăăăăźăèŻăă§ăăăăć°ăăȘăăžăăăăŻăć°éąă«èœăšăăšéæłăźăăă«æ¶ăăŠăăŸăăŸăă
ć·„ć ·
ăĄăą
ăă€ăăčăă©ă€ăăŒăšăă©ăčăă©ă€ăăŒ
For M2 (diameter = 2mm) screws M2ïŒçŽćŸïŒ2mmïŒăźăăžçš
Arduino IDEăæèŒăăăăăœăłăł
ææ°ăź ăă€ăłăčăăŒă«ăăŠăă ăă
USBć é»ăăŒă
5V 1Aăźćșćă§ććă§ă
ć·„ć ·
ăĄăą
Soldering iron w/ accessoriesăăŻăă ăăŠïŒä»ć±ćä»
For modifying the PCB if you are a hacker!ăăăȘăłăćșæżăźæčé ă«ăŻăăăă«ăŒăźăăăȘæčă«ăăăăă§ăă
3D printer w/ accessoriesă3DăăȘăłăżăŒïœïŒä»ć±ćä»
Add your special designăçčć„ăȘăă¶ă€ăłăźèżœć
Arduino/Raspberry Pi kităArduino/Raspberry Pi ăăă
Add more gadgets to Bittleăăă€ăă«ăžăźăŹăžă§ăăèżœć
Multimeterăăă«ăăĄăŒăżăŒ
Test and debugăăăčăăšăăăă°
OscilloscopeăçșæŻćš
Test and debugăăčăăšăăăă°
Hot glue/super glueăăăăă°ă«ăŒ/ăčăŒăăŒă°ă«ăŒ
Avoid using them. Bittle is designed to be glue-free! äœżăăȘăăăă«ăăŸăăăăăă€ăă«ăŻæ„çć€ăäœżăăȘăăăă«èšèšăăăŠăăŸă
"Everything is connected." đ€
ă”ăŒăăźăăŒăăžăźæ„ç¶ăŻä»„äžăźćçăźăăă«ăȘăăŸăă
é ăźă”ăŒăăŻè©ăźă”ăŒăăšæ„ç¶ăăăăłăăäžćéŁă°ăăăăłă«æ„ç¶ăăŠăă ăăă
é»èČăźăŻă€ă€ (GND ăŻă€ă€)ăăăŒăă«èżăăȘăæčćă§ă€ăȘăăŠăă ăăă
蔀ć€ç·ă»ăłă”ăŒăăăăŁăŒăźć€ă«ćșăăăă«ăăŠăă ăăă
ă”ăŒăăźăŻă€ă€ăăăčăŠćăŸăăăă«ăăŠăă ăăă
Completed:
ăăăăȘăŒăźæżć „ăăćăă«æłšæăăŠăă ăăă
ăăăăȘăŒäžăźăăżăłăïŒç§ä»„äžæŒăç¶ăăŠăă ăăăăăăăȘăŒăźé»æșăć „ăŁăç¶æ ă§ă€ăȘăăăšăăŒăäžăźç«ăźçźăć ăăŸăă
"Give a cat a fish and you feed it for a day. Teach a cat to fish and you feed it for a lifetime." đŁ
EEPROMăźæžă蟌ăżæäœćæ°ăŻ1,000,000ćăšéăăăŠăăŸăăăăźăăăEEPROMăžăźæžă蟌ăżæäœăæć°éă«ăăăăšèăăŠăăŸăă
ăčăă«ă«ăŻăInstinctsăăšăNewbilityăăź2çšźéĄăăăŸăă䞥è ăźăąăăŹăčăŻă«ăăŻăąăăăăŒăă«ăšăăŠæèŒăăăEEPROMïŒ1KBïŒă«æžă蟌ăŸăăŠăăŸăăăćźéăźăăŒăżăŻć„ăźăĄăąăȘă«æ ŒçŽăăăŠăăŸăă
InstinctsăŻI2CăźEEPROMïŒ8KBïŒă«æ ŒçŽăăăŠăăŸăă
InstinctsăŻăćææèŒăăăăčăă«ăźăăšă§ăăäŸăăăȘăăăăăčă«ăĄăąăȘăŒăăźăăăȘăăźă§ăăè€æ°ăźInstinctsăŻăWriteInstinct.inoăäœżăŁăŠäžćșŠă ăI2C EEPROMă«æžă蟌ăŸăăŸăăăăăăźăąăăŹăčăŻăWriteInstinct.inoćźèĄäžă«çæăăăăȘăłăăŒăEEPROMăźă«ăăŻăąăăăăŒăă«ă«äżćăăăŸăă
PROGMEMïŒ32KBăźăă©ăă·ă„ăăčă±ăăă§ć ±æïŒăŻNewbilityăæ ŒçŽăăŸăă
NewbilityăšăŻăć€ăăźăăčăăćż èŠăšăăæ°ăăȘćźéšçăčăă«ăźăăšă§ăăI2CăăȘăłăăŒăEEPROMă«æžă蟌ăŸăăăźă§ăŻăȘăăPROGMEMćœąćŒăźăă©ăă·ă„ăĄăąăȘăŒă«æžă蟌ăŸăăŸăăArduinoăźăčă±ăăăźäžéšăšăăŠăąăăăăŒăăăćż èŠăăăăŸăăăăźăąăăŹăčăŻăłăŒăăźćźèĄæă«ăćČăćœăŠăăăŸăăăăčăă«ăźç·æ°ïŒăăčăŠăźInstinctsăšNewbilitiesăć«ăïŒăć€ăăăȘăăă°ăăăźć€ăć€ăăăăšăŻă»ăšăă©ăăăŸăăă
define WalkingDOF 8
ăăăŻæ©èĄăźăăăźèȘç±ćșŠïŒDOFïŒăźæ°ć€ăćźçŸ©ăăŠăăăBittleă§ăŻ8ăšăȘăŁăŠăăŸăă
define NUM_SKILLS 4
ăčăă«ăźćèšæ°ă4ă§ăăăăšăćźçŸ©ăăŠăăŸăăăăăŻăȘăčăăźé çźæ°ăšćăă§ăăćż èŠăăăăŸăă
const char* skillNameWithType[]
.
define I2C_EEPROM
NyBoardă«ăŻInstinctsăäżćăăăăăźI2C EEPROMăăăăăšăæćłăăŸăă
If you are building your own circuit board that doesnât have it, comment out this line. Then both kinds of skills will be saved to the flash as PROGMEM. Obviously, it will reduce the available flash space for functional codes. If there were too many skills, it may even exceed the size limit for uploading the sketch.
ăăăăȘăćè·ŻćșæżăèȘćă§äœæăăć ŽćăŻăăăźèĄăăłăĄăłăăąăŠăăăŠăă ăăă䞥æčăźăčăă«ăPROGMEMăšăăŠăă©ăă·ă„ă«äżćăăăŸăăăăă«ăăŁăŠæ©èœăłăŒăăźăăăźć©çšćŻèœăȘăă©ăă·ă„ăźăčăăŒăčăæžăăŸăăăčăă«ăźæ°ăć€ăăăăšăăčă±ăăăăąăăăăŒăăăéăźă”ă€ășć¶éăè¶ ăăŠăăŸăăăšăăăăŸăă
éąçŻè§ćșŠăź1ăăŹăŒă ăŻéæąăă槿ćąăćźçŸ©ăăäžéŁăźăăŹăŒă ăŻæ©èĄăćäœăȘă©ăźéŁç¶ăă槿ćąăćźçŸ©ăăŸăăæŹĄăź2ă€ăźäŸăă芧ăă ăăïŒ
仄äžăźăăăȘăă©ăŒăăăăšăȘăŁăŠăăŸăïŒ
restăŻéæąăă槿ćąă§ă16ćăăéąçŻè§ăźăăĄă1ăăŹăŒă ăăăăăŸăăăcrF㯠"crawl forward "ăźç„ă§ăă8ćïŒæ©èĄDOFæ°ă«ăăŁăŠăŻ12ćïŒăźéąçŻè§ă§36ăăŹăŒă ăæ§æăăććŸ©æ©èĄăćœąæăăŸăăæćŸ ăăăäœćąăŻăăăăăăăčăă«ăèĄăŁăŠăăăšăăźäœăźè§ćșŠăćźçŸ©ăăŸăăäșæłăăăè§ćșŠăăäœăćŸăăŠăăć Žćăăă©ăłă·ăłă°ă»ăąă«ăŽăȘășă ăăăă€ăăźèȘżæŽăèšçźăăŸăăè§ćșŠæŻăŻă-128ïœ127ăźçŻćČăăă性ăăȘè§ćșŠăäżćăăăć Žćă«äœżçšăăŸăăæŻçă2ă«ć€æŽăăăšă性ăăȘè§ćșŠă2ă§ćČăŁăŠäżćăăăăšăă§ăăŸăă
槿ćąă«ă€ăăŠăŻ1ă€ăźăăŹăŒă ăăăȘăăæ©èĄă«ăŻè€æ°ăźăăŹăŒă ăăăăă«ăŒăăăŠăăăŸăă
仄äžăŻćäœăźäŸă§ăïŒ
puăŻăpush upăăźç„ă§ăăćäœăăźăăšă§ăăăăźăăŒăżæ§é ăŻă槿ćąăæ©èĄăăăć€ăăźæ ć ±ăć«ăă§ăăŸăă
æćăź4ă€ăźèŠçŽ ăŻăćäœă§ăăăăšăç€șăăăă«ăăŹăŒă æ°ăèČ ăźć€ăšăăŠäżćăăăŠăăăăšăé€ăăŠăćăšćăăăă«ćźçŸ©ăăăŠăăŸăăæŹĄăź3ă€ăźèŠçŽ ă§ăŻăă·ăŒă±ăłăčć ăźçč°ăèżăăăŹăŒă ăćźçŸ©ăăŸăïŒéć§ăăŹăŒă ăç”äșăăŹăŒă ăă«ăŒăă”ă€ăŻă«ă§ăăă€ăŸăăäŸăź6, 7, 3ăŻăèĄćă7çȘçźăźăăŹăŒă ăă8çȘçźăźăăŹăŒă ăŸă§ă3ćă«ăŒăăăăăšăæćłăăŸăïŒă€ăłăăăŻăčăŻ0ăăć§ăŸăăŸăïŒăæ©èĄăźăăă«ă«ăŒăăăăźă§ăŻăȘăăèĄćăźé ćć šäœă1ćșŠă ăćźèĄăăăŸăă
ćăăŹăŒă ă«ăŻ16ćăźéąçŻè§ăć«ăŸăăŠăăăæćŸăź4ă€ăźèŠçŽ ă§ăŻăăă©ăłăžă·ă§ăłăźéćșŠăšćăă©ăłăžă·ă§ăłćŸăźé 滶æĄä»¶ăćźçŸ©ăăăŠăăŸăă
ăăă©ă«ăăźéćșŠäżæ°ăŻ4ă§ăăă1ïŒé ăïŒăă127ïŒéăïŒăŸă§ăźæŽæ°ă«ć€æŽă§ăăŸăăćäœăŻ 1 ăčăăăăăăăźćșŠæ°ă§ăă0ă«èšćźăăăšăă”ăŒăăźæ性éćșŠă§çźæšăźè§ćșŠăŸă§ćè»ąăăŸăïŒçŽ0.07ç§/60ćșŠïŒăăȘăčăŻăçè§ŁăăŠăăȘăéăă10 仄äžăźć€ăäœżçšăăăăšăŻăć§ăă§ăăŸăăă
é 滶æéăźćæć€ăŻ0ă§ăăă0ïœ127ăŸă§èšćźă§ăăćäœăŻ50msă§ăă
3ă€çźăźæ°ć€ăŻăăȘăŹăŒè»žă§ăă0ă§ăȘăć ŽćăŻăćăźé 滶æéăŻçĄèŠăăăŸăăæŹĄăźăăŹăŒă ăźăăȘăŹăŒăŻăćŻŸćżăă軞ăźăăăŁăźè§ćșŠă«äŸćăăŸăăăăă軞ă«ăŻ1ăăăŒă«è»žă«ăŻ2ăæćźăăŸăăæ°ćăźçŹŠć·ăŻéŸć€ăźæčćăă€ăŸăçŸćšăźè§ćșŠăăăȘăŹăŒăźè§ćșŠăăăć°ăăă性ăăăăćźçŸ©ăăŸăă
4ă€çźăźæ°ć€ăŻăăȘăŹăŒè§ćșŠă§ăă128ćșŠăă127ćșŠăźçŻćČă§èšćźă§ăăŸăă
ćăăŠEEPROMă«ăčăă«ăæžă蟌ăŸăăă«ăŻăWriteInstinct.inoăăąăăăăŒăăăćż èŠăăăăŸăă仄äžăźæ ć ±ăäœżçšăăăŸăă
ăčăă«ćăźæććă«ăŻăIăŸăăŻNăšăăă”ăăŁăăŻăčăä»ăăŠăăăăšă«æłšæăăŠăă ăăăăăăŻăăčăă«ăăŒăżăă©ăă«äżćăăăăăă€ăăźăąăăŹăčăćČăćœăŠăăăăăă°ă©ă ă«äŒăăăăźă§ăă
ăăźćŸăăąăăăăŒăăăăăčă±ăăăăĄă€ăłăčă±ăăăźOpenCat.inoă§ăăăI2C EEPROMăæèŒăăNyBoardăäœżçšăăŠăăć Žćăăăă°ă©ă ăŻNewbilityăȘăčăăžăźăă€ăłăżăźăżăćż èŠăšăăŸăă
const char* progmemPointer[] = {zero};
ăäœżăŁăŠăăăăăăćźçŸ©ăăăăčăă«ăźćźć šăȘç„èăćŒăćșăăăšăă§ăăŸăă
ăă§ă«InstinctBittle.hă«ăŻ "zeroN "ăšăăăčăă«ăććšăăŠăăŸăă
ăŸămndex Offsetăšăăăłăăłăă§ćă ăźéąçŻăçźæšăźäœçœźă«ç§»ćăăăŠăăăé ćăźäžăźéąçŻè§ćșŠïŒć€Șćăă©ăłăïŒăäžćșŠă«çœźăæăăăăšăă§ăăŸăă
NewbilityăšăăŠćźŁèšăăăŠăăăI2C EEPROMă«æžă蟌ăćż èŠăăȘăăăăé ćăć€æŽăăăăłă«OpenCat.inoăăąăăăăŒăăăă ăă§ăăïŒWriteInstinct.inoăăąăăăăŒăăăȘăăŠăăăïŒăIRăȘăąăłăłăź7>ăæŒăăăă·ăȘăąă«ăąăăżă«kzeroăšć „ćăăăăšă§ăæ°ăă槿ćąăćŒăè”·ăăăăšăă§ăăŸăă
ăăźăčăă«ăźććăŻć€æŽă§ăăŸăăăIRăȘăąăŒăăźăăŒăăăăæŽæ°ăăăăšăćżăăȘăă§ăă ăăă
InstinctBittle.hă§ăčăă«ăćąăăăăšăă§ăăŸăăăăĄă€ă«ăźæćă«ăčăă«çȘć·ăćąăăăăčăă«ăȘăčăé ćă«ćŻŸćżăăăčăă«ćăšăă€ăłăżăèżœć ăăăăšăćżăăȘăă§ăă ăăă
ăčăă«ăŻă·ăȘăąă«ăąăăżăăăăŒăŻăłăźăkăăłăăłăă§ćŒăłćșăăăšăă§ăăŸăăäŸăă°ăksităŻBittleă槿ćąăsităă«ćăăăŸăă
ăŸăăæ°ăăăčă±ăăăăąăăăăŒăăăȘăăŠăămăiălăăŒăŻăłăäœżăŁăŠă·ăȘăąă«ăăŒăăă槿ćąăăŹăŒă ăéăăăšă§ăæ°ăăăčăă«ăăă„ăŒăăłă°ăăăăšăă§ăăŸăăăčăă«ăćŸźèȘżæŽăăćŸăŻăinstinctBittle.hă«äżćăănewbilityăinstinctăšăăŠăăŒăă«ăąăăăăŒăăăăăšăă§ăăŸăă
äœżçšćŻèœăȘăčăă«ćă«ă€ăăŠăŻăćż ăćźéăźăłăŒăăçąșèȘăăŠăă ăăăăœăăăŠă§ăąăçč°ăèżăéçșăăäžă§ăăčăă«ă»ăăăć€æŽăăăăšăăăăŸăă
ăăăŸă§BittleăŻè”€ć€ç·ăȘăąăłăłă§æäœăăŠăăŸăăăBittleăźèĄćăæ±șăăăźăŻăăȘăă§ăă ăăœăłăłăăčăăŒăăă©ăłăšæ„ç¶ăăŠăèȘćçă«æç€șăćșăăăšăă§ăăŸăăăăăăăšăBittleăăŻăăźæç€șă«äžçæžćœćŸăăŸăă
ăŸăăăżăăă»ăłă”ăŒăȘă©ăźă»ăłă”ăŒăăăă€ăčăłăłăăăŒă«ăȘă©ăźé俥ăąăžă„ăŒă«ăèżœć ăăăăšă§ăæ°ăăç„èŠăć€æćăæăăăăăšăă§ăăŸăăăăźèȘćèĄćăç©ăżéăăŠăæç”çă«ăŻèȘćă§çăăŠăăăăšăă§ăăăźă§ăă
"Let the cat out of the bag." đ§ââïž
æ°ăăȘæç§æžăäœăăăšă«ăȘăăŸăă
The controlling framework behind Bittle is OpenCat, which I've been developing for a while. You can read more stories from my on Hackster.io.
BittleăźèćŸă«ăăć¶ćŸĄăăŹăŒă ăŻăŒăŻăŻăç§ă仄ćăăéçșăăŠăăOpenCată§ăăHackster.ioă«æçšżăăăăăăăă«éąăăăčăăŒăȘăŒăèȘăăăšăă§ăăŸăă
"A miss is as good as a mile." đŻ
BittleăæŁćžžă«ćäœăăăăă«ăŻăăăŁăȘăăŹăŒă·ă§ăłăäžćŻæŹ ă§ăă
ăăăŸă§ăźă»ăŻă·ă§ăłă§ăŻăBittleăźăăăŁăăŒăăźæșćăăăŸăăăăă”ăŒăă«ăăžæąăăèĄăŁăŠăăŸăăă§ăăăăăăŻăăăăŁăăŒăăă”ăŒăă«æŁăăè§ćșŠă§ćăä»ăăăăăźăăŁăȘăăŹăŒă·ă§ăłăćż èŠă ăăă§ăă
ă”ăŒăăćăä»ăăćă«ăăŁăȘăăŹăŒă·ă§ăłăèĄăăȘăăšăăăăšăăăăæčćă«ćè»ąăăăăăčăżăăŻăăŠćăăȘăăȘăŁăăăă”ăŒăăăăăŁă«ăăĄăŒăžăäžăăăȘă©ăăăăăăźæèăæŁćžžă«ćäœăăȘăăȘăćŻèœæ§ăăăăŸăă
ăăŁăȘăăŹăŒă·ă§ăłăŻä»„äžăźăčăăăă§èĄăăăŸăă
ćźæ°ăćșæżă«æžă蟌ă
ćè·Żăźé»æșăć „ăăă”ăŒăăèȘç±ă«ćè»ąăăăŠăè§ćșŠăăŒăăźç¶æ ă«ăăïŒăăŁăȘăăŹăŒă·ă§ăłăèĄă
ă”ăŒăă«ăăăŁăăŒăăćăä»ăă
ăăăŁăăŒăăźé çœźăćŸźèȘżæŽăăăăŁăȘăăŹăŒă·ă§ăłăźç”æăćșæżă«äżćăă
ćż ăăăăăȘăŒăźé»æșăć „ăăŠăăăäœżçšăă ăăă
The can be found on the OpenCat forum. The principles are the same for Nybble and Bittle.
ăŻOpenCatăźăă©ăŒă©ă ă«æžăăŠăăăŸăăăăă§ăŻNybbleăäŸă«èȘŹæăăŠăăŸăăăćçăŻNybbleăBittleć ±äžç·ă§ăă
ăžă§ă€ăłăăăăăłă°ăćè»ąæčćăă»ăłă”ăŒăăłăšăăŁăç”ăżç«ăŠă«éąăăćźæ°ăźć€§éšćăŻOpenCat.hă«äżćăăăŠăăŸăă
MPU6050ăźăȘăă»ăăăăžă§ă€ăłăèŁæŁăȘă©ăźăă©ăĄăŒăżăŒăŻăȘăąă«ăżă€ă ă§ćșç€ăźEEPROMă«äżćăăăŠăăŸăă
槿ćąăæ©ăæčăȘă©ăźăčăă«éąäżăźăăŒăżăŻInstinctBittle.hă«äżćăăăŠăăŸăăăȘăȘăžăă«ăźăčăă«ăèżœć ăăăăšăćŻèœă§ăă
WriteInstinct.inoăźäž»ăȘćœčćČăŻćźæ°ăćșç€ăŸăăŻI2C EEPROMă«èšéČăăăăŁăȘăăŹăŒă·ă§ăłăăŒăżăäżćăăăăšă§ăăWriteInstinct.inoăŻćŸă§ăĄă€ăłăčă±ăăăźOpenCat.inoă«äžæžăăăăŸăă
OpenCatăă©ă«ăć ă«ăăOpenCat.inoăšWriteInstinctăă©ă«ăć ăźWriteInstinct.inoăéăăŠăă ăăăäœżçšăăăăŒăăArduino UNOă§ăăăăšăšé©ćăȘUSBăăŒăăéžæăăăŠăăăăšăçąșèȘăăŠăă ăăăOpenCat.hăźâ#define NyBoard_V*_*âă«ăăă*ăźéšćă«ćŻŸćżăăNyBoardăźăăŒăžă§ăłăć „ćăăŠăă ăăăăăŒăžă§ăłăŻăăŒăăźNyBoardäžăźăăŽăźæšȘă«èšèŒăăăŠăăŸăă
ă·ăȘăąă«ăąăăżăéăă"No line ending"ăš"115200 baud"ăšăȘăŁăŠăăăăšăçąșèȘăăŠăă ăăă
NyBoardäžăźăă€ăąă«ăčă€ăăăPiă§ăŻăȘăăArduinoă«ăȘăŁăŠăăăăšăçąșèȘăăŠăă ăăă
WriteInstinc.inoăAruduino IDEäžă§ăă€ăłăłăăŒăă«æžă蟌ăżïŒăąăăăăŒăïŒćŸăă·ăȘăąă«ăąăăżăéăăŠăă ăăăéăăšä»„äžăźăăăȘæèšăćșăŠăăŸăă
Reset all joint calibration? (Y/n)
ćăăŠPetoi Bittleă§éă¶æčăŻâYâăšć „ćăăŠăă ăăă
Do you need to update Instincts? (Y/n)
âYâăšć „ćăăŠăă ăăă
Calibrate MPU? (Y/n)
âYâăšć „ćăăŠăă ăăă
ăăă°ă©ă ăćæąăăć ŽćăŻă·ăȘăąă«ăąăăżăéăăNyBoardäžăźăȘă»ăăăăżăłăæŒăăŠććșŠè©ŠăăŠăă ăăă
äžèšćäœăç”äșćŸăOpenCat.inoăăąăăăăŒăăăŠăă ăăă
ăăăăȘăŒăšă”ăŒăăæŁăăæ„ç¶ăăăŠăăăăšăçąșèȘăăŠăă ăăă
ă”ăŒăăźăźăąéšćă«ăŻäœăæ„ç¶ăăȘăç¶æ ă«ăăŠăă ăăă
ăȘăąăłăłäžăź"EQ"ăăżăłăæŒăăŠăă ăăă
ăąăŒăżăŒăćăăăźăçąșèȘćŸăäœæăăè éšćăźé»èČăă”ă€ăăè©ăźă”ăŒăă«æ„ç¶ăăŠăă ăăăäœă«ćŻŸăăŠćçŽă«ăȘăăăă«èŁ çăăŠăă ăăă
èŁ çäžă«ă”ăŒăăćè»ąăăăȘăăăă«æłšæăăŠăă ăăă
ćè éšćăćæ§ă«ć ă«èŁ çăăè ă«ćŻŸăăŠćçŽă«ăȘăăăă«æ„ç¶ăăŠăă ăăă
ćć°ăăăŠăăLćăźăă„ăŒăăŒăçšăăŠé©ćă«æ„ç¶ă§ăăŠăăăçąșèȘăăŠăă ăăă
æŹĄă«ăăăăă”ăŒăăźćșć軞ăăăăŻăźă”ăŒăăąăŒă ă«ć·źă蟌ăżăŸăăé ăŻăȘăăčăăŸăŁăăćăćăăăă«æ„ç¶ăăŠăă ăăă
Bittleăźäœăç©șäžă«æ”źăăăŸăă IR remote controllerăź ă1ăăăżăłăæŒăăŠăBittleă«æ°ćăź "ăčăăŹăă "ăăăăæè¶łăźćăă«ćéĄăăȘăăăçąșèȘăăŸăă çŽæçă«ćăăŠăăăăă§ăăă°ăćčłăăȘćșăźäžă«çœźăăŠăă ăăă IR remote controllerăźăąăŻă·ă§ăłăăżăłăäœćșŠăæŒăăŠăBittleăćăăăćăă«éćæăăȘăăăçąșèȘăăŸăă ăăźćŸăăEQăăăżăłăæŒăăšăăŁăȘăăŹăŒă·ă§ăłăąăŒăă«æ»ăăŸăă äžèąăšäžèąăçŽè§ă«ăȘăŁăŠăăăăäžèąăć°éąăšćčłèĄă«ăȘăŁăŠăăăăèŠłćŻăăŸăă è¶łăšé ăźäœçœźăćăŁăŠăăă°ăăă€ăăčăăžăäœżăŁăŠæè¶łăšé ăă”ăŒăă«ćșćźăăŸăă ăăă§ăȘăć ŽćăŻăæè¶łăć€ăăŠäœćșŠăăăŁăȘăăŹăŒă·ă§ăłăçč°ăèżăăŸăă ă©ăăăŠăăăŸăăăăȘăć ŽćăŻă6.3ăźăăæŁçąșăȘăăŁăȘăăŹăŒă·ă§ăłăèĄăćż èŠăăăăŸăă
ćæäœçœźăŻă”ăŒăćŻććăźäžć€źăźć ŽæăšăăŠćźçŸ©ăăăŠăăŸăă
ăăŁăȘăăŹăŒă·ă§ăłăąăŒăă«ć „ăăšăăčăŠăźă”ăŒăăćæäœçœźă«æ»ăăŸăăèéšă«éąăăŠăŻćæèšćăăźæčćăæŁăźćăăšăȘăăŸăă
ăăă€ăăă«ă§äœżçšăăŠăă”ăŒăă«ăŻ25ćăźæŻăăăăźă§ă1ă€ăźæŻăŻăăă14.4ćșŠăšăȘăăŸăăă€ăŸăăæŁçąșă«90ćșŠă«ăŻăȘăăŸăăă
Arduino IDEăçšăăăăŁăȘăăŹăŒă·ă§ăłăŻWriteInstinct.inoăŸăăŻOpenCat.inoăźăăĄă€ă«ă§ćźèĄćŻèœă§ăăăWriteInstinct.inoăźăăĄă€ă«ă§ćźèĄăăăăšăæšć„šăăŠăăŸăă
WriteInstinct.inoăŸăăŻOpenCat.inoăźăăĄă€ă«ăăąăăăăŒăăăŠăă ăăăăăăŠă·ăȘăąă«ăąăăżăŒăéă"c"ăć „ćăăŠăă ăăă
ć „ććŸă”ăŒăăćæäœçœźăŸă§æ»ăăŸăăă”ăŒăăćæäœçœźă«æ»ăăšæŹäœăăăăŒăéłă鳎ăă仄äžăźăăăȘèĄšăèĄšç€șăăăŸăă
1ćçźăŻăžă§ă€ăłăă€ăłăăăŻăčă2ćçźăŻăăŁăȘăăŹăŒă·ă§ăłăźăȘăă»ăăăèĄšăăŠăăŸăă
NyBoardă«ăăăăăŁăȘăăŹăŒă·ă§ăłăźăă©ăŒăăăăŻ"cIndex Offset"ă§ăăăŸăăăăăăăźéšäœă«ćŻŸćżăăă€ăłăăăŻăčăŻä»„äžăźćłăźéăă§ăă
äŸ
"c8 6"ăšć „ćăăć ŽćïŒăšćČăæŻăăăă”ăŒăă6ćșŠćæèšćăă«ćè»ąăăŸăă
ăȘăă»ăăăźć€ăïŒä»„äžă«ăȘăć ŽćăŻă”ăŒăăćè»ąăăăȘăăăă«äžććăć€ăăŠăă ăăăăăăŠăäœă«ćŻŸăăŠćçŽă«ăȘăăăă«æ„ç¶ăăȘăăăŠäžăăăăăă«ăăăȘăă»ăăăźć€ăăĄăăăăȘăăŸăă
ăăŁăȘăăŹăŒă·ă§ăłăæŁçąșă«èĄăăăăçąșèȘăăăăă«ä»ć±ăźæ„ç¶ăă„ăŒăăŒăäžćłăźăăă«ăăăăŠăă ăăă
ăăŁăȘăăŹăŒă·ă§ăłç”äșćŸă"s"ăšć „ćăăŠäżćăăŸăăäżćăăȘăă§ç”äșăăć ŽćăăăŁăȘăăŹăŒă·ă§ăłăźăȘăă»ăăăŻé©ćżăăăȘăăźă§æłšæăăŠăă ăăă
After calibration, type âdâ or âkbalanceâ to validate the calibration. It will result in Bittle symmetrically moving its limbs between rest and stand state.
Please refer to the previous testing & validation section for the process.
You may need to do a few rounds of calibrations to achieve optimal states.
ăăŁăȘăăŹăŒă·ă§ăłćŸăădăăŸăăŻăkbalanceăăšć „ćăăŠăăŁăȘăăŹăŒă·ă§ăłăæ€èšŒăăŸăăăăă«ăăBittleăŻéæąç¶æ ăšè”·ç«ç¶æ ăźéă§ć·ŠćłćŻŸç§°ă«æèăćăăăăšă«ăȘăăŸăă
ăăźăăă»ăčă«ă€ăăŠăŻăćăźăăčăăšæ€èšŒăźă»ăŻă·ă§ăłăćç §ăăŠăă ăăă
æé©ăȘç¶æ ă«ăăăăă«ăŻăäœćșŠăăăŁăȘăăŹăŒă·ă§ăłăçč°ăèżăćż èŠăăăăăăăăŸăăă
Try to understand how Bittle keeps balance even during walking. If you are adding new components to Bittle, try your best to distribute its weight symmetrically about the spine. You may also need to slide the battery holder back and forth to find the best spot for balancing. Because the battery is heavier in the front, you can also insert it in a reversed direction to shift the center of mass more towards the back.
Bittleăæ©èĄäžă©ăźăăă«ăă©ăłăčăäżăŁăŠăăăăçè§ŁăăŠăă ăăăæ°ăăéšćăèżœć ăăć ŽćăŻăèéȘšăäžćżă«éăăćŻŸç§°ă«ăȘăăăă«ć·„怫ăăŠăă ăăăăŸăăé»æ± ăă«ăăŒăććŸă«ăčă©ă€ăăăăŠăăă©ăłăčăăšăăźă«æé©ăȘć Žæăæąăćż èŠăăăăăăăăŸăăăé»æ± ăŻćăźæčăéăăźă§ăéă«ć·źă蟌ăă§éćżăćŸăă«ç§»ćăăăăăšăă§ăăŸăă
You may need to recalibrate if there's a change to the center of mass.
éćżă«ć€ćăăăŁăć ŽćăŻăăăäžćșŠăăŁăȘăăŹăŒă·ă§ăłăćż èŠă«ăȘăăŸăă
To lock in the head, use an M2x4 flat head screw to lock the servo shaft and the servo arm from the bottom side of the chassis.
é éšăćșćźăăă«ăŻăM2x4ăźćčłé ăăžăäœżăŁăŠăă”ăŒă軞ăšă”ăŒăăąăŒă ăă·ăŁă·ăŒăźäžćŽăăćșćźăăŸăă
ăăŁăȘăăŹăŒă·ă§ăłăç”äșăăăă”ăŒăăźćè»ąéšćăăăžă§ćșćźăăŠăă ăăă
ăŻă€ă€ăŒă·ăŒă«ăăèŁ çăăéăŻćăăăăăźă§æłšæăăŠăă ăăăæżć „ăăéă«èéšăšćčłèĄă«ăȘăăźăæŁăăćăă§ăă
äžăźćłăŻééăŁăèŁ çäŸă§ăă
The 6-pin female socket is used for connecting the programmer and communication dongles. Carefully bend it forward in a smooth arc if you are not going to attach a Raspberry Pi.
6ăăłăźéăœă±ăăăŻăăăă°ă©ăăŒăé俥ăăłă°ă«ăźæ„ç¶ă«äœżçšăăŸăăRaspberry Piăćăä»ăăȘăć ŽćăŻăæ éă«æ»ăăăȘćŒ§ăæăăăă«ćă«æČăăŠăă ăăă
ăăłă ăăæ ȘćŒäŒç€Ÿ
ćžžææŽæ°äž Last updated 09/09/2020
ăŻăăă« ăæłšæăćæäžèŻćŻŸćżăŻćăćăăă7æ„éăšăȘăŁăŠăăăŸăăźă§ăććăć±ăăŸăăăćż ăäžèș«ăăçąșèȘäžăăă
Last Updated: 07/30/2021
ăăźăŻăă«ăčăżăă€ășăăăæ©èĄăéçșăăăć ŽćăźèŻăćșçșçčăšăȘăăŸăăééććŠăźèšçźăèĄăć ŽćăŻă仄äžăźäž»èŠăȘăăŁăĄăłă·ă§ăłăäœżçšăăŠăąăă«ăæ§çŻăăăăšăă§ăăŸăă
It's too much work for now đ€·đ»ââïž but you are welcome to discuss it with me on the forum or through email. Good thing is, I will keep the code compatible with future OpenCat models, and even ! Hopefully, the documentation will be completed during the processes.
çŸćšăŻăšăŠăćżăăă§ăđ€·đ»ââïžăăăăăă©ăŒă©ă ăăĄăŒă«ă§ăźăçžè«ăæèżăăŸăăćčžăăȘăăšă«ăăăźăłăŒăăŻć°æ„ăźOpenCatăąăă«ăăšăźäșææ§ăäżă€ă€ăăă§ăăăăă»ăčäžă«ăăă„ăĄăłăăćźæă§ăăă°ăšæăăŸăă
ăććăăăèłȘćăŻă«ăéĄăèŽăăŸăăăĄăŒă«ă§ăźăćăćăăć ïŒcs@kibidango.com
Index
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Offset
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
-1
Our partner TinkerGen provides a curriculum which can be used with its a Scratch-like web-based IDE Codecraft.
Please check out the forum post discussing installing springs with varies tools.
"life is like a box of Bittle." đ
ç”ăżç«ăŠæžăżăźăă€ăă«ăć±ăăć ŽćăŻăéŠăèŽäœă«ć·źă蟌ăă§ăèăèȘç¶ăȘè§ćșŠă«æČăăćż èŠăăăăŸăăć·»ăç·ăèćŽăăè©ćŽă«ćŒăăăăăă«ăăŠăèéąçŻăćè»ąăăăšăă«ć§èż«æăćșăȘăăăă«ăăŸăă
é»æ± ăźăăżăłă2ïœ3ç§é·æŒăăăăšăé»æșăźăȘăł/ăȘăăă§ăăŸăă蔀ć€ç·ăȘăąăłăłăźé»æ± ăźç”¶çžă·ăŒăăæăăšăăă€ăă«ăźćăăăłăłăăăŒă«ă§ăăăăă«ăȘăăŸăă
ç”ăżç«ăŠæžăżăźăă€ăă«ăŻăăăăŸă§ăçČèȘżæŽăăăăăźă§ăăArduino IDEăă»ăăăąăăăăŠăăă€ăă«ăźă»ăłă”ăŒăèŒæŁăăæé«ăźăăă©ăŒăăłăčăçșæźăăăăă«ăžă§ă€ăłăăćŸźèȘżæŽăăćż èŠăăăăŸăă
æ©æŠăŻăæ©èĄæăźăă€ăăăăŻăȘăă©ăłăčă«éèŠăȘćœčćČăæăăăŸăăă·ăȘăłăłèŁœăźă€ăŸć ă«ăăŒïŒăœăăŻăčïŒăŻăă°ăȘăăćăćäžăăăăăšăă§ăăŸăăăăăčăç°ćąăźäșæžŹäžćŻèœăȘèĄšéąăźéăăćąćč ăăăŠăăŸăăŸăăăăźăăăéćžžăźäœżçšă§ăŻăæ©èĄăèȘżæŽăăăăçčćźăźäœæ„ăèĄăăăă«æ©æŠăćż èŠăšăăć Žćăé€ăăăœăăŻăčăȘăă§ăă€ăă«ăè”°ăăăăăšăăć§ăăăŸăă
ç”ăżç«ăŠăăăŠăăȘăăă€ăă«ăźăăăăæłšæăăć ŽćăææŠçă§æ„œăăăășă«ăè§ŁăăȘăăă°ăȘăăŸăăăăă€ăă«ăźèšèšè«çăçè§Łăăäžă§ăăăăăć·„ćŠă«ă€ăăŠćŠă¶ăăšăă§ăăŸăăè©łăăăŻæŹĄăźç« ăă芧ăă ăăă
ăăă€ăăă«ăźăăŒăăźă«ăăŒăć€ăăä»ć±ăźUSBăąăăăżăŒăźăăăăćŻŸćżăăăăłç©Žă«ć·źă蟌ăżăŸăă
äžèšăźăŠă§ăă”ă€ăă«ăąăŻă»ăčăâBittleâăăŻăȘăăŻăăŸăă
âDevice AssistantâăăăŠăłăăŒăăă
CodecraftăćăăŠć©çšăăăæčăŻâDevice Assistantâăćż èŠă«ăȘăăŸăăâConnectâăæŒăăšäžèšăźăăăȘç»éąăèĄšç€șăăăăźă§âDownload Device AssistantâăăŻăȘăăŻăăŸăă
ă€ăłăčăăŒă«ăćźäșćŸăăăŻăăŠăźăąă€ăłăłăăŻăȘăăŻăăŠè”·ćăăŸăăè”·ćăăăăăććșŠâConnectâăăŻăȘăăŻăèȘćă§ç”ăă ăłăŒăăăąăăăăŒăăăŠćźäșă§ăă
ăăă€ăčăçčăéă«ăŻăUSBăăłă°ă«ăæ„ç¶ăăăă§éžæăăăăă€ăčăéžăă§ăă ăăă
GitHubăźăłăŒăăšCodeCraftăźăłăŒăă«ăŻăăŒăžă§ăłăç°ăȘăăăćäœăăăŸăèĄăăŸăăăCodeCraftă§èĄăć ŽćăŻäžćșŠăłăŒăăŻă©ăăăźăčăă«ăăąăăăăŒăăăćż èŠăăăăŸăă
ă»Touch Sensorăäœżăć Žć
äžèšăźćçăźăăă«ă»ăłă”ăŒăDigitalăœă±ăăă«æ„ç¶ăăă
Digitalăœă±ăăă«æ„ç¶
ăłăŒăäŸ
Sound Sensorăäœżăć Žć
Analogăœă±ăăă«æ„ç¶
ăłăŒăç”ćăäŸ
ă»Digital PIR Sensorăäœżăć Žć
Digitalăœă±ăăă«æ„ç¶
ăłăŒăç”ćăäŸ
ă»Intelligent CameraăïŒArduino IDEăçšăăć ŽćïŒ
äžèšăźURLć ăźćç»ăćèă«ăăŠăă ăă
https://www.youtube.com/watch?v=CxGI-MzCGWM
I2Căœă±ăăă«æ„ç¶
ă«ăĄă©ă«ăăć·ŠăăïŒçȘçźăäžă«ăăă
https://github.com/petoicamp/balltracking
ăăZip FileăăăŠăłăăŒă
Zip Fileăć±éăăŠâBallTracking-mainâăâBallTrackingâă«ć€æŽ
https://github.com/mu-opensource/MuVisionSensor3
Zip FileăăăŠăłăăŒă
Sketch>Include Library>add zip fileăăăăŠăłăăŒăăăăăĄă€ă«ăéžæ
WriteInstinctăăąăăăăŒăăăŠă·ăȘăąă«ăąăăżăŒăéăYăäžć
ç”äșćŸ
Ball TrackingăăąăăăăŒă
ïŒç·èČăźçäœăèżœè·ĄăăŸăïŒăăăčăăŒă«ăȘă©
The head of Bittle is designed to be a clip to hold extensible modules. We compiled a sensor pack with some popular modules, but its contents may change in the future. You can also wire other add-ons thanks to the rich contents of the Arduino and Raspberry Pi community.
You can find the demo codes of these modules in our GitHub repository. They should be in the ModuleTests folder if you download the whole OpenCat repository.
The loudness and light level modules can generate analog readings for the corresponding signals and should be connected to the analog Grove socket.
The touch, reflection, PIR sensors can generate digital 1 or 0 as a switch signal. So they should be connected to the digital Grove socket. In the demo code, we use the fourth socket with D6 and D7.
The intelligent camera, gesture, and OLED module should be connected to the I2C Grove socket.
Coding can be done in C-style language with the Arduino IDE.
Bittle can be programmed with a Scratch-like web-based IDE Codecraft and curriculum
Arduino IDEăäœżăŁăŠCèšèȘă§ăłăŒăăŁăłă°ăćŻèœ
ăă€ăă«ăŻScratchăźăăăȘăŠă§ăăăŒăčăźIDEă§ăăCodecraftăšcurriculumă§ăăă°ă©ă ăăăăšăă§ăăŸăă
The Code & Robots iOS app can control a few open source Robots, include Bittle.iOSăąăăȘăCode & Robotsăă§ăŻăăăă€ăă«ăŻăăăŻăăăšăăăăă€ăăźăȘăŒăăłăœăŒăčăăăăăæäœăăăăšăă§ăăŸă
Please check out the following video for the app configuration to support controlling Bittle.ăă€ăă«ăźć¶ćŸĄă«ćŻŸćżăăăăăźăąăăȘăźèšćźă«ă€ăăŠăŻă仄äžăźćç»ăă芧ăă ăăă
OpenCatWeb - a web interface to control Opencat-based robots
need to mount a Raspberry Pi
a discussion thread by the author leukipp