معرفی فریمورک سختافزاری Gobot
فریمورک سختافزاری Gobot چیست؟
کتابخانه Gobot یک فریمورک متن باز برای رباتیک، رایانش فیزیکی و اینترنت اشیا می باشد که به زبان Go نوشته شده است. این فریمورک بر روی ۳۵ پلتفرم سخت افزاری مانند آردوینو، رزبری پای و... اجرا میشود و از قطعات جانبی زیادی پشتیبانی می کند.
چرا Gobot؟
- اجرا بر روی بیش از ۳۵ پلتفرم سخت افزاری
- پشتیبانی از ۵۰ قطعه جانبی
- سادگی در برنامه نویسی
- بهینه بودن کد و استفاده از منابع کم سخت افزاری
- سرعت اجرای بالا
- پشتیبانی از پروتکل های ارتباطی MQTT و NATS
- دارای HTTP API و JSON
پلتفرمهای سخت افزاری
کتابخانه Gobot بر روی بیش از ۳۵ پلتفرم سخت افزاری اجرا میشود. اجرای این فریمورک بر روی سخت افزارهای میکروپروسسوری دارای سیستم عامل لینوکس (مانند رزبری پای، بیگل بن و ...) از طریق کتابخانهی سطح پایین Periph،که توسط گوگل توسعه داده میشود انجام میشود.Gobot بر روی میکروکنترلرهای سازگار با آردوینو از طریق پروتکل Firmata اجرا میشود.
برای کسب اطلاعات بیشتر درباره کتابخانه ها و پروتکلهای بالا به لینکهای زیر مراجعه کنید:
سخت افزار پشتیبانی شده توسط Gobot
پشتیبانی از API
کتابخانه Gobotدارای APIهای تحت وب RESTful به منظور کنترل و برسی وضعیت قطعات می باشد.این APIها به صورت پیش فرض بر روی آدرس http://localhost:3000/ در دسترس می باشد.
فریمورک Gobot چگونه کار میکند؟
اجرای برنامه توسط Gobot بر روی Host انجام میشود و ارتباط Host با سخت افزار از طریق پورت سریال،شبکه WiFi و بلوتوث انجام میشود.قبل از اجرای برنامه، نرم افزار Firmata Client باید بر روی میکروکنترلر آپلود شود.اجرای برنامههای Gobot بر روی بردهای دارای سیستم عامل لینوکس به صورت مستقیم انجام میشود و نیازی به Firmata نیست.
ساختار برنامه در Gobot
سخت افزار در برنامه نوشته شده با Gobot با نام Adaptor تعریف میشود و Connection نوع ارتباط Host با سخت افزار را مشخص میکند.قطعات جانبی متصل به سخت افزار با نام Device تعریف میشود.برنامه ای که باید توسط سخت افزار اجرا شود در فانکشن work نوشته می شود.
اجرای اولین برنامه با Gobot
در برنامه زیر LED متصل به پورت ۱۳ بورد آردوینو که از طریق پورت سریال ACM0 به Hots متصل شده است در هر ثانیه روشن و خاموش میشود.
package main
import (
"time"
"gobot.io/x/gobot"
"gobot.io/x/gobot/drivers/gpio"
"gobot.io/x/gobot/platforms/firmata"
)
func main() {
firmataAdaptor := firmata.NewAdaptor("/dev/ttyACM0")
led := gpio.NewLedDriver(firmataAdaptor, "13")
work := func() {
gobot.Every(1*time.Second, func() {
led.Toggle()
})
}
robot := gobot.NewRobot("bot",
[]gobot.Connection{firmataAdaptor},
[]gobot.Device{led},
work,
)
robot.Start()
}
مطلبی دیگر از این انتشارات
میکروکنترلر های مناسب برای IoT
مطلبی دیگر از این انتشارات
شبکه LoRa و بررسی گیتوی Dragino LG01
مطلبی دیگر از این انتشارات
راهنمای شروع کار با ESP32